Auteur Sujet: Petite question trame DCC  (Lu 710 fois)

ElGringo

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Petite question trame DCC
« le: avril 11, 2021, 11:42:20 pm »
Bonjour, j ai programmé une petite centrale de generation de signaux dcc avec un esp32 et j ai numérisé une vieille loco LGB Stainz avec un massoth emotion L. J utilise un l298n comme booster. Tout fonctionnait bien jusqu'à au moment ou je me suis amusé avec les CV. en voulant modifier le CV29, la loco s est definitivement arrêtée. J ai fait un reset avec 3 octets nuls mais rien ne se passe. J ai 2 questions:

!) Pour l emission de signaux DCC pour modifier les cv quelle est la méthodologie:
Pour le 29 par exemple:

preambule (16bit1) + 0 + Adresse loco + 0 + 1110CC CvCv + 0 + CvCvCvCvCvCvCvCv + 0 + DDDDDDDD + 0 + controle  + 1

CC=01?
Pour le 29 sur 10xCv = sur 10 bits = 000001101 (29 en binaire sur 10 bits) est ce correct?
DDDDDDD= 6 en binqire (00000110)
est ce que ma méthode est correcte?

2) sinon pour mon problème de reset, dans le config de massoth ils disent au il faut modifier le CV 7 avec 3 nombres possibles. Est ce que quelqu'un un a deja fait ou peut me montrer comment reseter mon massoth?

Un très grand merci.

Laurent


CATPLUS

  • Sr. Member
  • ****
  • Messages: 308
    • Voir le profil
Re : Petite question trame DCC
« Réponse #1 le: avril 12, 2021, 08:34:31 am »
Bonjour

Pour le reset peut être un début de réponse
http://forum.locoduino.org/index.php?topic=1011.msg11534#msg11534

Avez-vous tester votre centrale avec un autre décodeur?

Best Regards

ElGringo

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Petite question trame DCC
« Réponse #2 le: avril 12, 2021, 09:38:14 am »
Bonjour,
Cela fonction avec un autre. L'équipe massoth m a répondu qu'il fallait écrire 16 dans le CV7. D'où ma première question. Est ce que ma méthodologie est correcte pour ecrire la trame visant à changer les  V? Merci bcp

CATPLUS

  • Sr. Member
  • ****
  • Messages: 308
    • Voir le profil
Re : Petite question trame DCC
« Réponse #3 le: avril 12, 2021, 12:37:21 pm »
Re

Je viens de regarder sur web https://www.massoth.de/en/, hélas ce matériel je ne le connais pas.

Par déduction si vous pouvez programmer un autre décodeur, il y a de forte chance que votre décodeur actuel soit défectueux (sous réserve)

Pouvez-vous essayer une autre méthode de programmation

JMRI et Sprog ou autre.

Désolé de ne pouvoir aller plus loin, peut être qu'un autre membre pourra répondre à votre demande.

Cordialement







Best Regards

AmadeusHF

  • Full Member
  • ***
  • Messages: 188
    • Voir le profil
Re : Petite question trame DCC
« Réponse #4 le: avril 12, 2021, 01:34:48 pm »
La programmation d'un CV nécessite une séquence simple mais bien précise. En partant du principe que vous utilisez un WRITE BYTE (et pas un WRITE BIT), vous devez générer la séquence suivante de paquets :

A / Entrée en mode SERVICE MODE :

3 paquets RESET consécutifs

B / Envois de la commande d'écriture

5 paquets contenant la commande WRITE BYTE requise

C / Finalisation de l'écriture et attente ACK

5 à 6 paquets RESET

Les paquets envoyés pour le mode SERVICE doivent contenir un préambule d'au moins 20 bits et non 14 comme les paquets du mode OPERATION.

Par ailleurs il faut bien entendu interdire l'insertion de paquets IDLE au milieu du flux.

Si vous envoyez votre commande d'écriture sans respecter la phase RESET préalable, le décodeur ne doit pas se mettre en mode service et ne doit pas accepter l'écriture.

Le format de la commande DIRECT WRITE BYTE respecte la syntaxe MODE SERVICE des paquets DCC.

Premier octet :
> code commande sur 4 bits de poids fort = b0111 = CV ACCESS
> code opération sur 2 bits = b11 = DIRECT WRITE BYTE
> deux bits de poids le plus fort du numéro de CV = bAA avec AA = les bits 9 et 8 du numéro de CV

Second octet :
> 8 bits de poids faible du numéro de CV (bits 7 à 0)

Troisième  octet :
> 8 bits de la valeur à écrire dans le CV

Ces trois octets constituent la PAYLOAD du paquet, il faut donc y ajouter la checksum de contrôle en quatrième octet.

Les commandes SERVICE MODE n'embarquent pas d'adresse, ce qui est normal si l'on considère que l'on ne connait pas encore l'adresse d'une LOCO qu'on veut programmer. C'est pour cette raison que, en dehors du cas particulier du "Program On Main", l'écriture de CV se fait nécessairement sur une voie isolée : tout équipement posé sur la voie de programmation traite les commandes.

Se pose alors la question de distinguer les commandes OPERATION (speed control & co) des commandes SERVICE.

La distinction est faite par l'entrée en mode SERVICE induite par l'émission des commandes RESET.
« Modifié: avril 12, 2021, 01:43:37 pm par AmadeusHF »
Sébastien.
La perfection est un chemin, non un but...

AmadeusHF

  • Full Member
  • ***
  • Messages: 188
    • Voir le profil
Re : Petite question trame DCC
« Réponse #5 le: avril 12, 2021, 01:42:20 pm »
Pour référence, la norme NMRA sur le SERVICE MODE est à lire ICI :

https://www.nmra.org/sites/default/files/standards/sandrp/pdf/S-9.2.3_2012_07.pdf
Sébastien.
La perfection est un chemin, non un but...

msport

  • Hero Member
  • *****
  • Messages: 1435
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Petite question trame DCC
« Réponse #6 le: avril 12, 2021, 02:46:59 pm »
la loco s est définitivement arrêtée.

Voir si le décodeur  ne s'est pas verrouillé :

Programming lock (CV 15: Key / CV 16: Lock)
Standard Values (also see CV 255)
8150001 eMOTION XL = 131
8153001 eMOTION XXL = 132
8154001 eMOTION L = 130
8154501 eMOTION M = 129
0...255 The programming lock is active when CV 15 ≠ CV 16
Cordialement