🛠 Concevoir le séquenceur d'alimentation d'une carte porteuse CM3
Objetivos
El CM3 exige seis tensiones, todas obligatorias aunque no se utilicen: VBAT (entrada SMPS del núcleo, 2,5-5,0 V, capacidad mínima 3500 mW), 3V3 (al menos 250 mA), 1V8 (al menos 250 mA), VDAC (2,5-3,3 V; 2,5-2,8 V limpio únicamente si se usa TV-out, si no, conectado a 3V3), GPIO0-27 VREF y GPIO28-45 VREF (1,8-3,3 V, al menos 50 mA). Las fuentes de alimentación deben subir de tensión de la más alta a la más baja (o simultáneamente sin cruzarse): de lo contrario, los diodos internos del SoC se polarizan en directa y pueden provocar un latch-up destructivo (datasheet RP-008161-DS §7). Este tutorial valida un diseño de placa portadora con un multímetro y luego mediante software.
Material
- Placa portadora personalizada (o CMIO3 para practicar) + CM3
- Multímetro, idealmente osciloscopio de 4 canales para observar las rampas
- Fuente de alimentación de 5 V capaz de 3,5 W en VBAT; reguladores 3V3 y 1V8 de 250 mA cada uno
- Datasheet RP-008161-DS §7 y Tablas 7-8 a mano
Código completo
# 1. Avant d'insérer le module : vérifier chaque rail au connecteur SODIMM
# (multimètre, broches VBAT / 3V3 / 1V8 / VDAC / VREF0 / VREF1).
# Attendu : VBAT 4,75-5,25 V ; 3V3 dans ±5 % ; 1V8 dans ±5 % ;
# VDAC = 3V3 (pas de TV-out) ; VREF0/VREF1 = niveau logique choisi.
# 2. Observer l'ordre de rampe à l'oscilloscope : aucune tension basse ne
# doit dépasser une tension haute pendant la montée (risque de latch-up).
# 3. Une fois le module démarré, vérifier l'absence de sous-tension :
sudo vcgencmd get_throttled # attendu : throttled=0x0
sudo vcgencmd measure_volts core
# 4. Test de charge : le SMPS VBAT ne doit pas décrocher sous 4 threads
sudo apt install -y stress-ng
stress-ng --cpu 4 --timeout 60s &
watch -n 1 vcgencmd get_throttled
Verificación esperada
vcgencmd get_throttled devuelve throttled=0x0 tanto en reposo como bajo carga: ningún bit de subtensión (0x1) ni de limitación térmica (0x4/0x8) está activado. En el osciloscopio, las rampas suben sin cruces descendentes. El módulo encadena 100 ciclos de encendido/apagado sin fallos de arranque.
Errores frecuentes
- Conectar VDAC a una fuente de alimentación ruidosa compartida con motores: en cuanto se usa el TV-out, VDAC requiere 2,5-2,8 V limpio; si no, conectarlo a 3V3, nunca dejarlo flotante.
- Alimentar solo el banco GPIO utilizado: deben estar presentes los DOS rieles VREF de banco aunque no se use ningún pin.
- Rampa de 1V8 antes que 3V3: un cruce polariza los diodos de protección y puede provocar un latch-up — es la causa de fallo más traicionera de las placas personalizadas.
- Regulador VBAT subdimensionado: el umbral oficial es una capacidad de 3500 mW (mucho más que el CM1 y sus 2 W), un diseño antiguo para CM1 puede no ser suficiente.
- Automatizar EMMC_DISABLE_N con un MOSFET mal elegido: el comando EMMC_EN_N_1V8 se realiza a 1,8 V, prever umbrales de puerta adecuados (datasheet §8).
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash