IIC通信注意事项

1、时钟一般情况下由主来控制,但是从设备接收一个字节并发送确认信号后,很可能由于忙于处理中断等其他实时处理,会强行将时钟拉低一段时间,所以主在控制时钟发送一个新的字节或发送STOP or START信号时,要检测时钟是否受控,如果不受控,就要产生错误告警,如果时钟一直被某一从设备拉低,则其他从设备访问也会出错,导致整个总线瘫痪。
2、主给从发送数据时,每发送一个字节都要等待从设备的确认,即:发送完bit7后,主将时钟拉低,同时将SDA拉高(即:释放数据总线),等待从将SDA拉低,这个时钟为低电平的时间不要太短,保证从有时间拉低,然后主将SCL拉高,保持一定高电平时间,此时检测SDA是否被从设备拉低,若没有拉低,则说明从设备出错,主要产生告警,并发送停止信号。
3、从给主发送数据时,每发送一个字节也都要等待主设备的确认。即:从发送完bit7后,主将时钟拉低,同时从在这段时间必须将SDA线拉高(释放数据线),等待主将SDA拉低,以便发送下一个字节,如果主想继续接收下面的字节,则在时钟为低时,拉低SDA线,在SCL为高时,保持SDA为低电平表示确认。如果主不想接续接收下面的字节,则从将数据线释放后,主不再进行确认,即一直使SDA线为高,从设备检测到主没有确认后,等到SCL为高时,从设备也不会在发送下面的字节内容,此时控制权交给主,由主进行决定是发送停止还是重新启动信号。
4、快速的IIC最大通信频率为400Kbps,所以,时钟周期不能太小,至少2.5us,而规范上对SCL的高低电平时间也有要求,SCL低电平最小为1.3us,高电平最小为0.6us。

5、一个时钟周期波形是先低电平,为接收数据或发送数据做准备,作为接收时,这段时间给发送方以足够时间准备发送的数据。据此,在写函数时,对于某个时钟周期的操作,一般先将SCL置低,而不要以为上个时钟周期操作已经置低,从而违反一个时钟周期先低后高的原则。



24系列EEPROM应用注意事项

24 系列 EEPROM 应用注意事项

1 概述
用户在使用EEPROM偶尔会出现数据丢失的情况,尤其在上下电或电源抖动过程中,会出现不确定的干扰。为了防止故障发生,建议用户按规定条件使用,避免在异常条件下操作。
关于数据丢失的原因,需根据实际使用情况来分析。
2 注意事项
在具体应用中,请注意以下事项:
1) VCC电源确定是在1.8V~5.5V范围内,VCC脚附近加一个0.1uF电容。
2) SCL和SDA外部上拉,上拉电阻范围1K~10K。
3) 若应用板上干扰较大,在SCL和SDA线上串几十欧姆的电阻来去毛刺。
4) 若要在SCL和SDA线加到地电容,确认应用板上的IIC总线电容<=400pF。
5) 注意SDA、SCL、VCC、GND的PCB走线布局,若PCB板IIC总线长度超过10cm,那么走线排列最好是:
—————— SDA ——————
—————— VDD ——————
—————— GND ——————
—————— SCL ——————
或者在SDA和SCL走线周围用GND包围。
6) WP接系统高复位输出,在系统复位时保护数据不被改写。
7) 上电后稍作延时,待电压稳定时对EEPROM操作。
8) 写入EEPROM后,采用应答查询方式判断是否写入结束。
9) 必要时,对写入数据后做一次读出校验。
10)做好数据的冗余备份,发生局部数据丢失后可执行恢复。
3 应答查询流程
虽然写数据后做软件延时,等待数据写入,然后再操作EEPROM,也不影响功能。但是,为了更安全地使用EEPROM,仍推荐采用写数据后应答查询方式。
这种方式的好处是:
1) 通过应答查询判断是否写入结束,可以保证数据写入,并防止后续写出错。
2) 可以节省软件的等待时间。
3) 易于兼容和替换同类型的芯片而无需关心延时。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值