ESP8266 はじめに   

 ESP8266というデバイスが話題になっています。wi-fiのデバイスらしい。そのwi-fiも私には知識がほとんどありません。無線LANで通信ができるらしい、ことしかわかっていません。我がデスクトップPCにはその機能がないし、スマートフォンも持ち合わせがありません。でも、何かできそうで、またaruduinoで書き込みができるらしい、もちろん専用書き込み装置もいらないらしい、のでとりあえず手にしてみることにしました。
アマゾンで送料込み2個¥950で ESP-WROOM-02 (技適取得済み)というのを購入しました。

 1 動作回路の作製  
 2 espボードの登録(Arduino-IDEに) 
 3 Lチカをしてみる 
 4 ファームを戻す 





 1 動作回路の作製   2017.02.12
 到着したデバイスは1.5mmピッチの基板です。注文前の説明ではわからなかったので、ブレッドボードに挿せる2.54mmピッチにする変換基板を作ることにしました。幅のサイズがやや大きいので全体が載る基板にするとブレッドボードの差し込み穴がほとんど使えなくなりそうです。そこで、横には伸びますが秋月の変換基板のように横にずらせたタイプとしました。下の写真で見えると思います。
このデバイスは裏面に端子名が印刷されているのですが、このようにサイドが空いた形にすると完成後も印刷が見えて便利です。

結線は次のとおりです。


動作時に関係するポートは GPIO0 GPIO2 GPIO15 の3個ですが、解説サイトによって違いがありました。そこで、データシートに従って配線しました。
 uart download mode  GPIO0=L GPIO2=H GPIO15=L
 flush boot mode    GPIO0=H GPIO2=H GPIO15=L
GPIO0だけを切り替えれば良いことになります。
なお、消費電流が多いので(80mA。200という説もある。)3.3V電源は別に供給しています。

配線が完了すればATコマンドのテストです。通常使用しているCH340のUSB-シリアルコンバーターでテストしましたが設定を変えても(115200、CR+LFに)うまく行きません。リセットすると何やら返って来ますので動いてはいるようです。コンバーターのせいかと考えてFTDIのFT323RFを使った自作ものに変えると通信できました。


うまく通信できないときは、flush boot mode(GPIO0=H)にしてリセットし(ややこしい文字などが表示される。のち「ready」が出る。)ATコマンドを実行するとできます。リセットの後は uart download mode(GPIO0=L)でもATコマンドが実行できます。

コンバーターのCH340のものはどうしてもうまく行きませんでした。また、CP2102を使った自作品ではうまく応答できました。CH340がダメな理由は不明です。

−−−−とりあえず動いたということで。
top


 2 espボードの登録(Arduino-IDEに)   2017.02.13

 aruduino-IDEで処理するためにsep8266ボードを登録します。こちらのページを参考にしました。
1.aruduino-IDE 1.8.1 はすでにインストールしてあります。
2.指示に従って上記のページに示された  http://arduino.esp8266.com/stable/package_esp8266com_index.json を
 Arduino-IDEの「ファイル」→「環境設定」→「追加のボードマネージャーのURL」にペーストします。
3.「ツール」→「ボード」→「Bords Managerをクリック」
4.最後の欄にある ESPボード をクリック。
5.最新バージョンを指定して、「インストール」をクリック。
6.IDEの設定でボードは「Generic ESP8266 Module」を選択します。
7.「Flush Size」は4M(1M SPIFFS)を選びました。(3Mはかけない、という...)
8.書込装置は esptool とのことですが、ないのでデフォルトの 「AVRISP mkII」で書込みができました。
9.Reset Method は ck にしています。(GPIO0は手動設定、リセットも手動)
top


 3 Lチカをしてみる   2017.02.13

 IDEのテストとしてLチカをしてみました。
17番ピンのGPIO16に抵抗を付けたLEDを差し込み、サンプルスケッチのbasics-Blinkを編集します。
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(16, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(16, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(16, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
portを16に変えただけです。

GPIO0をLにして、コンパイルが終わる直前を見計らって(ええかげんです)リセットスイッチを押しました。
コンパイルも書込みもかなり時間がかかりました。が、Lチカに成功しました。

「最大1044464バイトのフラッシュメモリのうち、スケッチが222201バイト(21%)を使っています。
最大81920バイトのRAMのうち、グローバル変数が31576バイト(38%)を使っていて、
ローカル変数で50344バイト使うことができます。
と表示されました。基本操作でメモリを消費しているように思います。
top


 4 ファームを戻す   2017.02.12

 Lチカを書き込むと、ATコマンドを受け取るファームは消えてしまう、とは知りませんでした。そこで、元の状態に戻す方法をWEBで調べました。なかなかうまく行かなかったのですが、「下手な鉄砲も数撃ちゃ当たる」で、なんとか戻りました。その方法をメモしておきます。

主としてねむいさんのぶろぐを参考にしました。
ファーム書込みデータ(ファイル)はここから ESP8266 NONOS SDK V2.0.0 20160810をダウンロードして解凍します。
解凍すると esp8266_nonos_sdk_v2.0.0_16_08_10 という名のフォルダができ、その中の ESP8266_NONOS_SDK/bin に設定ファイルがあります。
書込みツールはここから Flash Download Tools V3.4.4 (ESP8266 & ESP32)をダウンロードしました。ESPFlashDownloadTool_v3.4.4.exe が実行ファイルです。
書込みツールESPFlashDownloadTool_v3.4.4.exeを実行すると下図左の窓が現れるのでESP8266を選びます。

続いて右に示した窓が出ますので、赤枠の部分を指定しました。
・Download Patch Config のファイル名は前述の/binにあるファイルから選択します。アドレスは手入力です。ファイル名とアドレス数値は図から読めるので記述は省略します。
・COMポートは接続に応じて選び、ボーレートはdefaultの115200とします。
・図は書込み終了時のものですが、書込み開始は「START」をクリックします。「FINISH」が出れば終わりです。
・なお、書込み前に GPIO0を[L]にしてresetスイッチを押し、書き込みモードにしています。リセット時に[L]にしておけば、それ以降は[H]でも良いようです。なお、GPIO0は10kでプルアップしています。
・終了後、青枠の部分にROM情報、MACアドレスが表示されます。
GPIO0を[H]にしてATコマンドを送りました。

間違ったコマンドを送ってしまって返答がなくなったときもこの処置で元に戻るそうです。しかしボーレートは覚えていたほうが良いのでしょうね。

top


















工事中
























    2017.02.12

top
inserted by FC2 system