1 Flash特性
1.1 W25Q128
- W25Q128 是华邦公司推出的大容量 SPI FLASH 产品,W25Q128 的容量为 128Mb,该系列还有 W25Q80/16/32/64 等。
W25Q128 容量为 128Mb,也就是 16M 字节。 - W25Q128将
16M的容量分为 256 个块(Block),每个块大小为 64K 字节,每个块又分为16 个扇区(Sector),每个扇区 4K 个字节。W25Q128 的最小擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。 - 这样我们需要给 W25Q128 开辟一个至少 4K 的缓存区,这样对 SRAM 要求比较高,要求芯片必须有 4K 以上 SRAM 才能很好的操作。
- W25Q128 的擦写周期多达 10W 次,具有 20 年的数据保存期限,支持电压为 2.7~3.6V,W25Q128 支持标准的 SPI,还支持双输出/四输出的 SPI,
最大SPI时钟可以到 80Mhz(双输出时相当于 160Mhz,四输出时相当于 320M),更多的 W25Q128 的介绍,请参考 W25Q128 的DATASHEET。 - 调用SPI_FLASH_SendByte 函数发送数据“Dummy_Byte”,然后获取其返回值 (因为不关注发送的数据,所以此时的输入参数
“Dummy_Byte”可以为任意值)。可以这样做的原因是 SPI 的接收过程和发送过程实质是一样的,收发同步进行,关键在于我们的上层应用中,关注的是发送还是接收的数据。
1.2 控制 FLASH 的指令
- 该表中的第一列为指令名,第二列为指令编码,第三至第 N 列的具体内容根据指令的不同而有不同的含义。
其中带括号的字节参数,方向为 FLASH 向主机传输,即命令响应,不带括号的则为主机向 FLASH 传输。 - 表中
“A0-A23”指 FLASH 芯片内部存储器组织的地址;“M0-M7”为厂商号(MANUFACTURER ID);“ID0-ID15”为 FLASH 芯片的 ID;“dummy”指该处可为任意数据;“D0~D7”为 FLASH 内部存储矩阵的内容。
1.3 FLASH地址范围
1.4 SPI 通讯模式
- CPHA=0
- CPHA=1
2 ST H743 SPI深入分析应用
2.1 H743 SPI硬件外设
2.2 H743 SPI协议可视化配置
- W25Q128时钟最大为80MHZ,超过SPI读写异常
2.3 SPI协议包移植