硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4773|回复: 17
收起左侧

[SPI/QSPI] 正确理解STM32H7驱动QSPI W25Q手册中时钟后缀1-2-2,1-4-4等代表的含义

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2019-3-6 02:04:11 | 显示全部楼层 |阅读模式
刚看的时候有点懵,不知道这个后缀代表的含义,对比了下具体的指令后明白了

分别是指令,地址和数据通信时用的IO数。比如1-4-4就是指令阶段使用1个IO,地址阶段使用4个IO,数据阶段也是使用4个IO。
理解了这个,配置STM32H7的数据时就方便了。比如1-4-4的 ECh指令

sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
sCommand.AddressMode = QSPI_ADDRESS_4_LINES;
sCommand.AddressSize = QSPI_ADDRESS_32_BITS;
sCommand.DataMode = QSPI_DATA_4_LINES;

sCommand.Instruction = 0xEC;


7.jpg

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2019-3-6 02:07:07 | 显示全部楼层
为了方便大家看,四组读指令3Ch,BCh,6Ch,ECh贴上

中断看时序图里面的指令,地址和数据阶段即可





回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-3-6 10:51:06 | 显示全部楼层
一直用的Single SPI
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2019-3-6 15:43:49 | 显示全部楼层
byccc 发表于 2019-3-6 10:51
一直用的Single SPI

4线配合MDMA比较爽,可以溜溜
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2020-3-23 14:31:38 | 显示全部楼层
你好,我想咨询一下,像W25Q16这种手册里写的Instruction Set Table 1 (Standard SPI Instructions) 这张表里面的是不是不能用QSPI口发
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2020-3-23 14:32:53 | 显示全部楼层
nzk123 发表于 2020-3-23 14:31
你好,我想咨询一下,像W25Q16这种手册里写的Instruction Set Table 1 (Standard SPI Instructions) 这张表 ...

是的。
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2020-3-23 16:49:50 | 显示全部楼层

我晕,那我W25Q16已经接了QSPI口,该怎么用,难道不支持QSPI吗,我看datasheet上QSPI的指令里面没有擦除啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2020-3-23 18:06:53 | 显示全部楼层
nzk123 发表于 2020-3-23 16:49
我晕,那我W25Q16已经接了QSPI口,该怎么用,难道不支持QSPI吗,我看datasheet上QSPI的指令里面没有擦除 ...

帮你看了下,这款W25Q16JV确实比较尴尬
QSPI方式没有擦除指令
1111.png

回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2020-3-23 19:17:00 | 显示全部楼层
eric2013 发表于 2020-3-23 18:06
帮你看了下,这款W25Q16JV确实比较尴尬
QSPI方式没有擦除指令

我晕,没有擦除不可能标称支持QSPI吧,这不是自相矛盾吗?另外我试了一下使用QSPI发送4线指令,4线地址,24位地址,4线数据,可以读出FLASH ID,所以你上面说的Instruction Set Table 1 (Standard SPI Instructions) 这张表里的命令不支持QSPI有问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2020-3-23 19:18:40 | 显示全部楼层
nzk123 发表于 2020-3-23 19:17
我晕,没有擦除不可能标称支持QSPI吧,这不是自相矛盾吗?另外我试了一下使用QSPI发送4线指令,4线地址, ...

对,剩下就是自己测试阶段了,说明不定标准SPI的大部分指令都可以使用。

这个问题就交流这么多吧,剩下自己研究下吧。
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2020-3-23 19:25:02 | 显示全部楼层
eric2013 发表于 2020-3-23 19:18
对,剩下就是自己测试阶段了,说明不定标准SPI的大部分指令都可以使用。

这个问题就交流这么多吧,剩 ...

感谢回复,我再研究研究
回复

使用道具 举报

7

主题

125

回帖

146

积分

初级会员

积分
146
发表于 2020-3-26 09:59:38 | 显示全部楼层
nzk123 发表于 2020-3-23 19:17
我晕,没有擦除不可能标称支持QSPI吧,这不是自相矛盾吗?另外我试了一下使用QSPI发送4线指令,4线地址, ...

QSPI支持标准SPI,DUAL,QUAD,具体那些指令支持那种模式,要看手册。对于STM32,使用不同指令,其实就是选择用几线。我一般会SPI读ID->SPI复位Flash->SPI配置QE位->如果支持QPI,就开启QPI->剩下全部用QUAD指令
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2020-3-26 10:56:37 | 显示全部楼层
狂野的庄稼汉 发表于 2020-3-26 09:59
QSPI支持标准SPI,DUAL,QUAD,具体那些指令支持那种模式,要看手册。对于STM32,使用不同指令,其实就是 ...

感觉是W25Q16手册描述的有问题,不明确,容易让人误会,直接就按照这里的配置就行:
1-1-1:指令阶段使用1个IO,地址阶段使用1个IO,数据阶段也是使用1个IO配置即可:
1.png
回复

使用道具 举报

7

主题

125

回帖

146

积分

初级会员

积分
146
发表于 2020-3-26 14:29:51 | 显示全部楼层
eric2013 发表于 2020-3-26 10:56
感觉是W25Q16手册描述的有问题,不明确,容易让人误会,直接就按照这里的配置就行:
1-1-1:指令阶段使 ...

是的,有些指令还有dummy字节,也要注意下
回复

使用道具 举报

1

主题

109

回帖

112

积分

初级会员

固件開發工程師

积分
112
QQ
发表于 2020-5-23 01:08:05 | 显示全部楼层
擦除命令主要耗时在擦除本身,而不是命令本身。命令字本来就很短了。
QSPI基本都是针对READ和PROGRAM的。

我比较想知道STM32里dummy的长度是怎么控制的,按理说应该跟硬件连线有关。实际时长要大于Flash Datasheet里的值。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2020-5-23 08:49:17 | 显示全部楼层
----- 发表于 2020-5-23 01:08
擦除命令主要耗时在擦除本身,而不是命令本身。命令字本来就很短了。
QSPI基本都是针对READ和PROGRAM的。
...

H7的是硬件设置的。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-1-1 00:37:24 | 显示全部楼层
请教一下,bsp_qspi_w25q256 驱动里面,为什么没有写状态寄存器2 的QE位的代码,不是要先进入QSPI模式吗? 头文件里连写指令都没定义
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2024-1-1 09:46:13 | 显示全部楼层
softboy 发表于 2024-1-1 00:37
请教一下,bsp_qspi_w25q256 驱动里面,为什么没有写状态寄存器2 的QE位的代码,不是要先进入QSPI模式吗?  ...

我们用的这个型号不需要,直接命令就可以操作。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 06:51 , Processed in 0.284657 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表