工具/软件:Linux
大家好、社区
我们无法在定制板中使用完整的32位 DDR3 RAM。 该原理图基于 AM437x 工业开发套件(IDK)的原理图。 我们使用两个 AS4C64M16D3A-12BIN DDR3 RAM 组和一个25MHz 振荡器、而不是两个 MT41K256M16HA。
为了启动 Linux 内核、我们使用 TI U-Boot (分支 ti-u-boot-2017.01)并在其中添加了一个定制板来执行 PLL 和 DDR 设置。 U-Boot 板是 am43xx 板的自适应版本。 使用 AM43xx DDR 计算工具(.zip) 、我获得了以下寄存器值:
静态常量结构 EMIF_regs DDR3_leu150_EMIF_regs_400MHz ={
SDRAM_CONFIG = 0x61A11A32、
SDRAM_CONFIG2 = 0x00000000、
.ref_ctrl = 0x00000c30、
SDRAM_TIM1 = 0xEAAD4D3、
SDRAM_TIT2 = 0x282F7FD2、
SDRAM_TIM3 = 0x507F82B8、
READ_IDLE_Ctrl = 0x00050000、
.zq_config = 0x50074be4、
temp_alert_config = 0x00000000、
.EMIF_DDR_phy_ctlr_1 = 0x00008009、
(笑声)
};
使用此设置、U-Boot SPL 不会从 SD 卡启动、并且串行控制台上没有输出。 如果我切换到16位模式(.SDRAM_CONFIG = 0x61A15A32)、U-Boot SPL 将启动、甚至 U-Boot 也将启动。 但只能访问一半的 DDR3 RAM (128MB)。 因此、我认为计算出的 DDR 时序是正确的。 布局看起来不错、符合指导原则。 所以我不知道会出现什么问题。
感谢您的提示、非常感谢。
谢谢
Thomas