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.

[参考译文] TM4C1290NCPDT:HW I2C 时钟损坏

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1115566/tm4c1290ncpdt-hw-i2c-clock-corrupting

器件型号:TM4C1290NCPDT

大家好。


在抗扰性测试期间、我们遇到了与总线耦合的意外泄漏(~100MHz)的 I2C 问题。  
主要问题看起来像是一条消息中一个或多个时钟的损坏(取决于泄漏)。

下一个示波器显示从属方读取消息和保持线。 发生这种情况的原因 是缺少一个时钟并且从器件正在等待另一个时钟来设置 ACK。  
因此、可通过添加额外时钟来解决这一问题、从而将 SDA 释放到正常状态。

通常取决于哪个时钟被破坏、有时从器件可以检测到他的地址。


时钟损坏发生在 MCU 端(不是从器件)、已通过 MCU 独立验证。

已用 MCU 引脚:PA6/PA7、HW I2C。
上升时间:~220nS、频率~400kHz。

因此、我们通过切换配置为开漏的 GPIO 来实现了 SW I2C、即使与之前的 GPIO 相比泄漏很大、它也能正常工作。  


快速查看 MCU 规格以及 SDA 和 SCL 之间的一些差异 :



使用调试器、验证了 GPIO 寄存器、SCL 线路不处于开漏状态。
因此、 在 SPMA073 -应用报告中、对我们不应该这么做的原因进行了更详细的说明。


----------------------------------------------------

您是否知道时钟为什么会像这样被破坏?   
您能否澄清所述情况(I2C 控制器的 SCL OD 行为/ 开漏 GPIO 等 SCL)之间的电气差异(如果存在)?

谢谢!

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

    您好!

    [~ userid="526578" URL"~μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/111556/tm4c1290ncpdt-hw-i2c-clock-corrupting"]在抗扰性测试期间、我们遇到了与总线耦合的意外泄漏(100MHz)。  
    主要问题看起来像是消息中一个或多个时钟的损坏(取决于泄漏)。

    我有几个问题。

     -这项抗扰性试验是什么?

     -您是否仅在进行此抗扰性测试时才缺少 SCL 时钟?

     -如果您正在进行抗扰性测试、SCL 会怎样?

     -对于实验,如果以100kHz 而不是400kHz 的频率运行 SCL,会发生什么情况? 在应用抗扰性测试或不进行抗扰性测试时、您是否会看到同样的问题?

     -您可以在另一个板上重复同样的问题吗?

     -您能否进行 ABA 交换测试-这意味着在现有板上交换另一个新的 MCU。 您能在新 MCU 上重复同样的问题吗?

     -您能在 LaunchPad 上重复同样的问题吗?

    [引用 userid="526578" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm -based-microcontrollers/f/arm based-microcontrollers-forum/111556/tm4c1290ncpdt-HW-i2c-clock-corrupting"]您能否澄清所述情况(如 I2C 控制器 开漏的 SCL 行为)之间存在哪些电气差异?
    [/报价]

    通常、GPIO 引脚可配置为开漏。 但是、SCL 引脚的开漏电路已经内置于 I2C 模块中、其开漏特性不需要由 GPIO 配置处理。  

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

    感谢您的反馈。
    在下面您可以找到我的答案:

    什么是抗扰度测试?
    -这是尝试从实际应用程序中重现实验中的控制问题。

    -您是否仅在进行此抗扰性测试时才缺少 SCL 时钟?
    对于100/400kHz 时钟、硬件 I2C 和软件 I2C 也不会出现任何特定泄漏问题。 没有时钟丢失和保持线、一切都很好。

    -如果以100kHz 而不是400kHz 的频率运行 SCL,会发生什么情况?

    以100kHz 频率运行并不能解决 缺少的时钟问题

    -您可以在另一个板上重复同样的问题吗?
    是的、它在另一个电路板样品上的行为相同。

     -您能否进行 ABA 交换测试-这意味着在现有板上交换另一个新的 MCU。 您能在新 MCU 上重复同样的问题吗?
    这是可能的、但不是那么快。  

     -您能在 LaunchPad 上重复同样的问题吗?
    我们可以尝试在 EVB 上重现它。


    电源 我们可以解决硬件设计中的问题、但我想在意外的泄漏感应时解释观察到的时钟行为的原因。

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

    您好!

     感谢您回答我的问题。 请向我们提供有关 ABA 交换和 LaunchPad 结果的最新信息。 我真的不知道为什么缺少时钟、而只有在您的受控抗扰度测试中才会发生这种情况。 总线上的上拉电阻是多少? 总线上的电容是多少?  通常、根据总线电容选择总线的上拉电阻器。 因此、总线电容越高、就必须使用较低的上拉电阻器。

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

    因此、上拉电阻为4.7kOhm。 它为400kHz 时钟提供220nS 的上升时间(此频率的最大值为300ns)
    我们尝试通过降低上拉电阻来缩短上升时间、与 未观察到时钟缺失的 SW I2C 实现相比、这种方法可以忽略不计。

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

    您好!

     老实说,我不知道是什么导致时钟漏掉在您的抗扰性测试的薄雾中。 运行抗扰度测试的步骤是什么?

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

    我们在主设备和从设备之间有 I2C 电缆、并使用环绕总线的线环路注入90-120MHz 正弦波。

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

    感谢您的测试说明。  我不知道您的测试是否符合某些 IEC 测试规格。 测试条件是否现实到现实生活中发生? 在90MHz 至120MHz 以外的不同注入频率下、会出现什么情况? 您让 MCU 运行在哪种类型的环境中? 在任何情况下、我都不能为纠正这种行为提供太多的帮助-故意高频噪声耦合的雾中缺少时钟。  

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

    如果您看 一下 GPIOPinTypeI2CSCL API、SCL 将配置为2mA 缓冲器强度。 我想知道、如果您更改为其他驱动强度、如  GPIO_Strength _8mA、它是否会提高、也不会产生任何影响。  

    无效
    GPIOPinTypeI2CSCL (uint32_t ui32端口、uint8_t ui8引脚)

    //
    //检查参数。
    //
    assert (_GPIOBaseValid (ui32Port));

    //
    //使引脚被外设控制。
    //
    GPIODirModeSet (ui32端口、ui8引脚、GPIO_DIR_MODE_HW);

    //
    //将焊盘设置为推挽操作。
    //
    GPIOPadConfigSet (ui32Port、ui8引脚、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);

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

    我们尝试修改 GPIOPinTypeI2CSCL 函数。 没有影响。
    --
    是的、它可能是随机的、具体取决于您的设备所在位置和设备设计、它们决定了隔离和可能的漏电与频率间的关系。
    因此、如果您非常接近 HF/UHF 高功率无线电、则 HF/UHF 隔离可能像设计的关键参数。
    --
    注入不同的频率可提供不同的漏电振幅。

    应通过改进硬件设计来修复泄漏。
    现在、我们只有一种权变措施-它的 SW I2C。
    这个权变措施让我感到困惑、因为它优于 I2C 控制器的实现。



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

    你好,Pavel。

     您是否在主设备和从设备之间尝试过不同的电缆、例如具有更好噪声隔离的电缆? 您是否具有与 TM4C 不同的设计/项目、您还可以演示该问题? 我想知道的是、不同的电路板设计是否会有所不同。 您尚未告诉我使用 LaunchPad 的结果。 可以麻烦你把这个做吗?

     如果您在任何电缆和您拥有的所有电路板上看到相同的问题、我在这里实际上不提供任何东西。 很抱歉缺少指导。  

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

    您好!

     我没有听到你的反馈。 我想您已经解决了这个问题、或者您意识到我在 MCU 层面无法提供真正的东西来缓解这种情况。 也许您可以考虑在电缆上进行一些屏蔽以降低注入噪声的影响。 我现在要关闭这个线程。 如果您有一些更新、您只需回写此帖子、该帖子将自动重新打开。