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.

[参考译文] MSPM0L1228:勘误表 I2C_ERR_05:通过复位外设来修复?

Guru**** 2446830 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1503955/mspm0l1228-errata-i2c_err_05-fix-by-resetting-peripheral

器件型号:MSPM0L1228

工具/软件:

这就是勘误表 I2C_ERR_05中所述的内容:

功能:如果在正在进行的事务期间切换 ACTIVE 位、I2C SDA 可能会卡滞在零

说明:如果在正在进行的传输期间切换 ACTIVE 位、其状态机将复位。 但是、由主器件驱动的 SDA 和 SCL 输出将不会复位。 存在 SDA 为0而主器件已进入空闲状态的情况、在这种情况下、主器件将无法从空闲状态向前移动或更新 SDA 值。 从器件的 BUSBUSY 被置位(切换 ACTIVE 位会导致在线路上检测到开始)、并且 BUSBUSY 不会被清除、因为主器件将无法驱动 STOP 以将其清除。

解决方法:在正在进行的事务期间不要切换 ACTIVE 位。

我正在从器件/目标模式下使用 I2C 外设、我们需要能够关闭 ACTIVE 位。 但是、我们不能保证我们不会处于事务过程中、因为事务是由主器件/控制器发起的。

通过 RSTCTL 寄存器复位 I2C 外设是否会导致释放 SDA 线? 还是需要完整的 BOOTRST 或 POR?

谢谢!

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

    尊敬的 Gavin:

    Unknown 说:
    是否通过 RSTCTL 寄存器复位 I2C 外设会导致释放 SDA 行?

    是、处理 RESET 命令时应该会恢复。

    无需 SYSRST 或 BOOTRST。

    B.R.

    Sal