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