1. 程式人生 > >IIC通訊時序--自我理解

IIC通訊時序--自我理解

所述內容都是從自個做的一個專案得來,與一般的會有些區別,持續更新,糾正錯誤。

先簡單概括下

組成:兩根序列線,一根雙向資料線DATA, 一根時鐘線CLK

特點:常態下 ,主機控制CLK輸出低電平,從機控制DATA輸出高電平; 在時鐘訊號的上升沿開始寫資料,下降沿讀資料


主機寫時序(請求發資料):

1、主機先將CLK線拉高,持續200ms,等待從機響應 ---> 從機檢測到拉高後將DATA線拉低,做出迴應

2、收到應答後主機拉低CLK線,讀取一位data(開始訊號),等待從機釋放data線控制權 --> 從機檢測到clk拉低後拉高data線,並設定data線為輸入口,等待主機的讀寫控制訊號

4、主機檢測到data線拉高後,再延時20us,來獲得data控制權,然後將clk線拉高,同時改變data線的電平(低/高 代表讀/寫資料 ),將其輸出給從機 -->  從機開始準備接收資料(從下次clk線的上升沿開始)

如下圖:


主機讀時序

1、從機拉低data線,持續200ms ,等待響應--> 主機檢測到後 拉高clk線 來應答

2、從機檢測到迴應後拉高data線。釋放控制權,將data線轉為輸入口,等待主機輸出讀寫控制訊號  -->  主機拉低時鐘線,延時20us 來讀取一位data(開始訊號),然後拉高clk線,同時改變data線的電平(低/高 代表讀/寫資料 ),將其輸出給從機

3、從機在下個時鐘上升沿開始傳送資料