la ligne D0 est la synchro : une largeur d'impulsion de 10us indique que le prochain bit dcc est 1 , 20us si le prochain bit dcc est 0
j'ai illustré une impulsion de 10us , qui dicte au timer esclave d'envoyer un duty de 58us (le timer esclave n'a rien d'autre à faire)
on voit des alternances d'impulsions de 10 et 20us , commandant des alternances de bits dcc 1 et 0
quelque soit la largeur de l'impulsion , il faut que la synchro respecte la durée du bit dcc en cours
les lignes D1 et D2 sont les sorties d'un timer correspondant aux entrées IN1 et IN2 d'un pont en H : on voit que D2 est l'inverse de D1
pour le cutout c'est un peu moins simple :
une impulsion de synchro de 30us est envoyée lors du "packet end bit" ("stop" dans le chrono-diagramme) , cela indique au timer esclave que le prochain "bit" est le cutout
pendant le cutout , la ligne D1 prend un duty de 500us , et la ligne D2 de 29us , on a donc le moignon de bit dcc 1 qui précède le cutout proprement dit ; pendant le cutout (271us , normalement) , les 2 lignes sont à HIGH , ce qui provoque le brake du pont en H , nécessaire au cutout
puis les bits dcc suivants sont des 1 , comme indiqué par l'impulsion de synchro en début de cutout
.
les lignes D3 et D4 commandent un pont en H pour une voie analogique ; le sens est inversé (boucle de retournement , ou marche arrière) ; la ligne D3 est reste au niveau LOW (duty = 0) , tandis que la ligne D4 est en pwm inversé : le duty est d'environ 33% , sa valeur absolue change donc en fonction de la durée du bit dcc sur lequel il est synchronisé ; on voit que pour les 67% correspondant à l'absence de puissance , les 2 lignes sont à LOW , donc le pont en H est en sortie high Z (on pourrait utiliser ceci pour mesurer la fem du moteur , afin de réguler la vitesse , mais je ne l'ai pas prévu , par manque de pins au niveau du stm32)
.
au niveau de la création de la synchro , il y a donc une petite difficulté du fait qu'il faut anticiper : donner la largeur d'impulsion correspondant au prochain bit dcc , alors que le timing des impulsions correspondant au bit dcc en cours
le chantier de la centrale commandant les cartes boosters est vaste ; je vais peut-être pour créer la synchro , utiliser le rmt de l'esp32 de la-box / dcc-ex , on aurait une certaine convergence des systèmes ...