PCB Alimentation
Mis à jour pour la version v2 commandée le 8 mars 2025.
Introduction
Le PCB alimentation 2025 du robot fait le lien entre les différentes sources d'alimentation et les composants du robot.
La release concernée par cette documentation est ici : Release
Les fonctionnalités proposées sont :
Jusqu'à 3 sources, hot pluggable
Chute de tension limitée lors du changement de source
Protection contre les tensions inverses en entrée
Sélection de la meilleure source, protection contre sur et sous tensions
Coupe-circuit général et arrêt d'urgence uniquement sur certaines sorties
Convertisseurs de tension désactivés par défaut, pilotés par STM32
Mesures de tension/courant/puissances sur chaque sortie
Mesure du taux de charge des batteries connectées
Mesure de la température de la carte
Protocole USB-PD sur la sortie 5,15V
Remontée d'info, GPIOs, STM32 programmable et debuggable via SWD
Buzzer désactivable via un switch
Besoins
Les besoins qui nous ont amené à réaliser un PCB alimentation pour le robot sont :
Réduction du câblage
Coupe-circuit général
Coupe-circuit ciblé sur appui bouton d'arrêt d'urgence
Plusieurs tensions d'alimentation différentes selon les composants
Capacité d'alimenter le robot sur secteur ET/OU sur batterie
Spécifications
Le PCB alimentation a été réalisé dans le but d'implémenter les spécifications suivantes :
Le PCB doit accepter au moins deux sources de puissance.
Le passage d'une source à l'autre ne doit pas engendrer de chute de tension risquant de faire redémarrer la raspberrypi.
Au moins une des sources d'alimentation doit être destinée au secteur.
La source d'alimentation destinée au secteur doit accepter des tensions de 12V et 24V.
Au moins une des sources d'alimentation doit être destinée à une batterie.
La source d'alimentation destinée à une batterie doit accepter une tension entre 11,1V et 13V.
Les sources d'alimentation doivent permettre un courant d'alimentation de 16A.
Le PCB doit permettre de connecter un bouton d'arrêt d'urgence en NC et en NO.
L'appui sur le bouton d'arrêt d'urgence doit provoquer la coupure des sorties spécifiées, de manière immédiate.
Les tensions doivent rester entre les bornes -48v et 48V.
Le PCB doit générer une sortie avec une tension de 5V +-10%.
La sortie 5V du PCB doit avoir une puissance supérieure à 25W.
La sortie 5V doit proposer au moins deux connecteurs permettant un courant de 5A.
La sortie 5V doit proposer des connecteurs mâles Dupont pour des connexions faciles.
La sortie 5V doit être coupée immédiatement quand le bouton d'arrêt d'urgence est enfoncé.
Le PCB doit générer une sortie avec une tension de 5,15V +-1%.
La sortie 5,15V du PCB doit avoir une puissance supérieure à 40W.
La sortie 5,15V doit proposer au moins un connecteur permettant un courant de 5A.
La sortie 5,15V doit proposer au moins un connecteur USB type C.
La sortie 12V doit rester active quand le bouton d'arrêt d'urgence est enfoncé.
Le PCB doit générer une sortie avec une tension de 12V +-1%.
La sortie 12V du PCB doit avoir une puissance supérieure à 40W.
La sortie 12V doit proposer au moins deux connecteurs permettant un courant de 5A.
La sortie 12V doit proposer des connecteurs mâles Dupont pour des connexions faciles.
La sortie 12V doit être coupée immédiatement quand le bouton d'arrêt d'urgence est enfoncé.
Le PCB doit générer une sortie avec une tension de 24V +-1%.
La sortie 24V du PCB doit avoir une puissance supérieure à 25W.
La sortie 24V doit proposer au moins deux connecteurs permettant un courant de 2A.
La sortie 24V doit proposer des connecteurs mâles Dupont pour des connexions faciles.
La sortie 24V doit être coupée immédiatement quand le bouton d'arrêt d'urgence est enfoncé.
La prise en compte de l'appui sur le bouton d'arrêt d'urgence ne doit pas passer par un programme pour éviter l'aléa d'un bug.
Le PCB doit proposer un connecteur pour implémenter la fonction de coupe-circuit général.
Le PCB doit être robuste aux polarités inverses en entrée.
Le PCB doit être robuste aux courts-circuits en sortie.
Le PCB doit avoir des protections contre les surchauffes.
Le PCB doit permettre de protéger chaque entrée par un fusible.
Le PCB doit détecter un taux de charge trop faible sur une batterie et la déconnecter.
Le PCB doit permettre de mesurer la tension et le courant en temps réel sur les sorties.
La sortie 5,15V doit implémenter le protocole Power Delivery sur le connecteur USB-C pour les paramètres suivants : 5,15V 3A et 5,15V 5A.
Le PCB doit pouvoir faire de la remontée d'information à la RaspberryPi via un protocole série (I2C, SPI ou UART).
Le PCB doit être capable de mesurer et faire remonter le taux de charge des batteries en fonction de la tension et du courant mesuré en sortie de la batterie.
Le PCB doit remonter la source d'alimentation active et les sources d'alimentation valides.
Le PCB doit émettre un signal sonore au changement de source d'alimentation.
Le PCB doit émettre un signal sonore différent si une batterie est déchargée.
L'encombrement de la carte d'alimentation doit être minimisé au maximum.
La largeur ne peut en aucun cas dépasser 90mm.
La longueur ne peut en aucun cas dépasser 290mm.
La carte doit avoir au moins quatre trous de fixation M5.
Les composants sur la face inférieure ne peuvent pas dépasser 20mm de hauteur.
Aucun connecteur ne peut être dirigé vers le dessous de la carte.
Schéma électrique
Principe général
3 entrées (une pour secteur et deux pour batteries LiPo3S)
Fusibles en entrée et avant chaque convertisseur de tension traco power
Mesure de courant/tension
Mesure de température
USB-PD, buzzer, STM32, coupe circuit
Boutons d'arrêt d'urgence sur les convertisseurs concernés.
Architecture générale
3 entrées d'alimentation
Entrée coupe-circuit (EN) en Normally Open
Entrées bouton d'arrêt d'urgence en Normally Open et Normally Closed
Trous de montage
Documentations :
Sous-partie sélection de la tension d'entrée
Mesure de courant/tension sur les deux entrées destinées aux batteries
Résistances pour régler les seuils d'overvoltage et d'undervoltage (voir documentation du LTC4417)
P-MOSFETs pour sélectionner une des trois entrées à la fois + limitation du courant d'appel
Documentations :
Concepteur avec paramètres utilisés : tools.analog.com
Sous-partie microcontrolleur
Connecteur SWD pour flasher le STM32
Buzzer
Connecteur GPIO
Capteur de température
Documentations :
Sous-partie convertisseurs
Documentations :
Sous-partie sorties
Documentations :
Routage
Couche supérieure


Couches intermédiaires


Couche inférieure


Perçage

Vues 3D
Vue de dessus

Vue de dessous

Qualité
Règles de design appliquées
Largeur des pistes
0,2mm | 0,5mm | 1mm | 2mm | 3mm | 4mm |
|---|---|---|---|---|---|
GPIO, I2C, VALID, OV, UV, Resistances mesure de courant, Gates mosfets | 3,3V, Pads des résistances de mesure de courant, Pads VBUS du connecteur USB-C | Alimentation connecteur USB-C, Alimentation des 6 pins Dupont en sortie de puissance | Vout vers Traco 3,3V | Sources communes des P-MOSFET de puissance, F4, F5, F6, F7, F8, Sorties des Traco => resistances de mesure => connecteurs Phoenix | IN1, IN2, IN3, F1, F2, F3 |
Règles de design
Regle | Valeur | Violation |
|---|---|---|
Isolation minimum | 0,2mm | Pads STM32, Pads TCPP02, Pads INA236 |
Largeur de piste minimum | 0,2mm | non |
Largeur minimale de connexion | 0,02mm | non |
Largeur minimale d'anneau | 0,1mm | non |
Diamètre minimum de via | 0,5mmm | non |
Isolation trou/cuivre | 0,25mm | Trou non métallisé connecteur USB-C |
Isolation cuivre/contour | 0,5mm | non |
Bonnes pratiques
SDA et SCL séparées par une piste GND ou 3V3 quand c'est possible.
Plans de masse sur les quatre faces avec matrice de vias de 5mm et 2,5mm sur les bordures.
Pistes à courant important doublées sur les faces intermédiaires
Vérifications réalisées
Schéma électrique pour la sélection d'entrée conforme à celui recommandé dans la datasheet du LTC4417.
Schéma électrique pour l'USB-PD conforme à celui dans la datasheet de la carte d'évaluation X-NUCLEO-SRC1M1.
GPIOs du STM32 bien choisis par fonction pour SDA, SLC, PWM du buzzer, CC1, CC2.
Condensateurs de découplages présents et conformes aux recommendations des datasheets STM32G419, TCPP02, INA236 et MCP9608.
Résistances de pull up et capacitance totale du bus I2C conformes au standard.
Plusieurs chemins de retour pour la masse, suffisamment larges et aménagés avec des vias.
Références des empreintes visibles et toutes orientées de la même manière.
Espace suffisamment important autour des connecteurs.
Indications utilisateur utiles ajoutées pour les fusibles, test points, switches, connecteurs.
Fabrication
Fichiers de fabrication
Les fichiers sources KiCad et les fichiers de fabrication sont téléchargeables dans les releases Github
Bill Of Material
Référence sur le PCB | Valeur | Numéro de série fabricant | Quantité commandée | Quantité en stock | Description |
|---|---|---|---|---|---|
BZ1 | Buzzer | 2 | 2 | Buzzer, polarized | |
C1,C3,C5 | 0u39 | 10 | 10 | Unpolarized capacitor | |
C2,C4,C6 | 39n | 15 | 15 | Unpolarized capacitor | |
C7 | 1000u | 10 | 10 | Polarized capacitor | |
C8 | 10n | 10 | 10 | Unpolarized capacitor | |
C9,C10,C13,C14,C15,C18,C21,C23 | 100n | 30 | 30 | Unpolarized capacitor | |
C11 | 4u7 | 5 | 5 | Unpolarized capacitor | |
C12 | 1u | 5 | 5 | Unpolarized capacitor | |
C19,C20 | 330p | Unpolarized capacitor | |||
C22 | 2u2 | 5 | 5 | Unpolarized capacitor | |
D1,D2,D3 | BAT54J | 10 | 30V 200mA Schottky diode, SOD-323F | ||
D4 | ESDA25P35-1U1M | 3 | Schottky diode | ||
D5,D6,D7 | D_Dual_CommonAnode_AKK_Parallel | 20 | 20 | Dual diode, common anode on pin 1 | |
F1,F2,F3 | 10A,20A | 3 | 3 | Fuse holder | |
F4,F5,F6,F7,F8 | 1A25,6A,10A | 10 | 10 | Fuse holder | |
J1,J2,J3,J4,J5,J6,J10,J12,J13,J15,J16,J18,J19,J21,J22 | 1755736 | 15 | 7 | PCB header, nominal cross section: 2.5 mm?, color: green, nominal current: 12 A, rated voltage (III/2): 320 V, contact surface: Tin, type of contact: Male connector, Number of potentials: 2, Number of rows: 1, Number of positions per row: 2, number of connections: 2, product range: MSTBVA 2,5/..-G, pitch: 5.08 mm, mounting: Wave soldering, pin layout: Linear pinning, solder pin [P]: 3.9 mm, Stecksystem: CLASSIC COMBICON, Locking: without, type of packaging: packed in cardboard | |
J7 | Conn_02x10_Odd_Even | ~ | Generic connector, double row, 02x10, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) | ||
J8 | Conn_ST_STDC14 | 10 | 10 | ST Debug Connector, standard ARM Cortex-M SWD and JTAG interface plus UART | |
J11 | USB_C_Receptacle_USB2.0_16P | 25 | 25 | USB 2.0-only 16P Type-C Receptacle connector | |
J14,J17,J20 | Conn_02x06_Odd_Even | ~ | Generic connector, double row, 02x06, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) | ||
JP1->JP3 | Jumper_2_Open | ~ | Jumper, 2-pole, open | ||
JP4 | Jumper_2_Bridged | ~ | Jumper, 2-pole, closed/bridged | ||
PS1 | TMR_6-2410WI | 3 | 3 | 6 Watt DC/DC converter, industrial, 2:1 input, regulated, 1600 VDC I/O-isolation, encapsulated, SIP-8 | |
PS2,PS3 | THN_30-2411WI | 2 | 2 | 30 Watt DC/DC converter, industrial, 2:1 input, encpasulated, 1.0" x 1.0" metal package | |
PS4 | TEN_50-2412WI | 1 | 1 | 50 Watt DC/DC converter, industrial, 4:1 input, encapsulated, 2" x 1" metal package | |
PS5 | THN_30-2415WI | 1 | 1 | 30 Watt DC/DC converter, industrial, 2:1 input, encpasulated, 1.0" x 1.0" metal package | |
Q1,Q2,Q3,Q4,Q5,Q6 | SUD50P06-15 | 15 | 15 | -50A Id, -60V Vds, TrenchFET P-Channel Power MOSFET, 15mOhm Ron, 165nC Qg, -55 to 150 °C, TO-252-2 | |
Q7 | STL40DN3LLH5 | 3 | |||
Q8 | NPN | 20 | 20 | Bipolar transistor symbol for simulation only, substrate tied to the emitter | |
Q9,Q10,Q11 | NMOS | 30 | 30 | N-MOSFET transistor, drain/source/gate | |
R1 | 82k | 5 | 5 | Resistor | |
R2 | 100 | 5 | 5 | Resistor | |
R3,R16,R17,R18,R28,R32 | 10k | 20 | 20 | Resistor | |
R4 | 63k4 | 5 | 5 | Resistor | |
R5 | 158k | 5 | 5 | Resistor | |
R6 | 1960k | 10 | 10 | Resistor | |
R7,R10 | 37k4 | 10 | 10 | Resistor | |
R8,R11 | 78k7 | 10 | 10 | Resistor | |
R9,R12 | 1180k | 10 | 10 | Resistor | |
R13,R14,R15 | 11k5 | 15 | 15 | Resistor | |
R19 | 62m 0.5% | 5 | 5 | Current Sense Resistors - SMD 4T L4CL1206 0.5W 30ppm 13 mOhm +/-0.5% | |
R20,R22 | 13m 0.5% | 10 | 10 | Current Sense Resistors - SMD 4T L4CL1206 0.5W 30ppm 13 mOhm +/-0.5% | |
R21 | 20m 0.5% | 2 | 2 | Current Sense Resistors - SMD 4T L4CL1206 0.5W 30ppm 13 mOhm +/-0.5% | |
R23,R24 | 4m 0.5% | 2 | 2 | Resistor | |
R25 | 7m 1% | 2 | 2 | Current Sense Resistors - SMD 4T L4CL1206 0.5W 30ppm 13 mOhm +/-0.5% | |
R26 | 47k | 5 | 5 | Resistor | |
R27,R31,R33->R35 | 1k | 20 | 20 | Resistor | |
R29,R30 | 2k2 | 10 | 10 | Resistor | |
TP1->TP10 | TestPoint | ~ | test point | ||
U1 | LTC4417IGN | 2 | 2 | Prioritized PowerPath Controller, Selects Highest Priority Supply from Three Inputs, –40°C to 85°C, SSOP | |
U2 | STM32G491KEU6 | 10 | |||
U3,U7,U8 | INA236BIDDFR | 3 | 3 | ||
U4,U5,U6 | INA236AIDDFR | 3 | 3 | ||
U9 | TCPP02-M18 | 3 | USB Type-C Port Protection for Source application | ||
U10 | MCP9808T-E/MS | 3 | 3 |
Fourniture supplémentaire non présente sur les schémas
Numéro de série fabricant | Quantité commandée | Quantité en stock | Description |
|---|---|---|---|
43 | 43 | Onglet de détrompage pour embase Phoenix Contact | |
15 | 15 | Connecteur mâle Phoenix Contact | |
40 | 40 | Languette de détrompage pour connecteur Phoenix Contact | |
3 | 3 | Nano fusible 6.3A | |
5 | 5 | Nano fusible 10A | |
2 | 2 | Nano fusible 1.25A |
Erreurs et corrections
J8
J8 - Remarques
J8 est à l'envers sur le schéma. Il doit être soudé sur la face supérieure avec son détrompeur vers le bas de la carte.
Le 3V3 de J8 n'est pas relié. Il faut ajouter une connexion entre le 3V3 de J8 et le 3V3 de J7.
J8 - Consequences
En présence de ces défauts, le STM32 ne peut pas être flashé ou débuggé avec un STLINK.
J8 - Etat de correction
Correction physique sur la carte dans le robot : ✅
Correction sur le schéma KiCad : ✅
R27
R27 - Remarques
R27 a une résistance (1k) trop forte pour faire commuter Q8. Il faut réduire la valeur de R27.
R27 - Consequences
En présence de ce défaut, le buzzer ne produit pas de son.
R27 - Etat de correction
Correction physique sur la carte dans le robot : ❌
Correction sur le schéma KiCad : ❓
U9
U9 - Remarques
EN est déconnecté. EN doit être relié manuellement à PA9 sur le STM32 pour permettre le bon fonctionnement de l'USB-PD.
U9 - Conséquences
En présence de ce défaut, l'USB-PD est inutilisable et le port USB-C non alimenté.
U9 - Etat de correction
Correction physique sur la carte dans le robot : ✅
Correction sur le schéma KiCad : ❓
R1
R1 - Remarques
R1 est mal placé sur la carte. Ce composant devrait relier les pins de PS3 Trim à -VOUT au lieu de Trim à +VOUT.
R1 - Conséquences
EN présence de ce défaut, le traco PS3 a une tension de sortie de 4V8 au lieu de 5V15.
R1 - Etat de correction
Correction physique sur la carte dans le robot : ✅
Correction sur le schéma KiCad : ❓
Q9,Q10,Q11
Q9,Q10,Q11 - Remarques
Les mosfet d'arrêt logiciel sont mal placés sur le schéma. Revérifier le placement.
Q9,Q10,Q11 - Conséquences
En présence de ce défaut, l'arrêt logiciel sur PS2, PS4, PS5 est inutilisable.
Q9,Q10,Q11 - Etat de correction
Correction physique sur la carte dans le robot : ❌
Correction sur le schéma KiCad : ❌