你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L4使用QSPI驱动spiFLASH(W25Q64)

[复制链接]
STMCU小助手 发布时间:2022-8-27 14:50
一、什么是QSPI
6 u- b4 Y' a: f* B6 F0 F* DQSPI 即Quad SPI,是一种专用的通讯接口,连接单、双或四(条数据线)SPI FLASH 存储器。. a3 ^5 T9 h+ m; E, l5 o) ?
简单的来说,QSPI就是为了驱动SPI_FLASH所设计的专用的通信协议,他和标准的SPI协议有很多相似的地方,但是我认为将它看作一种单独的通信协议更好理解。
& E5 B0 K. L3 nQSPI可以工作在单数据线、双数据线或四条数据线通信方式下。
( N5 T( q/ r) F6 k* V而BearPi开发板的W25Q64即硬件连接为双数据线通信方式。6 ^- |5 x+ t, D$ B, W
20200111094348504.png ) `9 R, j2 A# l6 P

( ^/ H& m0 z, t- w/ p9 b1 c7 }(这里应该为原理图标识有误,W25Q64应当为NorFLASH)! p- U: k) \3 Z% W$ n

5 ~! E( A  C: @6 f6 B二、CubeMX的配置
# ?5 |8 {. L' a在之前新建工程的基础上添加使用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
20200111095008972.png 2 C# x8 l8 r  {; i+ A% e. z
$ w+ o/ l$ C1 N( a5 V
然后查看硬件连接表,发现与默认引脚不同,需要手动修改引脚
4 \8 A$ p7 J# D: b1 y& c7 ~7 z- ?$ X1 }$ y7 p% V& ^( H5 P. r
20200111095313165.png   b8 V* n3 ~8 k* _7 B) f( s  V' i

7 N! ]4 w8 e- v, T 20200111095641400.png
0 _, u! d$ o; }: M4 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速度。
3 e* i- x) }, A所以我们可以将分频值设置为0,则MCU输出的QSPI频率就为80/(0+1)=40MHz。& B; l$ W# ~& `1 F

( {& T" q+ D8 O5 o 20200111102807884.png + k4 K* r1 q% d
8 E0 s9 O) A& E
然后我神奇的发现QSPI没有LL库的支持,只有HAL库,然后我废了一天的功夫把stm32l4xx_hal_qspi库里的一些必要的函数提取出来,写了一个stm32l4xx_my_qspi的库函数,最后移植正点原子的w25qxx文件,经过测试成功。
% G5 d  K( x# i( X
' ]9 T/ o2 Q1 W5 H% E' n) c- F 20200112001416607.png 4 _" N# Q: f6 W5 s
, `& `2 n7 I8 U& `3 D8 n6 \
————————————————
+ h" |1 S. V* |1 w! h9 y转载:Willliam_william
1 B) A3 k# A# l9 M, {1 p9 r3 x: C, Z& M

* j1 N% a3 A3 b  ]. `
赞 收藏 评论0 发布时间:2022-8-27 14:50

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版