外部接続可能な端子について、状況別の確認をしてみました。現時点の情報です、最新情報はM5StickC非公式日本語リファレンスで確認してください。
概要
Arduino UNOに接続可能な端子をつないでみて、出力値を確認してみました。
| 条件 | GPIO0 | GPIO26 | GPIO36 | GPIO32 | GPIO33 | BAT | 3V3 | 5V | Grove5V |
| 電源オフ | – | – | – | – | – | ON | OFF | ON | ON |
| 電源オン 初期化無し | HIGH | – | – | – | – | ON | ON | ON | ON |
| M5.begin(); | HIGH | – | – | – | – | ON | ON | ON | ON |
| INPUT初期化のみ | HIGH | – | – | – | – | ON | ON | ON | ON |
| INPUT_PULLUP初期化のみ | HIGH | HIGH | – | HIGH | HIGH | ON | ON | ON | ON |
| INPUT_PULLDOWN初期化のみ | HIGH | LOW | – | LOW | LOW | ON | ON | ON | ON |
| ANALOG初期化のみ | HIGH | – | – | – | – | ON | ON | ON | ON |
| OUTPUT初期化のみ | LOW※ | LOW | – | LOW | LOW | ON | ON | ON | ON |
| OUTPUT LOW | LOW※ | LOW | – | LOW | LOW | ON | ON | ON | ON |
| OUTPUT HIGH | HIGH | HIGH | – | HIGH | HIGH | ON | ON | ON | ON |
| OUTPUT_OPEN_DRAIN初期化のみ | LOW※ | LOW | – | LOW | LOW | ON | ON | ON | ON |
| OUTPUT_OPEN_DRAIN LOW | LOW※ | LOW | – | LOW | LOW | ON | ON | ON | ON |
| OUTPUT_OPEN_DRAIN HIGH | HIGH | – | – | – | – | ON | ON | ON | ON |
| ESP32 Timer DeepSleep | HIGH | – | – | – | – | ON | ON | ON | ON |
| ESP32 Timer LightSleep | HIGH | – | – | – | – | ON | ON | ON | ON |
| AXP192 Sleep | HIGH | HIGH | – | HIGH | HIGH | ON | ON | ON | ON |
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だけ電源オフにしている感じに見えますが、もうちょっと調査が必要そうでした。



コメント
GPIO32とGPIO33にはショットキーバリアダイオードが入っているので3.3Vを越える電圧でもプルアップ程度であれば許容します。I2Cのプルアップは3.3KΩが良いです。
おっ、どの資料みればSBDはいっているかわかりますか?
ESP32はおそらく5V入力をしても、すぐに壊れることはないのですが、公式的には5Vトレラントではないんですよね、、、
基板直接調べました。
http://itoi.jp/img/labo-359.jpg
おー、すごい!
いつか中も見てみたかったんですが、開けたことなかったです
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/M5StickC/20191118__StickC_A04_3110_Schematic_Rebuild_PinMap.pdf
こっちにはなにも書いてないんですよね、、、
いつもお世話になっております。
M5の赤外線出力でできるだけ簡単に
シリアル通信を作り込みたいのですが、、、
38kHzでPWMで適度に絞った信号を作って、
それを赤外線LEDの出力とANDを取って・・・
赤外線出力にシリアル通信のTXを流して・・・
って簡単にはできませんでしょうか。
RXは適当な38kHz赤外線受信素子通すは
仕方ないですが
TX側はポートの操作で外付け部品なしで実はできるのでは?
と思うところです。
以上、よろしくお願い致します。