您好!
在我们的项目中、MSP430具有以下用例:
1) 1) GPIO 中断
2) 2)定时器
3) ADC
4) I2C (主/从)
5) 5) FRAM 存储
6) 6)用于调试日志的 UART
7) 7) WDT 复位
我通过引用以下代码实现了 i2c 从器件:
e2e.ti.com/.../8078.7230.msp430fr243x_5F00_eusci_5F00_i2c_5F00_standard_5F00_slave.c
最初、我们在严格的 i2c 从器件读取期间遇到了即时连接超时问题。
正如上述代码中给出的那样、当我将缺省 MSP430 DCO 时钟从1MHz 改为16MHz 时、这个值被修复。
在运行严格的 i2c 读取1小时后仍然出现连接超时问题。
在探测 i2c SDA 和 SCL 时、可以看出当问题发生时、SCL 被 MSP 拉低、并阻止了与同一总线相连的其他传感器模块的所有 i2c 通信。 我们必须重置 MSP 以将 SCL 线路恢复为高电平。
当我研究这个问题时,我可以从用户指南中找到以下信息(章节:24.3.7.3 ClockLowTimeout):
我尝试了这种方法、并在发生时钟低电平超时问题时在 i2c ISR 内复位 i2c 从器件。 现在、只要出现连接超时问题、MSP i2c SCL 线路就会自动恢复。
我想知道这是否是防止 SCL 永久进入不良状态的可靠方法?
i2c 从模式的正确工作对于我们的项目至关重要。

