前言:
SPI是全双工,即同一时刻可以双向通讯。
SPI是英语serial peripheral interface 的缩写,顾名思义就是穿行外围设备接口。是motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线。并且在芯片的管脚上只占用4根线。
SPI的主要特点:可以同时发送和接收串行数据;可以当作主机或者从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
W25Q256(256Mb)将32M(字节byte)的容量分为512个块(block),每个块大小为64K字节,每个块又分为16个扇区(sector),每个扇区4K字节。最小擦除单位为一个扇区,也就是4K字节。
W25Q256的擦写周期多达10W次,具有20年的数据保存期限。这就是我用的norflash,我当前用2M字节,因为用norflash的目的是IAP远程升级代码用,而flash只有1MB,2MB的norflash也绰绰有余了。
后面做到STM32H750时还会发现,SPI_FLASH是可以用作分散加载的。还有QSPI通讯方式
在原子哥的讲解中关于CPHA=0和CPHA=1时的时序图弄反了,查了STM32F29的中文手册SPI部分,是这样的。对比一下即可知。