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.

[参考译文] MSP430FR6047:未发送 I2C 启动条件

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1286214/msp430fr6047-i2c-start-condition-is-not-sent

器件型号:MSP430FR6047

您好!

我目前正在尝试通过 I2C 控制显示器。 该功能在大部分时间都运行良好。 但是、有时 I2C 通信不能正常工作、因为未发送启动条件。 在调试过程中、相应的位(UCTXSTT)也不会被控制器清零、但保持置位状态。 当我拔下显示器、因此没有其他器件连接到 I2C 总线时、我也观察到这种行为。 但是、此问题并不总是发生、有时在连接和未连接显示器的情况下发送启动条件都有效。 启动条件有时未被发送的原因可能是什么?

非常感谢
托比亚斯·欣德尔

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

    尊敬的 Tobias:

    在以下几种情况下、该位看起来会保持高电平:

    当您尝试一个重复开始条件时

    当有一个 NACK 条件时

    不发送完整地址

    是否有可能出现这些情况?  

    您是否将此器件用于 USS 应用? USS 算法是否可能会中断某些 I2C 行为? 请告诉我您是否正在使用我们的示例代码之一、以及您是否进行了任何重大更改、以便我更好地了解您的用例。

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

    您使用的上拉电阻器是什么?

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

    我正在将22k 电阻器用作 SDA 和 SCLK 的上拉电阻器

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

    您好!

    没有重复的开始条件或 NACK、这是因为 I2C 命令在开始条件和地址的初始启动中没有发送、即使在调试时也是如此。 因此、在示波器上、SCLK 和 SDA 上没有任何活动。 只有在 I2C 引脚初始化之后才会保持恒定的高电平。   正如我所说的、有时它运行正常。

    我仅将显示屏用于测试目的、而不使用任何 USS 应用。 我的项目基于示例项目"I2C 主机到多个从机的 TX 字节"、但我已经对其进行了调整、以便只发送到一个从机。  

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

    尊敬的 Tobias:

    因此、当您执行 I2C 传输并探测这些线路时、根本看不到任何活动? 在我看来、这似乎是软件问题。 如果有一些活动、如果您可以对线条进行示波器捕获、将会非常有帮助。  

    话虽如此、我也认为22k 上拉电阻器对此非常弱。 应减小此值。 根据您所需的 I2C CLK 频率、您应该使用更接近4.7K 的频率。 请尝试实施此更改、并让我知道您的 I2C CLK 频率是多少。

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

    尊敬的 Dylan:  

    我已经解决了这个问题。 正如您建议的那样、我首先更改了上拉电阻器。 不幸的是,这没有任何帮助。 因此,我继续搜索软件中的错误。

    在我交换了 I2C 引脚的初始化和 USCI 模块的初始化之后、它能够可靠地工作。 我先初始化 USCI 模块、然后是引脚、这似乎是导致问题的原因。

    感谢您对此问题的帮助

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

    推荐的顺序为:配置 USCI、引脚、启用 USCI。 (32.3.1)