2015年8月17日月曜日

ESP-WROOM-02のメモ(7):モード切替GPIOポートについての検証1

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 件のコメント:

コメントを投稿