Mbus匯流排毛刺導致微控制器異常現象的分析和解決

2021-09-25 11:14:00 字數 1166 閱讀 8240

最近開發的一款光電直讀表跟之前的表電路上的區別是:

1、用分離元件搭建電源電路,替換ncn5150或tss721整合晶元;

2、感測器用180度晶元分布替換360度晶元分布,感測器上無輪盤;

微控制器的3.3v電源設計方案如下

測試問題:

測試過程中有超時、感測器出錯等異常,而且比率比較高。

問題解決過程:

問題很容易復現,只要mbus匯流排出現類似如下的上電波形,上電的過程中有乙個小於100ms的電源掉電,一定會出現微控制器異常。

問題的原因是ldo的輸出端連線了乙個0.1uf的電容,由於這種異常的上電波形導致電容上的電沒有充分消耗,導致後端的微控制器處於2種狀態,一種是微控制器還能夠執行,但是微控制器的io裝置沒有初始化成功,比如adc等外圍裝置,這時候就會出現ad轉換異常,表具表現為ad值錯誤,報感測器出錯;第二種情況是微控制器根本就沒有執行起來,這時候表現為通訊超時。

在用示波器抓取微控制器的3.3v電壓波形的時候,由於示波器的接地端也要消耗電流,這個時候微控制器反而執行正常;我在除錯的時候就發現如果用jtag除錯的時候微控制器執行正常,不用jtag的時候微控制器就出問題,是乙個道理,因為jtag也要消耗電流,讓ldo輸出端電容上的電源快速放掉。在產品開發的時候,有時我們發現微控制器單獨執行的時候總是有問題,一旦我們用jtag等工具除錯的時候又發現沒有問題,這種情況有可能是產品的電源電路設計上有缺陷。

解決辦法:

開啟單品機的bod功能,即欠壓復位功能,一旦單品機檢測到電壓不穩定就自行復位,讓微控制器的自身執行在正確的狀態,這樣問題就得到解決。為了穩妥,選擇了高一點的電壓作為欠壓檢測點。

微控制器(六) IIC匯流排

iic是積體電路匯流排,它是一種序列匯流排,iic只有兩根雙向訊號線,一根資料線sda,一根訊號線scl。要掌握iic匯流排通訊協議,需要掌握以下六點 1.起始訊號。2.終止訊號。3.寫資料。4.讀資料。5.應答訊號。6.非應答訊號。下面我們來看看他們各自的時序。由此我們可以寫出他的程式 起始 vo...

微控制器IIC匯流排 實測通過

include iic.h void delayms unsigned int ms 毫秒級延時函式 while i void delay2us 2us延時,用於穩定io狀態 void iic delay iic延時,需大於4.7us,這裡取8us void iic io init io口初始化,使...

51微控制器學習之IIC匯流排

核心思想 主機與從機之間的資訊交換。主機傳送訊息,從機要回應一下。從機傳送訊息,主機也要回應。注意點 sda線和scl線都是預設高電平。即高電平為釋放狀態。include include typedef unsigned char u8 typedef unsigned int u16 void d...