Trains Essonne Nord

Accueil > Technique > Digital > Adresses longues en DCC

Adresses longues en DCC

17 avril 2021, par Jean Champalbert

Adresses longues

Cette notion a déjà été évoquée lors de la description de l’emploi du bit 5 de la Cv 29.

En digital chaque machine, chaque système informatique doit avoir une adresse unique pour communiquer, envoyer et recevoir des informations. Nous avons vu que le plus grand nombre possible que peut contenir un octet est 2 à la puissance 7 soit 128 en décimal. Nous avons également vu que la Cv1 codée sur un octet contenait l’adresse du décodeur. Donc en principe nous ne pourrions coder que 127 décodeurs, l’adresse 0 étant réservée pour les machines digitalisée fonctionnant sur un réseau analogique, ce qui n’est pas conseillé.

Dans l’excellent forum p’titrain (http://ptitrain.com/) un co-listier s’étonnait qu’une locomotive programmée sous ZIMO, n’était pas reconnue sous LENZ.
Je vous livre ci dessous le réponse de Monsieur Marcel THOMAS, notre grand gourou du digital et spécialiste Zimo http://www.cdfinformatique.com/

Bonjour, Cela vient peut-être d’une différence d’interprétation de la norme DCC en ce qui concerne l’adressage des décodeurs :
Lorsque vous donnez une adresse à un décodeur avec une centrale Zimo, avec une adresse comprise entre 1 et 127, la centrale configure automatiquement le décodeur avec une adresse "courte" dans la CV1 et CV29 bit5=0, si vous donnez une adresse comprise entre 128 et 10239, la centrale configure le décodeur avec une adresse "longue", dans les CV17 et 18 et avec CV29 bit5=1.
Avec une centrale Lenz les adresses 1 à 99 sont considérées comme des adresses courtes et au delà comme des adresses longues.
En conséquence, si vous configurez un décodeur avec une adresse comprise entre 100 et 127 avec une centrale Lenz, ce décodeur ne sera pas commandé par la centrale Zimo et réciproquement.
De même, certaines centrales d’autres constructeurs, considèrent que les adresses longues vont de 1 à 10239 et permettent par exemple d’avoir une adresse 63 "courte" et une adresse 63 "longue." M.THOMAS

Comme quoi la normalisation n’est pas ce qu’elle devrait-être.

Et pour aller au-delà de 128 alors ?.

La première chose à vérifier c’est votre système DCC ; accepte-t-il l’affichage sur 4 digits, votre décodeur accepte-t-il les Cv 17 et 18, avez agi sur le bit 5 (6) de la Cv 29 pour accepter les adresses longues. Si les trois conditions sont remplies alors vous pouvez adresser votre décodeur jusqu’à 10239.
Pour atteindre le nombre décimal 10239 il nous faut au moins 14 bits.

La Cv 17 va associer un octet supplémentaire à l’adresse initiale et passer ainsi à 16 bits ce qui augmente la valeur de 256 à chaque fois. En fait seuls 14 bits sont utilisables, par convention par structure hardware du décodeur par compatibilité avec l’existant, le Wiki de la NMRA de dit rien à ce sujet et la Cv 18 va contenir la valeur excédentaire de ces deux octets soit 128 + 64 = 192.

En pratique

Il faut décomposer l’adresse (sur 14 bits), écrire l’adresse en binaire, prendre les 8 bits de poids faible, les plus à droite, qui vont aller dans le CV18 et les 6 bits de poids fort les plus à droite additionné de 192 (car les 2 bits de poids fort doivent être à 1) qui iront dans CV17.

C’est pas gagné !
Autrement exprimé en calcul décimal : le CV17 est la division entière de l’adresse souhaitée par 256 additionné de 192 et le CV18 est le reste de la division entière de l’adresse souhaitée par 256.
Par exemple, programmons notre CC 472067. Nous n’avons droit qu’à 4 digits donc nous lui affectons l’adresse 2067. C’est une pratique courante chez les modélistes de prendre les 4 derniers chiffres de leur machine. Pourquoi pas mais attention en Club si deux adhérents ont le même modèle et font circuler simultanément leur matériel, les deux machines recevrons les mêmes instructions et plus personne ne saura qui contrôle. Une discrète étiquette sous le modèle avec une adresse personnalisée est tout aussi valable, une petite fiche complétera le tout.
Donc nous optons pour 2067, il s’agit d’une adresse longue puisque supérieure à 127. Nous avons activé le bit 5(6) de la Cv 29, il nous faut programmer les CV 17 et 18
CV17 = (2067 divisé par 256 = 8,074218) On ne garde que la partie entière de la division soit 8 on ajoute 192 du décalage des 2 bits de poids fort non utilisé 128 + 64 et on obtient CV17 = 8 +192 = 200
CV18 = (2067 – Valeur CV17 X 256) = 2067 – (8 x 256) = 19.
Et que devient la Cv 1, Elle n’est plus concernée par notre choix d’adresse longue et garde la valeur d’origine en général 3 ou toute valeur courte antérieure.

Toute cette théorie n’est qu’explicative, au quotidien, votre centrale se charge de tout. Vous devez pouvoir écrire directement en décimal l’adresse longue souhaitée. A la validation de l’interface avec votre centrale, les Cv 29, 17, et 18 seront écrites dans le décodeur.

Voilà en images le résultat de la programmation à la main avec une LH 100 Lenz

En mode programmation on a saisi l’adresse 2067 et le système Lenz a enregistré dans le décodeur la valeur 62 pour la Cv 29 (reportez vous à l’article sur la Cv 29 vous voyez que le bit 6 Lenz est activé donc acceptation des adresses longues et le calcul des valeurs des Cv 17 et 18 est conforme à ce qui a été dit plus haut
De même la plupart des logiciels de programmation font ce calcul à votre place.
Par exemple avec le DCC Center le simple fait de saisir l’adresse, les CV concernées sont calculées er seront écrites dans le décodeur dès l’enregistrement.
Vous remarquez que dans les paramètres de la Cv 29 (encadré) vous n’avez pas la main sur le bit ((6). Dans la liste des Cv bien faible pour l’instant les Cv 17 = 200 et Cv 18 = 19 sont enregistrées.

La même chose avec DecoderPro de JMRI.

Vous constatez également que la Cv 1 contient 55, une ancienne adresse et que les Cv 17 avec 200 et Cv 18 avec 19 on bien été calculées et écrites dans le décodeur lors de la saisie de l’adresse longue.

Valeurs calculées des Cv 17 et 18
Et si vous n’avez rien de tout cela, on trouve sur le web quantité de sites qui proposent des calculateurs mais il faudra saisir les résultats à la main pour les enregistrer dans votre décodeur..
https://geillon.pagesperso-orange.fr/digital/calculcv.htm
https://www.digitrax.com/support/cv/calculators/#cv29_calc
Ou celle de Claude Ferrari le concepteur de DCC Center à installer sur votre téléphone Android https://play.google.com/store/apps/details?id=com.ferrari.dcccalculator&hl=fr&gl=fr
Et les excellentes calculettes DCC Calc et CalcAddr développées par nos amis du Rail Train Crau qui nous ont déjà offert en téléchargement gratuit le RTDriveLenz, RTDriveEcos, CalVit, une calculette qui vous donnera la vitesse de votre convoi en fonction du temps mis pour parcourir une distance donnée en HO ou en N. Rail Train Crau Camargue : DCC CALC (rt2c.net)
Voyez aussi l’article d’Eric Limousin EspaceRails.com - Modélisme - Paramétrer une adresse longue où vous trouverez le détail des multiples de 256.

Sinon il vous reste encore la possibilité d’utiliser une macro dans Excel écrite en VBA en 2006 et que j’avais mis sur le PC du Club pour vous tirer d’affaire n’ayant pas d’accès à Internet.
Vous créez deux boutons dans une feuille de calcul, et trois zones de saisie vous affectez le code à ces objets.

Sub Macro1()
’ Macro crée le 31/07/2006 par CHAMPALBERT
Dim LAdresse As Integer
Dim CV17 As Integer
Dim CV18 As Integer
Dim Msg, Style, Title, Reponse As String
LAdresse = Range("F19").Value
If LAdresse < 128 Or LAdresse > 9999 Then
Msg = "Veuillez saisir un nombre entre 129 et 9999"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Saisie de l’adresse de la locomotive"
Reponse = MsgBox(Msg, Style, Title, Help, Ctxt)
If Reponse = vbYes Then ’ L’utilisateur a choisi Oui.
Range("F19").Value = ""
Range("F19").Select
Else ’ L’utilisateur a choisi Non.
End
End If
End If
CV17 = Int(LAdresse / 256) + 192
CV18 = LAdresse - ((CV17 - 192) * 256)

Range("F22").Value = CV17
Range("F24").Value = CV18
End Sub

Sub RAZ()
’ Macro crée le 31/07/2006 par CHAMPALBERT
Range("F19").Value = ""
Range("F22").Value = ""
Range("F24").Value = ""
Range("F19").Select
End Sub


Voir en ligne : Une calculatrice de CV pour smartphone Android