I2C信号采集问题

I2C信号采集问题

无意中看到有关I2C信号采集问题,不保证正确,只做记录。

先说结论,I2C在SCL保持为高电平时,采集2次数据。

先复习两点:
1、SCL为高期间:SDA 高—>低 是start信号,SDA 低—>高 是stop信号;
2、传输一个bit时,SCL须为高电平,且SCL为高电平期间SDA电平不能发生变化,只能在SCL为低时变化。

I2C信号采集问题_第1张图片
对于第2点,假如SCL为高期间SDA发生了电平变化,那就如第1点所言,变成了start或者stop信号。

所以为了检测是否有start/stop信号产生,I2C就必须在SCL为高时做两次采集,如果两次采集的电平是一样的,那就是数据,如果不一样则是start/stop信号。

纯属个人理解,有错误请指正。

你可能感兴趣的:(I2C信号采集问题)