回路設計

ESP32を使う時には注意! 機能とピンアサインの落とし穴

投稿日:

ESP32は無線機器の動作モックをささっと用意するには、重宝するデバイスです。
WifiとBLEが搭載されており、技適対応済みのモジュールであれば、購入後すぐに使える点で、2022年現在、他に勝るモジュールがありません。

devkitを使う場合は、周辺回路が有る程度用意されていますが、ESP32-WROOM-32Eの様なアンテナ + デバイスだけのシンプルなモジュールを採用し、周辺回路はアプリケーションに応じてカスタマイズしたいことが少なくありません。

IO0は書き込みモードピンとして兼用

IO0は、ESP32の書き込みモードピンになっています。
このピンをユーザーピンとして使用したい場合、注意が必要になります。

例えば、入力ピンとして割り当てをしても、
GNDに落とされると書き込みモードに遷移する為、入力の論理判定ができません。
IO0は、ユーザーピンとして使用できないとして、割り当てしない方が賢明です。

IO36、IO39は、ペリフェラルと併用で論理変動が起こる

全てのペリフェラルに対してというわけではありませんが、SARADC1、SARADC2、AMP、HALLの機能を使う場合、IO36とIO39は、80nsだけLOWに落ちてしまいます。

両ピンをI/Oとして論理判定で使用している場合は、意図しないLOW入力が入ることで、バグに繋がる可能性があります。

エラッタ資料として、”eco_and_workarounds_for_bugs_in_esp32_en.pdf” には、以下の記述があります。

「3.11. When certain RTC peripherals are powered on, the inputs ofGPIO36 and GPIO39 will be pulled down for approximately 80ns.」

EXT0、EXT1で外部Wake upさせたい場合の注意点!

外部信号をトリガーとして、Deep SleepからWake upさせたいことがあると思います。
RTC向けのポート(IO32~IO39)で割り込み復帰が叶います。

EXT0については、HIGH or LOWアクティブのどちらの論理も設定が可能ですが、
EXT1は、LOWアクティブ限定になります。
複数信号を一つに集約する場合も、EXT1の端子部ではLOWアクティブになるよう、
論理整合を図って回路構成を組まねばなりません。

HIGH論理とLOW論理が混在したまま、EXT1端子へ入力されると正常動作しません。

TXD0、RXD0はコンソール出力で使用される

ESP32を触ったことがある方なら、ある程度ご存知かと思いますが、
TXD0とRXD0は、ESP32のコンソール入出力として使用されます。

ユーザーがserial通信で使用したい場合、UART2を割り当てすることをお勧めします。

スポンサーリンク

スポンサーリンク

-回路設計

Copyright© 江藤良樹の仕事は物づくり , 2022 All Rights Reserved Powered by STINGER.