|

Basis board DCC-EX,
klik
Inhoudsopgave van deze pagina
Deze pagina heeft de volgende secties (scroll down):
- Functionaliteit
- Stuklijst
- Codering weerstanden
- Het bouwen
- Volgende stappen en 1e test
- DCC-EX centrale zonder motor shield
- Upload definitieve sketch
- Instellen modelspoorsoftware
- Pinnen configureren op een DCC-EX unit
- Adressering
- Volgende stap: stack board
- Het eindresultaat
- Aansluitingen
Functionaliteit
Het basis board DCC-EX seriële unit is een 14 of 16-kanaals1
input en output device voor uitgaande (DCC-) commando's of binnenkomende
terugmeldingen. Deze seriële DCC-EX centrale wordt via een USB-kabel (niet
meegeleverd) met de besturings-PC verbonden.
1 Afhankelijk van de uiteindelijke configuratie zijn er 14
of 16 pinnen beschikbaar voor input of output via een stack board. Indien
de treinbesturingssoftware die je gebruikt bij 'Baanstroom Aan' slechts
1 centrale die opdracht geeft dan heb je 16 vrije pinnen, stuurt de software
die opdracht naar alle USB-centrales dan heb je 14 pinnen beschikbaar (pin
3 en 11 vallen dan af). Het is ook mogelijk om de pinnen 3 en 11
beschikbaar te maken. Dan zijn er 16 vrije pinnen. Verderop op deze
pagina wordt dat besproken bij 'DCC-EX centrale zonder motorshield'.
Te gebruiken met de stack boards: wissels, ontkoppelen, servo's, DC-outputs,
relais en pins, seinen LED, stroomdetectie, sensoren, test en debug, DCC-monitor.
De
moeilijkheidsgraad van deze bouwinstructie is 2.
Stuklijst
Controleer even of je alles compleet hebt:
- PCB basis board DCC-EX
- Nano V3 ATmega328
- Header 15P female (4)
- Header 2P male2
- Led 3mm groen
- Schroefterm. KF301 2P 5.0mm
- Weerstand 220Ω
2 Het kan zijn dat de 2P (polige) male header niet los in
de verpakking van het basis board zit. In dat geval blijft de benodigde
header over uit het op maat breken van de pinnen van het stack board (bv
wissels). Die pinnen leveren we meestal in 40-polige uitvoering en als
je daar de 2x 15P vanaf breekt blijven er 10 pinnen over.
Codering weerstanden
Er bestaan 2 veel gebruikte versies van kleurcodering voor weerstanden. Je zult
veelal beige of blauwe weerstanden tegenkomen:

Codering weerstanden,
klik
Voor het buigen van de aansluitdraden van een weerstand (of een diode) kun je een stukje karton
gebruiken van 2mm dikte (achterzijde schrijfblok). Als je beide aansluitdraden
om de rand van het karton buigt dan past de weerstand precies in de footprint op
het PCB (weerstanden hebben geen polariteit, het maakt dus niet uit welk pootje
in welk gaatje in de footprint op het PCB zit):

Weerstand buigen
Het bouwen
- Alle onderdelen worden op de zichtzijde van het board geplaatst
en aan de onderzijde gesoldeerd.
- Monteer eerst de weerstand 220Ω op R1.
- Plaats dan de led. Het lange pootje van de led (+) moet links en
het korte pootje van de led (-) moet rechts (- is de zijde met de witte
verdikte rand in de footprint).
- Plaats de 2-polige header pins (-5v+).
- Soldeer nu de schroefterminal en de 4 15-polige female headers op
het PCB.
- Soldeer, indien van toepassing, de 2 stuks 15-P male headers op
de Nano (plaats ze langs onder op het board en soldeer ze aan de
zichtzijde vast). Laat het zwarte blokje met de 6 pinnen weg,
monteer deze niet. Ze zijn niet
nodig en maken het aansluiten van accessoires op het stack board
soms lastig. Plaats tot slot de Nano in de daarvoor bestemde headers
op het basis board, met de
USB aansluiting aan de linker zijde (zie onderstaande afbeelding).
-
Controleer je soldeerwerk nog even visueel op slordigheden, onbedoelde
kortsluitingen tussen 2 soldeerpunten of niet gesoldeerde contacten.
- Aansluiten:
Verbind de Nano via een USB-kabel met de PC. Deze kabel blijft
tijdens normaal gebruik op de modelbaan aangesloten.
De KF301
schroefterminal wordt dan niet gebruikt, de voedingsspanning voor de
Nano komt dan immers via de USB-kabel vanuit de PC of vanuit een USB-hub.

Klik voor
vergroten
Volgende stappen en 1e test
- Het board is nu klaar voor een eerste test.
- Zorg ervoor dat er een CH340 (of CH341) driver op de PC geïnstalleerd is
(zoek in
Google). Deze Windows driver zorgt voor de verbinding tussen het Arduino
board en de PC met de Arduino IDE.
- Is de Arduino IDE (V2, Integrated Development Environment) op je PC geïnstalleerd?
Zo niet, dan kun je die downloaden vanaf
Arduino.cc.
Download de versie voor jouw systeem en start vervolgens de installatie.
-
Haal de Nano van het basis board af en verbind de Nano via een USB-kabel
met de PC.
- Start de Arduino IDE op de PC.
- Selecteer in de Arduino IDE het juiste board (Nano) en de juiste COM-poort.
- Download deze
testsketch en unzip het bestand in je map met Arduino projecten. Open daarna
de file met de Arduino IDE.
-
In
regels 20-25 van de code van deze sketch staan 5 pinmappings. Uncomment (dus
zonder //) de pinmapping voor je board (DCC-EX, DCC-EX I2C, DCC-decoder, LocoClient of
LocoBuffer en zorg ervoor dat de andere 4 pinmappings wel //
ervoor hebben staan in de code (C++ code met // ervoor wordt niet uitgevoerd).
Zie afbeelding:

Pinmapping instellen,
klik
- Controleer in de Arduino IDE de instelling bij:
[Tools]
[Processor]
Daar moet ATmega328p of ATmega328P (Old Bootloader) geselecteerd zijn.
- Upload de sketch vervolgens naar de Nano.
- Indien de sketch niet naar de Nano upload, controleer dan de volgende dingen:
- Is er een CH340-driver op de PC geïnstalleerd (USB)?
- Is de USB-kabel oké? Probeer eens een andere kabel. Sommige USB-kabels
hebben maar 2 aders en zijn alleen geschikt om iets op te laden. Normale
USB-kabels hebben 4 aders (2 datalijnen, 5V en gnd).
- Is het juiste board geselecteerd in de Arduino IDE (Nano)?
- Is de juiste COM-poort geselecteerd in de Arduino IDE?
- Switch in de Arduino IDE bij...:
[Tools]
[Processor]
...eens van ATmega328P naar ATmega328P (Old Bootloader) of andersom.
- Is Rocrail (of andere modelspoorsoftware) actief naast de Arduino
IDE? Soms conflicteren deze op het gebruik van COM-poorten als ze
tegelijkertijd gebruikt worden.
-
Plaats
de Nano terug op het basis board. Indien je beschikt over een stack board test
en debug, dan kun je dat nu op het basis board plaatsen in H1 en H2.
Heb je geen stack board test en debug dan kun je ook losse led's (met een weerstand)
of een multimeter gebruiken om de outputs te testen. Plaats nog geen ander stack
board! Dat doe je pas als je de definitieve sketch hebt geupload naar het basis
board.
- Als alles goed is gemonteerd en geïnstalleerd dan loopt er nu een testprogramma
op de Nano dat poorten 1 tm 16 steeds kort aan/uit schakelt (DCC-decoder, DCC-EX,
DCC-EX I2C en LocoClient). Of led's 1 en 2 branden continu en de led's 3-16
knipperen afwisselend (LocoBuffer). Op het stack board test en debug branden/knipperen
de led's 1 tm 16 één voor één, en in de seriële monitor (rode kader) van de
Arduino IDE verschijnt een melding dat alles goed werkt (let op: zorg ervoor
dat de baudrate van de Arduino IDE hetzelfde is ingesteld als de genoemde baudrate
van de sketch (void setup, zie rode kaders). zie afbeelding:

Baudrate instellen,
klik
- Algemene informatie over de werking van Arduino boards en de
verschillende modellen kun je op
deze pagina raadplegen. En mocht je meer willen leren over het programmeren
van Arduino boards in C++ dan kun je bv terecht op
deze website (Bas on
Tech).
DCC-EX centrale zonder motor shield
Pinnen 3 en 11 worden gebruikt door het motor shield van het
Command Station. Maar een losse DCC-EX unit zonder motor shield (voor oa
wissels, seinen, stroomdetectie etc) heeft
deze pinnen daarvoor niet nodig. Je kunt ze op de volgende wijze
beschikbaar maken als inputs of outputs:
- Maak een kopie van de map met de CommandStation-EX software (zodat het
origineel beschikbaar blijft). Deze map staat meestal in Documenten
> Arduino > Projecten. De originele map heet bv
'CommandStation-EX-5.0.0' en dan kun je de gekopieerde en aangepaste
map bv 'CommandStation-EX-5.0.0 edited motordrivers.h' noemen, dan
is het verschil duidelijk.
Je kunt deze (reeds aangepaste) DCC-EX software ook hier direct
downloaden. De aanpassing uit de stappen 2 tm 7 hieronder zijn
dan al gedaan.
Let op - Staat de CommandStation-EX software voor Arduino nog niet op je PC, voer dan eerst stappen 1-3 van het
onderwerp hieronder uit (Upload de definitieve DCC-EX sketch) en ga
dan verder met stap 2 van dit deel. Die 3 stappen kun je dan straks
overslaan.
- Open de gekopieerde DCC-EX software in de Arduino IDE.
- Selecteer de file motorDrivers.h
- Zoek in deze file naar de regel //
STANDARD shield on any Arduino Uno or Mega compatible with the
original specification.
- Pas bij de definitie van het standaard motor shield de volgende
regels aan die eronder staan.
Originele code:
new MotorDriver(3, 12, UNUSED_PIN, UNUSED_PIN, A0, 2.99, 2000,
UNUSED_PIN)
new MotorDriver(11, 13, UNUSED_PIN, UNUSED_PIN, A1, 2.99, 2000,
UNUSED_PIN)
Moet worden:
new MotorDriver(20, 21, UNUSED_PIN,
UNUSED_PIN, A0, 2.99, 2000, UNUSED_PIN)
new MotorDriver(20, 21, UNUSED_PIN,
UNUSED_PIN, A1, 2.99, 2000, UNUSED_PIN)
- De aangepaste file motorDrivers.h
slaat zichzelf in de Arduino IDE automatisch op.
- Upload de sketch CommandStation-EX naar de Nano op het basis
board DCC-EX.
Upload de definitieve DCC-EX sketch
- Installeer eerst (als je dat nog niet gedaan hebt) de
CommandStation-EX software
voor de Arduino IDE.
- Download deze software
hier.
- Pak de ZIP-file uit in je map met Arduino projecten (dus niet
bij de libraries!).
- Open nu de sketch CommandStation-EX in de Arduino IDE. Deze
sketch staat in de projecten-map
van de Arduino IDE. Upload die sketch naar het
Nano board. De naam van deze sketch kan per DCC-EX versie overigens
iets verschillen.
Let op - Kies de juiste map voor de
CommandStation-EX software indien je bij het vorige deel de file motorDrivers.h hebt
aangepast! Dus de map met die aangepaste
versie en niet het ongewijzigde origineel...
- In de seriële monitor van de Arduino IDE verschijnt een melding
dat alles werkt.
- Plaats nu het stack board dat je bij dit basis board wil
gebruiken op het basis board.
Instellen modelspoorsoftware
Er zijn natuurlijk verschillende programma's voor digitale modelspoorbesturing.
In deze bouwinstructie vermelden we de settings voor Rocrail (hier
onder) en iTrain (scroll door). Maar andere
programma's wijken daar niet zo veel vanaf.
DCC-EX in Rocrail
Je stelt dit globaal als volgt in:
- Maak een nieuwe centrale aan, type DCCpp. Kies een logische en herkenbare
naam voor de unit (bv 'DCC-EX wissels 1').
- Kies de juiste COM-poort via welke het basis board DCC-EX met de
PC verbonden is.
- Start de software opnieuw op.
Aanmaken centrale:

Klik voor
vergroten

Klik voor
vergroten
Controleer vervolgens de instellingen op het tabblad centrale-general.
Indien je in jouw versie van Rocrail een parameter CTS ziet, dan moet die 'uit' staan.
Rocrail kan zelf de input- en outputpinnen op de DCC-EX unit intern
instellen in de EEprom van de stack module. Maak de juiste accessoires (bv
wissels, seinen, melders, etc)
binnen Rocrail aan, start het pakket opnieuw op en Rocrail programmeert
de inputs en outputs voor je (iTrain doet dat NIET, daar moet het
handmatig gebeuren).
Je kunt het in Rocrail ook met de hand instellen. Dat kan mogelijk
nodig zijn omdat je bv nog niet alle accessoires zoals bv wissels,
seinen en
melders ingevoerd hebt in het baanplan. Er zijn 2 manieren om dat te
doen:
- Op
het tabblad centrale-I/O van Rocrail kun je de pinnen handmatig opvragen,
wijzigen, aanmaken en opslaan (aanbevolen).
- Of je kunt de pinnen ook direct in het CommandStation-EX
instellen via de seriële monitor van de Arduino IDE. Lager op deze pagina staat hoe je dat kunt doen.
Let op: bij inputpinnen (voor bv
stack board stroomdetectie) zet je tevens de
parameter 'pullup' aan (0x01).
DCC-EX unit in iTrain
Stel de DCC-EX unit als volgt in iTrain in:
Interface, tab algemeen:

Klik voor
vergroten
Interface, tab verbinding:

Klik voor
vergroten
Interface, tab specifiek:

Klik voor
vergroten
iTrain kan geen input- en outputpinnen op een DCC-EX unit
programmeren in de EEprom. Deze moet je dus handmatig via de Arduino IDE
instellen. Volg daarvoor de volgende stappen:
- Sluit de DCC-EX unit via een USB-kabel aan op de PC en start de
Arduino IDE.
- Stel in de IDE indien nodig het juiste board en de juiste
COM-poort in.
- Open de seriële monitor (cntrl-shft-m) en type de onderstaande
oranje tekst in de commandline van de seriële monitor (+ enter).
- Indien je outputs wilt definiëren (bv wissels, seinen,
ontkoppelaars, licht, etc):
<Z ID PIN IFLAG>
<Z 2 2 0>
<Z 3 3 0>
<Z 4 4 0>
<Z 5 5 0>
<Z 6 6 0>
<Z 7 7 0>
<Z 8 8 0>
<Z 9 9 0>
<Z 10 10 0>
<Z 11 11 0>
<Z 14 14 0>
<Z 15 15 0>
<Z 16 16 0>
<Z 17 17 0>
<Z 18 18 0>
<Z 19 19 0>
Waarbij IFLAG het gedrag van de pin aangeeft: 0 = normaal, 1 =
inverted.
Sluit af met <E> om de config op te
slaan in de EEprom van de stack module.
- Indien je inputs wilt definiëren (bv voor stroomdetectie):
<S ID PIN IFLAG>
<S 2 2 0>
<S 3 3 0>
<S 4 4 0>
<S 5 5 0>
<S 6 6 0>
<S 7 7 0>
<S 8 8 0>
<S 9 9 0>
<S 10 10 0>
<S 11 11 0>
<S 14 14 0>
<S 15 15 0>
<S 16 16 0>
<S 17 17 0>
<S 18 18 0>
<S 19 19 0>
Waarbij IFLAG het gedrag van de pin aangeeft: 0 = normaal, 1 =
pullup.
Sluit af met <E> om de config op te
slaan in de EEprom van de stack module.
- Aanvullend: klik op deze
link voor een overzicht van alle commando's die je via de
command line van de seriële monitor van de Arduino IDE kunt
gebruiken bij stack modules DCC-EX.
Adressering
Basis boards DCC-EX werken direct via een USB-kabel met de treinbesturingssoftware.
Bij de adressering van accessoires zoals wissels, ontkoppelaars, seinen,
DC outputs, servo's, etc, gebruiken stack modules een pinmapping.
DCC-EX basis boards worden dus direct aangestuurd op de pinnen.
Let op: Het
adres van een accessoire dat je moet instellen in de modelbaansoftware
(bv Rocrail) is dus de pin van de desbetreffende
Nano (D2 tm D11 en A0 tm A5).
De stack modules hebben meestal 16 kanalen (1 tm 16).
Voor DCC-EX geldt op stack modules de volgende pinmapping:
Aan te sturen
Nano pin |
Kanaal op het
stack board |
| 0 niet in gebruik |
|
| 1 niet in gebruik |
|
| 2 |
1 |
| 3 soms niet bruikbaar, zie 1 |
2 |
| 4 |
3 |
| 5 |
4 |
| 6 |
5 |
| 7 |
6 |
| 8 |
7 |
| 9 |
8 |
| 10 |
9 |
| 11 soms niet bruikbaar, zie 1 |
10 |
| 12 niet in gebruik |
|
| 13 niet in gebruik |
|
| 14 A0 |
11 |
| 15 A1 |
12 |
| 16 A2 |
13 |
| 17 A3 |
14 |
| 18 A4 |
15 |
| 19 A5 |
16 |
Dus, als je kanaal 1 op het stack board wilt schakelen dan stuur je
op het basis board DCC-EX pin 2 aan. En voor een accessoire op stack board kanaal 16 stuur je
op de Nano op het basis board pin 19
aan.
Volgende stap: stack board
Zie voor verdere instructies en de volgende stappen de
bouwbeschrijvingen
sectie 2 van de
stack boards die op dit basis board passen (zoals wissels, terugmelding, ontkoppelen, seinen,
servo's, outputs, etc).
Het eindresultaat

Aansluitingen
Dit basis board heeft de volgende aansluitingen:
- USB-C (Nano), deze wordt aangesloten op de USB-poort van de PC
of op de USB-hub.
- Schroefterminal KF301, hier kun je 5v DC (niet meer!) voedingsspanning
aansluiten als de Nano niet met USB verbonden is. De polariteit is vermeld
op het PCB.
- 2 male pins (direct achter de schroefterminal), deze zijn verbonden
met de schroefterminal voor de voedingsspanning. De polariteit is vermeld
op het PCB.
Deze pinnen kun je gebruiken om de voedingsspanning met 2 korte
Dupont-kabeltjes door te lussen naar de voedingsspanning van het
stack board dat op dit basis board geplaatst gaat worden. Maar let
op: alleen indien de voedingsspanningen van het basis board en het
stack board gelijk zijn (bv bij LED seinen).
- H1 en H2, hier plaats je een stack board naar keuze.
|