Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - bk4nt

Pages: [1]
1
Vos projets / Re : Carte détecteur de présence 16 entrées RailCom
« le: novembre 20, 2024, 05:25:58 pm »
Je constate en tous cas que la couche physique n'a pas évoluée.

La solution ESP32 de Christophe doit utiliser RXD, la combinaison des signaux. Je pense utiliser directement les sorties des AOP, chacun vers un PIO UART d'un RP2040. De ce fait, Rx sur UART A ou UART B, indiquant alors l'orientation de la loco...

Pour un circuit très simple et compact 4 voies, avec une isolation entre le RP2040 et les 339. Pour 8 voies, il faudrait un RP Pico, pour disposer de plus d'IO, et des composants en plus pour détecter l'orientation; ça pourrait finir plus encombrant.

2
Vos projets / Re : Carte détecteur de présence 16 entrées RailCom
« le: novembre 20, 2024, 01:30:41 pm »
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.pdf


Les 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.

3
Vos projets / Re : Carte détecteur de présence 16 entrées RailCom
« le: novembre 19, 2024, 09:08:31 pm »
Bonjour,

Je suis allé voir la doc de l'ATXMEGA128. Il est bien limité à 2MSPS (sur 8 bits, pas 12). Ce qui ne suffirait donc pas pour décoder 16 signaux Railcom à 250kbps. Par échantillonnage de quelques bits sur le canal 2, on ne pourrait donc que détecter qu'il existe un signal sur une voie.

Je ne sais pas s'il serait possible de décoder les canaux 2 de quelques voies seulement, ce après avoir détecté une présence via les canaux 1. Ce qui nécessiterait d'être parfaitement synchro.

Je ne pense pas que le principe soit basé sur l'ADC en mode différentiel (différence entre deux entrées, limité pour une part entre les entrées 0 à 3, et avec les autres canaux pour du différentiel).

La doc ATXMEGA explique que généralement, ces ADC ne peuvent pas mesurer 0V, qu'ils rapportent tous des valeurs légèrement supérieures. Pour y palier, en single ended, donc 16 entrées distinctes, cet ADC a un offset sur sa référence. Ce qui permet de calibrer l'ADC, et pour afficher 0 pour 0V en entrée. Puis de ce fait, cet ADC permettrait de mesurer des valeurs négatives, légèrement inférieurs à 0V. D'après ce que j'ai lu, de l'ordre de -0,1V max. Faudrait tester pour voir comment ça se comporte, ce que l'auteur a dû faire.

22 Ohm pour détecter +/- 10mA... Cette solution serait donc adaptée pour mesurer des valeurs nulles, ou à +0,22V, ou à -0,22V. Supposant qu'il s'agit d'une réponse ou d'un Ack à un message DCC, on en déduit l'ID de la loco. Puis selon le signe, on en déduira l'orientation.


Du coup, je me demande s'il est utile d'en faire plus.

Ce genre de détecteurs "simples" sont ils complétés par un récepteur Railcom au niveau du booster? Pour avoir à la fois les occupations/orientations et les messages du canal 2. Soit dans l'exemple d'ici, des modules 16 détecteurs pour localiser les locos, et en ajoutant un récepteur Railcom unique au booster pour lire les CH1 et CH2.

Ou serait-il utile de se casser la tête pour avoir un récepteurs Railcom dédié à chaque petite portion de voie? Ce serait un peu plus compliqué ou dense en composants.

4
Vos projets / Re : Carte détecteur de présence 16 entrées RailCom
« le: novembre 14, 2024, 09:44:56 pm »
Merci pour la réponse.

En effet, l'ADC semble être évolué, rapide, avec 4 canaux (et deux ports 8 entrées utilisés) pour les conversions, avec un transfert via DMA. Mais les comptes n'y sont pas, même avec les 2 millions de conversions par secondes selon les specs du constructeur. 16 canaux à 250k, ça devrait nécessiter 4 millions de conversions par seconde, en étant synchrone. Son code se contenterait d'un bit sur deux? Les données Railcom sont encodées 4/8.

Il y a quelque chose de mystique dans la solution, dont pour interfacer cet ADC avec les signaux électriques, qui peuvent être négatifs selon le sens de circulations des locos. J'imagine qu'il utilise les pull-ups des entrées, pour décaler la tension en entrée de l'ADC.

Et en effet, je viens de lire que son code source n'est plus accessible que sur demande. Dommage, il doit être intéressant à lire.

J'ai repéré une autre solution (commerciale) qui annonce faire la même chose, mais la carte est plus grande et à nouveau plus fournie en composants.

5
Vos projets / Re : Re : Carte détecteur de présence 16 entrées RailCom
« le: novembre 14, 2024, 07:15:31 pm »
Bonjour lebelge2,

D'abord merci pour tous vos partages.

Même si après vous avoir un peu lu seulement, je ne sais déjà plus par où commencer   ;)

Pour le moment, je n'ai qu'un projet et je cherche à comprendre mieux le fonctionnement de ces solutions avant de me lancer.

C'est un clone du  GBM16T dont les plans, la construction et les fichiers sont libres de droits.

Pour les caractéristiques, je vous renvoie sur le site de l'auteur de la carte originale.

Je n'ai pas trouvé les codes sources, juste un hex, et je me pose des questions, dont sur Railcom, le protocole. Et le site de l'auteur ne répond pas à toutes les questions qu'on pourrait se poser sur le fonctionnement de la solution mise en oeuvre avec ce GBM16T. Je vais essayer de creuser encore...

Nombreuses possibilités en vue, sans câblage « type usine à gaz » et matériel coûteux…

Cette version GBM16T a manifestement été très simplifiée. Ce ne sont plus des récepteurs Railcom, mais de simples détecteurs, 16, de signaux sur une portion de voie. Ce qui semble être suffisant et de fait économique, dont en terme d'encombrement (type et nombre de composants, dimensions de la carte, pour une solution économique).

Les 16 ports/portions de voies sont reliés à des entrées analogiques. De là, il est facile de mesurer une tension/courant pour évaluer une occupation de voie, par la consommation de courant de ce qui y circule.

Par contre, j'ai du mal à comprendre comment ce système peut effectivement traiter/détecter des signaux Railcom, un signal série, à 250000 Baud... ou des transitions électriques rapides et très faibles en amplitude lorsqu'une loco répond. Peut-être par échantillonnage des 16 voies, pour détecter ces signaux? Puis pour identifier une loco, le processeur s'en tient à ce qui a été précédemment envoyé via DCC?

Dans la doc de la NMRA, en 3.1, je lis: "Channel 1 is used for locating mobile decoders on the layout (see app: adr). To do this, they must send their DCC address after every DCC packet sent to a mobile decoder, which is then received by local detectors on the layout." https://www.nmra.org/sites/default/files/standards/sandrp/DCC/S/s-9.3.2_bi-directional_communication.pdf

Ce qui signifierait bien qu'on peut se contenter d'être à l'écoute des trames DCC, puis de constater sur quelle voie la loco correspondante répond, sans nécessairement bien lire et ni décoder le message que la loco renvoie.


Sur la version allemande du site, on trouve la version A de ce GBM16T qui était plus complexe. Mais avec de vrais récepteurs Railcom. On pourrait supposer que ces versions avec multiples récepteurs Railcom sont inutiles pour un système simple, qui n'utiliserait pas le canal 2 de Railcom.

Le PDF de la version A, le schémas est plus dense que la version B: https://www.opendcc.de/s88/gbm_jk1/bidi_xpn_gbm.pdf

Je réfléchissais à construire quelque chose de similaire à la version A. Mais si la version B est suffisante...

Pages: [1]