Accueil > Technique > Digital > Les trames de programmation de Cv

Les trames de programmation de Cv

dimanche 30 mai 2021, par Jean Champalbert, Jean-Philippe Combier

Les trames de programmation

Le réglage se fait par l’envoi de trames particulières permettant l’accès aux variables de configuration du décodeur et par la mise en place de la valeur voulue dans la CV correspondante.

Le nombre de CV (149 pour un décodeur LENZ SILVER +, voire plus de 400 pour un ZIMO et encore plus pour un décodeur sonore) est impressionnant mais heureusement le réglage de toutes les CV programmables sur le décodeur n’est pas nécessaire, des réglages d’usine par défaut sont déjà programmés, mais ils peuvent ne pas vous satisfaire.
Impérativement l’adresse d’usine 3 est à modifier.

La programmation des Cv peut se faire de deux manières :

Sur voie de programmation en utilisant l’adresse de la locomotive à laquelle on s’adresse, on recherche le numéro de la Cv à programmer puis l’écriture/lecture d’une valeur pour cette Cv.
C’est ce que réalise votre manette reliée à votre centrale.
Une seule locomotive doit se trouver sur la voie de programmation.

Pour un adressage direct on utilise une trame de 4 octets.

L’adressage direct permet l’adressage des Cv directement par leur numéro de variable "Cv" codée sur 10 bits dans les octets 2 et 1 (Cv).
Pour utiliser ce mode d’adressage le décodeur doit être configuré en ce sens (voir notice du constructeur).

En pleine voie mode POM (Programming On Main) en indiquant l’adresse de la locomotive destinatrice de la trame, puis le Cv que l’on vise et l’écriture/lecture de la valeur. Ce mode ne fonctionne pas pour la modification d’adresse. Il est également possible d’envoyer une trame contenant l’adresse 0 mais alors toutes les locomotives sur la voie recevront le message et l’exécuteront.

Locomotives avec adresses courtes

Voici un exemple d’action sur les Cv 23 (acceleration ajustment) et 24 (deceleration ajustment) pour une locomotive adresse courte.

1) Préambule d’au moins 16 bits à 1
2) Bit de séparation à 0
3) Octet 1. Bit 7 à 0 pour indiquer une adresse courte, les 7 bits suivants (A) contiennent l’adresse.
4) Bit de séparation à 0
5) Octet 2. Les bits 7, 6 et 5 (rouges) sont à 1 et codent l’accès aux Cv.
Le bit 4 est à 1 (vert) pour indiquer une forme « courte » d’accès aux Cv, les bits 0, 1, 2, et 3 (C) codent le numéro de Cv : 0010 pour la Cv 23 accélération et 0011 pour la Cv 24 décélération
6) Bit de séparation à 0
7) Octet 3 bits (D) valeur à écrire dans la CV (de 0 à 255), cette valeur va se substituer à la valeur déjà présente.
8) Bit de séparation à 0
9) Octet de contrôle. Calcul sur le contenu des octets 1, 2 et 3
10) Bit de fin à 1

Pour des numéro de Cv longues au-delà de 255 et toujours pour une locomotive adresse courte, il nous faut un octet supplémentaire.

L’instruction pour la manipulation utilise un format de donnée particulier : 111CDBBB
C décrit si l’opération est un bit de vérification ou une opération de bit d’écriture. (C = 1, écriture du bit : C = 0, vérification du bit),
D contient la valeur du bit à vérifier ou à écrire,
BBB représente la position du bit dans le CV.
Les deux 1 et 0 (Cv) poids forts contiennent l’adresse de la Cv à modifier avec les valeurs contenues dans les 8 bits de l’octet 3.

Qu’est-ce qui change :

Octet 2. Le bit 4 est à 0 (vert) indiquant une forme « longue »
Les bits 2 et 3 (C) codent la Cv à modifier. Si CC=01 lecture de l’octet, CC=00 écriture dans l’octet, CC=10 écriture bit à bit
Octet 3. Les 8 bits (Cv) contiennent le poids faible de l’adresse de la Cv. En fait le numéro de la Cv est codée sur 10 bits avec les Bits 0 et 1 de l’octet 2. Ce qui nous fait 1024 Cv possibles.
Octet 4 Les 8 bits (D) contient la valeur à écrire dans la Cv : 128 maximum

Locomotives à adresse longue.

La même chose avec des locomotives adresses longues, il nous faut un octet supplémentaire pour coder l’adresse sur 14 bits. On passe à 5 octets pour les Cv courtes et 6 octets pour les Cv longues.

Un paquet de service est constitué d’un long préambule (au moins 20 bits à "1") suivi de 4 octets comme représenté ci dessous :

Les 10 bits (A) 8 dans l’octet 3 et 2 dans l’octet 2,transmettent l’adresse des variables de configuration (CV).Si N est le numéro du CV, son adresse est N-1 codée en binaire.
Les 8 bits D le l’octet 4 correspondent aux données associées à chaque CV.
Les 8 bits E de l’octet 5 sont des bits de contrôle générés par l’addition logique bit pour bit des 3 octets précédents. La fonction logique utilisée est "OU-EXCLUSIF".

Le bit C bit 2 de l’octet 2 correspond aux deux façons d’écrire les données associées à une CV.

Avec C=1 les valeurs de D0 à D7 sont comprises entre 0 et 255.

Prenons l’exemple de la modification de l’adresse d’une loco adresse courte. C’est la CV1 qui est intéressée. La CV1 a pour adresse : 00 00000000. La nouvelle valeur est transmise par les bits D.
Ainsi, un paquet de service destiné à transmettre l’adresse 4 d’une loco aura la structure suivante :

Dans l’octet 2 le bit 2 C est à 1 donc les valeurs de peuvent pas dépasser 255, la Cv à modifier a pour adresse 0, octet 3 et bits 0 et 1 de l’octet 2 (vert). La valeur à écrire est 4 bit 2 de l »octet 4 à 1 (rouge)
Avec C=0 on utilise le mode d’écriture « bit à bit ». Dans ce mode, on définit la position du bit à modifier et la nouvelle valeur à introduire.
Les 8 bits D de l’octet 4 prennent la structure suivante :

BBB représente la position du bit dans le CV (001 définit le bit 1) et F donne la valeur du bit à modifier (F=0 ou F=1).

Par exemple, si on veut donner dans le CV 29 la valeur 1 au bit 2, l’octet s’écrira :

et le paquet de service aura la structure suivante :

S après la programmation des Cv vous n’êtes pas satisfait du résultat, cela est fréquent dans les manipulations de mapping, vous pouvez tout annuler et revenir au paramétrage d’usine en réalisant un HARD RESET. (Remise à Zéro dans le HARD du décodeur).
Pour cela il faut entrer certaines valeurs dans une CV en particulier. (Voir notice du décodeur).

1) Décodeur LENZ : Ecrire la valeur 33 dans la CV8,
2) Décodeur ESU : Ecrire la valeur 8 dans la CV8,
3) Décodeur ZIMO : Ecrire la valeur 8 dans la CV8,
4) Décodeur LOKPILOT : Ecrire la valeur 8 dans la CV8,
5) Décodeur UHLENBROCK : Ecrire la valeur 1 dans la CV59.

On règle l’accélération et la décélération avec les CV 3 et 4 mais les Cv 23 et 24 y participent, voir à ce sujet
NMRA Standards and Recommended Practices
https://www.nmra.org/index-nmra-standards-and-recommended-practices
Merci à Programmation CV des Décodeurs (pagesperso-orange.fr) et à dcc2.html (train35.fr)

Portfolio