Loconet

Burgi’s Loconet-Komponenten

Der Drahtverhau früherer Zeiten, wo die Steuerleitungen aller Weichen, Signale und sonstigen zu steuernden Geräte zu den berühmten blauen Märklin-Schaltpulten geführt werden mussten, gehört dank der modernen Bus-Techniken der Vergangenheit an.
Bussysteme wie Loconet bieten die Möglichkeit, die Verbraucher dort zu schalten wo sie sind und Rückmeldungen zu erzeugen und ins System einzuspeisen, und das mit einer netzwerkartigen Verkabelung und ‘intelligenten’ Steuergeräten.

Dankenswerterweise hat der Erfinder des Loconet, die Firma Digitrax, sowohl die zugrunde liegende Technik als auch die verwendeten Protokolle für die private, nicht kommerzielle Verwendung hier veröffentlicht.
Wer mit den Begriffen BUS-System, Protokoll usw. nichts anfangen kann, sollte sich besser die oben erwähnte Loconet-Doku ‘reinziehen. Wem das alles auch dann noch nichts sagt, liest ab hier besser nicht weiter, denn ich werde hier nicht die technisch/logischen Grundlagen erklären, sondern lediglich beschreiben, wie ich das Ganze umgesetzt habe - nichts für ungut!

Auf dieser Basis habe ich meinen Loconet-Controller und die benötigten I/O-Module für die Ansteuerung der Weichenantriebe, Entkupplungs-Module, Lichtschalter und Gleisbesetztmelder entworfen, programmiert und gebaut.

Das Ganze funktioniert stabil und zuverlässig an meiner Intellibox sowohl am ‘T’- als auch am ‘B’-Anschluss (dazu später mehr).

In meiner letzten Softwareversion habe ich auch noch die Konfiguration mittels SV-Programmierung sowie einen selbstgestrickten (aber Loconet-protokollkonformen!) IPL-Modus impelmentiert, so dass ich bei Softwareänderungen nicht immer die Prozessoren per ICSP neu programmieren muss.

Die Wahl des Prozessors fiel auf den Microchip PIC16F870, denn der hat alles was ich brauche: 2KWorte Flash-Ram für’s Programm, reichlich I/O Ports, einen USART für das Loconet-Interface, diverse Timer und Interrupts für die internen Abläufe. Taktfrequenz ist 4Mhz - einfach zu beherrschen und bei manueller Assembler-Programmierung Leistung satt - das ergibt aufgrund des Microchip-typischen Taktteilers von 4:1 eine Befehlszykluszeit von 1µSek - sehr praktisch für die Kalkulation von Schleifenzeiten usw.. Und incircuit-programmierbar ist er auch.

Die Programmierung erfolgt in Microchip Assembler - bei einem Prozessor, der keinen Daten-Stack und nur einen vierstufigen Call-Stack hat, bleibt einem m.M.n. auch gar nichts anderes übrig. Ausserdem macht’s Spass - ‘Back to the roots’ sage ich da nur...

Der Prozessorteil und der I/O-Teil befinden sich auf getrennten Platinen, die über ein 10poliges Flachbandkabel verbunden sind. Das hat den Vorteil, dass ich genügend Controller-Komponenten auf Vorrat ätzen kann, und je nach benötigter Ausgangskonfiguration (Triac oder Relais) die passende I/O-Karte dazu stecke. Hier ist schonmal der Schaltplan des Controller-Moduls.