打印

紧急 !怎么缩短STM32H743 FMC 连续两次读PSRAM的时间间隔?

[复制链接]
437|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
阿尔法99|  楼主 | 2025-7-5 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32H743 通过FMC 与FPGA通讯。设计成PSRAM,地址数据复用模式,16bit宽度。连续两次读操作时间间隔最小约130ns,与地址建立时间,地址保持时间,数据保持时间无关。而连续两次写操作时间间隔最小约10ns。请问怎么缩小两次读操作的时间间隔?

使用特权

评论回复
沙发
星塔守护| | 2025-7-5 20:27 | 只看该作者

紧急 !怎么缩短STM32H743 FMC 连续两次读PSRAM的时间间隔?

这个130ns你是怎么得出来的?程序执行上连续读,然后抓包实测时间?首先需要确定问题在哪,是因为响应慢了还是哪里被打断了

使用特权

评论回复
板凳
阿尔法99|  楼主 | 2025-7-5 20:35 | 只看该作者
星塔守护 发表于 2025-7-5 20:27
这个130ns你是怎么得出来的?程序执行上连续读,然后抓包实测时间?首先需要确定问题在哪,是因为响应慢了还 ...

FPGA抓的波形。

使用特权

评论回复
地板
丙丁先生| | 2025-7-6 05:42 | 只看该作者
STM32H7]  回复 “紧急 !怎么缩短STM32H743 FMC 连续两次读PSRAM的时间间隔?”    https://bbs.21ic.com/icview-3467916-1-1.html

使用特权

评论回复
5
丙丁先生| | 2025-7-6 05:43 | 只看该作者
【STM32H7]  回复 “紧急 !怎么缩短STM32H743 FMC 连续两次读PSRAM的时间间隔?”    https://bbs.21ic.com/icview-3467916-1-1.html

使用特权

评论回复
6
zchong| | 2025-7-6 08:01 | 只看该作者
开DMA吧,初步判断是软件for循环之类的导致两次读之间运行一些指令。可以这样测试一下,软件读一个4字节的数据,这样硬件会拆分成2次读操作,这两次应该是你设置时序的极限情况了,如果这两次间隔还很大,应该是有个参数设置的问题(有参数决定两次访问时间之间的空闲时间)。

使用特权

评论回复
评论
阿尔法99 2025-7-6 09:23 回复TA
@zchong :时间消耗在两次读之间。一次读操作时间跟参数设置的时间一样。难道读操作,需要更多的操作代码?如果是这样的话,用DMA应该可以解决。因为DMA是硬件完成的。 
zchong 2025-7-6 08:45 回复TA
@阿尔法99 :可以同步测量观察一下片选和读信号 
zchong 2025-7-6 08:44 回复TA
@阿尔法99 :可以同步测量一下片选和读信号,观察耗时在何处 
zchong 2025-7-6 08:44 回复TA
@阿尔法99 :可以再同步测量一下片选、读信号,看看时间具体消耗在了什么地方 
zchong 2025-7-6 08:44 回复TA
@阿尔法99 :可以再同步测量一下片选、读信号,看看时间具体消耗在了什么地方 
阿尔法99 2025-7-6 08:12 回复TA
我同样的连续写操作,相邻两次写的时间间隔就很小,才10几个ns。写和读都是对地址指针操作。而且还没用到for循环。网上搜索了一下,以前有人也遇到这样的问题,不知道他怎么解决的。下一步我准备用DMA操作一下。 
7
阿尔法99|  楼主 | 2025-7-6 09:25 | 只看该作者
读和写操作都是对地址指针操作。难道编译的时候,读操作的准备时间更长?

使用特权

评论回复
8
aozima| | 2025-7-6 09:39 | 只看该作者
130ns其实挺快的了。

因为读的时候需要目标返回结果后才能进行下一次操作。
这个延迟是不可避免的。你看看是否可以使用连续读来增加吞吐量。

而写的话,只要把指令发出去,CPU就可以进行下一步了。

使用特权

评论回复
评论
阿尔法99 2025-7-6 10:54 回复TA
一次完整的读操作,数据已经返回了。NE1和nOE都变成高电平了。所以不是数据延迟返回造成的。 
9
阿尔法99|  楼主 | 2025-7-6 17:03 | 只看该作者
刚研究了一下DMA。发现FMC的DMA操作的介绍基本没有。哪位老师可以指导一下啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

227

帖子

1

粉丝