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

基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...  

[复制链接]
mmuuss586 发布时间:2019-8-15 13:11
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料/原理图/代码/教程等资料分享
% Z. O& _& i! x
, g" ]8 Y1 C0 S
核心板:NUCLEO-F767ZI

  t; B' b4 x+ G9 u8 h3 B' ]
Flash:NM25Q64EB(64M)
. e  x4 T2 r. x7 l  d
PSRAM:IPS6404L(64M SO-8封装QSPI接口)
- k$ e! C! s; \
配置文件请使用stm32cubemx打开

  Z6 `" b/ w* v) ?% r  V! _
程序请使用keil5 MDK打开

; Y. B. K3 G2 W! s" k  b& a$ E$ x3 n, u
1.jpg
/ L6 I' h; Y! ~7 o5 u' u2 }' s# P+ O
' X1 j; V9 `" x0 z

IPS6404L读写.rar

下载

17.52 MB, 下载次数: 342

IPUS 64Mbit SQPI PSRAM.pdf

下载

1.67 MB, 下载次数: 81

NM25Q64EB.pdf

下载

3.98 MB, 下载次数: 23

NM25Q64EB读写.rar

下载

15.41 MB, 下载次数: 149

SPI FLASH RAM.pdf

下载

266.62 KB, 下载次数: 30

锝臻科技开源产品介绍(8-14).pdf

下载

1.56 MB, 下载次数: 40

基于STM32F7通过cube软件配置:读写QSPI接口64M flash和64M PSRAM参考教程.pdf.pdf

下载

1.65 MB, 下载次数: 83

评分

参与人数 1 ST金币 +8 收起 理由
g921002 + 8 很给力!

查看全部评分

赞 1 收藏 4 评论77 发布时间:2019-8-15 13:11

举报

77个回答
mmuuss586 回答时间:2019-8-15 13:30:56
(4)外设的配置8 L& K0 E! x! Z; X3 E
频率配置:对于NM25Q64EB来说,最高频率可达104MHz,分频系数选择3,则QSPI的频率为216/(3+1)=54MHZ,经测试,这个频率是比较合适的;6 x( |. ~2 f7 Y+ Y" `
FIFO的阈值设置:4字节;: i6 @& n3 e9 ?: I+ ^% K5 p
Flash size配置:NM25Q64EB为8Mbyte,2^23=8M,所以取权值23-1=22;- P$ j9 ?- {) ?
Chip select high time:即片选的高电平时间,按照芯片的数据手册,tSHSL要求大于20ns,对于我们的时钟54MHZ来说,1/54MHZ=18.5ns,所以我们要配置2个cycle,就能满足要求,此处配置为4 cycles。即18.5ns*4=74ns>20ns;7 }2 C# ]. T' E/ q# k9 E9 N( ~+ U
Dual flash 配置:是否采用双闪存模式,我们只使用BANK1的接口,此处配置为DISABLE.
% _! q  l. V6 R6 S整体的配置如下图的QUSDSPI CONFIGURATION.
mmuuss586 回答时间:2019-8-15 13:36:21
(2)接下来我们利用以上3个函数,对NM25Q64EB进行操作。
& D, @- a6 N% R3 v对flash的操作过程,就是利用QSPI接口,往NM25Q64EB发送不同的指令码,来实现不同的功能。基础的功能包括:进入QPI,退出QPI,读取ID,擦除,读,写等。
% W4 Q/ C) Z3 {7 u" q  `接下来,我们举几个有特征的指令进行说明。
  D4 @+ J  S: x2 A1 V6 S8 k4 E; b5 ~8 t& K* e8 X- f
0x90指令:在数据手册中,我们可以看到0x90是读取Device ID(REMS)的指令,从electronic identification中可知发送0x90后,会返还2byte的ID,包括1byte manufacturer ID和1byte device ID。从Table9中来看,第一列说明了指令的功能,第三四列说明了该指令对应的模式(QPI or SPI),从5-7行可以看到0x90的地址长度(addresssize)为3byte,即24bit。Dummycycle为0 。这些信息都会在配置函数中使用到。
mmuuss586 回答时间:2019-8-15 13:36:56
了解了上面的信息后,我们开始来配置读取ID的函数。上一个标题我们介绍了QSPI的3个函数,包括配置函数,接收函数,发送函数。这里我们就用到了前两个,先配置,再接收传回的2字节地址。
, ?% M" d* d: j
, h) Q6 }8 }7 \, o9 `函数中的if…else…可选择在QPI模式下(4线)发送,或者SPI模式下(单线)发送。以QPI模式为例,往QSPI_Send_CMD(…,…,…,…,…,…,…)中填入参数,下图的函数共有7个参数.
2 L" ^" |* m' v1 e第一个参数是指令码0x90;(看Table9)
- u! x4 v4 P7 Q. z! q# P( Q+ ]; c第二个参数是指令发送的地址0;3 r- S, Q; K6 j: q' E4 B4 q
第三个参数是dummycycles:0;(看Table9)
: j: G! i. w& g9 r! a" A第四个参数是指令模式:选择4线;
, ~0 t% E* d4 D7 G第五个参数是地址模式:选择4线;
$ e! Z, N' j  ^# u3 ?1 e' d$ d4 ~第六个参数是地址长度:选择24bits;(看Table9)" \1 T$ R/ E3 b* H, X
第七个参数是数据模式:选择4线。
mmuuss586 回答时间:2019-8-15 13:12:21
参考原理图及PCB图 2.png
' d0 [& c& W/ M2 j6 K  C' r9 ?0 W& ?' F6 e7 P' [* A
3.png
( d+ x9 I$ l# @- L- \1 y$ B! x& Y! _5 e8 n' f5 f
1 l. b+ i7 n2 o% a6 p, Y, Y  D
# h& w0 y6 R" J4 [* B& I! p

, z6 [: a: m4 f% M; b1 G: o
mmuuss586 回答时间:2019-8-15 13:13:49
64M PSRAM(SO-8封装 QSPI接口)参考引脚:9 z- T5 N, b4 ?' F+ _9 s* ~
4.png ( @$ H+ D$ O" y/ j6 F4 I
' Q4 B. j7 U( _; N% z4 h1 v. S
5.png ! B( a' L4 q$ d. p) h4 V7 I) V
mmuuss586 回答时间:2019-8-15 13:21:46
基于STM32F7通过cube软件配置:读写QSPI接口64M flash和64M PSRAM参考教程
3 @/ i$ b* I' A核心板:NUCLEO-F767ZI
9 l: J7 g$ e/ f% _) OFlash:NM25Q64EB(64M)8 c  b& |% R0 x( A
PSRAM:IPS6404L(64M)6 H/ B# w' O* t  l$ [* w9 ^
配置文件请使用stm32cubemx打开
6 m& B0 T+ n& F3 n程序请使用keil5 MDK打开
mmuuss586 回答时间:2019-8-15 13:23:18
图片1.png 3 b& E% L& k) x! u8 T; p6 m0 i. C+ c) u
NUCLEO-F767ZI上引出的QSPI引脚如下,NM25Q64EB和IPS6404L都是分别接到同样引脚:
PB2------------CLK
PB6------------NCS
PD11-----------IO0
PD12-----------IO1
PE2-------------IO2
PD13-----------IO3
" A% Z- v: B) P# p" D% U
mmuuss586 回答时间:2019-8-15 13:25:54
1、 NM25Q64EB及IPS6404L的简介
图片1.png
(1) NM25Q64EB是一款容量64Mbit(8Mbyte)的flash。内部存储单元的数量关系如下:1个块(block)容量为65535byte,包含16扇区(sector)。1个扇区容量为4096byte,包含16页(page)。每页的容量为256byte。
NM25Q64EB默认为SPI1线通讯,当开启QSPI模式时,为4线通讯,大大增加了通讯的速度。芯片支持的时钟频率最高可到达104MHz。
(2) IPS6404L时一款容量64Mbit(8Mbyte)的PSRAM,同样采用QSPI接口。在2.7V~3.6V供电下,最高时钟频率为104MHz。
6 u( E7 D3 Y* Q0 P  l3 K& r
mmuuss586 回答时间:2019-8-15 13:27:37
1、 STM32CUBEMX的配置。
(1) 芯片的选择:选择和板上同款的芯片型号(STM32F767ZI)
图片1.png

4 X" I' V/ m! s$ }
mmuuss586 回答时间:2019-8-15 13:29:04
图形化界面配置完成后,在引脚模式处进行选择,QSPI选择Bank1 with Quad SPI lines,USART3选择Asynchronous。
mmuuss586 回答时间:2019-8-15 13:29:53
(1) 时钟的配置:点开clock configuration,核心板没有外接晶振,所以我们使用内部时钟HSI,按照下图配置,最高的系统时钟为216MHZ。
图片1.png
. g% v, B5 o- M- B8 i
mmuuss586 回答时间:2019-8-15 13:33:32
3、NM25Q64EB读写的移植
1 e6 {$ [4 i- D在完成了QSPI基础配置后,我们还需要加入QSPI的3个函数, NM25Q64EB的读取的一系列函数。
; m1 B6 W/ O+ K# g7 @' w/ D(1)对于发送指令,我们要关注的是它的指令码(instruction),发送地址(address),指令的模式(instructionmode),空指令周期数(dummycycles),地址的长度(addresssize),数据模式(datamode)等。
( Z( I5 j  h9 @, e( h以下是QSPI的3个函数,对指令配置的函数,QSPI发送,QSPI接收。函数的参数和以上提到的一致。
mmuuss586 回答时间:2019-8-15 13:35:09
1.png
6 k- y7 T! ?& q5 y
mmuuss586 回答时间:2019-8-15 13:37:49
图片2.png
8 {) Y2 t; u6 J# q: e8 Z
temp的操作是将temp[0]和temp[1]这2字节数据通过移位操作,赋值给deviceid,方便一次性打印出来。打印出来的数据为0x5216即为读取成功。可进行下一步读写操作。
5 M& l# }. o2 d; I  \* v

所属标签

相似技术帖

官网相关资源

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