この記事は?
「ラズパイ5、GPIO が遅いって話があったけどどうなの?」 を、ユーザー視点で GPIO / I2C / SPI / UART を使って試してみたポストのまとめです。
主にラズパイ 5 と 4 の比較です。
(素人なので、調べ方や結果が正しいかわかりませんが、あくまで発売間もない現時点での 1ユーザーの体験 を記しておきます。)
どうなの?
なんかラズパイ5 の CPU (BCM2712) は RP1 とかいうチップと PCIe Gen2 x4 でつながっていて、その RP1 が GPIO 担当らしい?
うん、よくわからん
よし、とりあえず使ってみよう
概略
Raspberry Pi 5 (bookworm 64bit) (以下、Pi5)
Raspberry Pi 4 (bullseye 64bit) (以下、Pi4)
① GPIO 繰り返し Python コード
Pi5: 400 kHz (GPIO 出力 800 kHz ?) 〇
Pi4: 95 kHz (GPIO 出力 190 kHz ?)
② I2C baudrate 設定
Pi5: 100 kHz - 1.0 MHz
Pi4: 100 kHz - 3.4 MHz 〇
③ SPI Clock データ化けせず受信できる最大実行速度
Pi5: 67 MHz 〇
Pi4: 50 MHz
④ PWM 設定可能周波数
Pi5: 34 nsec period -> オシロ上で 15.36 MHz ?
Pi4: 10 nsec period -> オシロ上で35.76 MHz ? 〇
⑤ UART 通信速度 (PySerial)
Pi5 / Pi4: ともに 2.5 Mbps 程? 〇
ライトユーザーの自分からすると、ラズパイ5 で十分な速度が用意されているようでした。
良かった~!
結果まとめ
① GPIO
※ ラズパイ4 で使っていた pigpio ライブラリが現段階ではラズパイ5 で非対応?これだけ残念。
libgpiod や gpiozero といったライブラリを使えば良いみたいです。
参考:
https://x.com/devemin/status/1757384812644757789?s=20
② I2C
③ SPI
④ PWM
※ gpiozero ライブラリで簡単に PWM できました。
⑤ UART
気になるところ
個人的感想
オマケ
以上です。
ありがとうございました!