OpenDCC – Une centrale DCC – Guide de construction
Préface
-
Selon VDE, l'association allemande des technologies électriques, électroniques et de l'information, un modèle réduit de chemin de fer est classé comme jouet ce qui signifie qu'il y a des règlements de protection fortes pour les utilisateurs.
Norbert Martsch a ajouté un lien vers un panier d’achat à reichelt.de, un fournisseur allemand de pièces électroniques.
Conseils pour souder
-
En premier, les remarques habituelles: utiliser un fer à souder électronique (ne dépassant pas 300W;-), du fil de soudure approprié (pas de soudure Tiffany au plomb), les diodes et condensateurs ont une polarité (petite barre ou «+» dans les schémas), les circuits intégrés sont sensibles à l’électricité statique, en quelques mots: Si vous êtes débutants ne commencer pas avec ce circuit comme premier montage.
D'autre part, il n'existe pas de véritables difficultés de soudage à l'exception de la puce USB qui utilise la technologie de montage en surface CMS. Les valeurs des résistances et condensateurs ne sont généralement pas critiques, dans le schéma il y a des indices pour les caractéristiques électriques (exceptions: R37 (utilisée uniquement pour régulateur à découpage PTH) doit avoir une précision de 1%: 348 Ohms, R32 et R10 doivent être des résistances à film métallique). La polarité des LED est repérable par leur patte longue pour l'anode (A, +) et la patte courte pour la cathode (K, -).
IC1 (H-bridge) ne doit pas être monté sur un support, mais soudé sur le circuit pour permettre la dissipation de la chaleur directement vers celui-ci.
Le circuit intégré FT232 USB est fourni dans un boitier SSOP de 28 broches en écartement de 0,65 mm. Commencer par déposer de la soudure sur un des points de connexion d’angle du circuit imprimé, puis positionner la puce en respectant son orientation, aligner toutes les pattes sur leurs points de connexion puis souder la patte de l’angle. Après celle-ci, continuer à souder le reste des autres pattes sur leurs points de connexion. Utilisez une panne de fer bien fine et de la soudure étain en fil de 0.5mm;-). Ne paniquez pas si deux broches se connectent. Ne pas rester pas trop longtemps à chauffer, mais laissez-le refroidir et recueillir l'étain en trop avec une tresse à dessouder. Vérifiez tous les joints soudés par la suite avec une loupe.
Au montage, l'oscillateur à quartz peut provoquer un court-circuit entre des pistes par son boitier métallique et les points de connexion des composants CMS. Utiliser un ruban isolant ou tout simplement prévoir un peu d'espace entre la carte et le boitier.
Préparation
-
Avant de monter les composants électroniques, vous devez couper le circuit imprimé suivant les lignes roses en cinq parties.

-
Carte de base: 120mm * 100mm
Carte S88: 70*38 mm
Carte boutons poussoir et LED: 38 * 23mm
2 cartes LED: 17 * 5mm


Connecter tous les 3 parties par des ponts métalliques en soudant (par exemple à partir de fils de pattes de résistances) sur les circuits imprimés selon les lettres AA à DD. Cela se traduit par l'espacement identique entre les LEDs. Le panneau avant est monté verticalement sur la carte de base. AA et BB seront à l'arrière, CC et DD à l'avant. Utilisez la carte principale en tant que guide de montage. Conserver l’alignement des lignes bleues (virtuels), éventuellement vous pouvez utiliser un guide si nécessaire.
Carte principale
![]() |
![]() |
Tout d'abord vous devez souder le composant de surface (CMS) près du connecteur USB. | Ensuite, continuer avec les résistances, les diodes, les supports de CI. Voir le schéma d’implantation pour le placement des résistances, des condensateurs et autres composants. |
Puis montez les circuits intégrés, les condensateurs, les connecteurs. Les connecteurs à l'arrière doivent être alignés sur le panneau arrière de la boite. Pour la gestion du port RS232 il y a 2 options possibles : MAX232 ou LT1080. Si vous optez pour Max232, vérifier la position de la broche 1 qui est décalée de 1 (vous reconnaitrez les plots de départ sur la carte).

Ci-dessus, une carte mère complètement montée, vue de derrière.
Remarque: dans cet exemple, les deux interfaces PC ont été ajoutées (RS232 et USB), en général une seule est suffisante. L'interface active doit être sélectionnée par les cavaliers JP5 et JP6. C'est 3 contacts, au milieu à gauche ou au milieu à droite, doivent être sélectionné en conséquence (les cercles rouges indiquent les positions sur les cartes en version 1.3, dans ce cas, la sortie RS232 est sélectionnée par des ponts de soudure, en version 1.4 on utilise des cavaliers).

Ci-dessus, une carte mère complètement montée, vue de face (les composants manquants ne sont nécessaires que pour l’interface Ponyprog).
Carte face avant (boutons poussoir et LEDs)
Tout d'abord assembler les cartes des boutons-poussoirs et les 2 petits panneaux LED, comme décrits précédemment. Il en résulte une distance entre LED de 22.86mm. Si vous avez une autre carte vierge de disponible, vous pouvez l'utiliser pour aligner ou utilisez un connecteur multibroche pour aligner les entretoises. (picture)
Ce panneau avant est monté sur la plaque de base verticalement dans le milieu. Utilisez deux connecteurs coudés 5 broches (ou découpez des pattes de résistance). Enfichez, mais ne soudez pas encore.
Soudez maintenant les boutons-poussoirs sur le panneau avant, mais tous les autres composants seront laissés non soudés pour pouvoir les aligner. Vissez le panneau avant sur la carte mère en utilisant un cube à vis (par exemple disponible chez l'allemand Bürklin, référence 17H912). Une fois que la carte des boutons-poussoirs est alignée sur la face avant vous pouvez souder les deux connecteurs coudés 5 broches.
Astuce par Alex: au lieu d'un cube à vis, vous pouvez également utiliser des fils métalliques épais insérés en diagonale. Il a découvert un cube similaire avec la référence "GB4xM3» qui est disponible à http://www.qrpshop.de/
Carte Complete
Panneau arrière
-
Le panneau arrière offre la prise RS232, la prise d’alimentation, la prise USB, la prise DCC, la prise Ctrl Plug In-Out qui toutes ont été montées sur la carte mère. Vous devez utiliser panneau arrière pré percé et pré découpé pour avoir l'alignement approprié. La carte d'interface S88 sera montée comme une carte fille (piggy-back) à l'aide d'un boulon de 20 mm et une vis M3. Elle sera reliée à la carte mère via un câble et des connecteurs à sertir à 14 broches.
À partir de la version 1.4 de la carte, le bus S88 est câblé selon S88-n. Cela permet le transfert en RAILDATA. Seulement dans ce cas, les résistances R41, R43, R44, R45 doivent être montés. Sinon, pour un usage normal, elles ne sont pas nécessaires, mais le cavalier à souder SJ2 (qui se trouve sur la face inférieure du panneau S88) doit être fermé.
Attention:
Il existe différents types de connecteurs disponibles: soit la broche mâle 1 de la carte est connectée au câble en fil 1 (repère), ou la broche alternative14 est connectée au câble en fil 1. Peu importe le mode utilisé, tant qu'il est utilisé sur les deux connecteurs de façon identique. Si une prise 14 broches n'est pas disponible, vous pouvez également utiliser un connecteur 16 broches - c'est pourquoi il ya des trous vacants supplémentaires dans le circuit imprimé.
Boitier
La carte mère ainsi que toutes les cartes filles piggy-back peuvent être montées dans un boitier Fischer et respectivement montées par vis sur les supports Teko. Les panneaux avant et arrière sont percés et découpés en fonction de ces <a href="opendcc_hw_mech_f.shtml">schémas</a>. Si vous souhaitez utiliser la carte d'interface DMX (non recommandé), vous devez connecter la fiche XLR via un câble selon la pince à vis 3 broches. Le numéro de connexion sera identique au numéro de XLR.
Astuce: si vous prévoyez d'installer un contrôle de lumière, il est plutôt recommandé d'utiliser le décodeur. Dans les versions futures du logiciel, le support DMX peut disparaitre.
Mise sous tension et tests
-
Après avoir monté tous les composants, faire une vérification visuelle et nettoyer les restes de soudure en utilisant un peu d'alcool. Pour l’instant, ne montez pas encore le processeur Atmel!
Ensuite, connectez l’alimentation pour la première fois, utilisez une alimentation de laboratoire et limiter le courant à 50 mA.
Vérifiez le 5V au régulateur de tension, puis de tester LEDs: Connectez une résistance de 220 ohms à la masse et de l'autre côté sur les broches du support de l’ATMEL 28, 29, 35, 36 - vérifier si les LED s’allument. Maintenant, commencer à monter les composants restants..
Quand tout est monté, connectez à nouveau l’alimentation: le courant de repos devrait être d'environ 30 mA car n’ayant pas encore un le microcontrôleur Atmel programmé. Avec un Atmel programmé, le courant de repos atteint environ 50 mA. Le courant de repos augmente encore en utilisant le régulateur de tension 5V et si la sortie DCC-out est équipée d'un filtre passe-bas RC (+60 mA).
Programmation initiale du microcontrôleur ATmel
-
Après avoir complété le matériel, le microcontrôleur Atmel a besoin d’être configuré et d’être chargé de son logiciel «firmware ». Cela se fait en 3 étapes:
- Programmation des "Fuses"
- Import du programme de chargement initial (Boot loader)
- Mise à jour par le logiciel
Le microcontrôleur Atmel ATmega32 propose plusieurs modes de cadencement et plusieurs modes d'amorçage (Boot loader) qui sont configurés par des fuses. Dans le projet OpenDCC, les bits fuses doivent être configurés comme suit:
Fuse bits | ||
---|---|---|
CKSEL3...0 | = 1111 | Tous les bits à 1 (non cochée) signifient que l’horloge externe 16MHz) Crystal est utilisé |
CKOPT | = 0 | Bit à 0 (coché): la sortie de l'oscillateur va osciller à sa fréquence maximum, la sortie de XTAL2 pilote un deuxième tampon d'horloge |
SUT1..0 | = 0 1 | Bit SUT1 non programmé, SUT0 non programmé (délai à la mise sous tension) |
BOOTSZ1..0 | = 0 1 | Bit BOOTSZ1 programmé, BOOTSZ0 non programmé; démarrage à l’adresse 0x7800 (taille du bootloader) |
BOOTRST | = 0 | Bit programmé, signifie que le Bootloader est utilisé. -> voir FW Update |
BODLEVEL | = 0 | Bit programmé, signifie que le niveau du seuil du détecteur de creux de tension (Brown-Out) est de 4V. |
BODEN | = 0 | Bit programmé, signifie que le Brown-Out est activé. |
Si vous utilisez PonyPorg / ISP le cavalier JP4 doit être déconnecté, car sinon il sera en conflit avec RS232. Ensuite la programmation initiale avec ponyprog iest décrite.

Ci-dessus, une description de l'adaptateur pour ISP-interface, qui peut également être construit séparément (peut-être souhaiterez-vous le réutiliser dans d'autres projets).
Attention: Pour cet adaptateur, dans la configuration Ponyprog, vous devrez cocher le "Invert Reset".
Si vous n'utilisez pas le PonyProg sur la carte mère, vous devez brancher l’adaptateur à l’interface ISP 6 broches et importer le Bootloader, ensuite il peut être débranché (soit dit en passant, il peut être utilisé pour programmer d'autres processeurs du projet ainsi).

Tout d'abord vérifier les paramètres de configuration de PonyProg. Pour OpenDCC vous avez besoin de cocher le "Invert Reset".

C'est ainsi que les fusebits sont positionnés (pour activer le Bootloader). Il est recommandé de suivre la séquence: Read - Change - Program (Write).
Pour charger le Bootloader, le fichier bootloader.hex doit être ouvert, puis envoyé à l'Atmega en utilisant la commande Write. Il n'y a pas de fichier EEPROM nécessaire pour le Bootloader.
Attention: Si le Bootloader n'est pas nécessaire, décochez la case BOOTRST. Dans ce cas l'application et l'EEPROM doivent être chargées via Ponyprog (il faut savoir qu'il n'est pas possible de mettre à jour via USB/RS232 ...)
Fuses pour Atmega644P (for Xpressnet)

Veuillez garder à l'esprit que la version officielle de PonyProg ne supporte pas ATMEGA644P, reportez-vous à la FAQ.
Fuses for ATmega644P | Valeur | Résultat | |||||||
---|---|---|---|---|---|---|---|---|---|
Lock Bit Byte | |||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0xFF | not locked |
Extended Fuse Byte | |||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
- | - | - | - | - | BOD2 | BOD1 | BOD0 | ||
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0xFC | 100 = 4.3V |
Fuse High Byte | |||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
OCDEN | JTAGEN | SPIEN | WDTON | EESAVE | BOOTSZ1 | BOOTSZ0 | BOOTRST | ||
1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0x9C | enter boot @0x7C00 (words) |
Fuse Low Byte | |||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
CKDIV8 | CKOUT | SUT1 | SUT0 | CKSEL3 | CKSEL2 | CKSEL1 | CKSEL0 | ||
1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0xD7 | no div, crystal, BOD enabled |
Programmation USB
-
Pour utiliser le circuit intégré de l’USB, il doit être initialement configuré (cette étape est uniquement nécessaire lorsque vous utilisez l'interface USB).
Chargement du logiciel OpenDCC
-
Maintenant, le logicie OPENDCC doit être chargé sur le microcontrôleur Atmega, ce qui consiste essentiellement en une procédure de mise à jour logicielle classique:
:
- Appuyez sur la touche STOP pendant le démarrage.
- LED jaune s'allume et le Bootloader attend le téléchargement du programme et du contenu de la mémoire EEPROM.
- Attention: Assurez-vous d'avoir configuré la puce USB avant, sinon il n'y a pas de connexion PC-OpenDCC possible pour la mise à jour.
Configuration de OpenDCC
-
Dans la dernière étape, les réglages personnels peuvent être appliqués (en option). Ceux-ci sont stockés dans les variables de configuration OpenDCC internes.
Il y a plusieurs façons de lire ou d'écrire celles-ci, certaines sont décrite dans Rocrail, ou dans Trainprogrammer.
Que faire si OpenDCC ne fonctionne pas
-
Avant tout, ne paniquez pas ! :-)
- Vérifiez si tous les composants sont au bon endroit et si leur orientation est respectée (polarité).
- Vérifiez tous les cavaliers (JP) et les ponts de soudure (SJ) .
- Vérifiez toutes les soudures et les pistes du PCB ( circuit imprimé ) si possible avec une loupe ou une loupe d'opticien.
- Vérification de la valeur de tension du régulateur 5V et de courant de repos 30-50 mA.
- Vérifiez si la signature d'Atmel est lisible : ATMEGA644P : 1E 96 0A
- Vérifier si la programmation est possible - si oui, pouvez-vous relire avec Ponyprog ?
- Vérification le RESET de l'Atmel et aussi que la fréquence de l'oscillateur: XTAL2 ( la sortie de l'Atmel de l'amplificateur inverseur de l'oscillateur) est de 16MHz .
Reset doit être en haut , la fréquence de 16MHz peut être mesurée avec oscilloscope) - Si mise à jour du firmware n'est pas possible via USB/RS232 après la configuration du Bootloader , essayez de charger le firmware directement via ISP / Ponyprog et leactiver le mode de test. Les fichiers Hex et EEP sont’il chargé tous les deux?
- Jumper 4 est’il réglé correctement ? Pour la programmation Ponyprog retirer le connecteur, le connecter pour une utilisation régulière .
- Astuce de Jan: Si lors de premier test, le processeur ne démarre pas, c’est peut être du à un court-circuit de piste SMD à cause du boitier métallique de l’oscillateur. Utilisez un isolant type ruban adhésif ou prévoir un espace.
- Activer le mode de test: Régler les deux cavaliers ( JP1 et JP2 ) , il y a alors un chenillard de l'ensemble des 4 LEDs ; en mode test OpenDCC envoie simplement l'octet reçu en retour ( avec 19200 bauds ) - vous pouvez vérifier cela avec n'importe quelle application Terminal ( ie RealTerm ) . Ce mode de test fonctionne aussi pour l'USB !
- Vérifiez si la puce RS232 crée + / - 8 -10V . Il peut y avoir un défaut de condensateur sur un composant neuf.
- Vérifiez si le câble série utilisé dispose bien de tous les fils de contrôle de flux matériel (handshake).
- Si les boutons ne fonctionnent pas : vérifier si ile ne sont pas monté en mauvaise position, rotation de 90 ° ?
Ensuite, vérifiez les points suivants :
Liens utiles
- Build report including additional hints by Stefan Linz (in German)
Build report by Guus Weggemans (in Dutch)
Farnell vendor for private customers: Fa. Heinz Büchner Elektronik, Berlin, Germany