在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的低電平期間完成,產生的波形就會像一個毛刺被誤認為干擾。實際上這個波形的出現不用在意,可以不采取任何措施。
-
單片機
+關注
關注
6032文章
44516瀏覽量
633032 -
mcu
+關注
關注
146文章
16992瀏覽量
350314 -
嵌入式
+關注
關注
5068文章
19019瀏覽量
303292 -
I2C
+關注
關注
28文章
1481瀏覽量
123296 -
GD32
+關注
關注
7文章
403瀏覽量
24222
發布評論請先 登錄
相關推薦
評論