這幾天花了七八個小時學到一課,寫篇文紀念。

五年前我迷上用 ESP8266 開發板 + MAX7219 32x8 LED 矩陣顯示器做時鐘,除了做定時炸彈造型鐘,我還做了一個放在卧室,就寢起床以其為準:

thumbnail

算算時鐘也全年無休跑了五年,但最近開始偶發故障,出現數字錯亂或全亮狀況,起初重啟便可恢復,但漸漸維持正常的時間愈來愈短。不確定是 ESP8266 開發板問題還是 LED 顯示器問題,重焊接點接線也無改善。心一橫,手邊還有開發板及 LED 顯示器的備品,索性另外做一組新的,把可疑的零件通通換掉一定可以解決吧?

原本時鐘用的是 NodeMCU 板 (下圖左),我後來買了一批尺寸迷你的 WeMos D1 Mini 板 (下圖右),先前用它做過金剛經播放器、紫光燈計時顯示,麻雀雖小五臟俱全,用來控制 LED 顯示器不是問題,就決定用它了。

thumbnail

萬萬沒想到,用 D1 Mini 做好新時鐘,居然出現跟舊時鐘相似的故障,文字殘缺錯亂、方陣全亮、不顯示等各種問題。出問題放一陣子再插電有時會恢復,但維持不到十分鐘就又發生故障。開發板換了、顯示器也換了,問題卻還在,若這不是見鬼了,那什麼是見鬼了?

thumbnail

LED 顯示器吃電較兇可能是原因,供電試了改接 5V 沒用,聽 AI 建議在 5V 與 GND 加一顆 470uF 電容也沒用;於是我懷疑是 D1 Mini 的穩壓晶片不夠力,傳輸訊號不足 3.3V,與 MAX7219 規格要求的高電平 3.5V 差距過大,導致初始化失敗、畫面錯亂及種種不穩定現象。果斷將 D1 Mini 換了一塊 NodeMCU 備品,結果就能正常顯示了。

事後查了一下,D1 Mini 用的 LDO (低壓差線性穩壓器)晶片通常會是 ME6211,最大輸出電流只有 500mA (部分仿冒品僅 150mA,我買的 D1 Mini 超便宜,很有可能),而 NodeMCU 常用的 LDO 是 AMS1117-3.3,最大輸出電流可達 800mA - 1A。

搞清楚這點,一切有了合理解釋,舊開發板的問題應來自 LDO 年久老化,供電品質下降,隨著性能日益惡化,出錯頻率愈來愈高。而換了 D1 Mini,它弱弱的 LDO (而且可能還是不足瓦的假貨)撐不住 MAX7219 顯示器通信所需的耗電量,造成電壓不穩,訊號錯亂導致顯示故障。而放一陣子正常,則可能是 LDO 降溫後恢復運作。

沒搞懂前的見鬼了,弄明白後都能回歸科學,結案。


Comments

Be the first to post a comment

Post a comment