请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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?
谢谢!