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.

[参考译文] MSP430FR2433:I2C 从机时钟低电平超时

Guru**** 2553450 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/887110/msp430fr2433-i2c-slave-clock-low-timeout

器件型号:MSP430FR2433

您好!

在我们的项目中、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 从模式的正确工作对于我们的项目至关重要。