M5StickCの端子別動作確認

外部接続可能な端子について、状況別の確認をしてみました。現時点の情報です、最新情報はM5StickC非公式日本語リファレンスで確認してください。

概要

Arduino UNOに接続可能な端子をつないでみて、出力値を確認してみました。

条件GPIO0GPIO26GPIO36GPIO32GPIO33BAT3V35VGrove5V
電源オフONOFFONON
電源オン 初期化無しHIGHONONONON
M5.begin();HIGHONONONON
INPUT初期化のみHIGHONONONON
INPUT_PULLUP初期化のみHIGHHIGHHIGHHIGHONONONON
INPUT_PULLDOWN初期化のみHIGHLOWLOWLOWONONONON
ANALOG初期化のみHIGHONONONON
OUTPUT初期化のみLOW※LOWLOWLOWONONONON
OUTPUT LOWLOW※LOWLOWLOWONONONON
OUTPUT HIGHHIGHHIGHHIGHHIGHONONONON
OUTPUT_OPEN_DRAIN初期化のみLOW※LOWLOWLOWONONONON
OUTPUT_OPEN_DRAIN LOWLOW※LOWLOWLOWONONONON
OUTPUT_OPEN_DRAIN HIGHHIGHONONONON
ESP32 Timer DeepSleepHIGHONONONON
ESP32 Timer LightSleepHIGHONONONON
AXP192 SleepHIGHHIGHHIGHHIGHONONONON

BAT端子

内蔵バッテリーの出力端子で、 3Vから4V程度が常に出力されています。

3V3

3.3Vが出力される端子で、この端子のみ電源OFFだと出力されません。

5V

5Vが出力される端子で、常に出力されています。

GROVE 5V

Grove端子側の5V端子で、常に出力されています。ただ、GPIO32とGPIO33の入力は3.3Vまでなので、接続する装置によってはこの電源の5Vの入力がそのまま入る可能性があります。とはいえ、実際のところ5Vの入力を入れても壊れることはないようですが、正式には5V入力を許容していませんので注意して利用してください。

GPIO0

基本的に3.3Vでプルアップされている端子で、電源オフ時とLOWの出力時以外はHIGHになっています。ただLOWのときにもGNDレベルではなく150mV程度の電圧が出力されていました。

また、この端子をLOWに落としている時は、起動に失敗しますので接続には注意してください。

GPIO26

非常にシンプルな端子で、素直に動きます。また、M5StickCではDAC出力に唯一使える端子でもあります。

GPIO36

入力専用端子で出力はできません。また、プルアップとプルダウンも利用できませんので注意しましょう。

GPIO32, 33

Grove側の端子で、素直に動きます。Groveの電源が5Vですが、この端子の入力は3.3Vまでなので注意しましょう。

まとめ

気をつけないといけないのはGPIO0がプルアップされていることと、LOWになると起動失敗すること。そしてGPIO36がプルアップもプルダウンも使えないことです。

また、スリープをした場合、モードによりますが端子がオープンになるのは通常のESP32と一緒ですが、電源端子系はそのままなので注意が必要です。そしてAXP192のスリープはI2Cは生きたままなので、LCDだけ電源オフにしている感じに見えますが、もうちょっと調査が必要そうでした。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)