1
很多朋友在進(jìn)行IIC通信協(xié)議開發(fā)的時(shí)候比較迷茫,可能長(zhǎng)時(shí)間沒(méi)有用了,就有所忘卻,也算正常,不過(guò)如果重新圍著通信時(shí)序圖看來(lái)看去,那還是比較麻煩的,比如IIC的起始電平條件、停止電平條件、以及數(shù)據(jù)保持即更新條件等等:
雖然每個(gè)器件對(duì)IIC通信的波形要求不是太相同,但I(xiàn)IC的通信時(shí)序容忍度非常高,基本上相關(guān)參數(shù)和驅(qū)動(dòng)都是通用的。 IIC數(shù)據(jù)的傳輸過(guò)程,在SCL通信同步時(shí)鐘節(jié)拍的控制下,主機(jī)發(fā)送數(shù)據(jù)主動(dòng)使得總線電平發(fā)生變化,供從機(jī)檢測(cè)接收,而當(dāng)從機(jī)接收到數(shù)據(jù)以后接著主動(dòng)的拉低SDA來(lái)作為應(yīng)答信號(hào)通知主機(jī),如果沒(méi)有拉低則表示非應(yīng)答。
之前很多朋友都不太理解IIC的主機(jī)是怎么檢測(cè)到從機(jī)應(yīng)答的,似乎從SDA線上的波形看都好像是主機(jī)發(fā)送出來(lái)的,所以在進(jìn)行通信波形解析的時(shí)候注意一下。
2
IIC數(shù)據(jù)幀
對(duì)于通信的應(yīng)用,重要的并不是所謂的電平變化,而更多的是要了解如何傳遞數(shù)據(jù)幀,掌握好數(shù)據(jù)幀的傳遞過(guò)程和方式。
而不同廠商的數(shù)據(jù)幀稍微有所差異,比如7位地址、8位地址和10位地址,但總體上大同小異,大家可以參考對(duì)應(yīng)的芯片手冊(cè)進(jìn)行學(xué)習(xí),這里以最常用的7地址位跟大家介紹:
IIC是一種主從通信方式,通信發(fā)起者為主機(jī),主要熟悉三種數(shù)據(jù)幀傳遞過(guò)程:
1、單次或連續(xù)向從機(jī)寫數(shù)據(jù)
至于通信數(shù)據(jù)域內(nèi)的數(shù)據(jù)含義,由通信雙方共同約定即可,也就是協(xié)議的制定。
2、單次或連續(xù)向從機(jī)讀數(shù)據(jù)
讀數(shù)據(jù)的過(guò)程主機(jī)發(fā)送的讀寫標(biāo)志位發(fā)生變化,在數(shù)據(jù)部分從機(jī)主動(dòng)控制總線發(fā)送數(shù)據(jù)給主機(jī),然后主機(jī)來(lái)進(jìn)行應(yīng)答,剛好與IIC寫數(shù)據(jù)相反。
3、通訊過(guò)程讀寫切換
在通信過(guò)程中需要進(jìn)行讀寫切換時(shí)不需要發(fā)送停止,而是應(yīng)答以后重新發(fā)一次起始和從機(jī)地址及讀寫狀態(tài),接著進(jìn)行下面的數(shù)據(jù)處理即可。
最后再啰嗦一下 : 對(duì)于IIC總線不要忘記通信IO上拉,同時(shí)注意電平上的匹配,不然可能會(huì)損壞芯片~
責(zé)任編輯:lq6
-
I2C通信
+關(guān)注
關(guān)注
0文章
24瀏覽量
9154
原文標(biāo)題:玩轉(zhuǎn)I2C通信把握好這兩點(diǎn)~
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
第十八章 I2C通信測(cè)試

評(píng)論