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