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.

[参考译文] TMS320F28386D:EMIF 块问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1656950/tms320f28386d-emif-block-issue

部件号: TMS320F28386D

您好:
客户发现 EMIF2 和连接到 EMIF2 的外部 ADC 存在问题。

  • ADC 通过 GPIO 计时、并生成每个时钟脉冲的新样本。 它们通过 EMIF2 数据线读取值。
  • EMIF2 配置为异步模式、但只使用数据线。
  • ADC 是 EMIF2 总线上的唯一器件、在采样系列期间不断驱动总线(输出启用)。
  • EMIF2 通常在异步读取后“停止数据总线“。
    • 他们发现,通过看到数据库在采样过程中有奇怪的行为。
    • 他们能够通过设置 EMIF 的 SDRAM 设置中的自刷新位并执行读取周期来修复该问题。
    • 然而、尽管修复了所述的问题、但由于某种原因、EMIF 对数据线的不必要驱动现在再次出现。

问题:是否有办法(如所述或其他方式)确保 EMIF 不“停止总线“?

此致、Holger

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

    您好、

    我目前正在出差回来、关注论坛问题。 我很快就会回复您

    此致、

    彼得

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

    您好、Peter:
    您能给我发送一个回复吗?

    此致、Holger

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

    您好、Holger、

    参考 TRM(第 12.2.7 节):当 EMIF 空闲时、EMIF 始终将数据总线驱动到之前的写入数据值。 这称为数据总线停止。 EMIF 仅在发出读取命令时才会停止驱动数据总线。 在锁存最后一次读取的数据后、立即再次停止数据总线。

    这是根据设计的、不能通过专用寄存器位禁用。 没有永久禁用总线停止的配置选项。

    设置 SR 位会将 EMIF 置于自刷新模式、这有一个特殊的例外:在自刷新状态下进行异步读取后、EMIF tri 会指示数据总线、而不是重新停止数据总线。  TRM 提到、EMIF 在自刷新状态下读取到异步存储器之后不会停止数据总线。 相反、EMIF tri 指示数据总线。 但是、如果发生以下任一事件、EMIF 会退出自刷新模式:SR 位清零或请求 SDRAM 访问。 因此、如果 应用程序代码中的任何内容触发 SDRAM 访问、EMIF 将退出 SR 并且可能会发生总线停止。 您可以尝试通过监测 SR EMIF 位来验证这一点

    此致、

    彼得

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

    您好、Peter:
    感谢您‘我们对 TRM 关于 EMIF 的解释“总线停车“。 有了这些知识和更多的实验、 客户可以解决此问题。   

    • 由于 EMIF2 时钟(连接到 40MHz ADC 采样时钟输入)无法配置为低于 100MHz、因此他们决定了一种通过软件计时的权变措施、并在采样系列期间使 ADC OutputEnable 保持开启、以便让 ADC 不断驱动数据总线。
    • ‘‘停车“起了作用、但利用下面提到的技巧、可以将停车替换为 tri EMIF 侧的“EMIF 状态“。
    • 但是、在 ADC 在数据线驱动 3.3V 电平时、他们可以测量、当我们打开 GPIO 的开漏功能时、使用相应的 GPIO 作为输入、线路上的电压会降至 1.66V。
    • 由于这是他们在采样期间看到的干扰级别、并假设 tri 状态模式具有类似的阻抗、他们的结论是 ADC 无法处理 EMIF 的 tri 状态模式、例如总线停止。
    • 回到绘图板、他们通过将 ADC 时钟连接到 OutputEnable 信号(由 emif_oen 驱动)来实施硬件权变措施、然后我用 EMIF 上的常规读取周期替换了时钟的软件控制和 OutputEnable。 问题已解决。

    此致、Holger