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.

[参考译文] MSP432P401R:I2C错误

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/581386/msp432p401r-i2c-errate

部件号:MSP432P401R

在MSP432P401R设备错误表中对USCI43进行错误评估。

同步时钟源是什么?

我将SMCLK用于I2C块,SMCLK来自MCLK,带2个分频器。 这是解决方法1吗?

有没有人知道吗?  

谢谢!

功能:   当轮询UCBxRXIFG时I2C通信停止

说明: 将USI_B I2C模块用作接收器时,如果在读取UCBxRXIFG中断标志期间发生异步事件,则该标志可能会被无意中清除。 这可能导致I2C通信停止。

解决方法:1. 如果该器件用作I2C主接收器,请使用同步时钟源进行操作。

           或

2.避免轮询UCBxRXIFG。 使用标准中断服务例程为UCBxRXIFG中断标志提供服务可显著降低此勘误发生的概率。 避免注册访问UCBxCTLW0,UCBxSTATW,UCBxRXBUF,UCBxTXBUF,UCBxIFG, 和UCBxIV,而传输或接收操作正在进行,并且预期将设置UCBxRXIFG或UCBxTXIFG。

3.使用时钟下限超时选择功能(UCCTLO.UCBxCTLW1)启用超时窗口。 如果I2C通信停止,请使用时钟下限超时中断重置eUSCI模块并重新启动通信。

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

    是的,您的假设是正确的,因为您已经实施了变通办法1。
    在这种情况下,"同步"意味着源自同一时钟源(MCLK的默认值为DCO)。
    当从同一时钟源同时对eUSCI和CPU进行时钟计时时,不会出现勘误条件(IFG丢失)。
    分压器阶段不会影响时钟的同步性。

    此致,
    Priya