硬汉嵌入式论坛

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

[SPI/QSPI] STM32 QSPI FIFO threshold选取问题

[复制链接]

11

主题

46

回帖

79

积分

初级会员

积分
79
发表于 2022-7-31 08:44:15 | 显示全部楼层 |阅读模式
手上的两块板H743iit6和L431RCT6的QSPI都接了w25q64,在移植L431RCT6的qspi驱动的时候,因为threshold选取过大导致无法读取spi flash里面的数据。我对比了H743iit6的代码,H7的工程里面我选取了最大值32,而L4的工程里面如果threshold的值大于等于14,L4的最大值为16,就无法读取数据。我查了一下手册,H7和L4的描述是完全一样的,但是我还是不太理解,求各位指教
屏幕截图 2022-07-31 084048.png
屏幕截图 2022-07-31 084152.png
屏幕截图 2022-07-31 084354.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2022-7-31 13:12:03 | 显示全部楼层
这个没管过,一直开的最大32
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2024-9-26 23:53:18 | 显示全部楼层
我也在STM32L431RCT6发现类似问题,但我使用的是W25Q128JVSQ,使用的FifoThreshold经过测试24,25,26,27,28,29都是可以用的;但30,32用不了(没写的没经过测试)。
找到eric2013发的几个文章:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=97137
https://www.armbbs.cn/forum.php?mod=viewthread&tid=102944

是不是数据位宽默认为8bit,FIFO根据数据位宽进行设置?但是感觉也不是很合理。


https://www.armbbs.cn/forum.php?mod=viewthread&tid=119849
还有可能是FIFO没有在底层传输中高位刷新,关闭再打开,内部完成了重新启动的炒作,这样也会成功。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-9-27 10:47:17 | 显示全部楼层
wsr2580 发表于 2024-9-26 23:53
我也在STM32L431RCT6发现类似问题,但我使用的是W25Q128JVSQ,使用的FifoThreshold经过测试24,25,26,27 ...

这个FIFO很考究,有时候找不到规律,只能以实际测试为准。
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2024-9-29 04:25:18 | 显示全部楼层
eric2013 发表于 2024-9-27 10:47
这个FIFO很考究,有时候找不到规律,只能以实际测试为准。

确实,在我把驱动调试正常后,又设置了FIFO值为32,发现可以用了,我认为这个东西约定俗成的东西,应该还是稳定的。

我在调试驱动中使用的是https://blog.csdn.net/wallace89/article/details/116723123中提供的驱动,然后把堆栈都调大,就可以正常运行了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-28 23:07 , Processed in 0.250697 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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