🛠 GPIO du CM5 côté RP1 : force de conduite, budget 50 mA et broches pièges

Raspberry Pi Compute Module 5 (compute-module-5) · intermediaire · Schéma : IMG-compute-module-5-intermediaire-1-rp1-gpio-drive-50ma.svg — CM5 ouvert en vue schématique montrant la puce RP1 à côté du BCM2712 ; les GPIO0–27 sortent de RP1 vers les connecteurs ; un multimètre mesure le courant total de la nappe avec la limite 50 mA annotée ; les broches GPIO0/1 (bus ID) et GPIO29 (Fan_Tacho) sont marquées d'un point d'attention.

Objectifs

Sur le CM5, le GPIO n'est plus câblé sur le SoC mais sur RP1, la puce d'E/S de Raspberry Pi (« un chip entier en plus sur la carte par rapport au CM4 »), exactement comme sur le Pi 5. Conséquences pratiques : le contrôleur gpiochip0 s'appelle rp1, la force de conduite est configurable en 2/4/8/12 mA, les pull internes valent ~55 kΩ, et surtout le courant GPIO cumulé ne doit pas dépasser 50 mA sur l'ensemble des 28 broches. Ce tuto inventorie le contrôleur, blink une LED, button une entrée, et calibre vos choix de pilotage.

Matériel

Code complet

# 1) Prouver que le GPIO vient de RP1
sudo pinctrl -p | head -8            # gpiochip0 : « rp1 »
gpioinfo gpiochip0 | sed -n '1,14p'

# 2) Blink + bouton (gpiozero fonctionne inchangé, comme sur Pi 5)
cat > /tmp/rp1_demo.py <<'EOF'
from gpiozero import LED, Button
from signal import pause
led = LED(17)          # LED + 470 ohm vers GND
btn = Button(4)        # bouton vers GND, pull-up interne ~55 kohm
btn.when_pressed = led.on
btn.when_released = led.off
pause
EOF
python3 /tmp/rp1_demo.py

Vérification attendue

pinctrl -p identifie gpiochip0 = rp1 (sur CM4 c'était le SoC BCM2711) ; la LED s'allume pendant l'appui ; gpioget gpiochip0 4 vaut 1 au repos (pull-up interne). Calcul de budget : une LED à 5 mA × 8 broches = 40 mA, on est près du plafond de 50 mA — le datasheet impose aussi VOL ≤ 0,4 V au courant du réglage choisi.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels