今回ESP32-C3を使用して製品開発を行った。
しかし、プログラムをインストールして、WiFi.beginをするとESP32がリスタートする。。。
だいたいこういう時は、電源系が不安定になっている時だ。
以下の感じで不適合調査を行った。
・WiFiが起動することで電波が発生し、電源ラインに影響を与えていないか。
・プログラムに間違いはないか
・配線に間違いはないか
・ESP32-C3の初期値に設定しなければいけない設定をできていない?
etc
しかし以上の項目は全て問題なかった。
結果を先にいうとUSBからの5Vが電圧降下を起こしていた。
多分だがESP32がWifiを起動するタイミングで大きな電流を消費する。
その時USBケーブルDIPキットに使用されているポリヒューズが反応して
電源供給を停止し、再起動が行われているようだ。
(400mA以上消費する場合もあるみたい。。。)
具体的には以下
ハードウェア
・ESP32-C3
・ブレッドボード用マイクロBメスUSBコネクターDIP化キット
https://akizukidenshi.com/catalog/g/g106656/
・専用基板
ソフトウェア
#include <WiFi.h>
const char SSID[] = "testSSID" ;
const char PASSWORD[] = "testest";
WiFiServer server(80);
byte pins[] = {0, 1, 3, 10, 7, 6, 4, 5, 8};
void setup() {
for (int i = 0; i < sizeof(pins); i++) {
pinMode(pins[i], OUTPUT);
}
pinMode(4, OUTPUT);
Serial.begin(115200);
delay(3000);
WiFi.begin(SSID, PASSWORD); //ここでエラーが発生して再起動をしていた
Serial.print("WiFi connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
Serial.println(" connected");
}
// the loop function runs over and over again forever
void loop() {
}
対策
470uFの電解コンデンサを設置したら、再起動をしなくなった。
多分こんなに大きなコンデンサは、不要だと思う。
USBコネクタDIP化キットのヒューズが悪さをしているんだと思うが、
それはあとから調査しようと思う。
多分直接PCからヒューズを通さず接続できれば電解コンデンサも
不要だとは思うが、
とりあえずメモということで。
なお今回は以下の記事を参考にさせて頂き、無事今回の問題を解決することができました。
有難うございました。
https://bokunimo.net/blog/esp/3949/#5V%E5%85%A5%E5%8A%9B%E9%83%A8%E3%81%AB%E3%82%B3%E3%83%B3%E3%83%87%E3%83%B3%E3%82%B5%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B