I2C点滴



最近总调I2C,看了一遍协议,记录了如下几点

1.如果从机因为相应中断而无法收发数据,则SCL会拉低,使得主机进入等待状态。
2.如果从机没有回应ACK则主机应该产生STOP或者RESTART来使得主机开始新的传输。
3.如果主机收到的是最后一个字节,则一定要回应NACK信号,使得从机可以释放数据线,来产生新的STOP或者RESTART。
4.i2c仲裁只发生在主机之间,发生在两个主机同时试图控制总线的时候。如果总线已经被其他主机控制,则新的主机不会进入仲裁。当总线stop或者SCL释放超时以后新的主机就可以过来接管总线。
5.仲裁过程中SCL和SDA的状态是两个主机的线与,SDA的状态将在SCL为高时被检测,如果其中一个主机检测到异常状态,则失去仲裁,它的SCL信号则还可以持续到本字节结束,SDA则被拉高,处于停止状态。
6.如果主机可以被寻址,则当其在发送地址阶段失去仲裁,则一定要转换为从收状态,因为另一个主机可能在对其寻址。

7.如果总线上有多个主机,则新主机试图控制总线的时候要检查总线是否处于忙的状态,如果是则跳过,如果不是则发送指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值