STMCU小助手
发布时间:2022-8-27 14:50
|
一、什么是QSPI QSPI 即Quad SPI,是一种专用的通讯接口,连接单、双或四(条数据线)SPI FLASH 存储器。. a3 ^5 T9 h+ m; E, l5 o) ? 简单的来说,QSPI就是为了驱动SPI_FLASH所设计的专用的通信协议,他和标准的SPI协议有很多相似的地方,但是我认为将它看作一种单独的通信协议更好理解。 QSPI可以工作在单数据线、双数据线或四条数据线通信方式下。 而BearPi开发板的W25Q64即硬件连接为双数据线通信方式。6 ^- |5 x+ t, D$ B, W
(这里应该为原理图标识有误,W25Q64应当为NorFLASH)! p- U: k) \3 Z% W$ n 二、CubeMX的配置 在之前新建工程的基础上添加使用SPI功能(新建工程见STM32使用LL库建立工程)" f+ J7 J2 j! z% f) L$ [8 Y: R8 r4 l 将QSPI选择为单/双线模式2 ]8 H5 X: L( f$ X6 e ; i9 v( s6 m6 D
$ w+ o/ l$ C1 N( a5 V 然后查看硬件连接表,发现与默认引脚不同,需要手动修改引脚 - ?$ X1 }$ y7 p% V& ^( H5 P. r
4 w) H- A5 x6 w6 A" P4 F1 f 然后对QSPI进行初始化配置! H$ H: R% p1 A+ f3 Z) s% U0 K 首先是时钟分频设置,W25Q64在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。 所以我们可以将分频值设置为0,则MCU输出的QSPI频率就为80/(0+1)=40MHz。& B; l$ W# ~& `1 F
8 E0 s9 O) A& E 然后我神奇的发现QSPI没有LL库的支持,只有HAL库,然后我废了一天的功夫把stm32l4xx_hal_qspi库里的一些必要的函数提取出来,写了一个stm32l4xx_my_qspi的库函数,最后移植正点原子的w25qxx文件,经过测试成功。
, `& `2 n7 I8 U& `3 D8 n6 \ ———————————————— 转载:Willliam_william 9 M, {1 p9 r3 x: C, Z& M |
STM32L4R9 QuadSPI Flash通讯速率优化解析 32位总线的DMA传输适配核心方案
【STEVAL-STWINKT1B评测】运行Datalog固件并记录运行时间
【STEVAL-STWINKT1B评测】数字麦/模拟麦对比测试+音频配套上位机软件开发
【板卡评测】STEVAL-STWINKT1B读取 ACC/GYRO/MAG 实时数据
小白也能明白的STM32的低功耗与唤醒机制
【STM32入门学习路径指南】(四步走)
STM32和Arduino对比,谁更耐打?
STM32系统中2种数据掉电保护的方法
STM32 LL为什么比HAL高效?
STM32小白入门指南:从基础到OTA实现方案
微信公众号
手机版