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.

[参考译文] TMS320F28069:I2C 或 GPIO 上升沿上的毛刺脉冲

Guru**** 2602335 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/676372/tms320f28069-glitch-on-rising-edge-of-i2c-or-gpio

器件型号:TMS320F28069

C2000团队、

我们有一位客户观察到 I2C 时钟引脚和 GPIO 引脚上的意外情况。

他们查看了 I2C 时钟并在上升沿看到尖峰。  它们作用于一个引脚、配置为输出、与 GPIO_writePin ()切换、并看到相同的尖峰。 (这是一个 F28069、他们已经从 F2837x 修改了 DriverLib 以支持 F28069。) 在 GPIO 引脚上、连接到该迹线的唯一元件是100kOhm 上拉电阻。  

我附加了几个示波器图,以便您可以看到我的意思。  这是不是很熟悉的吗?

谢谢、

Darren

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

    一些意见:
    您能否共享所示每个引脚的 GPIO 配置?
    2.在 F28069上、GPIO 上没有特定的开漏配置。 只有当 GPIO 被分配给 I2C 模块时、可用的开漏功能才存在。
    3.您能确认他们在 F28069上看到了这一点吗?
    4.您能否共享正在与 GPIO 进行切换的 F28069的 GPIO_writePin ()函数?

    我将获得一个设置、以尝试复制此内容。

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

    我需要更正原始帖子。 问题出在 F28379S。 它们还使用 F28069、但没有发现问题。

    当将 GPIO 切换为开漏时以及当引脚配置为 I2C 时、它们会发现使用 Driverlib 的 F28379S 存在问题。 他们正在使用现有的 Driverlib 软件。 我将要求输入代码。

    谢谢、
    Darren
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Darren! 这清除了我遇到的许多问题。 我能够重复这种行为、并正在进行讨论以达到其目的。

    这是否会导致客户设计出现任何问题、或者这只是一种"奇怪的"情形?

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

    很高兴听到您能够复制它。

    这不会导致特定问题。 他们看到了 I2C 时钟上升的方式、可能有两个上升沿、并担心将来可能会导致问题、可能在压力条件下。

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

    一些后续问题:
    -请确认在引脚使用 I2C 时是否启用了开漏输出。
    -请为每个已检测到该行为的引脚共享 GPIO 配置。

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

    下面是用于设置和驱动 GPIO 的代码行。 在这种情况下、GPIO 121配置为具有开漏输出的 GPIO。

    #include "Device.h"
    #include "GlobalPrototypes.h"
    #include "GPIO_defination.h"

    GPIO_SetupPinOptions (121、GPIO_OUTPUT、GPIO_OPENDRAIN | GPIO_异 步);
    GPIO_SetupPinMux (121、GPIO_MUX_CPU1、0);
    GPIO_WritePin (121、1);

    由于还有许多其他代码行(和层)、这是共享配置以显示问题发生时间的最简单方法。 在 I2C 配置中也会发生这种情况。 这是否足够、或者您是否需要专门了解 I2C 模式下的开漏?

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

    Darren、

    感谢您提供更多信息。 我使用了相同的代码来复制行为。

    总结(并关闭此主题):

    在 F2837xD、F2837xS、F2807x 和 F28004x 器件上、在 I2C SDA 和 I2C SCL 的上升沿转换以及 GPIO 的开漏输出(GPxODR = 1)上会出现~6-8ns 的短暂高电平干扰。 毛刺脉冲的幅度将根据使用的引脚、负载和迹线电容而变化。 可以通过在信号布线上添加一些 RC 来过滤干扰幅度、包括一个串联电阻器和一个放置在信号和 GND 之间的电容器。  这些组件的值将取决于上面列出的相同条件(引脚#、负载、迹线电容)。 请参阅下图。 这是 GPIO105、配置为 I2CSCLA、在 F28379D 上有一个10k 上拉至 VDDIO。  

    此致、

    标记