硬件平台
- STM32WB55RG
- W25N01GV
- QSPI驱动
问题
1、时序问题
QSPI驱动所提供的时序与Flash需求的时序未必能够匹配。如下图的STM32QSPI驱动时序和W25N01GV芯片要求时序
可以看到cmd:03h是符合QSPI驱动时序的。但是cmd:10h的时序是先空周期然后再发送地址的,这和QSPI的时序相悖
解决问题:配置QSPI的地址为24bit,地址高8位为空替代空周期。
2、调试的顺序
- 完成QSPI的配置
- 完成flash芯片ID的读取
- 完成状态寄存器读写
- 完成写使能和写失能
- 完成页擦除,读取,写入功能
- 以上最好先基于QSPI的单线模式。(就是SPI模式,通过以后再开发QSPI模式)
3、坏块管理
由于不可抗力因素影响,新的芯片可能存在坏块,所以第一次使用的时候先读取所有的块,判断块的第一个字节是否为"0xff"从而判断改块的好坏。