I2C通訊協(xié)議具有運(yùn)行可靠、成本低廉、占用IO資源少等優(yōu)點(diǎn),廣泛應(yīng)用于多級(jí)通訊中;中穎芯片硬件TWI(兩線串行接口)接口完全兼容I2C總線協(xié)議。
中穎芯片硬件TWI支持功能:
開漏輸出,通訊電平不受VDD影響;
支持主機(jī)模式和從機(jī)模式;
各個(gè)模式均支持發(fā)送和接受;
支持多級(jí)通訊的仲裁功能;
具有SCL低電平/高電平超時(shí)判斷;
器件地址可編程,帶多個(gè)地址屏蔽位,支持廣播功能;
支持標(biāo)準(zhǔn)模式(100K)和快速模式(400K);
支持Clock Stretch功能
支持內(nèi)部上拉電阻功能
中穎芯片硬件TWI注意事項(xiàng):
硬件TWI在傳輸ACK/NACK響應(yīng)信號(hào)時(shí),在SCL由低跳高后產(chǎn)生TWI中斷標(biāo)志(TWINT),并在SCL由高跳低時(shí)拉低SCL,在TWI中斷標(biāo)志清除后釋放SCL;
TWI中斷標(biāo)志(TWINT)在被清除前,TWI通訊會(huì)暫停,應(yīng)用程序必須在TWI中斷標(biāo)志(TWINT)清除前決定后續(xù)的動(dòng)作;
硬件TWI規(guī)定通訊過程中SCL總線維持高電平超過TFREE定義的時(shí)鐘個(gè)數(shù)時(shí)為“空閑”狀態(tài),釋放總線;此功能無法關(guān)閉。
硬件TWI規(guī)定參與傳輸?shù)乃衅骷瑢r(shí)鐘線SCL維持低電平超過CNT定義的時(shí)鐘個(gè)數(shù)時(shí)為“總線超時(shí)”,釋放總線;此功能無法關(guān)閉。
硬件TWI通訊注意事項(xiàng):
TWI中斷標(biāo)志(TWINT)置起后,軟件配置TWI即將執(zhí)行的動(dòng)作(如發(fā)送數(shù)據(jù)、回應(yīng)ACK/NACK、發(fā)送STO/清除STA信號(hào)等)后方可清除TWI中斷標(biāo)志(TWINT);
硬件TWI作為從機(jī)時(shí),在每次通訊開始前,提前將應(yīng)答信號(hào)準(zhǔn)備好(AA=1);
為了增強(qiáng)通訊抗干擾能力,程序中建議增加SCL高電平超時(shí)判斷、總線超時(shí)判斷、特殊狀態(tài)機(jī)(00H)判斷;
硬件TWI操作流程示意圖:
硬件TWI出錯(cuò)案例:
硬件TWI通信錯(cuò)誤(從機(jī))
原因:外界存在干擾。
當(dāng)從機(jī)TWI狀態(tài)機(jī)為B8時(shí),從機(jī)繼續(xù)向主機(jī)發(fā)送數(shù)據(jù),且準(zhǔn)備NACK信號(hào),此時(shí)若外接干擾造成從機(jī)識(shí)別主機(jī)回傳的信號(hào)非正常信號(hào),則從機(jī)狀態(tài)機(jī)會(huì)跳到非正常狀態(tài)機(jī)中,此時(shí)程序中未對(duì)應(yīng)答信號(hào)做處理,造成當(dāng)此輪通訊結(jié)束后,在開始下一輪通訊時(shí),從機(jī)無ACK信號(hào)造成無法響應(yīng)主機(jī)通訊。
TWI默認(rèn)開啟SCK高電平超時(shí)功能,待發(fā)送完最后一個(gè)字節(jié),此時(shí)AA清零;此時(shí)若存在因主機(jī)通訊或干擾造成SCK高電平超時(shí)時(shí),TWI模塊會(huì)自動(dòng)釋放總線,此時(shí)AA仍然保持為之前的NACK狀態(tài),造成在下一輪通訊時(shí)無法響應(yīng)主機(jī)通訊,通訊異常;
改善方案: 在傳輸完成最后一個(gè)字節(jié)數(shù)據(jù)后AA置位,這樣即使發(fā)生異常情況,待下一組時(shí)序到來時(shí),從機(jī)仍能夠正常響應(yīng)主機(jī);在程序其他異常狀態(tài)下置位AA,即使通信受到干擾,跳轉(zhuǎn)到異常狀態(tài),仍能進(jìn)行下一次的通訊響應(yīng)。下圖列出TWI中斷代碼改善前后的代碼。
圖1改善前
圖2改善后
審核編輯:劉清
-
TWI
+關(guān)注
關(guān)注
0文章
7瀏覽量
8069 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17057 -
I2C接口
+關(guān)注
關(guān)注
1文章
125瀏覽量
25190 -
VDD
+關(guān)注
關(guān)注
1文章
311瀏覽量
33184
原文標(biāo)題:硬件TWI使用說明及案例
文章出處:【微信號(hào):SINO_25181447,微信公眾號(hào):中穎電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論