De C64 als centrale

In 1985 kwam Märklin met "digital" op de markt, gebaseerd op een protocol van twee Motorola chips die werkten als zender en ontvanger over een tweedraads verbinding. Dat zijn de MC140526 en MC140527 (zie https://www.nxp.com/docs/en/data-sheet/MC145026.pdf)

In 1989 werd dit systeem uitgebreid beschreven in het tijdschrift "Elektuur", inclusief een zelfbouw centrale en zelfbouw decoder voor in de treinen. Daarmee ben ik aan de slag gegaan.

In plaats van de Motorola chip als "zender" heb ik het opwekken van de digitale code softwarematig gerealiseerd met een Commodore 64. De Motorola ontvanger heb ik één keer gebruikt voor een zelfbouw decoder voor een diesel locomotief met heel veel vrije ruimte onder de kap. Daar is het wel bij gebleven. Alle decoders die ik nu in gebruik heb zijn kant en klaar gekocht.

Het is nodig om de digitale codes voortdurend te blijven verzenden anders komt er een negatieve gelijkspanning op de baan te staan en stopt alles (met moderne decoders wordt de baan dan herkend als "analoog" en gaat de trein er als een haas vandoor!).

Op een C64 kan de regelmatige opwekking van signalen gerealiseerd worden door gebruik te maken van een ingebouwd
"Timer-Interrupt", 50 keer per seconde wordt dit interrupt gebruikt om het toetsenbord uit te lezen. Daar kunnen we mooi gebruik van maken. De toetsenbord uitlees procedure start op intern adres $EA31 in de Kernal ($ voor hexadecimaal). De waarde van dit adres wordt standaardmatig gezet in RAM adressen $0314 en $0315, daar staan dus de waardes $31 en $EA. Maar RAM inhoud kan je veranderen en daar heb ik gebruik van gemaakt.

Eerst natuurlijk een goed werkend (machinetaal) programma schrijven dat de digitale code genereert. Bij mij start die op adres $8760. Zodra ik de waardes $60 en $87 in de adressen $0314 en $0315 zet zal 50 keer per seconde mijn programma draaien en voor één trein de digitale code verzenden. En door een teller bij te houden steeds voor een volgende trein. Samen 16 keer en dan weer de eerste. Dit programma wordt steeds afgesloten met een sprong naar $EA31 om ook nog even het toetsenbord uit te lezen anders wordt de C64 "doof" voor input en dus onbestuurbaar.

Deze hele procedure duurt 9ms (toetsenbord minder dan 1ms). Er blijven dus steeds 11ms over om al het overige werk te doen zoals blokbezetting uitlezen, wissels omzetten, seinlichten schakelen, overwegen sluiten of openen, de wagon-tippler starten, de mijnschacht lift draaien, de kolenlader bedienen, stations- , straat- en huisverlichting schakelen, de rangeerheuvel activeren.

Uit de C64 komen nu dus digitale rij-instructies op het niveau 0/5 volt. Met een schakeling ontleend aan de Elektuur centrale uit 1989 wordt dit omgezet in -20/+20 V en vervolgens versterkt met de zelfbouw Elektuur Booster die meer dan genoeg stroom levert voor 10 of meer tegelijkertijd rijdende treinen. Er is ook voorzien in een adequate kortsluit beveiliging. Stopknop of kortsluiting schakelen de Booster op 0 volt, met de startknop wordt de rijspanning weer ingeschakeld.

De Elektuur Booster