为什么MCU I2C波形中会出现的脉冲毛刺?

描述

在I2C的波形中,经常会发现有这样的脉冲毛刺,会被认为是干扰或者器件不正常。

嵌入式

 

看到这个波形时,可以先数一下出现在第几个clock的位置,如果出现在第9个clock的低电平期间,就不是干扰或者器件异常导致。

在I2C的协议中,不管是地址匹配阶段还是数据读写阶段,第9个clock都是ACK和NACK位;

其中NACK为第9个SCL上升沿时SDA高电平:

嵌入式

 

ACK为第9个SCL上升沿时SDA低电平:

嵌入式

 

在地址匹配阶段由从机来回复ACK,在数据收发阶段由接受方来回复ACK。

那么I2C是双向半双工通信,SDA引脚通过主机和从机共同控制,ACK回复过程意味着发送方会在通过SDA发送了8个bit的数据后释放SDA控制权给接受方,此时如果最后一个波形数据BIT0是0,那SDA会在SCL下降沿后从拉低状态被释放,由于上拉电阻的作用SDA就会恢复到高电平,但紧接着接受方开始数据建立开启对SDA的控制权,拉低SDA引脚准备回复ACK,于是SDA信号被再次拉低。

嵌入式

 

由于整个过程是连续的,且都会在SCL第9个Clock的低电平期间完成,产生的波形就会像一个毛刺被误认为干扰。实际上这个波形的出现不用在意,可以不采取任何措施。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分