昨天解了一個BUG,一個低級錯誤導致的BUG,一個冗余電路導致的BUG,寫寫做個記錄。
先說問題現象:產品偶爾溫度采集異常,溫度不準,系統獲取到錯誤信息,導致出現問題。溫度采集電路超級簡單,如下圖,熱敏電阻和普通電阻分壓后送入單片機的ADC管腳采集電壓,然后軟件換算為溫度值。掛上示波器,監聽溫度采集管腳電壓,現象明確,出現異常時,ADC管腳出現異常波動。電路超級簡單兩個電阻分壓,分壓電源也正常,怎么會有波動?雖然心里堅信熱敏電阻不會損壞,但是抱著一絲希望,更換一個熱敏電阻還失敗。不斷嘗試復現問題,發現一個規律,只要板上7伏高壓電打開,溫度采集就出現異常,不知為何7伏電壓把溫度采集管腳電壓抬高了許多。就是這個溫度采集不準問題,軟件推硬件,說硬件電路設計有問題,硬件推軟件,說只有兩個分壓電阻,不可能是硬件問題,扯皮了兩天,真是無語了。
這時候就發揮我軟硬都"精通"的優勢了,跟硬件要了原理圖從頭到尾看了一遍發現一個冗余電路,這個電路屬于預留設計,并未使用。原理是在7V電壓存在的情況下,經過兩個電阻分壓后三極管導通,送入單片機的ADC采集管腳,這里明顯超范圍了,單片機供電為3.3V,嚴重超標。管腳不損壞已經是幸運了。這個電路以前是測量3.3V電源的,直接復制粘貼就出了問題。
這個電壓采集和溫度采集并不是同一個管腳,采集電壓有問題怎么會導致溫度采集不準呢。一般單片機的GPIO內部都有以下兩個保護二極管,7V高壓進入單片機后經過上面的二極管頂高了VCC電壓,進而導致內部ADC模塊出現異常,另外一個ADC管腳電壓抬升。
拆除三極管后溫度采集正常。
-
三極管
+關注
關注
142文章
3611瀏覽量
121873 -
單片機
+關注
關注
6035文章
44554瀏覽量
634651 -
熱敏電阻
+關注
關注
14文章
1163瀏覽量
101502 -
adc
+關注
關注
98文章
6495瀏覽量
544466 -
BUG
+關注
關注
0文章
155瀏覽量
15665
發布評論請先 登錄
相關推薦
評論