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.

[参考译文] MSP430FR5964:在写入半个字节后、I2C 挂起

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1428234/msp430fr5964-i2c-hangs-after-writing-half-a-byte

器件型号:MSP430FR5964

工具与软件:

尊敬的所有人:

我在将 I2C 用作带有一个从器件的 MSP 主器件时遇到一个非常奇怪的现象。

我正在尝试将4个字节的数据写入从器件的给定地址。 有时在第二个字节期间、写入挂起而一切都卡住。

下面是仅以一半(4位)传输的字节的照片:

发生上述情况时、我会收到 STP 中断、我不确定是如何发生的。 我不会发送 STP 条件、只要我知道 STP 绝不会在传输过程中发送。

当它正常工作时、似乎一切正常、所有四个字节都被发送。

您是否有任何想法可导致上述情况发生? 我的想法已经完全用完了。

提前感谢、

Richard

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

    之后会发生什么情况(在屏幕右侧)? SDA/SCL 是否"永远"保持低电平?

    允许从器件延展时钟中间字节、但我不记得它发生了什么。 您要与什么器件通信?

    I2C 由于处于"无源高电平"状态而易受噪声影响。 噪音("适当"定时)可能导致各种奇怪的症状。 这看起来像一个示波器(而不是一个分析仪)迹线、所以我希望可以看到它--也许在屏幕的右侧?  

    [编辑:这可以像关闭 SMCLK (LPM > 0)一样简单吗? 时钟请求系统应该避免这种情况、但可能那里有什么东西。]

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

    是的、SDA/SCL 保持低电平、直到我复位所有内容、重新启动从器件、然后重试。

    我和 HDS800PS48电源交谈。

    奇怪的是、在虚假 STP 条件之后、SCL 会保持运行、但 SDA 会永远保持高电平。

    至于噪声、我们也进行了思考、但我们看到的示波器信号从未真正证实存在任何类型的噪声。

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

    我在这些信号中看不到停止条件。 在 SCL 为高电平时、通过让 SDA 改变状态来发出 I2C START 和 STOP 信号。 您可以看到 SDA 上从高电平到低电平的转换、SCL 为高电平、以便在开始时发出启动信号、但在最后一位之后 SDA 没有变化。 SDA 保持低电平。 它必须在 SCL 为高电平时变为高电平、以发出停止信号。