STM32
直播中

乐侨珂

9年用户 1064经验值
擅长:控制/MCU
私信 关注
[问答]

STM32H7 FMC操作SDRAM读比写慢很多是为什么?

使用STM32H723ZG通过FMC操作外部SDRAM W9825G6KH时, 数据宽度16bit, 总线频率108M, FMC操作时序如图

SDRAM CAS值为2,从0XC0000000到0xC1FFFFFF遍历写入并读出,通过tiM2计时,以字节写入时,写时间0.16秒,读时间0.73秒,以半字节操作时,写时间0.09秒,读时间0.71秒。请问为什么读比写要慢得多?
下面是写入和读出代码,系统主频550M,逻辑操作耗时应该基本可以忽略
for(temp=0; temp

回帖(1)

surround

2024-3-15 17:43:19
读操作比写操作慢很多的原因可能有以下几点:

1. FMC操作的时序设置不合理:读操作的时序要求可能比写操作更严格,导致读操作的延迟更高。检查FMC配置时序参数是否设置正确,确保读写操作的时序要求被满足。

2. SDRAM芯片的性能限制:不同的SDRAM芯片具有不同的读写速度要求,可能芯片自身的限制导致读操作较慢。可查阅SDRAM芯片的数据手册,了解其读写性能参数,以确定是否符合预期。

3. STM32H7内部总线带宽限制:STM32H7的内部总线带宽可能会成为读操作速度较慢的瓶颈。当读操作返回的数据量大于总线带宽时,读操作的速度可能会受到限制。可以尝试减小读操作数据量或优化代码以降低读操作对总线的占用。

4. MCU与SDRAM之间的距离:MCU与SDRAM之间的引脚连接线长、排线质量等因素都会对读写速度产生影响。确保连接线路短、质量好,且没有干扰信号的干扰。

此外,代码中涉及的TIM2计时可能会引入额外的延迟,可能会对测量结果产生一定的误差。最好使用专门的性能分析工具来准确测量读写操作的速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分