1bit表示一个二进制位,1Byte表示8个二进制位。
每一个字节需要一个地址,所以24位地址,2^24次方最大寻址范围是16M。
W25Q256是特殊型号,切换4字节寻址模式才能使用后面的16M空间。
HOLD:芯片正常读写数据时,突然产生中断,然后想用SPI通信线去操控其他器件,这时如果把CS置回高电平,那时序就终止了,但如果你又不想终止总线,又想操作其他器件,这就可以HOLD引脚置低电平,这样芯片就HOLD住了。芯片释放总线,但是芯片时序也不会终止,它会记住当前的状态,当你操作完其他器件时,可以回过来,HOLD置回高电平,然后继续HOLD之前的时序,相当于SPI总线进了一次中断,并且在中断里,还可以用SPI干别的事情
IO标识和双重SPI、四重SPI模式有关。双重IO12同时并行作为数据线收发,四重IO1234同时并行作为数据线收发。
右上角这一大块,描述的是存储器的规划示意图
为了方便管理,储存区分为若干块 Block , 其中每个块再划分成若干扇区 Sector
整个空间内部又划分为很多页 Page ,。
高电压生成器:掉电不丢失存储器,一般内部都有一个高压源,让内部存储器产生即便断电也不会消失的状态。
发送的三个字节地址,前两个字节会进入页地址锁存器,通过页保护、行解码来选择需要操作哪一页。最后一个字节会进入字节地址锁存器。,通过列解码和256字节页缓存,来进行指定字节的读写操作。
SPI控制逻辑相当于整个芯片的管理员,执行指令、读写数据都靠它。
状态寄存器:它和忙状态、写使能、写保护等功能有关
因为这个地址锁存都有一个计数器,所以进行读或者写操作之后,地址指针自动加1。
256字节的页缓存区。写入数据先放入页缓存区,然后在时序结束后,芯片再将缓存区的数据复制到对应的Flash里面进行永久保存 。但是有一个限制,写入的时序,连续写入的数据量不能超过256字节。写完之后缓存区再转移到Flash内。
往缓存区写入数据时序结束后,芯片会进入一段忙的状态,会给状态寄存器BUSY置位。此时芯片不响应新的读写时序。
(非常重要) Flash存储器读写特性和要求:
擦除有专门的擦除电路执行,只需要发送指令即可。
Flash中 0xFF代表空白 而不是0x00
最小擦除单元,不是字节,是按照存储器的划分,最小是扇区。
连续写字节不能跨越页边沿,否则会出现地址错乱,连续读字节可以跨页,不会返回当前页头。
发出擦除指令,芯片也会进入忙状态,此时写入也是无效的,需要获取状态寄存器BUSY标志位置0后才可以继续操作。
写使能:任何写入操作前都需要写使能,进行写入操作后,不需要再写失能,硬件会自动失能。一个写使能只能保证后续一条写指令可以执行。