Intégrité de puissance PCB : DC PI du PDN du STM32MP215F-DK (MB2059) avec deux analyseurs de puissance
KiPI et FYPA sont deux analyseurs d’intégrité de puissance open source, tous deux très bons. KiPI, maintenu par Drew Maatman (github.com/drewsum/KiPI), est orienté KiCad et lit aussi l’ODB++ ; il est donc devenu la base pour déboguer et valider le flux de Tomachie vers ces outils. FYPA, maintenu par anarthrous-eda (github.com/anarthrous-eda/FYPA), est orienté Altium.
Nous avons utilisé le PCB MB2059 de STMicroelectronics, car il est fourni à la fois avec un .PcbDoc Altium et une sortie ODB++. Nous avons fourni l’ODB++ à KiPI avec le pdn.json de Tomachie, et FYPA a utilisé le .PcbDoc avec ce même pdn.json de Tomachie.
Le but de l’exercice n’était pas de déterminer si l’un est meilleur que l’autre, mais d’obtenir une validation et de trouver des erreurs dans les deux outils ainsi que dans Tomachie. Résultat : nous avons contribué des corrections en amont aux deux projets, six pull requests fusionnées dans KiPI et une dans FYPA, et nous partageons les résultats ici. Bien qu’ils utilisent des solveurs différents et des données PCB différentes (ODB++ et .PcbDoc), les deux concordent désormais à 0,2 mV près sur chaque rail.
Tomachie a lu le schéma de la MB2059 et ses fiches techniques, puis a écrit un seul fichier d’arbre d’alimentation : chaque rail, son régulateur, la tolérance de sortie du régulateur, les broches et le courant maximal de chaque charge, et la tension d’alimentation minimale que la fiche technique de chaque charge autorise. KiPI et FYPA ont ensuite résolu ce même fichier sur le cuivre de la carte elle-même.
Pire cas partout : chaque régulateur au bas de sa plage de sortie selon sa fiche technique, chaque charge à son courant maximal, l’entrée USB à son minimum. La question, rail par rail, est de savoir si la tension aux broches de la charge reste au-dessus du minimum de sa fiche technique.
Rapport complet du STM32MP215F-DK (MB2059)
Résultats DC PI, rail par rail
| Rail | Consigne (V) | Bas du régulateur (V) | Charge la plus critique | Minimum de la charge (V) | KiPI (V) | FYPA (V) | KiPI − FYPA (mV) | Marge (mV) | Résultat |
|---|---|---|---|---|---|---|---|---|---|
| VDDCORE | 0.82 | 0.8077 | U7 STM32MP215 | 0.792 | 0.8034 | 0.8034 | 0.0 | +11.4 | PASS |
| VDDCPU | 0.80 | 0.7880 | U7 STM32MP215 | 0.768 | 0.7861 | 0.7861 | 0.0 | +18.1 | PASS |
| VDD2_DDR | 1.10 | 1.0835 | U7 STM32MP215 | 1.060 | 1.0793 | 1.0795 | −0.2 | +19.3 | PASS |
| VDD1_DDR | 1.80 | 1.7280 | U8 LPDDR4 | 1.700 | 1.7273 | 1.7271 | +0.2 | +27.1 | PASS |
| VDDA1V8 | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7262 | 1.7260 | +0.2 | +16.0 | PASS FYPA : marge faible |
| VDDA1V8_AON | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7272 | 1.7271 | +0.1 | +17.1 | PASS FYPA : marge faible |
| VDDIO | 3.30 | 3.2300 | U7 STM32MP215 | 2.700 | 3.2282 | 3.2281 | +0.1 | +528.1 | PASS |
| 3V3 | 3.30 | 3.1530 | U15 LAN8742A | 3.000 | 3.1043 | 3.1042 | +0.1 | +104.2 | PASS |
Marge = la plus basse des deux tensions calculées moins le minimum de la fiche technique de la charge. FYPA signale une charge dont la marge est inférieure à 1 % de la valeur nominale du rail (son réglage par défaut) ; KiPI indique la tension et la réserve sans bande d’alerte.
Minimums des charges : STM32MP215 tableau 17 p. 87 ; Micron MT53E LPDDR4 VDD1 / VDD2 ; LAN8742A fonctionnement en 3,3 V. Plages des régulateurs : précision de sortie du STPMIC2 (±1,5 % buck, ±4 % LDO1, ±2 % LDO2 / 5 / 6), ST1S31 pour 3V3.
Ce que montre le tableau
Les deux analyseurs de puissance concordent à 0,2 mV près sur chaque rail. Ils ne partagent aucun code de calcul ; la concordance vient de ce que les deux lisent le même arbre d’alimentation et le même cuivre.
L’essentiel de chaque marge est consommé par la tolérance du régulateur, pas par le cuivre. Le LDO de 1,8 V est spécifié à ±4 %, son bas de plage (1,728 V) n’est donc que 18 mV au-dessus du minimum de 1,71 V du STM32MP215 avant tout cuivre. Le cuivre de la carte en prend environ 2 mV (dont 0,5 mV dans le retour de masse), il reste 16–17 mV : sous la ligne de 1 % de FYPA, un signalement justifié sur le choix du régulateur. VDDCORE a la plus petite marge en millivolts (11,4 mV) et passe dans les deux, car cela représente 1,4 % de ses 0,82 V.
La plus forte chute dans le cuivre de la carte est sur 3V3 : le PHY Ethernet LAN8742A consomme 139 mA à son point de fonctionnement le plus défavorable (10BASE-T avec trafic, courant d’émission à travers le transformateur Ethernet, fiche technique tableau 5-5 p. 105), dont 93 mA traversent la ferrite L4 vers ses broches d’alimentation analogique. Ce chemin chute de 48 mV et laisse 3,104 V sur U15 pour un minimum de 3,0 V. Chaque charge sur 3V3 porte un courant issu de sa fiche technique : 213,6 mA au total.
D’abord la DC PI, ensuite l’AC PI
Il s’agit ici de DC PI : la chute de tension au courant du pire cas, que chaque rail doit d’abord respecter. L’AC PI examine l’impédance du PDN en fréquence par rapport à une impédance cible, pour les échelons de charge et le découplage. KiPI peut aussi balayer l’impédance du PDN ; l’AC PI de cette carte est la prochaine étape.
Rapports
- Rapport KiPI, courant maximal · 36 MB, HTML autonome
- Rapport KiPI, courant typique · 36 MB
- Rapport FYPA, courant maximal · 1,7 MB
- Rapport FYPA, courant typique · 1,7 MB
- Les quatre rapports · zip, 32 MB
KiPI, maintenu par Drew Maatman : l’analyseur open source d’intégrité de puissance pour KiCad
FYPA, maintenu par anarthrous-eda : l’outil open source d’intégrité de puissance DC pour Altium