IIC通訊時序--自我理解
阿新 • • 發佈:2018-11-20
所述內容都是從自個做的一個專案得來,與一般的會有些區別,持續更新,糾正錯誤。
先簡單概括下
組成:兩根序列線,一根雙向資料線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、從機在下個時鐘上升沿開始傳送資料