ST H743 CubeIDE 串行外围设备接口SPI深入分析应用

235 阅读2分钟

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。 image.png
  • 调用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 内部存储矩阵的内容image.png image.png image.png image.png

1.3 FLASH地址范围

image.png

1.4 SPI 通讯模式

  • CPHA=0 image.png
  • CPHA=1 image.png

2 ST H743 SPI深入分析应用

2.1 H743 SPI硬件外设

image.png

2.2 H743 SPI协议可视化配置

  • W25Q128时钟最大为80MHZ,超过SPI读写异常 image.png image.png image.png

2.3 SPI协议包移植

image.png image.png

3 实验测试

image.png