26c1d499e0b263292aff9ea6cf8d1f5c3297d2e8
Circuit de decharge rapide (GPIO5, broche 40)
Commande DISCHARGE du circuit de la carte de puissance : MOSFET en serie
avec 47 kOhm aux bornes du condensateur de sortie, soit tau = 0,94 s et
environ 2 s pour passer de 500 V a 50 V. Sans lui, le seul bleeder de
1 MOhm demandait ~42 s.
POLARITE INVERSEE, et c'est le coeur du montage. Le GPIO pilote un NPN
qui court-circuite la grille du MOSFET :
niveau haut -> NPN conduit -> grille a la masse -> decharge INHIBEE
niveau bas ou broche non pilotee -> grille tiree a 12 V -> decharge ACTIVE
GPIO5 est une broche a fonction PWM : pas de pull-up au reset (PROMPT §6
etape 3), elle flotte. La decharge est donc active au reset, pendant un
plantage, et surtout ALIMENTATION COUPEE -- exactement le cas ou le
firmware ne garantit plus rien et ou l'operateur croit la carte
inoffensive. C'est precisement le cas impose par le choix de n'effacer un
defaut que par cycle d'alimentation.
Sequencement explicite :
- enter_safe_state() active la decharge APRES avoir coupe HV_EN : la
charge est isolee d'abord, le condensateur vide ensuite ;
- le retour au nominal inhibe la decharge AVANT d'autoriser les etages,
jamais l'inverse ;
- bsp_gpio_control_init() la laisse ACTIVE au demarrage : au boot le
condensateur peut encore etre charge par une session precedente.
Champ FAULT dans la trame $T
Codes 0-5, priorite 2 > 3 > 4 > 5 > 1. EMUSTOP (code 1) a donc la
priorite la PLUS BASSE malgre son numero : en developpement il se
declenche a chaque halte du debogueur et ne doit jamais masquer une
surintensite reelle.
Pas de code court-circuit : il franchit le meme comparateur et le meme
seuil qu'une surintensite, le firmware ne peut pas les distinguer.
Aucun effacement automatique ni par commande UART : le verrouillage
n'est leve que par un cycle d'alimentation (PROMPT §8).
Surtemperature suivie PAR VOIE
s_overtemp_t1 / s_overtemp_t2 separes, avec hysteresis chacun. L'ancien
maximum des deux voies ne permettait pas de distinguer les codes 4 et 5.
Seuil ramene a 80 degC pour coller au protocole.
Divers
UART_LINE_MAX porte a 200 (buffer ESP32 g_lineBuf[200]).
append_field_int() pour les champs entiers, meme convention de bornage
que append_field : un champ qui ne tient pas est abandonne entierement.
Documentation
docs/mesure-cartepuissance.md ajoute au depot (source de tracabilite des
coefficients de calib.h).
docs/ESP32-UART.md mis a jour, avec deux corrections de fond :
- la mention "remettre FAULT=0 automatiquement des que la cause a
disparu" est remplacee par une section sur le verrouillage ; elle
contredisait le comportement reel, le TMS320 reemettant indefiniment
le code latche ;
- l'icone danger est specifiee comme dependant UNIQUEMENT de VOUT et
jamais de FAULT. Un defaut ne decharge pas le condensateur : la faire
disparaitre reviendrait a rassurer l'operateur quand le risque est
maximal.
Le piege strtol / uint8_t 16 bits y est documente pour eviter qu'il soit
reintroduit ailleurs.
A cabler cote materiel : liaison broche 40 vers la carte de puissance, et
pull-down 10 kOhm sur la base du NPN.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
convertisseur DC/DC haute tension double étage
Languages
C
81.2%
Batchfile
18.8%