I.MX6U MMDC 控制器简介

MMDC 控制器

STM32 的 FMC 或 FSMC 外设用于连接 SRAM 或 SDRAM,
对于 I.MX6U 来说也有 DDR 内存控制器,否则的话它怎么连接 DDR 呢? MMDC 就是 I.MX6U的内存控制器, MMDC 是一个多模的 DDR 控制器,可以连接 16 位宽的 DDR3/DDR3L、 16 位宽的 LPDDR2, MMDC 是一个可配置、高性能的 DDR 控制器。 MMDC 外设包含一个内核(MMDC_CORE)和 PHY(MMDC_PHY),内核和 PHY 的功能如下:
**MMDC 内核:**内核负责通过 AXI 接口与系统进行通信、 DDR 命令生成、 DDR 命令优化、
读/写数据路径。
MMDC PHY: PHY 负责时序调整和校准,使用特殊的校准机制以保障数据能够在 400MHz
被准确捕获。
MMDC 的主要特性如下:
①、支持 DDR3/DDR3Lx16、支持 LPDDR2x16,不支持 LPDDR1MDDR 和 DDR2。
②、支持单片 256Mbit~8Gbit 容量的 DDR,列地址范围: 8-12 位,行地址范围 11-16bit。 2
个片选信号。
③、对于 DDR3,最大支持 8bit 的突发访问。
④、对于 LPDDR2 最大支持 4bit 的突发访问。
⑤、 MMDC 最大频率为 400MHz,因此对应的数据速率为 800MT/S。
⑥、支持各种校准程序,可以自动或手动运行。支持 ZQ 校准外部 DDR 设备, ZQ 校准 DDRI/O 引脚、校准 DDR 驱动能力。

MMDC 控制器信号引脚

我们在使用 STM32 的时候 FMC/FSMC 的 IO 引脚是带有复用功能的,如果不接 SRAM 或SDRAM 的话 FMC/FSMC 是可以用作其他外设 IO 的。但是,对于 DDR 接口就不一样了,因为DDR 对于硬件要求非常严格,因此 DDR 的引脚都是独立的,一般没有复用功能,只做为 DDR引脚使用。 I.MX6U 也有专用的 DDR 引脚
在这里插入图片描述
由于图中的引脚是 DDR 专属的,因此就不存在缩为的 DDR 引脚复用配置,只需要设置 DDR 引脚的电气属性即可,注意, DDR 引脚的电气属性寄存器和普通的外设引脚电气属性寄存器不同!

MMDC 控制器时钟源

前面说了很多次, I.MX6U 的 DDR 或者 MDDC 的时钟频率为 400MHz,那么这 400MHz 时钟源怎么来的呢?这个就要查阅 I.MX6ULL 参考手册的《 Chapter 18 Clock Controller Module(CCM)》章节。
在这里插入图片描述
图就是 MMDC 的时钟源路径图,主要分为 4 部分,我们依次来看一下每部分所组的工作:
①、 pre_periph2 时钟选择器,也就是 periph2_clkd 的前级选择器,由 CBCMR 寄存器的PRE_PERIPH2_CLK_SEL 位(bit22:21)来控制,一共有四种可选方案,如表所示:
在这里插入图片描述
当 PRE_PERIPH2_CLK_SEL 为 0x1 的时候选中 PLL2_PFD2 为pre_periph2 时钟源. I.MX6U 内部 boot rom 就是设置 PLL2_PFD2 作为 MMDC 的最终时钟源,这就是 I.MX6U 的 DDR 频率为 400MHz 的原因。

②、 periph2_clk 时钟选择器,由 CBCDR 寄存器的 PERIPH2_CLK_SEL 位(bit26)来控制,当为 0 的时候选择 pll2_main_clk 作为 periph2_clk 的时钟源,当为 1 的时候选择 periph2_clk2_clk作为 periph2_clk 的时钟源。这里肯定要将 PERIPH2_CLK_SEL 设置为 0,也就是选择pll2_main_clk 作为 periph2_clk 的时钟源,因此 periph2_clk=PLL2_PFD0=396MHz。

③、最后就是分频器,由 CBCDR 寄存器的 FABRIC_MMDC_PODF 位(bit5:3)设置分频值,可设置 0~7,分别对应 1~8 分频,要配置 MMDC 的时钟源为 396MHz,那么此处就要设置为 1分频,因此 FABRIC_MMDC_PODF=0。以上就是 MMDC 的时钟源设置, I.MX6U 参考手册一直说 DDR 的频率为 400MHz,但是实际只有 396MHz,就和 NXP 宣传自己的 I.MX6ULL 有 800MHz 一样,实际只有 792MHz。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值