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.

[参考译文] RM57L843:需要澄清在异步模式下具有更长等待时间的 EMIF

Guru**** 2553800 points
Other Parts Discussed in Thread: RM57L843, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/818301/rm57l843-emif-in-asynch-mode-with-extended-wait-needs-clarification

器件型号:RM57L843
主题中讨论的其他器件: HALCOGEN

尊敬的 Hercules 团队:

 

对于 RM57L843、我的客户面临以下问题。

 

它们观察到一个似乎接近 EMIF#3芯片勘误表中描述的行为。

但是、它们看到的差异是、中止是由对存储器单元的直接访问(未得到确认且超时)生成的。 之后对 EMIF 寄存器执行读取访问(在处理中止后)将在不执行中止的情况下工作。

他们当前的解决方法是在不执行其他特定操作的情况下处理中止。 (空 CCS 和 HalCoGen 项目不执行/不包括此中止处理、因此中止会导致挂起软件)。

 

芯片勘误表(SPNZ233B)中的问题说明:

“在 EMIF 超时错误后出现问题当外部异步存储器无法响应时,对 EMIF 寄存器的读取会产生数据中止。

为了包括上述影响、勘误表条目应为:

“当外部异步存储器无法响应时,发出 EMIF 超时错误,生成数据中止。

 

是否有人可以澄清上述影响是否/如何与 EMIF#3勘误表相关?

EMIF#3勘误表的权变措施不适用于上述效果。

 

用于设置或屏蔽 EMIF 中断事件的位看起来没有任何效果。

VIM 上的128个中断中的哪一个应该触发 EMIF 中断?

为什么 EMIF 中断设置在 HalCoGen 中不可见(EMIF => General、SDRAM、异步1…3)?

预期结果是有可能参数化 EMIF 中断(INTMSKSET 中各自的 INTMSKCLR 为3位)并在那里找到 ISR。

 

超时应通过中止可见、因为它看起来现在正常工作。 为了防止在每次 EMIF 寄存器访问之后检查是否发生超时、在发生超时时时时时应触发中断。 该中断事件在用户指南的 EMIF 一章中进行了说明。 但是、对于这个事件、除了与中断控制器 VIM 文档相关的说明之外、在 HalCoGen 中也没有其他说明。

 

请帮助澄清此主题。

 

谢谢、

BR、

Matthias

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

    Matthias、您好!

    症状与 EMIF#3芯片勘误表不同。 在定时器输出错误后、当读取 EMIF 寄存器时、EMIF#3发生。

    EMIF ISR 分配在通道 VIM #41上。 用户需要手动添加自己的 ISR 名称。

    您是否详细了解了它们的 EMIF 配置? 如何重新生成此问题?

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

    QJ Wang、您好!

    我是 Mattias 的客户。

    是的、症状与 EMIF#3不同。

    对于 EMIF#3、我们是 Matthias 的建议、因为它非常相似。

    为了重新生成我的情况:

    我使用 HALCoGen 04.07.00和 Code Composer Studio 7.3.0.00019、并从 RM57L843的空项目开始。

    在 HALCoGen 中、我使用 EMIF ASINC1、2和3、全部使用 ASIZE 16位。

    MAX_EXT_WAIT 设置为 t0 5、对于两个引脚、等待极性设置为高电平(RM57L843只有第一个引脚)。

    对于 EMIF ASINC1、我启用"扩展等待"。

    在 CCS 中、我访问 ASINC1 RESP 的相应地址。 CS2 0x60000000。

    当 WAIT 引脚被驱动为低电平时、所有操作都可以通过 HALCoGen、ASINC1时序中设置的时序正常运行。

    当 WAIT 引脚被驱动为低电平(保持高电平)时、访问会被扩展(由 MAX_EXT_WAIT 设置)、这可以通过逻辑分析仪观察到、并且 CCS 会因意外中止而挂起、而该异常中止不是由空项目处理的。

    修复此空的未完成中止可修复挂起并将中止确认为原因 für 问题。

    使用此信息、您应该能够在评估板上重现问题。 如果没有、请提问。

    此致 Horst   

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

    您好、Horst、

    我在没有连接任何异步存储器的情况下测试了 HDK。 我看到了问题。 我将执行更多测试、以确保它不是由我的代码或电路板引起的。 我会随时向您提供最新信息。

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

    您好、Horst、

    我的测试中的中止是由读取0x6000_0000引起的、该0x6000_0000无效、因为没有连接 SRAM。 我进行了几次仅写入测试、但我没有看到问题。

    我尝试了不同的极性:低电平、高电平、我使用一个 GIO 引脚来控制 EMIF_nWAIT。

    当极性为低电平时、并且 EMIF_nWAIT 引脚为低电平时、写入周期被延长

    当极性为低电平时、并且 EMIF_nWAIT 引脚为高电平时、不存在扩展等待

    当极性为高电平时、并且 EMIF_nWAIT 引脚为高电平时、写入周期被延长

    当极性为高电平时、并且 EMIF_nWAIT 引脚为低电平时、不存在扩展等待

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

    QJ Wang、您好!

    感谢您的回答、但我无法理解解释。

    当没有连接 SRAM 时、控制器还会生成地址信号、芯片选择和命令(读取 RESP。 写入)。

    在写入数据的情况下、任何地方都无法实现。

    在读取时、控制器会从浮点数据线路中读取数据、因为它们不是由器件驱动的。 这应该/可能会导致随机数据。

    控制器能否检测到浮点数据线? (并在它们悬空时生成中止)

    我还将测试写入访问。 我刚开始读、检测到上述问题、然后停止进行澄清。

    此致 Horst  

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

    QJ Wang、您好!

    第二个答案:

    同时、我还尝试了写入访问、我可以说  写入访问 有效。

    我有另一个关于在读取访问时中止超时的解释:

    原因不是缺少 SRAM。

    当我连接了一个将 nWait 拉低的器件时、读取工作正常。

    现在、我只剪切 nWait 线路、以便 nWait 保持高电平、从而生成超时。 通过此更改、我得到了中止。 (设备仍在那里。)

    我的解释: 由于超时、控制器知道 在访问时它没有获得有效数据、因此它会生成中止!

    对吗? 这在某处有描述吗?

    对于具有超时的写入访问、控制器可以(应该?) 请执行 相同的操作、因为它知道写入访问 必须失败(缺少确认) 、但它不成功! 为什么?

    此致 Horst

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

    您好、Horst、

    更换 SRAM 测试卡上的已烧坏 LDO 后、我将再次执行测试。 我已订购器件。 对拖延表示歉意。