ラズピコのピン:自由になりそうだけど定義で固定されている
Arduino IDEでのラズピコのI/Oピン、RP2040そのものの
ハードでは自由に割り振りできるようになっているんですが、
「pins_arduino.h」でほぼ固定されています。
ラズピコユーザー、まずはこのファイルを確認しと
きましょう。 ざっと、こんな具合。
// LEDs 基板上のLED
#define PIN_LED (25u)
#define LED_BUILTIN PIN_LED
// Analog pins アナログ入力
#define PIN_A0 (26u)
#define PIN_A1 (27u)
#define PIN_A2 (28u)
#define PIN_A3 (29u)
// Serial シリアル:定義はSerila1だけ
#define PIN_SERIAL_TX (0ul)
#define PIN_SERIAL_RX (1ul)
// SPI SPIも固定
#define PIN_SPI_MISO (16u)
#define PIN_SPI_MOSI (19u)
#define PIN_SPI_SCK (18u)
#define PIN_SPI_SS (17u)
// Wire I2Cも固定
#define PIN_WIRE_SDA (4u)
#define PIN_WIRE_SCL (5u)
汎用I/Oは、基本これ以外の場所を選んでという使い方に
なります。
残りの「Serial2、SPI1、I2C1」を使うには
どうすりゃいいの?
は、まだ調べ切れていません。
Serila2は「UART Serial2(4, 5, NC, NC);」で行けたけど。
※追記
ラズピコ基板の
水魚堂さんの回路図エディタBSch3-V部品ライブラリ
ピン名称、ちょっと追記しました。
左側がこれまでの。
真ん中が、Xサイズをちょい増やして、TX/RX、SPI、
I2C信号を追加。
空いているポートがわかりやすいかと。
右のは 秋月のAE-RP2040マイコンボード 。
ここからダウンロードしてください。
・BSch3V用パーツライブラり bsch3v_lib_230403.zip
この中の「SPECIAL.LB3」に入れてます。
ご自由にどうぞ。
※注記
これ、Arduino Mbed OS RP2040 Boads の環境での話。
「Earle F. Philhower, III」版だとどうなるのか、
Arduino IDE、触ってみます。
| 固定リンク
「BSch3V」カテゴリの記事
- Arduino UNOで3相モーターを回す(2023.05.01)
- ラズピコのピン:自由になりそうだけど定義で固定されている(2023.04.03)
- BSch3Vのパーツライブラリ:MOTOR_3COIL(2022.12.28)
- BSch3V CE3ファイルからコメント文字をピックアップ(2022.11.09)
- よく使うパラレル接続液晶(LCDモジュール)のコネクタ信号(2022.09.04)
「ラズパイ・ピコ」カテゴリの記事
- Help me! ラズピコ、Philhower版だとスケッチをアップロードできない(2023.04.12)
- Arduino IDEでのラズピコ開発環境 Philhower版が正解でしょう(2023.04.04)
- ラズピコのピン:自由になりそうだけど定義で固定されている(2023.04.03)
- ラズピコで2chシリアル入出力のテスト(2023.03.30)
- Arduino IDEでのラズピコ開発環境(2023.03.29)
コメント
> 残りの「Serial2、SPI1、I2C1」を使うにはどうすりゃいいの?
既に解決しているかもですが、RP2040の I2Cの 2側の I2C1の使い方は下記の感じでできました。I2CO、I2C1共にピン指定ができます。
TalkingToMyself.inoが参考になると思います。
https://github.com/earlephilhower/arduino-pico/blob/master/libraries/Wire/examples/TalkingToMyself/TalkingToMyself.ino
// Wire = I2C0
#define I2C0_SDA D0 /* GPIO 0 */
#define I2C0_SCL D1 /* GPIO 1 */
// Wire1 = I2C1
#define I2C1_SDA D2 /* GPIO 2 */
#define I2C1_SCL D3 /* GPIO 3 */
// Wire = I2C0
Wire.setSDA(I2C0_SDA);
Wire.setSCL(I2C0_SCL);
// Wire1 = I2C1
Wire1.setSDA(I2C1_SDA);
Wire1.setSCL(I2C1_SCL);
http://www.neko.ne.jp/~freewing/cpu/rp2040_i2c_master_slave/
投稿: FREE WING | 2023年4月16日 (日) 00時54分
情報ありがとうございます。
こちらの環境、現在、Philhower版でのアップロードができない状態でして、まずはこれの解決が先・・・どうしたもんか悩み中。
http://igarage.cocolog-nifty.com/blog/2023/04/post-9bf0be.html
投稿: 居酒屋ガレージ店主(JH3DBO) | 2023年4月17日 (月) 09時26分