2
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?

More than 3 years have passed since last update.

Raspberry Pi Pico / XIAO RP2040 ArduinoでI2Cを使う

Posted at

自分への教訓

ボード定義をしっかり確認しなければ...

Raspberry Pi Pico を Arduino で使う場合

デフォルトは
SDA = GP4 = ボードの6ピン
SCL = GP5 = ボードの7ピン

に接続します。

image.png

pinmode_arduino.h
// Wire
#define PIN_WIRE_SDA        (4u)
#define PIN_WIRE_SCL        (5u)

こちらのかたの記事ではGPIO6とGPIO7になっていたのですが,

私が使った環境ではそこから変更になっていたようです。確認した場所は以下です。

~/.platformio/packages/framework-arduino-mbed/variants/RASPBERRY_PI_PICO/pinmode_arduino.h

~/Library/Arduino15/packages/arduino/hardware/mbed_rp2040/3.0.1/variants/RASPBERRY_PI_PICO/pinmode_arduino.h

I2Cで使うピンを変更できそうな記事も見かけたのですが,私の環境では動きませんでした... なぜだろう

もともと u8g2ライブラリーでSSD1306を使いたかったのですが,上記の接続に半日かけてやっと気づき,無事動くようになりました。

main.cpp
#include <Arduino.h>
#include <U8x8lib.h>

U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); 	      

void setup(void)
{
  u8x8.begin();  
}

void loop(void)
{
  u8x8.setCursor(0, 0);
  u8x8.setFont(u8x8_font_8x13B_1x2_f);
  u8x8.print("Hello World!\r\n");

  delay(2000);
  u8x8.clear();
}

XIAO RP2040 で I2C を使う

もともとこちらの方の記事を参考に動かそうとしていたのですが,すっと動かずに苦戦しました...

image.png

そもそも
GPIO6 = SDA
GPIO7 = SCL

として引き出されていて,Raspberry Pi Picoのデフォルトである GPIO4/GPIO5 は使えません。

~/Library/Arduino15/packages/Seeeduino/hardware/rp2040/2.7.2/variants/Seeed_XIAO_RP2040/pins_arduino.h
// Wire
#define SDA        (6u)
#define SCL        (7u)

なので,GPIO6/GPIO7にI2Cを接続しつつ,XIAO RP2040 専用のボード定義を使います。

これを Arduino IDE でインストール,無事I2Cが扱えました。拡張ボードのSSD1306が動き出しました。

Platformioで作業したかったのですが,

  • Raspberry Pi Picoとしてビルドすると,上記の通り,I2CはGPIO4/GPIO5を使うことになりますので,XIAO RP2040 ではうまく動きません。
  • I2Cピン定義変更を試みたのですが,うまくいってません。
  • XIAO RP2040のピン定義を自力で追加すればいいのかな? 気が向いたらやってみようかな...
  • https://qiita.com/WhiteGrouse/items/10c36e382efd2872d267
2
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
2
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?