TWI: 是一種全雙工的串行通訊協(xié)議,與I2C工作方式相同,由一條數(shù)據(jù)傳輸線SDL,一條時(shí)鐘線SCL組成,對(duì)應(yīng)單片機(jī)的外部引腳PC1,PC0。
由于只有兩條總線,簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。
特點(diǎn): ? 簡(jiǎn)單,但是強(qiáng)大而靈活的通訊接口,只需要兩根線
? 支持主機(jī)和從機(jī)操作
? 器件可以工作于發(fā)送器模式或接收器模式
? 7 位地址空間允許有128 個(gè)從機(jī)
? 支持多主機(jī)仲裁
? 高達(dá)400 kHz 的數(shù)據(jù)傳輸率
? 斜率受控的輸出驅(qū)動(dòng)器
? 可以抑制總線尖峰的噪聲抑制器
? 完全可編程的從機(jī)地址以及公共地址
? 睡眠時(shí)地址匹配可以喚醒AVR
主機(jī): 控制啟動(dòng)和停止傳輸?shù)脑O(shè)備。主機(jī)同時(shí)要產(chǎn)生SCL 時(shí)鐘
從機(jī): 被主機(jī)尋址的設(shè)備
發(fā)送器: 將數(shù)據(jù)放到總線上的設(shè)備
接收器: 從總線讀取數(shù)據(jù)的設(shè)備
TWI工作模式: 主機(jī)發(fā)送模式(MT)
主機(jī)接收模式(MR)
從機(jī)發(fā)送模式(ST)
從機(jī)接收器模式(SR)
例如, TWI 可用MT 模式給TWIEEPROM 寫入數(shù)據(jù),用MR 模式從EEPROM 讀取數(shù)據(jù)。如果系統(tǒng)中有其它主機(jī)存在 ,它們可能給TWI 發(fā)送數(shù)據(jù),此時(shí)就可以用SR 模式。應(yīng)用程序決定采用何種模式。
模式狀態(tài)縮寫:
S: START 狀態(tài)
Rs:REPEATED START 狀態(tài)
R:讀一個(gè)比特(SDA 為高電平)
W:寫一個(gè)比特(SDA 為低電平)
A:應(yīng)答位(SDA 為低電平)
A: 無(wú)應(yīng)答位(SDA 為高電平)
Data:8 位數(shù)據(jù)
P: STOP 狀態(tài)
SLA:從機(jī)地址
一、主機(jī)模式:可以向從機(jī)發(fā)送數(shù)據(jù),進(jìn)入主機(jī)模式,首先發(fā)送一個(gè)START信號(hào),接著的從機(jī)地址決定了進(jìn)入MT還是MR模式
主機(jī)發(fā)送(MT): S+SLA+W, 主機(jī)接收(MR): S+SLA+R
1、波特率設(shè)置:TWBR=100;
2、分頻設(shè)置: TWSR|=(1< 寫過(guò)程: 1)、發(fā)送啟動(dòng)信號(hào): TWCR=(1< 2)、 等待應(yīng)答信號(hào): while ((TWCR&(1< 3)、 進(jìn)入主機(jī)寫模式: TWDR=0Xa0;// TWDR=SLA+W; //通過(guò)在TWDR中寫入SLA+W進(jìn)入主機(jī)寫模式,SLA+R進(jìn)入主機(jī)讀模式 TWCR=(1< while ((TWCR&(1< 4)、發(fā)送要寫入的地址: TWDR=adress; TWCR=(1< while(?。═WCR&(1< 5)、 發(fā)送要寫入的數(shù)據(jù): TWDR=data; TWCR=(1< while(?。═WCR&(1< 6)、發(fā)送停止信號(hào): TWC(1< 讀過(guò)程: 1)、啟動(dòng)信號(hào): TWCR=(1< while(?。═WCR&(1< 2)、 進(jìn)入主機(jī)寫模式:TWDR=0Xa0; //TWDR=SLA+W; TWCR=(1< while(?。═WCR&(1< 3)、寫入要讀的地址: TWDR=address; TWCR=(1< while(?。═WCR&(1< 4)、發(fā)送啟動(dòng)信號(hào): TWCR=(1< while(?。═WCR&(1< 5)、進(jìn)入主機(jī)讀模式: TWDR=0Xa1 ;//TWDR=SLA+R; TWCR=(1< while(!(TWCR&(1<