ゆるく楽しむプログラミング

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>
SPISettings settings = SPISettings(4000000, MSBFIRST, SPI_MODE0);
SPI.beginTransaction(settings);
SCLのクロック周波数はArduinoUNOでは外部クリスタルの分周で最高8MHzであったが、RaspberryPi Picoの制限は不明
4MHz位に設定しておくのが無難だと思う。速すぎるとSPIデバイスが対応できない。

BOOTSELボタン

BOOTSELボタン BOOTSELボタンは普通にタクトスイッチとして入力に使える。

ハードウエア情報

ハードウエア的なスペック情報

オンボードLED

GP25番がオンボードLEDに接続されている。
GP25番は外部ピンには繋がっていないもよう。