NXP MCU 技术论坛
直播中

其实znvm

8年用户 1172经验值
擅长:电源/新能源
私信 关注
[问答]

如何进行DDR校准并寻找LPDDR4校准二进制文件?

我们参考S32G的设计指南设计了定制板。请注意以下是一个重要的区别



  • S32G EVK 的设计使用40MHz晶体作为时钟源

  • 定制设计有一个40MHz振荡器作为时钟源

我们正在使用 预编译的二进制文件进行 DDR 校准 ,看起来它们是通过将晶体视为时钟源而生成的——这不允许定制板的处理器获得时钟(因为时钟应该来自外部振荡器和预编译的二进制文件试图从外部晶振提供时钟)。

请帮助使用DDR 校准工具,该工具 从外部振荡器而不是外部晶体生成时钟



  • 根据参考手册,我们可以通过如下设置FXOSC CTRL寄存器中的值来实现相同的目的:


    • OSC_BYP字段设置为1b并且

    • COMP_EN字段设置为0b


请找到示例补丁



主题:[PATCH] 定制板:绕过内部振荡器



根据参考手册,FXOSC CTRL 寄存器应具有

OSC_BYP 字段设置为 1b,COMP_EN 字段设置为 0b

外部振荡器而不是外部晶体。




diff --git a/drivers/clk/s32/enable_clk.cb/drivers/clk/s32/enable_clk.c

--- a/drivers/clk/s32/enable_clk.c

+++ b/drivers/clk/s32/enable_clk.c



@@ -35,8 +35,12 @@ static void setup_fxosc (struct s32gen1_clk_priv *priv)



如果 (readl(FXOSC_CTRL(fxosc)) & FXOSC_CTRL_OSCON)

  返回;



+#if defined(CONFIG_TARGET_CUSTOM_BOARD)

+  ctrl = FXOSC_CTRL_OSC_BYP;

+#其他

  ctrl = FXOSC_CTRL_COMP_EN;

  ctrl &= ~FXOSC_CTRL_OSC_BYP;

+#endif

  ctrl |= FXOSC_CTRL_EOCV(0x1);

  ctrl |= FXOSC_CTRL_GM_SEL(0x7);

  writel(ctrl, FXOSC_CTRL(fxosc));

--






通过上述寄存器更改 - 电路板开始启动,但是,我们想要进行 DDR 校准并寻找 LPDDR4 校准二进制文件,这些二进制文件会生成/考虑来自外部振荡器的 CLK 源。  

如果您能在DDR 校准工具源代码中添加上述小改动(请参阅上面的补丁)并共享二进制文件,这将是一个很大的帮助。

更多回帖

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