🛠 Concevoir le séquenceur d'alimentation d'une carte porteuse CM3
Objectifs
Le CM3 exige six tensions, toutes obligatoires même inutilisées : VBAT (entrée SMPS cœur, 2,5-5,0 V, capacité minimale 3500 mW), 3V3 (au moins 250 mA), 1V8 (au moins 250 mA), VDAC (2,5-3,3 V ; du 2,5-2,8 V propre uniquement si TV-out, sinon relié à 3V3), GPIO0-27 VREF et GPIO28-45 VREF (1,8-3,3 V, au moins 50 mA). Les alimentations doivent monter en tension du plus haut au plus bas (ou simultanément sans croisement) : sinon les diodes internes du SoC se polarisent en direct et peuvent déclencher un latch-up destructeur (datasheet RP-008161-DS §7). Ce tutoriel valide un design de carte porteuse au multimètre puis sous logiciel.
Matériel
- Carte porteuse custom (ou CMIO3 pour s'exercer) + CM3
- Multimètre, idéalement oscilloscope 4 voies pour observer les rampes
- Alimentation 5 V capable de 3,5 W sur VBAT ; régulateurs 3V3 et 1V8 de 250 mA chacun
- Datasheet RP-008161-DS §7 et Tables 7-8 sous la main
Code complet
# 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
Vérification attendue
vcgencmd get_throttled renvoie throttled=0x0 au repos comme en charge : aucun bit de sous-tension (0x1) ni de bridage thermique (0x4/0x8) n'est levé. À l'oscilloscope, les rampes montent sans croisement descendant. Le module enchaîne 100 cycles marche/arrêt sans non-démarrage.
Erreurs fréquentes
- Relier VDAC à une alimentation bruitée partagée avec des moteurs : dès que le TV-out est utilisé, VDAC exige du 2,5-2,8 V propre ; sinon le relier à 3V3, jamais le laisser flottant.
- N'alimenter que la banque GPIO utilisée : les DEUX rails VREF de banque doivent être présents même si aucune broche n'est employée.
- Rampe 1V8 avant 3V3 : un croisement polarise les diodes de protection et peut provoquer un latch-up — c'est la cause de panne la plus sournoise des cartes custom.
- Régulateur VBAT sous-dimensionné : le seuil officiel est 3500 mW de capacité (bien plus que le CM1 et ses 2 W), un vieux design CM1 peut ne pas suivre.
- Automatiser EMMC_DISABLE_N avec un MOSFET mal choisi : la commande EMMC_EN_N_1V8 se fait en 1,8 V, prévoir des seuils de grille adaptés (datasheet §8).
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash