Le Digital (DCC)

Le protocole DCC permet un contrôle numérique précis et flexible des trains miniatures, en envoyant des signaux numériques à travers la voie et en utilisant des décodeurs pour convertir ces signaux en commandes pour les locomotives, wagons et accessoires.

Les variables de configuration (CV) en DCC

Définition

Les variables de configurations appelées CV (Configuration Variable) par la NMRA (National Model Railroad Association) sont des paramètres de fonctionnement conservés en mémoire non volatile par les décodeurs de locomotive ou les décodeurs d'accessoires.
Ces paramètres sont inscrits en mémoire EEPROM. Ce genre de mémoire est inscriptible et effaçable électriquement par le micro processeur et retient les informations même en l'absence de courant pendant une durée de 100 ans. Le nombre de cycles lecture/écriture accepté est d'environ un million de manoeuvres. De ce fait les données qui y sont stockées sont permanentes. Ces variables doivent pouvoir être modifiées pour adapter chaque décodeur à l'utilisation envisagée.
Ces variables de configuration sont au nombre de 1024, un numéro a donc été attribué à chacune d'elle. Les numéros 1 à 512 sont alloués aux décodeurs de locomotive tandis que les numéros 513 à 1024 sont réservés aux décodeurs d'accessoires. Parmi cette multitude de variables de configuration, seules quelques-unes unes sont utilisées par chaque fabricant, malgré tout, leur rôle respectif est défini et leur usage reste à la discrétion de chaque utilisateur. Il convient donc de se reporter à la notice fournie avec tel ou tel décodeur pour connaître celles qui sont exploitables.
Nous emploierons une valeur décimale pour désigner l'adresse et le contenu d'une variable, mais c'est la valeur binaire qui sera exploitée par le décodeur. Chaque variable est constituée de huit bits (éléments binaires), pas tous exploités, et désignés dans l'ordre du tableau 1. Les valeurs décimales correspondantes généralement acceptées vont de 0 à 255.

Ordre des bits et valeur décimale de chacun d'eux.

128 64 32 16 8 4 2 1
B7 B6 B5 B4 B3 B2 B1 B0
1 0 1 1 0 0 1 1
tableau 1

Pour calculer la valeur décimale à écrire dans une variable il faut additionner chacun des bits à 1.
Exemple: 1011 0011 = 128 + 32 + 16 + 2 + 1 = 179

Décodeur multifonction ou pour locomotive

CV1 : Adresse courte :

Le CV1 possède une plage de valeurs valide de 1 à 127. Une valeur supérieure à 127 n'est pas valide pour l'adressage court. Le type d'adresse, courte ou longue, est sélectionnable via le CV29. C'est le CV1 qui permet de distinguer chaque décodeur l'un par rapport aux autres, chaque machine doit posséder une valeur distincte pour être conduite séparément.
Les constructeurs fournissent leurs décodeurs avec cette variable positionnée à 3 par défaut. Il est donc impératif de la modifier pour que la deuxième locomotive fonctionne séparément...

CV2 : Tension de démarrage (Vstart) :

Cette variable définit la tension minimum à appliquer au moteur pour qu'il commence à entrer en rotation. En effet, un moteur à courant continu ne démarre qu'à partir d'une certaine valeur de tension qui lui est appliquée. La commande digitale autorise donc à disposer de toute la plage de réglage du potentiomètre et ainsi avoir une souplesse de conduite plus importante.

figure 1
figure 1

Le décodeur calcule linéairement la courbe de progression entre VStart et VHigh ou entre VStart et VMid puis entre VMid et VHigh si VMid est utilisée comme le montre la figure 1.

CV3 : Taux d'accélération :

Le taux d'accélération est conditionné par la formule `\frac{CV3×0.896}{Nbredepas}`.

Par exemple si CV3 = 18 et que le décodeur fonctionne en mode 28 pas cela fait nous donne 0,576 seconde entre chaque pas de vitesse, la tension d'alimentation n'est pas appliquée instantanément au moteur mais progresse d'un pas toutes les ½ seconde environ d'où un effet d'inertie constaté au démarrage. Si CV3 = 0 alors aucune accélération n'est programmée et le décodeur applique directement la consigne de vitesse qu'il reçoit.

CV4 : Taux de décélération :

Le taux de décélération se calcule de la même manière que précédemment mais dans ce cas le décodeur simule un freinage dont l'efficacité dépend de l'inertie souhaitée ; plus la valeur introduite est importante, plus le freinage sera long. La durée issue de ce calcul correspond au temps que met le décodeur pour franchir les pas de vitesse, d'où cette impression d'inertie.

CV5 : Tension maximum (Vhigh) :

Cette variable définit la valeur maximum de la tension appliquée au moteur. La valeur 255 correspond à 100% de la tension d'alimentation alors que les valeurs 0 et 1 indiquent que CV5 n'est pas utilisée pour le calcul de la vitesse. Voir aussi CV2 (VStart). Grâce à cette variable on peut limiter la vitesse maxi d'une machine et permettre de plafonner la marche d'une vapeur trop bien motorisée...

CV6 : Tension médium (Vmid) :

Cette valeur complète VStart et VHigh en scindant en deux parties la ligne entre VStart et VHigh. Grâce à celle-ci, il est possible de créer facilement une ligne plus proche de la réalité. Les valeurs 0 et 1 ont le même effet que pour CV5. Son action est représentée par la courbe en jaune de la figure 1.

CV7 : Numéro de version du logiciel :

Ce numéro est défini par le constructeur et ne peut pas être modifié par l'utilisateur.

CV8 : Identification du fabricant :

Chaque constructeur de décodeur possède un numéro d'identification qui lui a été attribué par la NMRA. Le tableau ci-dessous répertorie la valeur des principaux constructeurs. Cette variable ne peut pas être modifiée par l'utilisateur, par contre si sa valeur est mise à 8 cela réinitialise le décodeur en configurartion d'usine.

Identification du fabricant.

Fabricant Valeur
Amateur (domaine public) 13
Arnold - Rivarossi 173
Digitrax 129
ESU (Electronic Solutions Ulm GmbH & Co KG) 151
Fleishmann 155
ICC 133
Lenz Elektronik GmbH 99 LGB 159
Model Rectifier Corp. 143
Roco 161
Throttle – Up 141
Train-O-matic 78
Trix Modelleisenbahn 131
Uhlenbrock 85
Umelec 147
Wangrow Electronics 12
Zimo Elektronics 145
ZTC 132
tableau 2

CV9 : Période de récurrence du Modulateur à Largeur d'Impulsion (MLI ou PWM) :

Cette valeur détermine la durée du MLI du moteur de la locomotive. Il faut se reporter à la notice du fabricant pour connaître la signification des valeurs acceptées par le décodeur. En alimentant le moteur pendant une partie du temps cela permet de faire varier la valeur moyenne appliquée à ses bornes et par là, la vitesse du moteur. Si un moteur est alimenté 50% de la période de récurrence il tournera à 50% de sa vitesse maxi. Ce paramètre est à ajuster en fonction du type de moteur que le décodeur pilote. Il règle la fréquence des cycles d'allumage extinction du moteur. Une période de récurrence courte est recommandée pour diminuer le bruit du moteur. Les décodeurs évolués autorisent une fréquence élevée du PWM pour éviter l'échauffement des moteurs à rotor sans fer.

figure 2
figure 2

La valeur entrée dans cette variable se décompose comme suit :

B7 B6 B5 B4 B3 B2 B1 B0
Exp Mantisse
tableau 3

La période de récurrence, qui est exprimée en micro seconde(μs), vient de la formule :`P(μs) = (131 + Mantisse times 4) times 2^ exp`.

CV10 : Coupure de la boucle de régulation :

Cette valeur comprise entre 1 et 128 détermine la vitesse (en pas de vitesse) au dessus de laquelle la boucle de régulation devient sans effet. Ceci concerne les décodeurs pourvus de système de régulation de charge permettant une vitesse constante quelle que soit la pente. La valeur est tronquée de manière appropriée si la commande de vitesse se trouve en 14 ou 28 pas.

CV11 : Durée de débordement :

Ici le décodeur mémorise la durée pendant laquelle il continue de fonctionner entre la réception de deux instructions. La station de commande émet régulièrement un ordre vers chaque locomotive, d'une part pour prévenir les mauvais contacts dus à la voie, et d'autre part pour lui permettre de redémarrer à la vitesse de consigne. Si un décodeur est toujours alimenté et qu'il ne reçoit pas d'instruction pendant cette période il maintiendra sa vitesse jusqu'à épuisement de cette durée de débordement. Une valeur de 0 désactive ce procédé tandis qu'une valeur maxi (255) porte cette durée à 20 secondes environ.

CV12 : Autre mode de commande :

Si un autre jeu d'instruction que celui de la NMRA est utilisé le constructeur indique son type dans cette variable. (réservé aux systèmes propriétaires ex : Motorola...)

CV13 : Etat des fonctions en mode analogique :

Ce registre indique l'état de chaque fonction (F1 à F8) lorsque le décodeur est en mode analogique. Un 0 signifie que la fonction n'est pas utilisée tandis que 1 signifie qu'elle est active. Les fonctions F1 à F8 ont chacune leur bit respectif B0 pour F1 jusqu'à B7 pour la fonction F8.

CV17 et 18 : Adresse étendue :

Ces deux octets contiennent l'adresse étendue du décodeur. Elle n'est utilisée que si le bit 5 du registre de configuration (CV29) est à 1 ET si le décodeur est capable de supporter ce type d'adressage. Le CV17 contient une valeur comprise entre 192 et 231. Le CV18 contient n'importe quelle valeur entre 0 et 255. Cela fait 40x256 = 10240 adresses possibles; de quoi satisfaire les plus exigeants! Le CV17 représente la partie haute de l'adresse complète et CV18 la partie basse c'est-à-dire les poids faibles.
Calculateur CV17-18

La valeur entrée dans cette variable se décompose comme suit :

Contenu de CV17 binaire équivalent
192 11000000 0
193 11000001 1
194 11000010 2
- - -
- - -
230 11100110 38
231 11100111 39
tableau 4

Par exemple l'adresse 5206 serait écrite 11010100 01010110 dans les deux variables. Dans CV17 il y a 11010100 soit l'équivalent de 20 en décimal et dans CV18 01010110 qui a 86 pour équivalent décimal. L'adresse se calcule en tenant compte des bits en caractères gras. Le résultat final devient `20times256 + CV18 = 5120 + 86 = 5206`.

CV19 : Adresse d'Unité Multiple :

Grâce à cette variable il est possible de faire rouler plusieurs locomotives en unité multiple en leur attribuant une adresse d'UM. La valeur 0 indique que la motrice n'est pas en UM, tandis qu'une valeur entre 1 et 127 désigne l'adresse d'UM à laquelle elle est rattachée. Le bit 7 indique le sens de marche dans cette UM, en effet deux machines peuvent se trouver en marche avant vers des directions différentes. On peut donc définir le sens de marche dans l'UM grâce à ce bit de sens de marche. Si cette variable contient une valeur différente de zéro l'adresse d'U.M. sera utilisée prioritairement à l'adresse primaire (CV1).

CV21 : Etat des fonctions F1 à F8 en Unité Multiple :

Cette variable définit si chacune des fonctions F1 à F8 est utilisée ou non lors d'un fonctionnement en UM ou bien si elle répond uniquement à l'adresse primaire du décodeur. Un 0 à l'emplacement d'une fonction indique que celle-ci est commandée par l'adresse primaire (CV1) tandis qu'un 1 lui permet d'être commandée par l'adresse d'UM (CV19).

CV22 : Etat de la fonction FL en Unité Multiple :

La fonction FL correspond à l'éclairage de la machine. Comme pour la variable précédente l 'éclairage peut être commandé soit par l'adresse d'UM soit par l'adresse primaire. FL est située en B0 pour la marche avant alors que FL est en B1 pour la marche arrière.

CV23 : Ajustement de l'accélération :

L'utilisation de cette variable répond à la même formule que CV3. Elle permet d'avoir en mémoire une autre valeur d'accélération très utile pour simuler une inertie différente lorsque la machine se trouve en UM.

CV24 : Ajustement du freinage :

Identique à la variable précédente mais cette valeur s'applique au freinage de la machine.

CV25 : Table de vitesse / facteur de vitesse définition du milieu de la manette d'accélération :

Cette variable possède deux significations selon le nombre de pas de vitesse.

Valeur 0 ou 1
cette CV n'est pas utilisée
2 à 127
mode 128 pas. Dans cas la valeur (1 à 126) représente le facteur d'échelle de la table de vitesse ; la valeur 2 correspond à une échelle linéaire.
128 à 154
mode 14 ou 28 pas. Cette variable définit l'emplacement du milieu de la manette de commande de vitesse. Si cette valeur se trouve en dehors de la gamme le décodeur utilisera le nombre de pas utilisés divisé par deux.

CV29 : Registre de configuration (également valable pour les décodeurs d'accessoires (CV541))

Cette variable de configuration est une des plus importantes de toutes. La position des bits dans une CV est toujours celle du tableau 1.
Chaque bit peut prendre la valeur 0 ou 1 et sa valeur dépend de la configuration adoptée.
Calculateur CV29

Bit 0
Sens de marche de la locomotive
0 = sens normal
1 = sens inverse
Bit 1
Emplacement de la commande d'éclairage
0 = bit 4 des instructions de direction et vitesse
1 = bit 4 des instructions multifonction
Bit 2
Conversion de la source de commande
0 = NMRA uniquement
1 = autre source de commande (voir CV12)
Bit 3
Utilisation de l'acquittement avancé
0 = non utilisé
1 = en fonction (en cours de normalisation)
Bit 4
Courbe de vitesse personnalisée
0 = adresse courte : un seul octet CV1
1 = adresse étendue : deux octets CV17 et CV18
Bit 5
Type d'adressage
0 = courbe de vitesse à trois points avec les CV2, 5 et 6
1 = Active le tableau de vitesse dans le CV25
Bit 6
réservé pour un usage futur
Bit 7
Utilisé que par peu de fabricants. Type de décodeur
0 = décodeur multifonction (pour locomotive)
1 = décodeur d'accessoires

CV30 : Registre d'erreur :

Ce registre contient normalement la valeur 0. Si le décodeur a détecté un problème lors de son fonctionnement ce registre contient alors une valeur qui renseigne l'utilisateur sur la nature du problème que le décodeur a détecté. Lorsque cette variable est utilisée il faut se reporter au tableau fourni par le fabricant pour connaître le type d'erreur.

CV33 à 42 : Affectation des sorties FL, RL F1 à F8 :

Chaque sortie S1 à S10 peut être affectée à une fonction FL, RL, F1 à F8. Cela permet à l'utilisateur de choisir par quelle fonction il veut voir actionné tel ou tel accessoire embarqué à bord d'une locomotive. Un 1 doit être écrit à l'emplacement correspondant à la sortie commandée.

    sorties
CV Description 10 9 8 7 6 5 4 3 2 1
33 Lumière avant (FL)                   D
34 Lumière arrière (RL)                 D  
35 Fonction 1               D    
36 Fonction 2             D      
37 Fonction 3           D        
38 Fonction 4         D          
39 Fonction 5       D            
40 Fonction 6     D              
41 Fonction 7   D                
42 Fonction 8 D                  
tableau 5

CV65 : Démarrage rapide :

Définit la valeur de la pichenette à envoyer au moteur lorsqu'il passe de l'arrêt (cran 0) au premier pas de vitesse (cran 1).

CV66 : Facteur de vitesse en marche avant :

Cette variable contient un facteur d'échelle par laquelle la vitesse doit être multipliée lors de la marche avant de la machine. Si elle contient la valeur 0 cette variable n'est pas exploitée sinon la vitesse en marche avant est multipliée par CV66/128.

CV67 à CV94 : Table de vitesse :

Cet ensemble de variables contient les données relatives à la construction d'une table de vitesse propre à chaque type de machine. Grâce à cette table on peut donc dessiner la courbe de vitesse telle qu'on la souhaite selon le type de locomotive que le décodeur contrôle. La vitesse la plus faible est de 0 alors que la plus forte est 255. La table peut contenir 28 pas de vitesse. Le premier pas figure dans CV67, le second dans CV68... le dernier dans CV94.
Exemple de courbe de vitesse :

figure 3
figure 3

CV95 : Facteur de vitesse en marche arrière :

Cette variable contient un facteur d'échelle par laquelle la vitesse doit être multipliée lors de la marche arrière de la machine. Si elle contient la valeur 0 cette variable n'est pas exploitée sinon la vitesse en marche arrière est multipliée par CV95/128

CV105 et 106 : Numéro d'identification :

Ces deux variables sont destinées à recevoir des données que le propriétaire du décodeur voudra bien y mettre. Ces données peuvent représenter un numéro d'identification au sein d'un club par exemple pour identifier sa machine par rapport à une autre.

La liste des CV - Décodeur accessoire