5

ESP32 開發板捉鬼記

 3 years ago
source link: https://blog.darkthread.net/blog/defective-esp32/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ESP32 開發板捉鬼記

calendar.svg 2021-04-10 03:00 PM comment.svg 0 eye.svg 533

話說前陣子買了 ESP32 開發板來玩,一併入手了 32x8 的 LED 矩陣顯示器,成功用 Arduino 跟 ESP8266 做出跑馬燈後,下一步當然要試試用新玩具做跑馬燈。結果,入手第二天我就摔進大坑,掙扎了十天才爬出來... Orz

依爬文查到的資料,有現成的程式範例通知 Arduino / ESP8266 / ESP32,大家都嘛複製貼上程式、插好五條電線就做出跑馬燈,我在 Arduino 跟 ESP8266 的經驗也是如此,但搬到 ESP32 上,LED 顯示器毫無反應。

由於是第一次玩 ESP32,對於 C 語言跟 ESP 硬體的了解也有限,不敢確定錯的是自己還是硬體,但基於我特別挑了原廠貨,品質不應有問題,優先懷疑的對象當然是身為菜鳥的自己。於是接下來就陷入到處查資料,換程式庫的無窮循環。清明連假結束還沒試出來,接著幾天下班回吃完飯做完正事,便一路搞到睡前最後一刻,上床腦中還不斷吶喊「為什麼?為什麼?」,隔天再繼續「利用通勤時間先查資料,回家動手做實驗」的生活,但怎麼就是不成功,折騰了近十天。

LED 顯示器跟開發板間是用 SPI 通訊協定溝通,於是我研究了 SPI 通訊的原理,知道它靠三條線 SCLK,MOSI 跟 CS 傳資料:CS 通知周邊設備我要傳資料給你,SCLK 傳固定頻率決定傳輸速度,主機對周邊的資料則是走 MOSI 傳過去。

同樣的程式在 ESP8266 運作正常,成為珍貴的對照觀察對象(也是本次讓案情急轉之下的關鍵),在知道 SPI 線路傳輸原理後,我想起之前買的玩具示波器,靠著它我看到「正常的傳輸訊號」應該長什麼樣子(如下圖),再比對有問題的 ESP32 開發板,我發現一件天殺的事實 - SCLK 時鐘訊號正常,MOSI 資料訊號彷彿心跳停止的心電圖,全程平坦。

thumbnail

由 MOSI 無訊號的線索又查了一陣子程式,試著找出我到底是哪裡做錯導致沒啟動訊號傳送,在所有可能的環節都排除後,我終於開始懷疑硬體了! 仔細查看 ESP32 開發格,發現晶片上 MOSI 資料線對映針腳的焊點怪怪的,再用三用電錶一量,我忍不住飆出髒話! 這個焊點問題導致 MOSI 資料線跟旁邊的人GND 接地線短路,永遠都不會有訊號傳出來啊啊啊啊~~

thumbnail

這段時間爬了不少文章,我知道 ESP32 還有第二組 SPI 可用,便修改程式改用第二組 SPI....

喵的,我的 ESP32 跑馬燈終於動了! 好不容易把東西做出來,我卻只想罵髒話,真是難得的體驗。

thumbnail

上週才踩到杜邦接線不通的雷,網友 Sam 說的好「新品故障或不良,真的會被玩死」,一語成讖,我真的被這塊 ESP32 玩個半死,尤其當你是新手,對於「怎麼做會成功」跟「什麼叫正常」一知半解,有問題總先懷疑自己,於是就這麼錯放兇手逍遙法外,自我檢討到無地自容。歷經這兩次教訓,我學到一些事:

  1. 電子小零件如果價格不貴,就多買一份放著吧。出問題時,手邊有沒有對照組往往是天堂與地獄的差別。
  2. 原廠的東西不一定沒問題,沒有拿到明確不在場證據前,不要輕縱任何嫌犯。
  3. 查數位電路問題示波器是好物,即使幾百塊的玩具示波器,看看有沒有訊號也好過當瞎子。

連絡網路賣家詢問保固的事,再增加心得一則:電子零件無保固,請把握黃金頭七。

ESP32 板子還有第二組 SPI 可用,同時用到兩組 SPI 的機率不高,嚴格來說只少了一根 P23,使用上也還好,僅止於心情不美麗而已。改天心情好,再來試試重焊那兩個短路的焊點,說不定我能修好它(或把它搞壞,哈!)。

and has 0 comments

Comments

Be the first to post a comment

Post a comment

Comment
Name Captcha 61 - 51 =

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK