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.

[参考译文] ADS7828:SDA 线路卡在低电平

Guru**** 2390735 points
Other Parts Discussed in Thread: ADS7828

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/979477/ads7828-sda-line-gets-stuck-low

器件型号:ADS7828

我们有一个设计、其中大约有1个针对 ADS7828的 I2C 事务会导致 SDA 线路卡在低电平。

我成功捕获了发生这种情况的事务。

在一个重复起始之后、它永远不会在地址 ACK 之后释放 SDA 线路。

这是什么原因?

交易:

特写:

所述帧的测量时序:

F_SCL = 330kHz
T_buf = 100ms
T_HD、sta = 1.40us (启动)
T_HD、sta = 1.45us (重复启动)
T_low = 1.46us
T_high = 1.38us
T_su、sta = 3.0us
T_su、dat = 740ns
T_HD、dat = 340ns
T_RCL = 120ns
T_FCL = 260ns
T_RDA = 120ns
T_FDA = 260ns
T_su、sto = INF

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

    您好、Gaute、

    我对 ADS7828一无所知、但另一个 I2C 实现存在非常类似的问题、在通信过程中有时也会卡住。

    这是 I2C 错误管理的 MCU 或 HAL 实现中出现错误的原因 (它是 STM32F4xx)、该错误隐藏在 MCU 的勘误表中。 也许您可以看看类似的事情可能是您问题的原因。 主以神秘的方式工作... ;)

    此致、

    Birger

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

    您好、Birger、

    感谢您的提示。

    我阅读了芯片(NXP iMX6UL)的勘误表、但我没有发现与我看到的问题相关的问题。

    我仍然认为是 ADS7828将 SDA 线路保持在低电平。

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

    Gaute、您好!

    当出现类似问题时、它以前是引发问题的主机。

    您共享的第二幅放大图像仅显示最后一帧、您能否确认上一个传输以 ADC 的确认结束?

    最后一帧还显示了 SCLK 返回并释放到之后的停止条件、主机是否可以在停止条件变为高电平后释放 SCLK。  

    此致

    Cynthia

     

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

    您好、Cynthia、

    感谢您的回复。

    我可以确认、在最后一帧中、前一个传输以 ADC 的确认结束。

    长时间后释放 SCL 的原因是主机驱动程序超时。

    在上一个事务中、我假设 ADS7828确认了其地址、之后从未释放 SDA 线。 但也可能是将 SDA 线路保持在低电平的主器件。 经过一些调试后、我认为我在主机 I2C 驱动程序中发现了一个竞争条件、可以对此进行解释。 我需要做更多的测试来确认这一点...