e-tipsmemo

ごった煮

ESP32評価ボードをESP32の書き込み機として使ってみる

ESP32の基板をつくっているが、
書き込みのためだけにUSB-serial変換器を買うのはなんかもったいない気がしたので、ESP32評価基板を買って、そこから別のESP32モジュールに書き込めるのではないかと考えた。

まずはESP32評価ボードを購入し、動作確認をした。

書き込み手順

接続

ChatGPTに聞いてみたが間違っている接続を提示された

評価ボードのTX-->書き込み対象のRX
評価ボードのRX-->書き込み対象のTX

評価ボードの3.3V-->書き込み対象の3.3V
評価ボードのGND-->書き込み対象のGND
TX/RXの接続が間違っている

評価ボードのTX/RXは評価ボードに乗っているESP32のもの

なので、CP2102のTX/RXからの接続を考えると、
CP2102のRX-->評価ボードのTX-->書き込み対象のTX
CP2102のTX-->評価ボードのRX-->書き込み対象のRX
https://dl.espressif.com/dl/schematics/esp32_devkitc_v4-sch.pdf

これに気付かず、USBシリアル変換モジュールを買ってしまった・・・


電源=3.3VやGNDは普通に接続し、
GPIO0はGNDにジャンパーする。
ENは書き込みするときにGNDに落とす(タクトスイッチなどで)

プログラム

Arduino IDEで、Board Managerからesp32のボード情報をダウンロードするが、
結構時間がかかる(5分ぐらい?)

ボードはこの評価ボードと同じ、ESP32 Dev Moduleを選択する。

LED点滅プログラムはChatGPTに書かせて、LEDのポートは自分の基板に合わせる。

// ESP32 DevKitC / ESP32-WROOM-32 LED点滅サンプル
const int LED_PIN = 2;  // 内蔵LEDピン(多くのDevKitCではGPIO2)

void setup() {
  pinMode(LED_PIN, OUTPUT);  // 出力モードに設定
}

void loop() {
  digitalWrite(LED_PIN, HIGH);  // LED点灯
  delay(400);                  // 1秒待つ
  digitalWrite(LED_PIN, LOW);   // LED消灯
  delay(1000);                  // 1秒待つ
}

書き込み

GPIO0がGNDに接続されていることを確認して、電源(3.3V)をつなげる。
Arduino IDEのUploadボタンを押してコンパイル中に、ENをGNDに落としてリセット。

正しく書き込みがなされれば、以下のようになる。

自動リセット機能はないので、
GPIO0を開放して、もう一度チップをリセット(ENをGNDに落とす)すれば、
LEDが点滅する。

その他

今回の基板はESP32の裏面GNDパッドをはんだ付けしていないが、マイコンは動いた。データシートには裏面パッドのGNDへの接続はMustではないと書かれている。

格安なのにPCB基板も簡単に発注できて、簡単な書き込み回路でよくて、シリアル通信でプログラムが書けてPICやAVRやSTM32で大変な思いをしていた時代が遠い過去のものに。。