1. IIC描述
上圖說明了在IIC總線拓撲中應該含有至少一個微控制器。該控制器通過IIC總線的SCL和SDA線與其他關聯(lián)設備進行通信?;趥鹘y(tǒng)的串行總線通信機制,IIC總線通信也是通過SDA與SCL配合實現(xiàn),傳輸速率包含標注準(100kps)、快速(400kps)、高速(3.4Mbps)三大類。
2. IIC總線時序
啟動時序:當SCL為高電平時,SDA下降沿,表示啟動。
停止時序:當SCL為高電平時,SDA上升沿,表示停止。
※由此可知,數(shù)據(jù)的傳送應該在SCL為低電平時發(fā)生的,不能再高電平期間發(fā)生。進一步可知,SDA電平是在SCL為高電平時被讀取。
數(shù)據(jù)幀的內(nèi)容包括 起止信號、7位或者10位的從機地址,傳送方向標志位,數(shù)據(jù)位(8位),每個字節(jié)數(shù)據(jù)后又一個ACK位(應答信號),之后是終止信號結束數(shù)據(jù)幀??偟膩碚f就是”啟動--地址(7或者10位)--R/W--數(shù)據(jù)--ACK--數(shù)據(jù)--ACK--....--停止“
3. I2C電路結構圖
數(shù)據(jù)手冊描述,USCI模塊在PUC或者手動設置UCSWRST位后,處于復位狀態(tài),如果要是其工作在I2C狀態(tài)選,應將UCMODEx設置為11.在設置后,只要清除UCSWRST位即可讓USCI工作起來。
4. IIC一些主要的配置語句
UCB0CTL1 |= UCSWRST; //使能軟件復位,先關閉USCI_B0模式以便進行初始 //化設置
UCB0CTL0 = UCMST + UCMODE_3 +UCSYNC; //I2C主機、同步模式
UCB0BR0 = 12; //12分頻
UCB0BR1 = 0;
UCB0I2CSA = 0x4e; //設置從機模式
UCB0CTL1 &= ~UCSWRST; //清除軟件復位