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.

[参考译文] MSP430FR59941:I2C 数据收发器错误

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1249205/msp430fr59941-i2c-data-transceiver-error

器件型号:MSP430FR59941

您好!

   使用     具有   I2C  连接 协议的 RTC 芯片(MCP79410)。
  首次  尝试 使用  i2c       通过   RTC 发送和接收数据。  
I2C   运行 良好   持续运行。
   明天会再次尝试      使用   I2C  协议发送和接收数据、 这种协议   运行不正常。  
如果 数据  发送   CLK    持续运行、   启动  发送。

发送  以下 截屏图:
绿色表示 CLK、蓝色表示数据线。

谢谢。此致、

维贾伊·巴拉吉

嵌入式设计工程师

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

    Vijay、您好!

    连续时钟告诉我主器件(FR59941)要么卡在循环写入中、要么读取所有零、这会导致您的软件出现问题。

    您可能还需要查看 TI Resource Explorer 中的 MSP430FR59941 I2C 示例。  或许可以与您的代码进行比较、看看您是否忽略了某些内容。

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

    您好、Dennis、

    该代码  不会  卡在   循环中   也会     I2C 示例 代码进行比较。  
       我的示例和 代码  几乎 相似。

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

    Vijay、您好!

    好的、我将连接一对 MCU、看看我是否可以重现。

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

    Vijay、您好!

    很抱歉我的答复出现延误。  我还没有机会设置和测试、但今天稍后会尝试。  您是否有成功?

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

    当 I2C 单元(以某种方式)从总线部分断开时、我已看到这种症状。 我的假设是 I2C 控制器让引脚摆动、但总线监控器看不到任何影响、因此它一直在重试。 您观察到示例代码不显示此行为、表明总线本身可能是可以的。

    您是否可以发布 I2C 配置代码? 我对 PSEL 设置特别感兴趣。

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

    您好、Dennis、

    I2C 无法正常工作、但另一个 I2C 能够正常工作。

    所以、我认为 I2C 外设

    谢谢、此致

    维贾伊

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

    Bruce、您好!

    代码:

    uint8_t rtc_i2c_Init (void)
    {
    P5DIR |= BIT0 | BIT1;
    P5SEL0 |= BIT0 | BIT1;
    P5SEL1 &=~(BIT0 | BIT1);

    UCB1CTLW0 = 0x0F91;/*主器件、I2C 模式、SMCLK、发送模式和复位使能*/
    UCB1BRW = 39;/*波特率= SMCLK/40 = 16MHz / 40 = 400kHz */
    UCB1CTLW0 = 0x0F90;/*禁用复位*/

    返回1U;

    这是我的 I2C 配置。

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

    Vijay、您好!

    正在检查您的问题是否取得了进展?

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

    您好、Dennis、

    该问题是 UCB1 I2C 外设无法正常工作、但另一个 I2C 正常工作。  

    我要将 I2C 外设 UCB1更改为 UCB0。

    谢谢。此致、

    维贾伊