80623


Arduino
のUSBホストシールドで9,10ピンを使いたくないので，プログラムを書き換えたいです．このライブラリのどこにその変数宣言があるか分かりますでしょうか？

<https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/PS4BT/PS4BT.ino>

参考までにシールドの信号とピンはこういう対応です．  
SS D10  
INT D9

また，該当コードはArduino IDEで、スケッチ＞ライブラリをインクルード ＞ライブラリを管理＞USB Host Shield Library 2.0＞
Bluetooth＞PS4BT

でも誰でも得られます．よろしくお願いいたします


CC BY-SA 4.0
2021-08-05T13:48:17.763
80621
2021-08-05T17:32:03.233
2021-08-05T17:06:07.640
3060
41334
question
arduino
Arduino のUSBホストシールドで9,10ピンを使いたくないので，プログラムを書き換えたいです．


USBホストシールドの標準構成として、9ピン、10ピンはUSBホストコントローラのチップに接続されており、そのチップとSPIで通信するために必要な割り込みピン(INT)とChipSelectピン(SS)になります。

「9,10ピンを使いたくない」の意味が分かりませんでしたが、基板上で他のピンに結線を変更しているので、ピンアサインの変更方法が知りたいという質問だと解釈して以下に回答します。

`MAX3421E` オブジェクトが `UsbCore.h` に定義されています。  
`MAX3421e` クラスに `SPI_SS`ピンと`INTR`ピンを渡しています。  
ボードやプラットフォームごとに定義されており、以下はArduino UNO用の設定例です。

[code]

    typedef MAX3421e<P10, P9> MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.), Intel Edison, Intel Galileo 2 or Teensy 2.0 and 3.x
    
[/code]

デフォルトでは`P10`, `P9`を使用していますが、ここに渡すピン番号を変更してください。

`P10` `P9` といったクラスは、`avrpins.h` に定義されています。  
`MAKE_PIN` マクロを使ってピンごとにクラスを定義しているのが分かると思います。  
ここもボードやプラットフォームごとに定義が分かれています。

最後に、SPIの4ピンは、`usbhost.h` に定義されていて、  
基板上の結線に合わせて、CLK, MOSI, MISO, SS ピン番号を指定します。

[code]

    typedef SPi< P13, P11, P12, P10 > spi;
    
[/code]

SSをピンP10から変更したい場合はこちらも適切なピン番号に変更する必要があります。

ご参考になれば。


CC BY-SA 4.0
2021-08-05T17:32:03.233
80623
2021-08-05T17:32:03.233
31378
80621
answer