This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 无法访问 EMIF2:DDR3L

Guru**** 2540830 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/595892/not-able-to-access-emif2-ddr3l

主题中讨论的其他器件:X5777BXGABC

你(们)好

我们在其中一个设计中使用 X5777BXGABC 处理器。在这种情况下、我无法访问连接到 EMIF2控制器的 DDR3L 芯片(1GB)。

我尝试用减少的时钟连接 JTAG、但无法访问任何 DDR 寄存器。

我可以通过探测观察到的一件事是 EMIF2的 CKE 不会切换、 其空闲 状态为高电平(Vtt)。

是否有人可以帮助我进一步调试此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、您好!

    我已将您的问题转交给 EMIF 专家以提供帮助。
    同时、您可以检查您是否可以在本文档中找到有用的内容:
    www.ti.com/.../sprac36.pdf

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、您好!

    请检查 CTRL_CORE_SMA_SW_0[1] EMIF2_CKE_Gating_CTRL 位是否被清除。 如果设置为0x1、EMIF2无法控制 CKE。
    我假设 EMIF1一切正常。 如果您还将1GB 连接到 EMIF1、则可以对 EMIF2使用相同的寄存器设置。 唯一的区别是 EMIF2不支持 ECC。

    另外需要检查的是 DMM_LISA_MAP_I、CTRL_WKUP_SECURE_EMIF2_SDRAM_CONFIG 和 CTRL_WKUP_EMIF2_SDRAM_CONFIG_EXT 寄存器。

    BR、
    Dobrin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Dobrin:

    感谢您的回复、

    我尝试读取寄存器 CTRL_CORE_SMA_SW_0
    EMIF2_CKE_Gating _CTRL 位设置为0x0。因此、它可以清除由处理器控制的 CKE 焊盘。

    您的假设是正确的,我将 DDR3L 芯片连接到 EMIF1控制器,其工作正常。与我用于 EMIF2的寄存器设置相同,但没有改进。

    再观察一下、我已连接 JTAG 调试器、只使用配置设置 EMIF2.我能够写入一些 DDR 地址位置、但相邻位置上的数据也会受到影响。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、

    您是否还检查了控制模块寄存器? CTRL_WKUP_SECURE_EMIF2_SDRAM_CONFIG 寄存器在 POR 时将其值导出到 EMIF2.EMIF_SDRAM_CONFIG 寄存器。 CTRL_WKUP_SECURE_EMIF2_SDRAM_CONFIG 应具有与 CTRL_WKUP_SECURE_EMIF1_SDRAM_CONFIG 寄存器相同的设置。 这些寄存器用于指定重要的 EMIF 参数。

    CTRL_WKUP_EMIF2_SDRAM_CONFIG_EXT 寄存器还应具有与 CTRL_WKUP_EMIF1_SDRAM_CONFIG_EXT 相同的值(假设您不使用 ECC、否则必须在 CTRL_WKUP_EMIF1_SDRAM_CONFIG_EXT 中启用 ECC)。

    DMM_LISA_MAP_I 寄存器也很重要。 它们控制 EMIF1和 EMIF2之间的交错、地址映射和其他重要参数。 还有一些寄存器可控制 DDR IO 单元的输出阻抗、压摆率和弱拉电阻器。 这些寄存器为:CTRL_CORE_CONTRAL_DDRCACH1_0、CTRL_CORE_CONTRAL_DDRCH1_0、CTRL_CORE_DDRCH1_1、CTRL_CORE_DDRCH1_2 (对于 EMIF1)和 CTRL_CORE_CONTRAL_DDRCACH2_0、CTRL_CORE_DDRCH2_0、CTRL_DDRCH2_0、EMIF_CONTRAL_DDRCH2_1 (对于 EMIF_CORE_CONTRAL_DDRCH2_1)。

    此外、当您使用 JTAG 时、您是否使用 CCS 和默认 GEL 文件? EMIF GEL 文件执行初始化两个 EMIF 所需的所有步骤。

    还有一个问题、我假设您的电路板是使用直流拓扑和调平设计的、对吧?

    BR、
    Dobrin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dobrin

    我已经检查了前面提到的 EMIF1和 EMIF2的所有寄存器参数值。
    我们观察到、当我们从 Uboot 代码进行配置时、两个 EMIF 寄存器的值相同。

    此外、我们还使用 LISA 映射寄存器中的修改值尝试了可用的 GEL 文件(/opt/ti/ccv5/ccs_base/emullation/gel/DRAxx/DRA7xx_ddr_config.gel)。 我们无法访问 EMIF2存储器控制器的 DDR。

    我们曾考虑从硬件侧进行调试、并观察到对于 EMIF2控制器、CKE 不会切换、且信号始终为高电平。


    此致
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anand、

    我还考虑了硬件问题、但首先要确认从软件方面来说一切都正常。

    CKE 的高电平是正常的。 根据 DDR3 JEDEC 规范(JESD79-3F)、CKE 仅在自刷新和断电命令期间为低电平。 在读取和写入期间、它必须为高电平。 以下摘录:

    您能否发送 LSA_MAP_I 寄存器设置来验证一切是否正常?

    BR、

    Dobrin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dobrin、

    请在下面找到我们已配置为1.5GB 的 LISA_MAP_I 寄存器设置。

    .dm_lisa_map_0 = 0x0

    .dm_lisa_map_1 = 0x80640300

    .dm_lisa_map_2 = 0xc0500220

    .dm_lisa_map_3 = 0x0x020100

    我对 CKE 信号电压电平还有一个疑问。VIH (最小值)电平是否应大于 Vref 正确?
    在我们的场景中、它恰好是 VDDQ/2。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、

    很抱歉耽误你的答复… 根据 J6数据手册,CKE 的 VOH 最小值为0.9*VDDS,VREF 为0.5*VDDS。 显然、CKE 的 VOH 最小值必须大于 VREF。 您是否比较了 EMIF1 CKE 和 EMIF2 CKE?

    LSA_MAP 设置似乎正常。 您有1、1Gb 配置。 EMIF1和 EMIF2之间以256B 粒度交错1GB、仅将512MB 映射到 EMIF1。

    BR、
    Dobrin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dobrin

    是的、我已经比较了工作 EMIF1的 CKE 和它在初始化阶段(变为低电平然后变为高电平)的切换、但是其他 EMIF2 CKE 信号上没有发生同样的情况。

    因此、测试目的我已将 EMIF1的 CKE 短接至 EMIF2 CKE、并且我的电路板已成功启动。我尝试了1.5GB 和2GB 配置、并且工作正常。

    我想知道这种做法是否正常?

    此致
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、

    这似乎是 EMIF2 CKE 的硬件问题。 您是否测量了 CKE 和 VTT 之间的端接电阻器? 它的值应该与 EMIF1的值相同。 您是否已将下拉电阻连接到 CKE? 请检查。

    这不是一种短接 EMIF1和 EMIF2 CKE 信号的好方法。 IMO、电路板已成功启动、这不是因为您已将 EMIF2 CKE 连接到 EMIF1 CKE、而是因为您已将其连接到有效电压电平。 如果您已将 EMIF2 CKE 连接到另一个保持高电平的有效电压电平、则您还应该已成功启动。 如前所述、CKE 仅在自刷新和断电命令期间为低电平。

    请检查我上面提到的电阻器值。

    BR、
    Dobrin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dobrin

    我们有用于两个 CKE 信号的47E 端接电阻器(均测量为46.5E)、而我有用于相同的4.7K 下拉电阻器。

    是的、它的硬件问题是由 EMIF2 CKE 系列解决的、因为我可能需要解决接触问题(b/w 焊球和焊盘或过孔破损)。

    那么、我是否可以使用端接电阻将 EMIF2的 CKE 短接至 VDDQ (有效高电平)?
    在这种方法中、由于我们使用交错式 b/w EMIF、EMIF1的 CKE 会怎样。 我是否还需要隔离此引脚并提供始终高电平(VDDQ)。
    3.在我的 DDR 芯片上不进行自我刷新操作会产生什么影响? 基本上、自刷新操作会禁用时钟以降低器件的功耗、并通过使用内部刷新计数器自动执行刷新操作。


    此致
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anand、

    很抱歉耽误你的回答。 我是 ooo。

    1.虽然 VDDQ 具有有效的电压电平、但我不认为 CKE 与 VDDQ 之间的短接始终有效。 根据 JEDEC DDR3规范、在上电时必须将 CKE 拉至低电平。
    然后、在 RESET#取消置位后、您应该等待500us、直到 CKE 激活。 JEDEC DDR3规范的"3.3复位和初始化过程"部分对此进行了介绍。
    以下摘录:


    如果您只将 CKE 连接到 VDDQ、我无法评论会发生什么情况。 如果您幸运、SDRAM 可能会被成功访问。
    如果您的电路板用于评估、您可以使用当前的"硬件补丁"、但我不建议将其用于最终产品。
    此类权变措施可用于测试目的、或者如果您需要在不生产新电路板的情况下修复某些问题、但不得在供客户使用的产品中使用。
    除了将 EMIF2 CKE 连接到 SDRAM CKE 引脚之外、任何其他方法都不是一种好的专业工程方法。 如果听起来有点粗鲁的话,很抱歉。 这不是目的。
    此外、J6数据手册还指出、上电后 CKE 为低电平。

    2.如果您在不使用 EMIF2 CKE 的情况下找到了遵循 JEDEC 的方法、我认为您也不应该隔离 EMIF1 CKE。 这不应影响交错。

    3.如果您不使用自刷新、功耗将会更高、但我不期望有显著差异。 请注意、在这种情况下、EMIF_POWER_MANAGEMENT_CONTRAIN[10:8] LP_MODE 位字段应设置为值!= 0x2以禁用自刷新。
    不使用自刷新的另一个影响是、您无法更改 EMIF_FICLK 频率、因为只有在将外部 SDRAM 置于自刷新模式后才能更改该频率。

    BR、
    Dobrin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dobrin、

    感谢您在调试此 DDR 问题时提出的宝贵建议。

    感谢您的关注、我们将此电路板用于内部评估、而不是客户使用。