ESP32(8) Low Power
Low Power我踩過不少坑(如下),做起來曲折離奇,不得不解。雖然內心十分抗拒,還是得咬著牙搞定。這篇也是盡量原汁原味,呈現我做的傻事 http://lihgong.blogspot.com/2019/05/volvo-xc60-2.html http://lihgong.blogspot.com/2019/05/volvo-xc60-5low-power.html [Low Power 規格] CAN logger在汽車運作中,吃不到50mA,這程度對發電機完全無感,問題不大先忽視 引擎熄火開始吃電瓶,70Ah電瓶一顆約莫7000台幣,待機電流必須做得小才不會弄壞電池。定義規格:待機1年,吃1%電瓶,待機電流要壓到80uA。鉛電池自放電是每個月3%~10%,我訂的規格算是很嚴苛 70Ah*0.01 = 365*24h* 80uA Low Power選零件先決定一半:極小值是20uA!這裡的規格不開藍芽或無線網路 ESP32-C3 deep-sleep mode耗電量5uA TJA1042/3 standby mode耗電量10uA 5V LDO靜態耗電2.5uA 3.3V LDO靜態耗電2.5uA [先搞定硬體] CAN logger放車上,要搞定12v轉5v,拿先前做過的板子跳線加工一下。電源也加個二極體稍微隔離(理論上USB也要隔離,PCB已經做好沒辦法改)。跳線連接頭避免拉扯,用熱溶膠盡量固定,免得實驗做一半要維修。我的工藝水準真的有限,下面這團東西,感覺很不可靠啊 下圖是設計IDEA,原型驗證過做小板子會好得多 [睡眠機制] 先思考什麼時候要睡覺 汽車運作中,CAN Logger開始紀錄封包到SD卡,寫寫寫 等汽車熄火,CAN封包還會持續一段時間,最後停止 封包停止,ESP32-C3 SDK,接收CAN封包函數timeout設成4秒,然後去睡覺 [睡下去] 斷電前要做這些事 把所有GPIO pin review一輪,一般是設成input or output,檢查pull-up/ pull-down,避免從IO pin漏電。基本上low power這個是基本功 讓CAN收發晶片進Standby Mode省電,電流壓到10uA。這個狀態CAN bus任何擾動(bit#0, dominate)都會在RX pin輸出high-to-low,用這根pin喚醒ES