看了W25X16芯片的英文说明书,自己感到有点眼花。
所以又结合了原子的SPI对W25X16的操作程序,对其容量结构的组成做个大概的描述。
W25X16大小容量为16Mb=2M字节,能存放2M字节
W25X16分为32个块(BLOCK)即0-31,每个块有64K字节
W25X16的每个块又分为16个扇区(Sector),每个扇区4K字节
W25X16分为2097152个字节,每256个字节为1页,那一共就是8192页。
另外问个地址问题
函数 SPI_Flash_Write_Page(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite) 这是个页写函数
假如pBuffer对应一个数组Buffer[0]=3
WriteAddr是24位地址 WriteAddr=10
现在要把Buffer[0]中的内容写入WriteAddr地址中,以下是W25X16存储排列的原始数据
第N个字节。。。第10个字节。。。。 第1个字节 第0个字节
1111 1111。。。1111 1111。。。。 1111 1111 1111 1111
那么程序执行后会是什么样子?
第一种:
第N个字节。。。第10个字节。。。。 第1个字节 第0个字节
1111 1111。。。0000 0011。。。。 1111 1111 1111 1111
第二种:
第N个字节。。。第10个字节。。。。 第1个字节 第0个字节
1111 1111。。。1111 1111。。。。 0000 0011 1111 1111
原子老师能否点明一下,第一种是地址字节锁定,第二种是位地址锁定,觉得第二种是10的话就是移到第1个字节去了,那就从第1个字节开始写入3 这个数了是不是,那么到底哪一种是正确的呢?
|