🛠 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.

Objetivos

En el CM5, el GPIO ya no está conectado al SoC, sino a RP1, el chip de E/S de Raspberry Pi («un chip adicional completo en la placa en comparación con el CM4»), exactamente igual que en el Pi 5. Consecuencias prácticas: el controlador gpiochip0 se llama rp1, la fuerza de conducción es configurable en 2/4/8/12 mA, las resistencias de pull internas valen ~55 kΩ y, sobre todo, la corriente GPIO acumulada no debe superar los 50 mA en el conjunto de los 28 pines. Este tutorial inventaría el controlador, hace parpadear un LED, lee una entrada de botón y calibra sus opciones de control.

Material

Código completo

# 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

Verificación esperada

pinctrl -p identifica gpiochip0 = rp1 (en el CM4 era el SoC BCM2711); el LED se enciende mientras se pulsa; gpioget gpiochip0 4 vale 1 en reposo (pull-up interno). Cálculo del presupuesto: un LED a 5 mA × 8 pines = 40 mA, estamos cerca del límite de 50 mA — la hoja de datos también impone VOL ≤ 0,4 V a la corriente del ajuste elegido.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales