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.

[参考译文] TM4C123BH6PZ:I2C SCL 时钟脉冲太短-运行脉冲

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/738084/tm4c123bh6pz-i2c-scl-clock-pulse-too-short---runt-pulse

器件型号:TM4C123BH6PZ

您好!

首先,我要解释,我已经看到了一些类似这个问题的帖子。 我仍然对我的系统中发生的情况以及问题的根源有一些疑问。  

我在 配置为 ADC (MCP3428-E/ST)的单主模式下使用 TM4C123BH6PZ、总线上的上拉电阻为4.99K 欧姆。 总线以100KHz 运行。  

我的问题是他:我观察到一个很短的时钟脉冲、似乎混淆了 MCU 和 ADC 之间的时序、这导致 ADC 在等待停止位时将 SDA 保持在低电平。 请参阅下面的捕获。 遗憾的是、我只能使用逻辑分析仪捕获此错误。 测得的 runt 脉冲的脉冲宽度为.2599uS。

从阅读有关 tm4c 存在类似问题的其他用户的信息、我仍然不清楚问题的根源是什么。 tm4c 毛刺脉冲滤波器是否仅处理 SCL/SDA 上的输入、或者毛刺脉冲滤波器是否也可以滤除 SLC 输出上的这些短脉冲?  

这是否是 tm4c 的已证实问题(如果有、是否有诊断和解决方案?)、或者我的固件或硬件更有可能出现这种问题? 我读过一位用户声称、降低上拉电阻值解决了问题、因为 runt 脉冲的上升时间不符合规格、所以 MCU 正在尝试重新建立正确的通信。 如果在我的系统中发生这种情况(因为我有4.99k 而非传统的4.7K 上拉电阻)、为什么所有 SCL 脉冲的上升时间不会减慢、而只是几个随机脉冲?  

欢迎您提出任何想法/建议、谢谢!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Brittany、
    I2C SCL 上的 runt 脉冲通常意味着该信号的上升时间太慢。 主器件释放线路、但它认为从器件将其保持在低电平、因此它也将其置为低电平并延迟另一个时钟周期。 您确实需要使用示波器查看信号、因为逻辑分析仪会向您隐藏上升时间的细节。 根据 I2C 总线线路的电容、5K 上拉电阻可能太大。 您的上升时间可能微不足道、几乎不会在大多数时间工作、但并非总是如此。 下面是一些有关 I2C 总线操作和计算上拉电阻器值的更多信息。
    www.ti.com/.../slva689.pdf
    www.ti.com/.../slva704.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bob:

    感谢您提供信息。 我还没有能够用示波器捕获短脉冲(它们看起来非常间歇性)、但随附的是上升时间的正常情况。 黄色为 SDA、绿色为 SCL。   

    I2C 规范指出、最长上升时间为1000ns。 这些信号的上升时间为730-790ns、这看起来非常大、但考虑到它们低于最大值、我是否应该对此感到担忧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    实际上、这看起来应该起作用。 示波器是否能够捕获脉冲? 您可能可以捕获 runt 脉冲。 您能否告诉我逻辑分析仪上的序列是对 ADC 的写操作还是读操作? (发生干扰时由谁驱动 SDA?) 毛刺脉冲是否始终发生在序列中的同一个点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果减小上拉电阻的大小、那么很有意思的一点是、看一下 runt 脉冲是否消失。 也许您可以将另一个5K 与当前5K 并联(从而产生等效的2.5K 上拉电阻)。 如果这不能解决问题、则不是一个简单的上升时间问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    runt 脉冲发生在对 ADC 的写入中。 由于我只能捕获并观察这个 runt 脉冲一次、我不知道它是否总是按这个位顺序发生、或者它是否发生变化。 从与我的一些同事交谈中可以看到、这个问题可能需要几天的持续运行时间才能再次发生、这就是难以捕捉的原因。  

    通过阅读这篇文章 https://e2e.ti.com/support/microcontrollers/other/f/908/p/423351/1509939、可以看到 TivaWare 库中存在一些有关干扰滤波器的错误处理问题、以及可能的一些问题。  

    我感到困惑的是、毛刺滤波器如何帮助消除 SCL 上的欠幅脉冲? 这种毛刺脉冲滤波器似乎仅用于消除 MCU 输入上小于50ns 的脉冲。 这是真的吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这对我来说不像是干扰滤波器问题。 通过逻辑分析仪迹线、TM4C 本来应该在此时生成时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否解决了此问题?