2022年3月17日 星期四

ESP8266/ESP32模組電路解析 -自動燒錄

 手動進入燒錄模式
參考[1]

步驟:
左手RESET按鍵,右手PROGRAM (GPIO0)按鍵
1. 按下RESET按鍵並維持
2. 按下PROGRAM按鍵並維持
3. 放開RESET,ESP32進入燒錄模式
4. 放開PROGRAM按鍵
5. 更新程式

自動燒錄電路
參考[2]

參考[2]

規格書中描述,GPIO0/2已有內部弱up/down,所以此電路R2與R3不需打件,不過使用上還是以需求考量

參考[3]

自動與手動步驟對照:
1. EN為LOW (按下RESET按鍵並維持)
2. GPIO0為LOW,此時EN低於VIH階段視為LOW (按下PROGRAM按鍵並維持)
3. EN一段時間後高於VIH,轉為HIGH最少1ms (放開RESET,ESP32進入燒錄模式)
4. GPIO0轉為HIGH (放開PROGRAM按鍵)

依照真值表,EN與GPIO0無法一起為LOW (手動步驟的1到2),所以需要在EN加上電容,對電容充電使EN保持一段時間為LOW,好等待(波形顯示,EN會比GPIO0更早為HIGH)並保持與GPIO0同時為LOW

所以加上充電時間的考量,真值表可以理解為下圖:
這樣就可以作到,EN=0時候為兩個按鍵同時按下的狀態,EN=1的時候為RESET放開,此過程為手動2到3

GPIO2對燒錄的影響
規格書中載明,GPIO2可以規劃成SD_DATA0(參考[2]的SD電路),但D0有10K pull-up電阻,這時就會造成燒錄失敗(燒錄時,GPIO2必須為LOW),解決方法是再加上與GPIO0連動的電路
參考[2]

電路精簡

如果GPIO2不會影響到燒錄,可以將電路以UMH3N等預偏置NPN取代,以節省元件數量與面積


參考:
 


沒有留言:

張貼留言

使Arduino Nano Every在ARDUINO IDE支援ATmega4809 48pin包裝

軟體環境 ARDUINO IDE 2.3.2 板函式庫MegaCoreX 1.1.2, https://github.com/MCUdude/MegaCoreX ARDUINO IDE 選擇48pin,編譯時會產生以下錯誤 修正錯誤 修改C:\Users\<your_acc...