正文
大家好,我是bug菌!
很多朋友在進行IIC通信協議開發的時候比較迷茫,可能長時間沒有用了,就有所忘卻,也算正常,不過如果重新圍著通信時序圖看來看去,那還是比較麻煩的,比如IIC的起始電平條件、停止電平條件、以及數據保持即更新條件等等。
雖然每個器件對IIC通信的波形要求不是太相同,但IIC的通信時序容忍度非常高,基本上相關參數和驅動都是通用的。IIC數據的傳輸過程,在SCL通信同步時鐘節拍的控制下,主機發送數據主動使得總線電平發生變化,供從機檢測接收,而當從機接收到數據以后接著主動的拉低SDA來作為應答信號通知主機,如果沒有拉低則表示非應答。
之前很多朋友都不太理解IIC的主機是怎么檢測到從機應答的,似乎從SDA線上的波形看都好像是主機發送出來的,所以在進行通信波形解析的時候注意一下。
2IIC數據幀
對于通信的應用,重要的并不是所謂的電平變化,而更多的是要了解如何傳遞數據幀,掌握好數據幀的傳遞過程和方式。
而不同廠商的數據幀稍微有所差異,比如7位地址、8位地址和10位地址,但總體上大同小異,大家可以參考對應的芯片手冊進行學習,這里以最常用的7地址位跟大家介紹:
IIC是一種主從通信方式,通信發起者為主機,主要熟悉三種數據幀傳遞過程:
1、單次或連續向從機寫數據
至于通信數據域內的數據含義,由通信雙方共同約定即可,也就是協議的制定。
2、單次或連續向從機讀數據
讀數據的過程主機發送的讀寫標志位發生變化,在數據部分從機主動控制總線發送數據給主機,然后主機來進行應答,剛好與IIC寫數據相反。
3、通訊過程讀寫切換
在通信過程中需要進行讀寫切換時不需要發送停止,而是應答以后重新發一次起始和從機地址及讀寫狀態,接著進行下面的數據處理即可。
最后bug菌再啰嗦一下 : 對于IIC總線不要忘記通信IO上拉,同時注意電平上的匹配,不然可能會損壞芯片~
原文標題:玩轉I2C通信把握好這兩點~
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
數據
+關注
關注
8文章
7170瀏覽量
89700 -
通信
+關注
關注
18文章
6077瀏覽量
136482 -
IIC總線
+關注
關注
1文章
66瀏覽量
20411
原文標題:玩轉I2C通信把握好這兩點~
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
逼真動畫展示I2C、SPI、UART的通信過程
![逼真動畫展示<b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b><b class='flag-5'>過程</b>](https://file.elecfans.com/web2/M00/67/82/pYYBAGMVVhCAAeyJAAA04rjBcdY094.png)
I2C、SPI、UART的通信過程還可以這樣理解
![<b class='flag-5'>I2C</b>、SPI、UART的<b class='flag-5'>通信</b><b class='flag-5'>過程</b>還可以這樣<b class='flag-5'>理解</b>](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
什么是IIC通信I2C
STM32F767+STM32CubeMX I2C通信讀寫EEPROM數據(采用輪詢、DMA、中斷三種方式)精選資料推薦
I2C總線的工作原理解析
![<b class='flag-5'>I2C</b>總線的工作原<b class='flag-5'>理解</b>析](https://file.elecfans.com/web1/M00/A4/7D/pIYBAF1fnUmABuwHAAB-TcCSX9g846.png)
I2C通信協議應該如何學習
![<b class='flag-5'>I2C</b><b class='flag-5'>通信</b>協議應該如何學習](https://file.elecfans.com/web1/M00/BB/37/o4YBAF6n8-eAKCBVAABu7nGwVZk852.png)
I2C通信協議:了解I2C Primer、 PMBus和SMBus
![<b class='flag-5'>I2C</b><b class='flag-5'>通信</b>協議:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus](https://file1.elecfans.com/web2/M00/89/C6/wKgZomSKvsWAdY77AAA276SHfaM213.png)
評論