M5Stack Core2のGPIO調査

概要

M5Stack Core2で利用できるGPIOを調べてみました。Grove端子とM-BUS端子になります。

M-BUS端子

ざっくりと、上記の区分になっています。通常は蓋がついているので、アクセスすることができません。CORE2と書いてあるところを外すと

蓋を外すのは、なるべく細いマイナスドライバーなどを左右から隙間にいれて、ゆっくりと上に持ち上げます。

取り外すと上記の状態になります。おそらく本体の六角ボルトをはずして、拡張するベースやモジュールが出てくる気がします。

さて、蓋の部分には左側にマイクと、右側に加速度センサーなどのIMUがついています。なので蓋を外すとマイクとIMUは利用できなくなりますので注意してください。

GPIO概要
GPIO0I2S未使用時は他用途で利用可能。プルアップされているので注意して使う
GPIO1USB経由のシリアル通信で利用。USB接続していないときは他用途で利用可能
GPIO2I2S未使用時は他用途で利用可能
GPIO3USB経由のシリアル通信で利用。USB接続していないときは他用途で利用可能
GPIO13自由に利用可能。DAC2に接続なので無線利用時はアナログが使えない
GPIO14自由に利用可能。DAC2に接続なので無線利用時はアナログが使えない
GPIO18内部SPIで利用中。CSを他の端子に割り当ててSPIデバイスを接続可能
GPIO19自由に利用可能。アナログは利用できない
GPIO21内部のI2Cで利用。I2Cデバイスは接続可能
GPIO22内部のI2Cで利用。I2Cデバイスは接続可能
GPIO23内部SPIで利用中。CSを他の端子に割り当ててSPIデバイスを接続可
GPIO25自由に利用可能。DAC2に接続なので無線利用時はアナログが使えない
GPIO26自由に利用可能。DAC2に接続なので無線利用時はアナログが使えない
GPIO27自由に利用可能。DAC2に接続なので無線利用時はアナログが使えない
GPIO32Grove端子にも接続。I2C用となっているが他の用途にも利用可能
GPIO33Grove端子にも接続。I2C用となっているが他の用途にも利用可能
GPIO34マイク未使用時は他用途で利用可能
GPIO35入力専用だが自由に利用可能。無線利用時でもアナログが使える
GPIO36入力専用だが自由に利用可能。無線利用時でもアナログが使える
GPIO38内部SPIで利用中。CSを他の端子に割り当ててSPIデバイスを接続可能

他用途で使われている端子は、なるべく使わない方がいいです。無理をすれば他の用途でも使えますが、スピーカー端子などはスピーカーを無効化してからじゃないと使えないなどの、使うためのおまじないが必要になります。

Grove端子

GPIO32と33が出ています。これはM5StickCなどと同じで、比較的自由に利用できる端子となります。無線利用時にもアナログが使えるなど使いやすい端子ですが、端子が赤いのでI2C用と定義されています。

これは従来のM5Stackシリーズとの互換性を重視したと思うのですが、従来は内蔵I2Cで利用している21と22がポートAにつながっていました。そしてポートBに汎用、ポートCがUART用と定義されていました。

M5Stack Core2は現状Groveポートが1つしかなく、拡張することができません。そのためI2C専用の21、22を本体ポートにつなげてしまうと利用できるユニットがI2Cに限定されてしまいます。そこでM5Stack Core2では汎用的に利用できる32と33をポートAに接続し、ライブラリの初期値はI2Cで初期化してありますが、アナログやUARTに自分で初期化しなおせば他の用途で利用することが可能になっています。

今後M-BUSに接続して、Grove端子を拡張するモジュールが出てくると思いますが、21と22の内蔵I2Cと、13と14のUART用端子を最低限搭載するのだと思われます。拡張してしまうとポートA相当が本体ではなく、拡張側の21と22になり、32と33はポートB相当の役割になります。

M5Stack BASICとの互換性

紅樹タカオさんの、ラズパイ好きの日記に詳しい比較がありました!

まとめ

私はM5StickC専門だったので、いまいちM5Stackがわかりません。徐々に調査しながら使い方を調べていきたいと思います。

コメント