ESP-WROOM-02は起動時にGPIOポートを参照することで起動するモードの切替を行う
データシートより |
モードは以下の2つ
・ダウンロードモード
内蔵フラッシュROMへファームウェアを書き込む場合に用いる
・フラッシュブートモード
内蔵フラッシュROMに書き込まれているファームウェアを実行する
参照されるGPIOポートはGPIO0、GPIO2、GPIO15の3ポート
このポートはブート後は普通のGPIOポートとして使用できる
以下は上記ポートが出力ポートとして働くかどうか確認するためのプロジェクト
プロジェクト概要:
GPIO0、GPIO2、GPIO15が出力ポートとして動作することを確認する
各ポートに接続されたLEDを点滅させる
準備すること:
・3V3とGNDに電源を接続
・LEDと適当な抵抗を3つ用意(まだ接続しないこと)
作成方法&実行方法:
・ソースをコピペ
・ダウンロードモードでESP-WROOM-02を起動する
その後、GPIO0、GPIO2、GPIO15をオープン(何も接続しない)にする
(例:マイクロテクニカボードの場合はENピン以外のジャンパを取り外す)
※ファーム書き込み終了後、強制的にフラッシュブートするため
出力ポートに直接3.3VとGNDが接続されるのを防ぐ
・ビルドして書き込み
・GPIO0、GPIO2、GPIO15に抵抗とLEDを直列に接続(→もう片側をGNDへ)
(※すでにフラッシュブートしているので注意)
実行するとGPIO0、GPIO2、GPIO15が出力ピンとして機能するのがわかる
注意点:
・ファーム書き込み後フラッシュブートモードで起動しないこと
理由は前述のとおり出力ポートに3.3VとGNDが接続されてしまうため
・もしやるなら電気的な安全を確保するかブート後接続を外すための十分なウェイトをいれること
#define CONFIG_PIN_1 0 #define CONFIG_PIN_2 2 #define CONFIG_PIN_3 15 void setup() { pinMode(CONFIG_PIN_1, OUTPUT); pinMode(CONFIG_PIN_2, OUTPUT); pinMode(CONFIG_PIN_3, OUTPUT); } int counter = 0; void loop() { digitalWrite(CONFIG_PIN_1, counter % 2); digitalWrite(CONFIG_PIN_2, counter % 2); digitalWrite(CONFIG_PIN_3, counter % 2); delay(500); counter++; }
0 件のコメント:
コメントを投稿