ST意法半导体
直播中

陈霞

7年用户 924经验值
私信 关注
[问答]

带有SDRAM的STM32如何连接未使用的DQM?

我即将使用带有一些 x16 SDRAM 的 STM32F7 MCU。因为我不使用字节或未对齐访问,所以我禁用了 NBL 引脚,否则它应该连接到 SDRAM 上的 DQMH/L。
但是如果我不使用那些信号,DQMH/L应该如何连接呢?我查了好几张SDRAM的数据表,都没有提到这种情况。一本手册似乎建议将两者都连接到 GND,另一个网站说将它们连接到 NOR 或 WE 和 CAS。
那么,它是哪条路呢?





回帖(1)

张亮

2023-1-5 11:34:38
在单 SDRAM 系统中,有一种特殊情况需要 DQM 信号,即写入切入正在进行的读取突发 - 在那里,从 SDRAM 读取的数据可能与要写入的第一个数据发生冲突。
更简单的 SDRAM 控制器试图将传统的内存读写尽可能简单地转换为 SDRAM 协议,其设计目的是为每个写入/读取的数据提供(列)地址,因此它们不利用内存。这意味着,在最后一次读取数据之后(即在最后一次 READ 命令之后的 CAS 延迟周期中),数据总线自动进入 Hi-Z;从系统的角度来看,在这种简单的控制器中,所有访问都将在另一个访问开始之前完成,写入不会与读取一起流水线,总线上永远不会出现这种读写冲突。
当'F42x出现时,我粗略地阅读了FMC章节,因为我们当时计划使用它的产品; 但实际上从未接触过它,所以我的 STM32-FMC 特定“专业知识”仅来自该阅读。现在我想起来RM需要设置SDRAM的mode register为burst=1,叙述也证实了所有来自系统的访问都被翻译成单次读写;所以我假设这就是我上面描述的那个简单的 SDRAM 控制器的情况。然而,现在阅读我意识到有一个 FIFO 似乎执行一些预读,这可能会导致所描述的读写冲突。(似乎可以通过清除 RBURST 位来禁用读取 FIFO——我不太了解它对整体性能的影响)。
我找不到任何关于读写过程的描述,所以没有假设。我什至不明白,对同一行(或在其他银行中处于活动状态)的读写是否会调用预充电/激活命令。
我也找不到有关 NBL 引脚确切行为的可用信息。
所以,请对我上面的“你可以将 DQM 根除”的建议持保留态度——毕竟,最终的失败是你的,所以请进行你自己的调查。将 NBL 引脚连接到 DQM 是为了安全起见。
JW
附言。我看不出所提议的 NOR 应该如何运作,确切地说。
举报

更多回帖

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