XIAO RP2040のI2C悪戦苦闘の記
表記Seeed XIAO RP2040(以下XIAO2040と表記)のI2C Master - Slave通信がうまく動かずに苦労しました。Master-Slaveが駄目というよりも、Wire1が駄目です。テストには「TalkingToMyself」を使っています。マイコン1台で2組のI2Cを使い片方をマスター他方をスレーブとして通信するやつです。ボード設定はPhilhower版Arduinoを使っています。まだ完全に切り分けができていないのですが、ボード設定としてSeeed XIAO RP2040を使うとうまくいきません。以下、とりあえず動かす方法です。XIAO2040固有の機能は使えなくなるかもしれませんが、ボードとしてRaspberry Pi Picoを指定して、以下のピン番号に置き換えて使用してください。たとえば、I2C0がアサインされたGPIO0, GPIO1を使うならば、D6 = 0u, D7 = 1uと記載されているので、Wire.setSDA(0); Wire.setSCL(1);と記述し実際の配線はD6とD7を使います。なんでこんなややこしいことをしてるんでしょうね。実際、XIAO2040を選んで Serial.println(D6);を実行すると0が出力されます。つまり、他のArduinoのつもりでdigitalWrite(6)って書いても駄目でLチカですらうまく動かないんですよね……。もう一つ、WireにはI2C0、Wire1にはI2C1に属するGPIOピンを指定してください。PR2040のI2Cは、I2C0とI2C1の2つのグループがあります。Pi Pi
0