🛠 Concevoir le séquenceur d'alimentation d'une carte porteuse CM3

Raspberry Pi Compute Module 3 (CM3 / CM3L) · avance · Schéma : carte porteuse custom avec les six rails d'alimentation obligatoires du CM3 — VBAT (2,5-5,0 V), 3V3, 1V8, VDAC, VREF bank0, VREF bank1 — et l'ordre de rampe du plus haut voltage vers le plus bas pour éviter le latch-up.

Objectives

The CM3 requires six voltages, all mandatory even if unused: VBAT (core SMPS input, 2.5–5.0 V, minimum capacity 3500 mW), 3V3 (at least 250 mA), 1V8 (at least 250 mA), VDAC (2.5–3.3 V; clean 2.5–2.8 V only if TV-out is used, otherwise connect to 3V3), GPIO0-27 VREF and GPIO28-45 VREF (1.8–3.3 V, at least 50 mA). The power supplies must ramp up from highest to lowest voltage (or simultaneously without crossing); otherwise, the SoC's internal diodes become forward-biased and may trigger destructive latch-up (datasheet RP-008161-DS §7). This tutorial validates a carrier board design using a multimeter and then via software.

Hardware

Complete Code

# 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

Expected Verification

vcgencmd get_throttled returns throttled=0x0 both at idle and under load: no undervoltage bit (0x1) or thermal throttling bit (0x4/0x8) is set. On the oscilloscope, the ramps rise without downward crossing. The module completes 100 power-on/off cycles without failing to start.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials