加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

硬件TWI使用說明及案例

2022/07/15
1726
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

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

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

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

硬件TWI通訊注意事項:

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

硬件TWI操作流程示意圖:

硬件TWI出錯案例:

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

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

圖1改善前

圖2改善后

                     

相關推薦

電子產業(yè)圖譜

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