C'est à cette approche que je pense, avec un AVR rapide, 20 ou 16MHz.
Là, l'article décrit comment RDS est encodé. J'imagine qu'on a un signal équivalant à "e" à la sortie du LM393, et que les décodeurs de loco font en fait un travail d'encodage très simple.
Une approche en synchronisant l'horloge ou les timing "d" avec les transitions up/down de "e", pour faire du shift in de "e" au rythme de "d"....
Ou si l'AVR suit (en étant dédié à la tâche), peut-être avec "e" sur une pin int up/down, et un calcul rapide du délais entre deux interruptions. A nouveau pour "e" dans un buffer.
Une fois les données "e" dans un buffer, il serait facile d'en déduire "b", puis "a", la data.
"d" a une fréquence double comparé à "c". J'essayerais d'échantillonner "e" à la fréquence "d", pas sur les transitions up/dow de "e". On aurait alors deux bits par symbole "e" dans un buffer: 00, 01, 11 ou 10.
C'est du 1200 BAUD et les décodeurs n'envoient pas tout le temps de messages. Entre deux messages, l'AVR pourrait décoder le buffer "e" et transmettre la data à un ESP.
Seule difficulté: la précision et la stabilité des quartz (de l'AVR et de ceux des locos). On pourrait avoir à sur échantillonner les symboles "e" sur 4 bits ou plus au lieu de 2 pour rester assez synchro, sur une "fenêtre", et se resynchroniser sur les transitions up/dow de "e". Ou avoir à utiliser une PLL pour générer "d"; ça pourrait alors être plus simple dans l'AVR. Mais avec une PLL, on pourrait perdre des symboles du début d'un message, le temps qu'elle soit en phase.
Tout peut dépendre de la fréquence "d", si elle serait compatible avec un AVR à 20 ou 16Mhz. Si c'est juste 2375 Hz, ce serait facile. On décode bien le DCC (entre 4 et 8Khz) avec un simple UNO, alors pourquoi pas le RDS si c'est effectivement aussi lent?
2375, une valeur bizarre; pour la radio FM. Marklin a donc utilisé un quartz de 4MHz. Probablement pour une vitesse plus adaptée à des quarts 16 ou 20MHz et pour des diviseurs entiers:
La fréquence porteuse ne correspond pas exactement à la fréquence porteuse définie pour le RDS®. On utilise une fréquence légèrement inférieure qui, contrairement à la fréquence porteuse RDS®, peut être dérivée d'un quartz avec une valeur de fréquence « paire » (par ex. 4 MHz). La fréquence porteuse est de 52,63 kHz (obtenue en divisant 4 MHz par 76, au lieu de 4,332 MHz divisés par 76 = 57 kHz pour le RDS®).
L'extrait/image de source:
https://www.electronicdesign.com/home/article/21202018/testing-rds-equipped-fm-radio-receivers