I2C软件编程中注意事项
1. 在I2C总线控制发送‘Start’之前,先检查SDA信号线电平是否为‘1’,如果不
为‘1’,需要发送‘Stop’命令来结束I2C的操作,才可以开始发送‘Start’。 因为SDA在I2C ‘ACK’应答时是被FRAM I2C接口拉低的,如果此时被错误停止,如果马上发送‘Start’信号,MCU给出的高电平也不能拉高SDA信号,导致I2C总线操作错误。
2. I2C读操作时关闭中断
1. 在I2C总线控制发送‘Start’之前,先检查SDA信号线电平是否为‘1’,如果不
为‘1’,需要发送‘Stop’命令来结束I2C的操作,才可以开始发送‘Start’。 因为SDA在I2C ‘ACK’应答时是被FRAM I2C接口拉低的,如果此时被错误停止,如果马上发送‘Start’信号,MCU给出的高电平也不能拉高SDA信号,导致I2C总线操作错误。
2. I2C读操作时关闭中断
3. MCU增加低电压检测电路
如果电源电压VDD低于复位电压时,复位电路会对MCU进行复位,而不会对FRAM铁电复位,此时会导致I2C对铁电操作错误。如果增加了低电压检测电路,当VDD略高于复位电压时停止对I2C铁电进行操作,避免此操作错误的发生。
4. 应该确认被控器件的电压电流是否正常