TTGO T-Camera の起動時 flash error やファームウェアの書き込み時 Could not auto-detect Flash size で失敗するときの対策方法

安価な Wi-Fi 搭載 TTGO T-Camera が、まれに起動しないことやファームウェアの書き込みに失敗することがあったので、その対策方法について、説明します。

症状

起動時に「flash read err, 1000」が繰り返しシリアル出力されて起動できない場合や、ファームウェアの書き込み時に「Could not auto-detect Flash size」と表示される場合があります。

起動時:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
ファーム書き込み時:
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Compressed 8192 bytes to 47...

電源が不安定な時にも似たような症状が発生しますが、ログの内容が異なるので、上記のログで見分けることが出来ます。

原因

起動時に、ノイズなどの影響で、GPIO12 (14番ピン)が Highレベルを検知し、ESP32-WROOVER-B モジュール内部の動作電圧が1.8Vとなり、SPI接続フラッシュメモリへのアクセスが出来なくなることが原因だと思います。

本GPIO12 (14番ピン)は、カメラ・モジュールに接続されているほか、データシートでは内部プルアップされていることになっているので、Highレベルに遷移しやすい可能性も考えられます。

対策方法

プルダウン抵抗を追加することで対策が可能です。抵抗値に悩みむところですが、テスターで確認したところ、起動時には内部プルアップされている様子もなかったので、100kΩで試してみました。

ちょうど、GPIO12(14番ピン)の右側が、GND(15番ピン)なので、下図のように見た目を(あまり)損なわずにプルアップ抵抗を追加することが出来ます。

ただし、GND(15番ピン)の端子にハンダ付けする際、ハンダの熱が逃げやすいので、ハンダ付け作業としては少し難し目です。アナログ回路や高周波回路のハンダ付けに慣れていない方は、外部コネクタ部のGNDに抵抗器を取り付けて、GPIO12(14番ピン)まで配線したほうが、より簡単かもしれmせん。


関連記事




by bokunimo.net