一、問題展示
本電工在做一款庫房,醫療冷鏈用的溫度記錄儀產品,產品硬件方案不復雜,體現如下:
STM8L+LCD+KEY+FLASH+NTC,供電方式爲3V鈕釦電池直接供電。
由於低功耗的需求,NTC直接用單片機IO口供電,以便於在睡眠的時候,關閉NTC電源。
產品出貨挺穩定,最近遇到個專業的製藥企業的客戶,在測試我的產品時候,低於零下20℃後,產品開始出現問題,溫度不準確,比實際溫度要高4℃以上,這是整個方案的問題。
二、解決過程和方法
開始以爲是鈕釦電池問題,所以嘗試用穩壓源供電,然後至於低溫下測試,結果溫度還是不正確,電源方面的原因排除了。
接下來看NTC阻值表,以及我的二分法快速查表是否正確,將ADC值賦值幾個固定值(這個值是零下20℃以下的採樣值),幾個cesium結果,查表法是沒問題的,此因素排除。
根據多年溫度產品經驗,思路聚焦在供電IO口上,睡眠喚醒後,ADC採樣前,NTC供電IO要給高電平,這個動作以後,才能採樣,我是這麼做的,沒錯。
但是!!!問題出在這了,之前delay10ms,在常溫下,甚至零下10℃以上,是沒問題的,很低的溫度就不行了,我不斷的加大延時時間,到1s左右,問題解決了,溫度誤差在1℃範圍內。
三、結論
在低功耗溫度產品,NTC用IO供電方案中,睡眠喚醒後,NTC供電IO給高電平的時間一定要充足,超低溫下,IO電平要很長時間才能穩定下來,10ms對於單片機來說很長了,但是不夠,本次產品BUG的經驗值是1S以上。
希望能給做類似產品的電友一點參考價值。