Bonjour,
Je viens de lire Christophe, j'allais ajouter ce qui suit, plus bas. J'ai l'impression que d'une certaine façon, je lui répondais, notamment avec le RP2040...
> Il me semble que ce projet n’a aucun intérêt pratique mais c’est un bel exercice de recherche et développement
J'ai du N, et j'ai pour projet un petit réseau avec plein de sections dans 2m2. Géré par 4 x 16 voies, ça pourrait avoir du sens.
> Ne serait-ce que pour des questions de longueurs de câbles, l’exercice est périlleux.
> Le signal Railcom est très faible et donc très sensible à l’environnement électromagnétique.
> le concept des satellites cherche à promouvoir la notion de de proximité
> un décodeur Railcom adresse un signal environ toutes les 250ms je crois. Si vous multipliez ça par 16 !!!
Ca, c'est bien noté, merci
Avant de me lancer dans le grand de 2m2, je pense construire un réseau de test sur 1m2 avec 4 récepteurs 4 ou 8 voies.
J'ai repéré une autre carte, pour LCC, développée en 2015, qui est intéressante également. Elle n'a que 6 canaux/voies, mais selon une vidéo de présentation, elle a plein de features. Techniquement, c'est encore plus mystique car même le schémas ni d'ailleurs la photo du verso de la carte ne sont disponibles... Voir en page 16 du PDF:
https://openlcb.org/wp-content/uploads/2015/04/LCC-introduction-presentation-Indy-2016.pdfLes ADC peuvent suffire pour détecter du Railcom. Je pense qu'il faut les oublier pour le décoder car la synchro bits, le taux d'échantillonnage puis le traitement requis poserait vite un problème de performance. Sans compter le prix, j'ai rapidement cherché, ce serait s'orienter vers des modèles d'ADC rapides à 4 ou 8 canaux à plus de 50€.... puis avec des problèmes d'interfaçage avec un petit processeur, lui même rapide.
En UART sur SPI, pour étendre les capacités d'un CPU, je n'ai pas trouvé grand chose. Un FPGA pourrait être la solution, mais compter 50 à 100€ pour un petit kit de dev... Des choses pas trop chères ont été annoncées mais ce n'est pas encore disponible:
https://tinyfpga.com/Les Teensy 4.0 et 4.1 pourraient être une solution, pour plus d'UARTs dans la puce, 7 à 8, qu'il suffirait d'interfacer avec le circuit connu à comparateurs +/- 18mV. Techniquement, ce devrait être simple. En cas de "présence", les datas CH1 et CH2 aboutiraient dans les UART.
Si j'ai bien compris, CH1 peut être "pollué" s'il y a plus d'un décodeur/loco sur une même portion de voie. Mais CH2 est utilisé exclusivement par le décodeur adressé, qui y répond par un Ack ou avec des infos supplémentaires (je suppose que ce sera aussi le canal utilisé par RailcomPlus...).
Probablement approprié aussi, et plus abordable, les RP2040 et RP2350, des versions Tiny ou Zero, pour un encombrement moindre. Ces puces n'ont que deux UART matériel. Par contre, ils ont une fonctionnalité PIO qui permet de créer des automates pour émuler jusqu'à 8 ou 12 UART en RX... pour un équivalent "software serial" mais accéléré par le matériel IO:
https://arduino-pico.readthedocs.io/en/latest/piouart.html "Equivalent to the Arduino SoftwareSerial library, an emulated UART using one or two PIO state machines is included in the Arduino-Pico core. This allows for up to 4 bidirectional or up to 8 unidirectional serial ports to be run from the RP2040 without requiring additional CPU resources."
Le 2040 a 8 automates, le 2350 en a 12. Je vais essayer de faire des tests avec le 2040 (dual core à 133MHz compatible IDE Arduino et FreeRTOS). Je pensais d'abord à interfacer 8 voies avec un 2040, mais cela ne permettrait pas de détecter aussi l'orientation d'une loco. Pour 8 voies avec aussi l'orientation, il faudrait un montage plus complexe, des composants en plus... on y perdrait le bénéfice de la simplicité et d'une petite taille.
Du coup, je pense à un petit récepteur simple, pour 4 voies seulement, avec deux PIO UART par voie. Avec le montage connu à deux comparateurs, selon l'orientation de la loco, les données Railcom devraient être reçues dans l'UART A ou B.
Ou encore à plusieurs 2040 sur une même carte pour plus dense, les 2040 échangeant par I2C ou SPI, un main vers le bus CAN et des SPI slaves pour recevoir les données Railcom. Ce serait peut-être une solution éco et simple à mettre en oeuvre pour retrouver jusqu'à 8 ou 16 voies sur une même carte pas trop grande.
Vous avez d'autres avis à ces sujets? Ou existerait-il d'autres solutions assez simples encore?
PS: je n'avais pas vu la solution ESP32 de Christophe à 3 voies / 3 UARTs, je vais aller voir en quoi ça consiste.