Auteur Sujet: signaux SNCF complexes réalisés avec un PCB, avec commande muliplexée via 4 fils  (Lu 366 fois)

trimarco232

  • Sr. Member
  • ****
  • Messages: 364
    • Voir le profil
ce projet a 4 ans ... https://forum.locoduino.org/index.php?topic=1269.msg13739#msg13739
Je l'avais repris en utilisant un pi pico , le but est de ne pas utiliser de composant autres que de simples résistances pour faire le charlieplexing ; je ne sais pas si j'avais publié sur cette variante , mais de toutes manières cela a fini par un échec , sans doute dû à ma connaissance (bonne mais néanmoins) insuffisante du pi pico.
J'ai donc repris le tout avec ce que je connais le mieux , un STM32 , ici un (bluePill+ de chez WeAct) ; la réussite était donc obligatoire , mais ardue.
L’essentiel de l'étude reste valable , mais c'est l'occasion de lancer un nouveau topic ici.
Le schéma du signal a été redéfini , pour valoriser le maximum de LEDs possibles , soit 12 avec 4 fils (il y en a 14 , mais c'est parce que les 2 LEDs du R et du RR sont mises en // sans autre forme de procès)
« Modifié: août 04, 2025, 12:23:23 pm par trimarco232 »

trimarco232

  • Sr. Member
  • ****
  • Messages: 364
    • Voir le profil
Pour rappel , le but c'est aussi de pouvoir faire varier l'intensité lumineuse des LED par PWM , ce qui permet de simuler l'allumage et l'extinction progressives des feux , dues à l'inertie thermique des lampes à incandescence des anciens signaux SNCF . Pour cela , la commande est constituée de trames répétées ayant chacune 12 fenêtres de temps , dont la durée varie en fonction du rendement lumineux de chaque LED , et dont la durée  constitue aussi une période PWM , à l'intérieur de laquelle le duty cycle varie pour déterminer la luminosité de la LED.
Le problème c'est toujours le carré violet , dont la LED a un rendement médiocre . Pour pallier , il a fallu doubler le fil P3 par une deuxième sortie du STM32 (P3x) , dépourvue de résistance : on a alors 150R + 0R pour cette LED , au lieu de 270R + 270R pour les autres LED . Pour un carré normal , à LED rouge , ce n'est pas nécessaire , le fil P3x (0R) reste en INPUT , cad. en haute impédance.
Du coup , la difficulté c'est que pour chaque signal , il faut 5 broches en PWM , et que ces 5 sorties PWM soient synchronisées : c'était possible avec le pi pico , mais pas avec le BluePill+ : il ne dispose que de 4 timers , donc un timer par signal , qui n'ont chacun "que" 4 canaux PWM . J'ai donc dû laisser les broches P3 et P3x en GPIO (sorties digitales) ordinaires , et de n'appliquer le PWM que sur les fils P1 ou P2 ou P4 . Dans ce cas , pour les LED "manoeuvre" , "vert" et "id2" , il a fallu mettre le fil P3 en sortie digitale (GPIO) HIGH , et commander les autre fils (cad. P1 ou P2 ou P4) en PWM inversé (pour STM32 , PWM normal = PWM1  , PWM inversé = PWM2) . J'ai eu du mal à le concevoir et à le mettre au point , il a fallu écrire directement dans les registres , car STM32duino , bien que très complet ne rentre logiquement pas dans ces détails , et cela a aussi permis un gain de temps bien nécessaire ... mais enfin , ça marche bien .
Comme je tiens absolument à utiliser un timer en mode compare + filtre numérique , pour décoder du DCC , et que tous les timers sont pris pour les signaux , le bus de commande doit être d'un type permettant la transmission (la réception , surtout) par UART , c'est à dire Loconet , ou Xpressnet , ou RS485 protocole perso.
La carte de la photo , fonctionne avec Xpressnet , ou RS485 protocole perso , l'interface MAX485 n'est pas visible ici , car située sous le bluePill+ .
Donc a ce stade , je sait commander chacune des 4x 12 LED , individuellement , en intensité lumineuse variable .
La prochaine étape , c'est de commander les LED groupées en indication (aspect) réglementaire de signal , et de ménager la transition progressive d'une indication vers la suivante. Puis il faudra activer le bus , pour que la carte prenne les commandes qui lui sont destinées . L'expérience atteste que , même si c'est des choses que j'ai déjà faites , il faudra du temps .
« Modifié: août 04, 2025, 08:40:56 pm par trimarco232 »

Brunotoutsimple

  • Jr. Member
  • **
  • Messages: 79
    • Voir le profil
Merci pour ce super travail. Félicitation. Je suis ton projet avec intention.
Cela m'intéresse beaucoup.
j'attends avec grand plaisirs la suite de l'évolution.
« Modifié: août 07, 2025, 12:58:38 pm par Brunotoutsimple »
Cordialement
Bruno