RaspberryPi Picoのピン情報
RaspberryPi Picoのピンに関するソフトエア/ハードウエア的な情報ピン配置
クリックで拡大 詳細資料は スイッチサイエンスの製品情報を参照 ※詳細資料はRaspberry財団のRP2040紹介ページにあります。 |
ソフトエア設定情報
ソフトエア的な定義情報I2C
mbedベースのボードライブラリでは SDA - GP6 、SLC - GP7 に割り当てられるadafruitベースでボードライブラリでは SDA - GP0、SLC - GP1 に割り当てられる
Wireクラスの初期設定でピン割り当てが変更可能...な事になっているが、現状(Ver 1.9.3)ではピン割り当ては機能しなかった。
プロトコル | 信号名 | ArduinoUNO |
---|---|---|
I2C (mBed) | SDA | GP6 |
SCL | GP7 | |
I2C (adafruit) | SDA | GP0 |
SCL | GP1 |
Wireクラス使用前に初期化が必要
adafruit | mbed |
---|---|
Wire.setSDA(0); // ピン割り当てが変更可能な筈ですが Wire.setSCL(1); // 現状、変更すると動かなくなります Wire.begin(); |
// ピン割り当てはクラス内で固定 // 現状外部から変更する手段はありません Wire.begin(); |
Arduinoでは初期化しなくても使えましたが、RaspberryPi PicoではWireクラス使用前に begin() メソッドを実行して初期化しないと
Wireクラスが動作しない模様
SPI
mbedベースのボードライブラリでは SCL - GP2 、MOSI - GP3 、 MISO - GP4 、 SS - GP5 に割り当てられるプロトコル | 信号名 | ArduinoUNO |
---|---|---|
SPI | SLCK (SCL) | GP2 |
MOSI (SI) | GP3 | |
MISO (SO) | GP4 | |
SS (CS) | GP5 |
mbedエースのボードライブラリでは SPI.setDataMode( ) 、 SPI.setBitOrder( ) が実装されていないようで
SPIの初期化はSPI.beginTransaction( ) を使用して行う。
SPISettings(SCLのクロック周波数, ビットモード, SPIモード)
#include <SPI.h>SCLのクロック周波数はArduinoUNOでは外部クリスタルの分周で最高8MHzであったが、RaspberryPi Picoの制限は不明
SPISettings settings = SPISettings(4000000, MSBFIRST, SPI_MODE0);
SPI.beginTransaction(settings);
4MHz位に設定しておくのが無難だと思う。速すぎるとSPIデバイスが対応できない。
BOOTSELボタン
BOOTSELボタン BOOTSELボタンは普通にタクトスイッチとして入力に使える。ハードウエア情報
ハードウエア的なスペック情報オンボードLED
GP25番がオンボードLEDに接続されている。GP25番は外部ピンには繋がっていないもよう。