0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

USBホストをM5core2で利用するときに困ったこと

Posted at

M5core2でつかえない..?

自分の使い方が悪いのでしょうが、こちらを利用しようとしたときにうまく使えなかったので、ほかにも困っている人がいればお役に立てることを願って記事にしました。
正規の方法でもっと簡単に利用できるんだよという方法をご存じの方はコメントいただけると幸いです。

この製品の正規のライブラリは以下ですが、

AdafruitのtinyUSBをベースに作成されているようで、サンプルスケッチのUSBHostの初期化時にSPIのピンをcore2用に設定しても、ADCと機能が競合するというメッセージが出るだけで使えませんでした。
core2で使用する場合にも具体的な例がないですし設定方法がよくわかりませんでした。

USB Host シールド用のライブラリを改造

core2用の製品も、Aruduino用のこちらのシールドに使われているのも同じICです。
こちらは利用経験があり、ライブラリも自分にとっては見やすかったのでこちらを使用できるように手を加えました。

ライブラリはこちらで、

core2で使用する場合、ピン定義が異なるため、以下の修正を行いました。

avrpins.hの1929行目から1941行目を次のように変更します。

// Pinout for ESP32 dev module

MAKE_PIN(P0, 0);
MAKE_PIN(P1, 1); // TX0
MAKE_PIN(P10, 10); // TX1
MAKE_PIN(P3, 3); // RX0
MAKE_PIN(P21, 21); // SDA
MAKE_PIN(P22, 22); // SCL
- MAKE_PIN(P19, 19); // MISO
+ MAKE_PIN(P38, 38); // MISO はcore2では38に変更されています
MAKE_PIN(P23, 23); // MOSI
MAKE_PIN(P18, 18); // SCK
- MAKE_PIN(P5, 5); // SS
+ MAKE_PIN(P19, 19); // SS は GPIOの19に設定します
- MAKE_PIN(P17, 17); // INT
+ MAKE_PIN(P27, 27); // INT は使用しませんが他の機能と競合しないように空いているGPIOに設定しました。

次に、UsbCore.hの54行目を次のように変更します。

#elif defined(ESP32)
- typedef MAX3421e<P5, P17> MAX3421E; // ESP32 boards
+ typedef MAX3421e<P19, P27> MAX3421E; // 先ほど変更したピン番号に変更する

これで使用できるようになるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?