Auteur Sujet: DCC & CVs  (Lu 7943 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #15 le: février 03, 2016, 03:01:13 pm »
et avec ce Max471 dans l'alimentation continue du LMD18200, on pourrait récupérer les informations RailCom ?

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : DCC & CVs
« Réponse #16 le: février 03, 2016, 03:19:55 pm »
Oui, ça remplacerait le montage de Pierre.

Deux inconvénients toutefois, le circuit n'est plus produit par Maxim. Mais bon nous ne sommes pas des professionnels :)
La résistance soudée sur le module est une 2kΩ comme dans la datasheet Max471 qui donne 1V/A. Donc 100mA représente 0,1V. Est-ce suffisant ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #17 le: février 03, 2016, 04:47:45 pm »
D'après la norme NMRA S-9.3.2,

To transmit a “0”, the decoder must supply a current 1 of 30+4/-6 mA with a voltage drop at the track of up to 2.2V. To transmit a “1”, the current 1 must be at the most +/- 0.1mA. The power source of the decoder must be protected from unexpected external voltage at the track during the cutout.

A detector must interpret a current of greater than 10mA during the middle 50% of the bit time as “0”, a current smaller than 6 mA during the middle 50% of the bit time as “1”. The voltage drop over the detector may not exceed 200mV at a maximum current of 34 mA during the cutout.

Donc ce n'est certain que la mesure avec le Max471 soit assez précise.

De plus j'ai compris que c'est un courant fourni par le décodeur qu'il faut mesurer, donc le Max471 dans l'alimentation du LMD18200 ne conviendra pas. Le circuit de Pierre semble plus approprié
« Modifié: février 03, 2016, 04:58:02 pm par Dominique »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : DCC & CVs
« Réponse #18 le: février 03, 2016, 06:34:39 pm »
C'est un courant consommé par le décodeur. Ce qui me semble acquis est que 250mA c'est carrément hors norme. Mais où ai-je donc lu 60mA  ???

C'est pas hyper clair leur truc. Il va falloir expérimenter.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #19 le: février 03, 2016, 06:36:32 pm »
Ah je vois que j'introduis une déviation par rapport à la question de Thierry au début de ce fil : la surconsommation correspond à un ACK simple, par exemple suite à la programmation d'un CV.

Basic Acknowledgment
Basic acknowledgment is defined by the Digital Decoder providing an increased load (positive-delta) on the programming track of at least 60 mA for 6 ms +/-1 ms. It is permissible to provide this increased load by applying power to the motor or other similar device controlled by the Digital Decoder.

Ça explique pourquoi la machine bouge !

Par contre j'étais parti sur les messages Railcom où c'est le décodeur qui fournit du courant:

Advanced Acknowledgment See-S-9.3.1 and S-9.3.2.

L'idéal serait donc de mesurer le faible courant dans les 2 cas et je pense que l'ampli différentiel de Pierre est le mieux adapté.


Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1265
    • Voir le profil
Re : DCC & CVs
« Réponse #20 le: février 03, 2016, 06:43:50 pm »
Ok vu

C'est super compliqué leur truc parce que visiblement cette communication est conçue pour avoir lieu également pendant que la machine roule. De temps en temps ça doit tomber en marche  ;D

Bon détecter ça n'est pas très compliqué.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #21 le: février 03, 2016, 06:46:08 pm »
Apparemment pour un ACK simple c'est 60 mA au moins consommé par le décodeur, et pour une réponse Railcom, c'est 34 mA générés par le décodeur donc dans l'autre sens et pendant un arrêt complet d'alimentation du générateur DCC.

Ils sont compliqués ces allemands ;(


Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #22 le: février 03, 2016, 06:56:36 pm »
Personnellement j'avais l'intention d'utiliser le ACK simple seulement dans un premier temps.

Si je comprend bien il faut que j'attende la centrale DC/DCC de Thierry et le circuit de mesure de Pierre !

Merci les amis !

sierramike

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : DCC & CVs
« Réponse #23 le: juin 14, 2016, 01:54:19 pm »
Bonjour à tous,

Je me permets de rejoindre cette discussion car ça m'intéresse, j'attends mon module LMD18200 pour expérimenter le contenu de vos articles sur la génération de signal DCC et voir bouger mon autorail, mais je m'intéresse déjà à la programmation des CVs et même à la lecture des valeurs.

En effet je ne possède pas de centrale DCC, c'est une récente acquisition de matériel roulant équipé qui me pousse à expérimenter, du coup j'ai envie d'aller jusqu'au bout !

Avez-vous avancé dans vos expérimentations ? Puis-je filer un coup de main ? :)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #24 le: juin 14, 2016, 08:35:43 pm »
Bonjour sierramike,

Je n'ai pas encore trouvé le temps de tester le schéma de Pierre. Ce qui marche en tout cas c'est la mesure de courant avec un détecteur en série avec l'alimentation continue du LMD18200. Je m'en sers actuellement pour la détection de court-circuit, donc un courant assez élevé, mais ça détecte aussi des courants plus faibles (60mA, c'est le moteur d'une machine en N).

Je vais construire une centrale DCC rien que pour la voie de programmation, avec un Nano, un LMD18200 et un Max471:
http://www.ebay.fr/itm/3A-Range-Current-Sensor-Module-Professional-MAX471-Module-For-arduino-/311523659684?hash=item488841cfa4

bobyAndCo

  • Sr. Member
  • ****
  • Messages: 266
  • HO avec DCC++
    • Voir le profil
Re : DCC & CVs
« Réponse #25 le: août 19, 2016, 09:13:14 am »
Bonjour à tous,

Si vous me permettez, il me semble que ce fil c’est rapidement écarté du sujet de départ posé par  Thierry qui est la lecture des CV’s sur une loco. Il avait même lâché le mot magique « Railcom ».

Il me semble que c’est bien là le vrai plus. L’une des principales problématiques sur  un réseau est en effet de pouvoir disposer d’informations « fiables » sur la position des locos ou, en sens inverse, quelle loco occupe telle section (ce qui ne correspond pas forcement au canton). Connaître le sens de marche est aussi intéressant. Accessoirement, il est aussi intéressant de pouvoir lire la valeur de différents CV’s. Mais tout système de pilotage un peu évolué dispose de ses informations puisque c’est lui qui a transmis ces données. Par contre, la lecture complète des infos dans toutes les locos est très appréciable en cas de plantage du système pour le mettre à jour ou quand on revient sur notre réseau qu’on a laissé « en plan » sans être obligé de tout réinitialiser.

C’est cela que permet le Railcom ou plus exactement le RailcomPlus qui est la version la plus évoluée pour le retour d’information. C’est une technologie à part entière et un concept évolué capable d’apporter des réponses aux besoins de connaître les positions des trains.

Le Railcom nécessite une compatibilité des décodeurs sur les locomotives, mais c’est je crois le cas pour la plus part depuis maintenant quelques années. Il nécessite également l’envoi d’un signal DCC modifié ou plus exactement completé par un « cutout », signal à partir duquel le décodeur (compatible dont je parle ci dessus) sait qu’il doit envoyer en retour par la voie DCC les fameuses informations, dont son adresse. Enfin, la centrale doit être capable de lire et déchiffrer les informations renvoyées.

Pour quelques infos sur le sujet : http://usuaris.tinet.cat/fmco/railcom_en.html et http://www.opendcc.de/info/railcom/railcom_f.shtml

Railcom une technologie qui n’entre pas dans la norme NMRA ce qui n’est pas sans agiter la petite communauté, mais c’est une technologie et une programmation qui à mon avis devraient être à la portée de nos Aruino’s et apporteraient beaucoup à la sécurité de nos réseaux et permettrait d’accroitre considérablement l’expérience et le plaisir d’utilisation.

Personnellement, je suis à l’heure actuelle sur des problématiques de détection et de rétro-signalisation que je pousse très loin car je cherche derrière à construire des scénarios informatisés de réponses en temps réel.

Je serai très heureux de partager avec d’autres sur ces sujets de la détection, de la rétro signalisation et bien sûr du Railcom+.

Bien à vous et merci à Locoduino qui à m’apporte beaucoup.

Thierry

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 452
    • Voir le profil
Re : DCC & CVs
« Réponse #26 le: août 19, 2016, 10:20:32 am »
Je suis de mon côté en train de refondre UAD, et de tester la nouvelle version via un Arduino Emulator fait maison.... Mais j'ai quand même commandé quelques Max471 pour procéder à des tests aussi et améliorer ma centrale Dc/Dcc.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #27 le: août 19, 2016, 12:36:38 pm »
Bonjour à tous,

Si vous me permettez, il me semble que ce fil c’est rapidement écarté du sujet de départ posé par  Thierry qui est la lecture des CV’s sur une loco. Il avait même lâché le mot magique « Railcom ».

Il me semble que c’est bien là le vrai plus. L’une des principales problématiques sur  un réseau est en effet de pouvoir disposer d’informations « fiables » sur la position des locos ou, en sens inverse, quelle loco occupe telle section (ce qui ne correspond pas forcement au canton). Connaître le sens de marche est aussi intéressant. Accessoirement, il est aussi intéressant de pouvoir lire la valeur de différents CV’s.

Merci à toi de rappeler le sujet principal de ce fil. C'est une de mes préoccupations aussi de pouvoir repérer les locos (au moins) car le pilotage en DCC nécessite la connaissance de l'adresse de la machine.

J'ai eu l'occasion de développer sur ce site plusieurs solutions possibles, avec divers capteurs (RFID par exemple) ou en utilisant simplement les capteurs de consommation et en manœuvrant les locos une à une pour établir la correspondance entre leur adresse et leur position. Cette dernière méthode marche assez bien mais j'ai besoin de la fiabiliser.

La découverte du projet DCC++ par Denis (voir le sujet ici : http://forum.locoduino.org/index.php?topic=203) nous apporte une autre solution que je suis en train de tester avec succès (j'en parle plus loin ci-dessous et il faudra voir les détails sur ce fil).

Railcom est certainement bien adapté à cette problématique de reconnaissance, mais comme tu le dis bien :
  • il faut des décodeurs spéciaux non normalisés dans les locos (on voit bien sur Locoduino que certains d'entre nous préfère n'installer aucun décodeur dans leur machines; moi-même j'ai quelques machines impossibles à digitaliser sans charcutage douloureux)
  • il faut des capteurs spéciaux dans les zones (pas toutes j'espère)
  • il faut intégrer ce protocole non normalisé dans la rétrosignalisation

Pour le moment, et j'espère me tromper pour l'avenir, je trouve que cela fait beaucoup de complications pour un tel but à atteindre. Personnellement je vais explorer la solution qui est présente dans DCC++ : il contient pas mal de fonctions de programmation, de lecture et d'écriture de CVs, tant sur la voie de programmation que sur la voie principale.

Par exemple, j'ai ajouté dans DCC++ une fonction qui permet de lire le CV 01, sur la voie principale, donc de récupérer l'adresse DCC de la loco qui s'y trouve : et ça marche nickel  ;D

D'où l'application immédiate pour une voie unique avec seul train (un va et vient avec un autorail par exemple) : je pose une loco sur les rails et je lance la centrale (celle du fil invoqué plus haut avec un simple Nano, un LMD18200 et un Max471). Elle récupère alors l'adresse DCC de la loco. Ensuite elle fait partir cette loco en marche avant (on ne sait pas encore à ce moment dans quel sens la loco va rouler, sens pair ou impair). Mais les capteurs d'occupation vont se charger de lui donner la solution : à la prochaine détection, elle sait donc dans quel sens, pair ou impair, correspond la marche avant DCC.

Ensuite c'est l'affaire de mon automate de faire fonctionner le va et vient à ma convenance. Je n'ai pas encore écrit tout le sketch, juste fait des tests sur un cercle que j'ai emporté avec moi en vacances et j'écris et teste seulement les jours de pluie (il n'y en pas pas beaucoup en ce moment  :-\)

Pour singer Railcom, avec cette solution, je pense qu'il suffirait d'isoler des zones avec des relais (par exemple les voies dans les gares où on est censé ranger les trains) et d'y connecter temporairement (grâce aux relais) ce type de centrale pour détecter les adresses DCC, voire bricoler certains CVs, comme sur une voie de programmation. Cela pourrait faire l'objet d'un sous-système à part entière, relié au gestionnaire par un bus CAN, avec des messages assez simples.

Comme promis, je vais donner plus de détails sur le fil http://forum.locoduino.org/index.php?topic=203... dans quelques heures car il fait beau !!!!

Amicalement

bobyAndCo

  • Sr. Member
  • ****
  • Messages: 266
  • HO avec DCC++
    • Voir le profil
Re : DCC & CVs
« Réponse #28 le: août 20, 2016, 09:12:09 am »
Bonjour Dominique,

Tout d’abord, je te remercie pour ton inlassable contribution à faire évoluer « la chose ». Je n’avais pas vu dans DCC++ qu’il y avait possibilité de lire les CV’s et pour cause, puisque tu dis que c’est une fonction que tu as développé toi même ;-). Je suis très intéressé que tu nous mettes à disposition le code.

Je tiens à préciser que je ne suis pas particulièrement défenseur de Railcom plus que de tout autres technologies. Bien au contraire, je crois qu’il faut chercher à s’approprier le meilleur de tout ce qui est à notre disposition et  marier tout cela. Et donc pourquoi pas Railcom et DCC++. Mais Railcom est commercial et il difficile de se procurer les sources.

A suivre je pense ! Et que certains d’entre nous travaillent dans différentes directions pour ensuite croiser les résultats et le rendre disponible aux autres me paraît une bonne chose. Au final, le sujet principal qui nous préoccupe est bien celui de la détection et de la rétro signalisation des locos.

Au passage, je voudrais signaler que j’ai fait le choix sur mon réseau de communiquer entièrement en TCP/IP. Il y a à cela plusieurs raisons dont celle qui était de pouvoir développer un controller en HTML 5 pour disposer d’une gigantesque bibliothèque graphique de potentiomètres, boutons etc…. Associé à un langage de programmation objet puissant, AngularJS (Framework javascript), ça marche vraiment bien et c’est quand même beaucoup plus ouvert (possibilité de plusieurs controllers pour un même réseau dont smartphones et tablettes, WIFI inclus, possibilité de communiquer en PHP avec des bases de données type SQL…)

Voici le lien sur mon controller en version démo : http://89.225.199.180/train_HO/locomotives/controller_demo.html

(J’ai testé avec Chrome, rien n’est garanti pour les autres navigateurs)

C’était juste un clin d’œil par rapport au controller proposer avec DCC++. Avouez que ça a un peu plus de « tête » non ? Mais je ne voudrais pas créer une confusion et préciser que DCC++ et son controller sont indépendants ce qui n’interdit pas d’utiliser le premier avec autre chose que le second. C’est d’ailleurs ce que tu fais avec tes manettes.

Je ne manquerai pas de tester DCC++ avec ton code de lecture de CV et je vous ferai un retour. Et pour ceux que ça intéresse, je veux bien développer sur la communication par Ethernet en TCP/IP.

Bien amicalement

Christophe
« Modifié: août 20, 2016, 09:14:56 am par bobyAndCo »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1454
  • 100% Arduino et N
    • Voir le profil
Re : DCC & CVs
« Réponse #29 le: août 20, 2016, 01:44:45 pm »
Merci beaucoup Christophe,

Je suis en train de préparer une présentation du code de DCC++ pour montrer comment on peut l'adapter à chaque cas personnel.

En attendant je vais mettre le code pour la lecture du CV1 des que possible, peut-être ce soir ou demain.

À suivre ...
Amicalement
Dominique