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

STM32L4使用QSPI驱动spiFLASH(W25Q64)

[复制链接]
STMCU小助手 发布时间:2022-8-27 14:50
一、什么是QSPI
( S8 q( n( f) [7 b6 [. {' `QSPI 即Quad SPI,是一种专用的通讯接口,连接单、双或四(条数据线)SPI FLASH 存储器。
8 q# ?, R; ?. [简单的来说,QSPI就是为了驱动SPI_FLASH所设计的专用的通信协议,他和标准的SPI协议有很多相似的地方,但是我认为将它看作一种单独的通信协议更好理解。  J# ]) G" `3 u7 j* z) r: y
QSPI可以工作在单数据线、双数据线或四条数据线通信方式下。4 z9 t2 C+ `$ p3 U* v! d/ K. s
而BearPi开发板的W25Q64即硬件连接为双数据线通信方式。# p" s& S& b: m7 a
20200111094348504.png . y" p- i+ i/ d. Q
+ F5 @9 W9 [- D: W& o! t- e& ]) f
(这里应该为原理图标识有误,W25Q64应当为NorFLASH)6 |% ]8 p- p  [9 k: j9 ], b

) s0 l; Z; ^0 P! T8 i; r二、CubeMX的配置
& M! ^4 L5 {% |' L0 F在之前新建工程的基础上添加使用SPI功能(新建工程见STM32使用LL库建立工程)( J1 d1 |# u/ g- U1 F& A
将QSPI选择为单/双线模式+ A5 P& ~! c5 c/ n
& b6 U! P  z3 c- z6 q, x
20200111095008972.png 8 T3 N3 K: t$ m# e+ a# M% L. m
! @- v( C( p9 u& }6 d* ]
然后查看硬件连接表,发现与默认引脚不同,需要手动修改引脚
9 L- h) c- P1 O. j6 p! V' M# B# x  \3 p
20200111095313165.png
; r" e" i3 w# r6 m  N0 G4 H+ d% ?1 v+ c, m8 M4 R3 X5 ~+ R; J
20200111095641400.png 8 U- y7 ?$ Q9 }. X& v

) V( N: A( x. K$ h% q8 `然后对QSPI进行初始化配置
) K1 |  w, ]$ r9 B  {首先是时钟分频设置,W25Q64在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。( C: Q- R- c2 m' E6 S
所以我们可以将分频值设置为0,则MCU输出的QSPI频率就为80/(0+1)=40MHz。9 q6 {0 O+ p/ D+ d" f
) J% Z; {: l5 d! g7 [5 n- A
20200111102807884.png   F! D+ U  v0 ], k2 @: P0 T  S

% u5 P' H3 T' J然后我神奇的发现QSPI没有LL库的支持,只有HAL库,然后我废了一天的功夫把stm32l4xx_hal_qspi库里的一些必要的函数提取出来,写了一个stm32l4xx_my_qspi的库函数,最后移植正点原子的w25qxx文件,经过测试成功。
8 o1 s/ r5 }! Q4 U/ T% k. Z, t/ }8 F3 n6 |! Q" n) g" A0 A+ R
20200112001416607.png
5 b5 l! I2 ?" ^  y2 d/ a& [! M3 y
* q1 b% ?3 t- o- ?! g6 Z————————————————+ [( ^$ x1 W1 c
转载:Willliam_william$ j. m& Z3 d2 r4 i# s; T% y

# R- f- e/ u# ^& ], `1 y
( v4 C( @2 O2 ?2 [
收藏 评论0 发布时间:2022-8-27 14:50

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版