• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

硬件TWI使用說明及案例

2022/07/15
1379
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2C通訊協(xié)議具有運行可靠、成本低廉、占用IO資源少等優(yōu)點,廣泛應(yīng)用于多級通訊中;中穎芯片硬件TWI(兩線串行接口)接口完全兼容I2C總線協(xié)議。中穎芯片硬件TWI支持功能:

  • 開漏輸出,通訊電平不受VDD影響;支持主機模式和從機模式;各個模式均支持發(fā)送和接受;支持多級通訊的仲裁功能;具有SCL低電平/高電平超時判斷;器件地址可編程,帶多個地址屏蔽位,支持廣播功能;支持標準模式(100K)和快速模式(400K);支持Clock Stretch功能支持內(nèi)部上拉電阻功能
  •  

中穎芯片硬件TWI注意事項:

  • 硬件TWI在傳輸ACK/NACK響應(yīng)信號時,在SCL由低跳高后產(chǎn)生TWI中斷標志(TWINT),并在SCL由高跳低時拉低SCL,在TWI中斷標志清除后釋放SCL;TWI中斷標志(TWINT)在被清除前,TWI通訊會暫停,應(yīng)用程序必須在TWI中斷標志(TWINT)清除前決定后續(xù)的動作;硬件TWI規(guī)定通訊過程中SCL總線維持高電平超過TFREE定義的時鐘個數(shù)時為“空閑”狀態(tài),釋放總線;此功能無法關(guān)閉。硬件TWI規(guī)定參與傳輸?shù)乃衅骷?,將時鐘線SCL維持低電平超過CNT定義的時鐘個數(shù)時為“總線超時”,釋放總線;此功能無法關(guān)閉。

硬件TWI通訊注意事項:

  • TWI中斷標志(TWINT)置起后,軟件配置TWI即將執(zhí)行的動作(如發(fā)送數(shù)據(jù)、回應(yīng)ACK/NACK、發(fā)送STO/清除STA信號等)后方可清除TWI中斷標志(TWINT);硬件TWI作為從機時,在每次通訊開始前,提前將應(yīng)答信號準備好(AA=1);為了增強通訊抗干擾能力,程序中建議增加SCL高電平超時判斷、總線超時判斷、特殊狀態(tài)機(00H)判斷;
  •  

硬件TWI操作流程示意圖:

硬件TWI出錯案例:

  • 硬件TWI通信錯誤(從機)原因:外界存在干擾。當從機TWI狀態(tài)機為B8時,從機繼續(xù)向主機發(fā)送數(shù)據(jù),且準備NACK信號,此時若外接干擾造成從機識別主機回傳的信號非正常信號,則從機狀態(tài)機會跳到非正常狀態(tài)機中,此時程序中未對應(yīng)答信號做處理,造成當此輪通訊結(jié)束后,在開始下一輪通訊時,從機無ACK信號造成無法響應(yīng)主機通訊。TWI默認開啟SCK高電平超時功能,待發(fā)送完最后一個字節(jié),此時AA清零;此時若存在因主機通訊或干擾造成SCK高電平超時時,TWI模塊會自動釋放總線,此時AA仍然保持為之前的NACK狀態(tài),造成在下一輪通訊時無法響應(yīng)主機通訊,通訊異常;

改善方案:在傳輸完成最后一個字節(jié)數(shù)據(jù)后AA置位,這樣即使發(fā)生異常情況,待下一組時序到來時,從機仍能夠正常響應(yīng)主機;在程序其他異常狀態(tài)下置位AA,即使通信受到干擾,跳轉(zhuǎn)到異常狀態(tài),仍能進行下一次的通訊響應(yīng)。下圖列出TWI中斷代碼改善前后的代碼。

圖1改善前

圖2改善后

                     

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

一家專注于單片機集成電路設(shè)計與銷售的高新技術(shù)企業(yè),股票代碼是SZ300327.