Menu HTML / Javascript : Aperçu

Blog du réseau du Mesnil-sur-Jorg

mercredi 18 juin 2025
      Membre de Train d'enfer 95

Arduino : Décodeur DCC embarqué à base de ATtiny85


Tout d'abord, pour transmettre le signal DCC à l'Arduino et/ou à l'ATtiny, on utilise le montage habituel dit "de Minabay".

minabay_270pf.png

On envoie le signal sur le pin affecté à l'interruption INT0 (D2 sur les Uno, Nano, pro Mini, Mega2560 et PB2 sur les ATtiny85). J'ai essayé en utilisant INT1 sur D3 avec une Mega 2560 et ca fonctionne également.

 

attiny85_pinout.png


Au niveau du code, on utilise la bibliotèque "DCC_Decoder.h"

(https://github.com/MynaBay/DCC_Decoder/blob/master/DCC_Decoder.h).

Mon code personnel est disponible sur demande, mais on trouve sur le net un tas d'exemples de code Arduino pour faire un décodeur d'accessoires.

Passons maintenant à la partie qui m'a posé problème par manque de connaissances de ces petites bêtes que sont les ATtiny. cry

Pour téléverser le code dans ces puces qui ne possèdent pas de prise USB, j'utilise depuis longtemps un programmateur ISP de ma conception
(voir ma page https://wgnt-train.fr/article.php?sid=256 ).

On considère donc que le Tiny85 est installé correctement sur le programmateur ISP.

Il faut ég
alement que les cartes ATtiny soient installées dans l'IDE. Ceci se fait en ajoutant dans  "préférences / URL de gestionnaire de cartes supplémentaires" la ligne suivante :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Screen

Vous aurez ainsi accès au choix des cartes Tiny dans les outils de l'IDE

Screen
Dans le cas de la conception d'un décodeur DCC, il est obligatoire que l'horloge du Tiny85 soit à 16Mhz. Il faut donc modifier le bootloader dans ce sens et il faut le faire AVANT d'envoyer le code.


Dans l'IDE Arduino, on paramètre ainsi :
Screen

Pour flasher le bootloader du Tiny, c'est finalement très simple. Le Tiny étant installé correctement dans le programmateur ISP et convenablement paramétré dans l'IDE comme sur les copies d'écran ci-dessus (en particulier clock : Interne 16MHz), il suffit de cliquer sur "Graver la séquence d'initialisation".
Screen

Vous verrez la led bleue du programmateur "travailler" puis un message s'affichera en bas à gauche de l'IDE indiquant la bonne fin du procéssus. Bon !!!! ici j'ai un message d'erreur car rien n'est branché sur le port.cool

Sans rien toucher, il suffira alors de cliquer sur l'icone "Téléverser" de l'IDE pour "envoyer" le code.  La led bleue "travaille" un moment puis message de l'IDE et ..... c'est fini.

Vous pourrez enlever votre Tiny et l'utiliser avec les bonnes connexions. Notez qu'en changeant la position d'un inverseur, vous pourrez  tester le Tiny directement à partir de la carte programmateur ISP (voir sa notice).

Voici les vidéos des tests. Comme à l'ordinaire les tests sont effectués à l'aide d'une centrale Sprog3 (ce qui nécessite une modification du code de l'adresse du signal DCC) et du logiciel Centre de programmation DCC de Claude Ferrari.

Sur la première on se consacre au montage avec un nano. On visualise bien le test de connexions des leds pendant le setup. On vérifie également que la dernière position de la sortie est mémorisée et reprise lors d'un nouveau démarrage.

 

Voici le PCB que j'ai dessiné à cette fin. Pour ma part, j'utilise 8 pins en sorties via 1 ULN2803 et  2 pins en entrée analogique pour régler l'adresse DCC de départ de la carte. Bien sur D2 est réservé au décodage du signal DCC. Il pourrait être intéressant d'offrir le choix pour que le + commun des sorties soit en 5V ou en 12V.

Decodeur

 

Decodeur


Sur la deuxième vidéo, on se concentre sur le fonctionnement du Tiny85. On constate bien le test des connexions du setup, puis le clignotement d'une des leds que j'ai ajouté au test pour vérifier le bon transfert du code. La mise en mémoire des dernières positions fonctionne également très bien.

 


Voici le PCB que j'ai dessiné à cette fin. Pour ma part, j'utilise 3 pins en sorties et  1 pin en entrée analogique pour pouvoir régler l'adresse DCC de départ de la carte (montage indépendant à venir). Bien sur PB2 est réservé au signal DCC. 

ATTENTION, le fonctionnement de ce PCB n'est pas testé.
PCB_Decodeur_embarque1.png

 

PCB_Decodeur_embarque2.png


 

 


Publié le : Samedi 22 février 2025 @ 16:09:33
Envoyer cet article à un ami      Page spéciale pour impression
Article du Jour
Il n'y a pas encore d'article du jour.
Lettre d'information

Recevez par mail les nouveautés du site.

Chat Box
Activité du Site

Pages vues depuis 15/01/2020 : 704 482

  • Nb. de membres 7
  • Nb. d'articles 137
  • Nb. de forums 0
  • Nb. de sujets 45
  • Nb. de critiques 0

Top 5  Statistiques


Plus de contenu