昨晚為了找 ESP32 開發板翻箱倒櫃在零件箱中找到四塊 D1 mini pro, 其中兩塊是有附購 SMA 外接天線的, 另兩塊沒有 (使用板上內建的陶瓷天線), 另外還找到一個 0.91 吋與 0.96 吋的 SSD1306 OLED 顯示器各一個, 其中 0.91 吋的前端玻璃有裂痕, 不確定有沒有壞掉. 查詢之前的網購資料, 應該是 2020/3/31 向 Aliexpress 買的 :
先用三秒膠把針腳黏在 D1 mini pro 板子上, 今天晚上焊接後進行測試.
D1 mini pro 與 D1 mini 一樣都有 5V 輸出, 這在做實驗時很方便.
首先接上 USB 後在 "控制台/裝置管理員/連接埠" 檢查此板所連接的 COM 埠 :
可見此板 USB 晶片用的是 CP2102, 然後按照下面這篇中的指令用 esptool 燒錄韌體 :
值得注意的是, 與 D1 mini 不同的是, D1mini pro 燒錄韌體前不須要把 D3 (GPIO0) 接地, 直接燒錄即可 (把 D1 接地反而會無法燒錄), 先查詢 Flash 資訊 :
D:\ESP8266>esptool.py --port COM12 flash_id
esptool.py v2.6
Serial port COM12
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 68:c6:3a:f8:cd:a3
Uploading stub...
Running stub...
Stub running...
Manufacturer: 20
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin...
可見這塊是 4MB Flash.
接著是抹除 Flash 記憶體內容 :
D:\ESP8266>esptool.py --chip esp8266 --port COM12 erase_flash
esptool.py v2.6
Serial port COM12
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: 68:c6:3a:f8:cd:a3
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 9.6s
Hard resetting via RTS pin...
如果像 D1 mini 那樣把 D0 接地, 反而會出現如下 Failed to connect to ESP8266 的錯誤訊息 :
D:\ESP8266>esptool.py --chip esp8266 --port COM12 erase_flash
esptool.py v2.6
Serial port COM12
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
然後就可以燒錄韌體了 :
D:\ESP8266>esptool.py --port COM12 --baud 115200 write_flash --flash_size=detect -fm dio 0 esp8266-20220618-v1.19.1.bin
esptool.py v2.6
Serial port COM12
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 68:c6:3a:f8:cd:a3
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0240
Compressed 634844 bytes to 419808...
Wrote 634844 bytes (419808 compressed) at 0x00000000 in 37.1 seconds (effective 136.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
這樣就燒錄完成了.
接著參考下面這篇, 測試剛焊好接腳的 0.91 吋與 0.96 吋 OLED 顯示器 :
0.91 吋的程式如下 :
import ssd1306
from machine import Pin, I2C
i2c=I2C(scl=Pin(5), sda=Pin(4))
oled=ssd1306.SSD1306_I2C(128, 32, i2c)
oled.fill(1)
oled.show()
結果不行, 0.91 吋的裂痕似乎傷到裡面電路, 完全黑屏, 廢了.
0.96 吋的程式改用 SoftI2C 測試 :
from machine import Pin, SoftI2C
import ssd1306
i2c=SoftI2C(scl=Pin(5), sda=Pin(4))
oled=ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(1)
oled.show()
結果 0.96 吋的 OK :
原來以前不知不覺買了蠻多零組件, 現在要開始活化資產.
沒有留言 :
張貼留言