🛠 GPIO du CM4 : comprendre les banks 1,8 V / 3,3 V avant de câbler
Objetivos
Encender un LED con gpiozero comprendiendo la particularidad GPIO del CM4: sus 28 señales GPIO aceptan una señalización de 1,8 V o 3,3 V por banco, estando el pin VGPIO_VREF de cada banco conectado al riel seleccionado — a diferencia del Pi 4B, que está fijo en 3,3 V. Verificará la tensión real del banco antes de conectar un módulo, y aprenderá que la capacidad de conducción por defecto es de 4 mA (configurable entre 1 y 8 mA) con resistencias pull internas de aproximadamente 47 kΩ.
Material
- 1 × CM4 (variante a elección) sobre una IO Board CM4, con Raspberry Pi OS de 64 bits iniciado
- 1 LED + resistencia de 330 Ω, placa de pruebas, cables
- El jumper/seleccionador de tensión GPIO de la IO Board (posición 3,3 V para este tutorial)
- Conocer los pines del Banco 2 reservados por el módulo (eMMC, hot-plug HDMI, LED ACT/boot USB): no aparecen en el conector y no deben ser redirigidos
Código completo
# Installer les outils et repérer la config des broches
sudo apt update && sudo apt install -y pinctrl gpiod-tools
pinctrl -p | grep -E '^(17|22|27)' # fonction et pull de chaque broche
gpioget gpiochip0 17 # état logique lu sur GPIO17
#!/usr/bin/env python3
# blink_cm4.py — 10 clignotements sur GPIO17 (bank 0 de l'IO Board en 3,3 V)
# AVANT de câbler : vérifier la tension du bank (VGPIO_VREF) sur sa carte porteuse !
from gpiozero import LED
from time import sleep
led = LED(17)
for _ in range(10):
led.on; sleep(0.25)
led.off; sleep(0.25)
print("OK — GPIO17 piloté")
Verificación esperada
El LED parpadea 10 veces a 2 Hz. pinctrl -p muestra gpio17 como gpio output durante la ejecución, y el script finaliza sin lanzar excepciones. En una placa base personalizada, medir con un multímetro entre el pin VGPIO_VREF del banco y GND debe dar 3,3 V (o 1,8 V si se ha seleccionado el riel de 1,8 V).
Errores frecuentes
- Conectar un módulo de 3,3 V a un banco configurado en 1,8 V: el nivel alto no supera los 1,8 V y el módulo no responde (o peor, al revés, un módulo de 1,8 V tolera mal una señal de 3,3 V).
- Olvidar la resistencia en serie con el LED: se supera la capacidad de conducción por defecto (4 mA).
- Usar pines del Banco 2: están reservados por el módulo (eMMC, HDMI hot-plug, ACT/boot) y no se pueden romper… pero tampoco están disponibles.
- Buscar los pines del conector de 40 pines de un Pi estándar: en el CM4, todo pasa por los dos conectores de 100 pines o la huella HAT de la IO Board.
Otros tutoriales para esta placa
- Premier démarrage d'un CM4 Lite depuis la microSD de l'IO Board
- Basculer le Wi-Fi du CM4 sur l'antenne externe U.FL (dtparam=ant2)
- Bootloader EEPROM du CM4 : maîtriser BOOT_ORDER via usbboot
- Ajouter une RTC au CM4 (PCF8523 sur I2C1 via dt-blob)
- Son sur CM4 : DAC I2S/PCM (PCM5102) sans prise jack
- Horodatage industriel : PTP IEEE 1588 sur le PHY Ethernet du CM4
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash