LocoIO Atmel
Pfad: mknetz/Eisenbahn/Digital/Loconet/LocoIO
Impressum
Autor: Klaus Merkert
Letzte Änderung dieser Seite: 12.10.2014 15:30:49 6930

LocoIO

LocoIO war eine Initiative von John Jabour, für das Loconet-Protocol eine auf einem PIC-Microcontroller basierende frei konfigurierbare 16-fach Ein-/Ausgabe zu bauen. LocoIO stellt nur die mit 25mA belastbaren Ports des Mikrocontrollers zur Verfügung. Für die Ansteuerung der Peripherie ist eine angepasste Hardware erforderlich. John Jabour verfolgt das Projekt nicht weiter. Er hat seine Software an andere Entwickler weitergegeben.

Die Weiterentwicklung der Software liegt anscheinend in den Händen von Hans Deloof. Hans Deloof hat nach eigenen Aussagen mit Digitrax eine NDA, dh. er veröffentlicht weder Quelltexte noch hex-files. Fertig programmierte PICs, Platinen oder ganze Bausätze kann man bei Het Spoor kaufen. Ein Bausatz mit Schraubanschlüssen kostet z.B. 34 Euro, der PIC (Version 1.51) ) 10 Euro und die Platine 7 Euro. Hans Deloof bietet mit LocoHDL ein freies Programm zur komfortablen Programmierung mit einem Loconet-Interface (Intellibox, Locobuffer) an. Das Programm ist für Windows entwickelt, funktioniert aber unter Wine auch mit Linux.

LocoIO - Deloof

Peter Giling hat mit der Baugruppe GCA50 eine Variante entwickelt, die das Loconet zusammen mit einer 12V-Versorgung über cat5-Kabel und D-Sub-9-Stecker/Buchsen anschließt. Hier sind die Steckverbindungen robuster und die Kabel belastbarer. Zusätzlich enthält die Platine praktische PSK-Steckverbinder, um die Peripherie anzuschließen. Die Platine kostet 5,10 Euro, die Bauteile kosten bei Reichelt ca. 14 Euro. Die Software 1.49 stammt ursprünglich von Hans Deloof und ist als hex-file im Internet verfügbar. Die Programmierung kann über rocview/Programmierung/gca50 oder auch über das oben erwähnte LocoHDL erfolgen. Versuche mit JMRI waren zumindest bei mir unter Lubuntu 10.04 nicht erfolgreich. Loconet-Tools lieferte zu viele Fehler. Peter Giling hat ein breit gefächertes Angebot an weiterem Zubehör .

gca50

Die Software 1.49 enthält einen Bug in der 'Request Switch function':

Nachrichten, die die Intellibox sendet:
Taste 123 rot:  B0 7A 10 25 (gedrückt), B0 7A 00 25 (losgelassen)
Taste 123 grün: B0 7A 30 05 (gedrückt), B0 7A 20 15 (losgelassen)

GCA50-Tasten senden in der Einstellung input/Request/Button (rocview/Programmierung/gca50)
(Registerinhalte 2F/7A/10 bzw. 2F/7A/30):
Port1: B0 7A 50 65 (gedrückt), B0 7A 40 75 (losgelassen)
Port2: B0 7A 70 45 (gedrückt), B0 7A 60 55 (losgelassen)

Laut Loconet PE 1.0 hat eine Request Switch function das Format <0xB0><SW1><SW2><CHK>. In SW1 steht der niederwertige Teil der Adresse mit
msb=0 dh. 0 A6 A5 A4  A3 A2 A1 A0 hier: 0111 1010. Der höherwertige Teil steht im zweiten Halbbyte von SW2, dh. hier A10 A9 A8 A7 = 0000.
Die Adresse ist also 00001111010 (2) = 7A (16) = 7*16+10 = 122. Das ist die richtige Adresse, wobei anscheinend von
rocrail und IB eine um 1 höhere Adresse verwendet wird.

Es bleibt das höherwertige Halbbyte von SW2: 0 0 DIR ON

IBrot : 0001/0000 = thrown on / thrown off (thrown=RED,   port 0)
IBgrün: 0011/0010 = closed on / closed off (closed=GREEN, port 1)

GCA50-1: 0101/0100 = port0 1 / port0 0 + fehlerhaftes Bit
GCA50-2: 0111/0110 = port1 1 / port1 0 + fehlerhaftes Bit

Es ist zumindest in diesem Beispiel möglich, über den GCA50-Dialog eine undokumentierte Loconet-Nachricht zu erzeugen.

Als Workaround kann man mit einem 'extra-code' hinter der falschen die richtige Nachricht senden. Der folgende Screenshot zeigt die Programmierung unter LocoHDL. Die ersten vier Nachrichten im Loconet-Monitor wurden mit der Software 1.51, die restlichen Zeilen mit der Software 1.49 erzeugt.

Workaround für Bug in 1.49

Versuchsaufbau zu gca50 mit Treiber-IC ULN 2803

Die Logik-Ausgänge des PIc in gca50 sind höchstens mit 5V/25mA zu betreiben. Das Darlington-Treiber-IC ULN2803 ermöglicht es, Spannungen bis zu 50V und Ströme bis zu 500mA nach Masse (open collector) zu schalten. Praktischerweise sind die Schutzdioden für induktive Lasten bereits enthalten. In einem Versuchsaufbau wurde mit 35V getestet. In der Praxis sollen im örtlichen Club die 12V der gca-Versorgung mit der 200Ω-Wicklung benutzt werden. Die Bilder zeigen Schaltskizze, Aufbau und Programmierung mit locoHDL.

Skizze

Aufbau

Relais

Programmierung und Test

Programmierung des gca50 (Software 1.49) mit rocrail

Toggle-Buttons

port 1

port 4

port 8

Beim Auslesen der mit Rocrail programmierten Werte fiel auf, dass die Adresse der Weichenrückmeldung im Rocrail-Programmierdialog anders als in LocoHDL eingegeben werden muss.

locoHDL

Com-Port unter wine/Linux

Der Befehl

ln -s /dev/ttyS0 ~/.wine/dosdevices/com1

erstellt einen Soft-Link vom fiktiven Dos-Device com1 auf die tatsächlich vorhandene Schnittstelle, hier /dev/ttyS0.

Programmierung des gca50 mit LocoDHL

Das Programm LocoHDL ( LocoHDL.zip) von Hans Deloof ist frei erhältlich. LocoHDL ist ein Windows-Programm läuft aber unter wine auch auf Linux. Es gibt auch eine deutsche Betriebsanleitung.

Als Beispiel soll mit einem Taster ein Zwei-Spulen-System wie z.B. ein Signal gesteuert werden.

Links