と思って、暫く振りに、 esp-wroom-02 を USB-SERIAL 経由で電源を繋げてみたが、
うんとも、スントも動かない。
以前は、普通に動作していたのにどうしたのか?
仕方がないので、Arduino IDE を使って、WiFi Http Server の適当なスケッチをかきこんで、
PCのSerial Terminal からで Serial Print の情報をみたいたら、途中までプログラムが動いて、
そのご、しきりに ダンプ を吐き出しているみたいです。
Strat webserver_sample_2 <- これは、スケッチのプログラム名
Connectting to elecom2g-XXXXX <- WiFi ホストへ接続
..... <- 従来は、ここで、少ししたら、繋がっていたが、今は、下記のエラーを吐き出しちょります。
ets Jan 8 2013,rst cause:4,boot mode:(3.6)
wdt reset
load 0x4010f00,len 1384, room 16
tail8
chksum 0x2d
csum 0x2d
.
.
ここからは、ダンプを吐き出してずっと繰り返し。
インターネットで検索したら、同じようなトラブルになっている人が、色々な
対応方法を書き込んでいたので、一応それを試してみました。
1. watch dog のタイマーを、loop の中でリセットする.....
2.Vcc と GND の間に コンデンサーを入れる。
3.電源容量が適切かチェックする。 <-- 多分これが一番正解ではないかと、おんちゃんは、思いますが、電源容量が足りないとすれば、USB-Serial の電源容量をチェックしないといけないが、
そうなると FT-232RL とかを買い替えないといけなくなるが?それは困った。
結論から言えば、Audino IDE の
ツール->
ボード:"Generic ESP8266 Module" の場合のオプションで、
Flash Frequency "80MHz" -> "40Mhz"
に少なくしたら以前の儘のプログラムで旨く動きました。
おんちゃんが思うに、以前は、同じプログラムが、
ツール->Flash Frequency "80MHz" でも問題なく動いていたので、
1. USB-Serial(3.3V) の電圧か、電流容量が少し下がっている。 <-- これが正解では?
2.esp-wroom-02 が少しへたって来たか?
のどちらかでは、なかろうか? と言う結論に至りました。
その後、又再発しました。
試しに、デバッグ表示を出すようにして、実行したら
Serial.setDebugOutput(true); <-- こいつを入れてデバッグ表示をしたら、
//set static ip part
WiFi.config(IPAddress(192,168,1,90), IPAddress(192,168,1,1), IPAddress(255,255,255,0));
WiFi.begin(ssid, password);
結果は、
Strat webserver_sample_2 2015.10.12 updates!
Connecting to elecom2g-XXXXX
scandone
f 0, .......Fatal exception 0(IllegalInstructionCause):
epc1=0x4021b6eb, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
Exception (0):
epc1=0x4021b6eb epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
思うに、 Flash メモリーがポンコツで、Arduino IDE で、プログラムを書き込んだりしていると、
ゴミが出来るのが問題の様な気がします。
ですが、その後、
FT232-RL(3.3V供給)の時、ESP-ROOM-02 動作時 の 3V3-GND 間の電圧を測ったら、2.2V しか
ありませんでした。
ですので、ESP-ROOM-02 の 3V3端子へは、 外部USB電源(5V)からレギュレータ(3.3V)を介して供給して、
FT232-RLは、電圧を 3.3V の儘にして、Tx,Rx端子 に接続しました。
この状態で、ESP-ROOM-02 の動作時の、3V3-GND 間の電圧は、3.23V になりました。
これで、全て、うまく動作しました。
ちなみに、Arduino-IDE の設定は、元に戻しました。
ツール->
Flash Mode : "QID"
Flash Frequency : 80MHz
ちなみに、おんちゃんの ESP-WROOM-02 のフラッシュメモリーサイズは、
esptool.py --port COM4 flash_id
で確認したら、4M サイズでした。
やれやれでした。
P.S.
esptool.py と言うツールがあるのを、今回知りました。
それは、今回のトラブルの副産物となったぞね。
そのあと、気になったので、
ESP8266-WROOM-02 の 3V3 端子での電流をテスターで測ってみました。
1.Wi-Fi で アクセスポイントに接続して、GPSみちびき(GYSFDMAXB) から Serial 通信でデータを受け取ったのを、USB-Serial で PC へ転送するプログラムですが、これを稼働させた状態で
3V3 端で測定したら、80mA 位。
注) GPSみちびき(GYSFDMAXB) 5V への供給は、含まれません。
2.プログラムの書き込みリセットで、待ち状態では、85mA。
3.Arduino IDE から プログラムの書き込み中は、当初 85mA 、途中 多くて 95mA、一番最後に
一瞬ですが、106mA 、124mA がながれていました。
FT232-RL の電源容量はどの位か?
FT232-RLで 3.3V 供給時に、 3V3 -GND端の電圧が、2.2V 位だったので、
へたって、相当少なくなっているのかもしれません。
その後、FT232RL は、供給電流を増やせるとの事です。
FTDI のサイトから FT_Prog をダウンロードして、Windows10 にインストールして、FT__Progを起動して、
1) 虫メガネアイコンをクリックして、現在のFT232-RLの設定を読み込んで、
USB Config Descriptor の Max Bus Power 90 -> 500 mA に変更して、
2) イナズマ アイコン(Program Devices) を実行して、簡単にできました。
おんちゃんの場合は、 ディフォルトが、 90mA だったので、500mA に増やしました。
Max は、500mA との事です。以上。(2018.10.1)