I2C總線學習筆記

20IIC-BUS INTERFACE

S3C2440支持IIC接口。可以在接口器件之間傳送信息。SDA,SCL是雙向

控制I2C總線操作,必須寫以下幾個寄存器

      IIC總線控制寄存器 IICCON

       IIC總線控制狀態寄存器IICSTAT

       IIC總線收發移位寄存器IICDS---data shift

       IIC總線地址寄存器IICADD

IIC總線空閒,SDA,SCL都爲高電平。SDA從高到低爲開始傳送。SCL一直爲高,SDA由低到高結束操作。

開始結束操作由主控端發出。第一個字節信息,前七位爲從設備地址,第八位爲傳送方向。(讀或寫)

SDA每次傳送8位。在總線傳輸期間字節數不受限制。數據總是從最高位開始傳輸,每字節傳輸完成後會有一個ACK應答位。

 

S3C2440  IIC總線四種傳輸模式

主傳輸

主接收

從發送

從接收

 

IIC接口不活動,一般都是從模式。在偵測到SDA上的開始信號,IIC爲從模式。開始信號是SCL爲高,SDA由高到低。

主設備初始化一個開始信號,先發送一個字節。這個字節高七位爲從設備地址,最後一位爲傳輸方向(讀或寫)如果第8位爲0,寫操作。爲1,讀操作。

主設備用停止信號結束傳輸。如果要繼續傳輸,就需要重新產生開始信號。

 

字節傳輸格式

每個SDA線上傳輸的都是八位數據。字節數在每次傳輸不受限制。開始信號後的第一個字節包括從設備地址。每個字節後跟一個應答位。最高位先傳。

 

ACK信號

完成一個字節傳輸,從設備需要發送一個ACK位給主設備。ACK脈衝出現在SCL線的第九個時鐘週期。之前的八個時鐘用於數據傳輸。

主設備收到ACK時鐘脈衝,應該讓SDA線爲高釋放SDA。從設備在ACK時鐘週期將ACK拉低。

ACK位的傳輸功能可以通過IICSTAT寄存器使能或禁用。SCL第九個時鐘的ACK信號必須完成一個字節的傳輸。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章