Modellbahn-Steuerung GROUPIE-MEB-Tron

Funktionsbeschreibung serieller Sender für Weichen- und Signal-Empfänger mit Mikrocontroller

Bild

Seit der Veröffentlichung der seriellen Senderkarte und der passenden Empfänger im Jahr 2005 hat diese Art der Ansteuerung der Signale und Weichen immer mehr Interesse gefunden. Das ist nicht verwunderlich, spart sie doch viel Verdrahtungsaufwand und erlaubt bei Weichen auch ein betriebssicheres Schalten mit Wechselspannung. Als dann noch Andreas eine Mikrocontrollerlösung für die Empfänger realisierte, trat die ältere Technik komplett in den Hintergrund. Bisher brauchte man jedoch für 16 Weichen eine Senderkarte, für Signale dann noch eine weitere. Zudem war die Karte mit reichlich Bauteilen bestückt, war also nicht weiter mit konventioneller Technik zu vereinfachen.

Das alles schrie förmlich nach einem neuen Entwurf mit moderner Technik. Die neue Karte soll einfacher aufzubauen sein und mehr Ausgänge bieten. Damit kann die Anzahl der Karten reduziert werden, was dem Anwender in mehrfacher Hinsicht Geld spart. Die Platinen an sich sind teuer, die Bauteile fallen zwar weniger ins Gewicht, nicht zuletzt spart man Steckplätze auf der Busplatine! Inzwischen kann man mit den 10 Steckplätzen auf einer preiswerten Busplatine auch eine größere Anlage steuern.

Wer schon mal auf den Schaltplan geschaut hat, wird sich vielleicht wundern, dass schon wieder ein anderer Typ Controller verwandt wurde, eine Vereinheitlichung könnte doch auch hier vorteilhaft sein. Doch dies hat seinen Grund. Es gibt eine fast unüberschaubare Vielzahl von Typen, die jeweils auf bestimmte Einsatzgebiete optimiert sind. Hier war der verfügbare Speicherplatz oder die Möglichkeit, analoge Signale verarbeiten zu können, weniger wichtig. Also wurde ein ATMEGA 8515 gewählt. Er bietet 3 nutzbare Anschlüsse mehr als viele seiner Verwandten und kostet auch nur halb so viel wie z. B. der auf der Fahrreglerkarte verwandte Typ.

Seine 35 IO-Pins (IO=Input/Output =Eingabe/Ausgabe), die in so genannte Ports zu meist 8 Bit gegliedert sind, stellen keine Übertreibung dar, sie werden alle gebraucht:

  • Port A: 8 Bits um die am Bus anliegenden Daten einlesen zu können
  • Port C: 8 Bits um die Adressen auf dem Bus erkennen zu können
  • Port B + D: je 8 Ausgänge zu den Empfängern
  • Port E.0: „INT2“ für /Write, d. h. zur Erkennung wann neue Daten zu lesen sind
  • Port E.1 und 2: Abfrage des Adressbereichs, also der Jumper

Die Auswahl der Ports ist bestimmt durch die Lage der Anschlüsse am IC und wurde so vorgenommen, dass das elektrische Verbinden möglichst einfach ist.

Der Controller wird mittels eines Quarzes auf 16 MHz getaktet, dadurch ist die Arbeitsgeschwindigkeit und die Zeitmessung sehr genau und macht einen Abgleich überflüssig. Das vermeidet Probleme, die in der Vergangenheit gelegentlich aufgetreten sind.

Mit den nur zwei Jumpern können vier verschiedene Adressbereiche eingestellt werden. Das erscheint zunächst einmal wenig. Bedenkt man jedoch, wie groß der damit abgedeckte Bereich ist und welche Möglichkeiten sich damit ergeben, relativiert sich das Ganze wieder. An die 16 Ausgänge einer solchen Karte können 16 Signal- oder 8 Weichenempfänger oder ein Gemisch daraus angeschlossen werden. Das bedeutet bis zu 128 Signale oder 64 Weichen, ein für viele Modellbahnen völlig ausreichender Wert.

Schaltungsbeschreibung

Wer die Beschreibung der älteren seriellen Senderkarte noch nicht gelesen hat, wird zunächst einmal kaum verstehen, welcher Trick hinter der Technik steckt.

In der digitalen Welt kennt man normalerweise nur zwei Zustände: „An“ oder „Aus“ bzw. „Low“ oder „High“ oder vielfach eben nur „0“ und „1“ genannt. Um die Stellung eines Signals „Rot“ oder „Grün“ darzustellen, genügt eine Leitung, die „Aus“ oder „An“ sein kann. Hat man nun z. B. das Signalbild von 8 Signalen zu übertragen, kommen dann aber schon 8 Leitungen zusammen. Das wird üblicherweise als „parallele“ Übertragung bezeichnet. Man kann jedoch ein Protokoll definieren, bei dem die 8 Zustände hintereinander übertragen werden. Das nennt man dann üblicherweise „serielle Datenübertragung“.

Hier wurde eine einfache Lösung gewählt, bei der die Information durch die Länge der einzelnen Bits codiert wird:

Impulsdiagramm

Rot ist hier dargestellt, was die serielle Senderkarte ausgibt: Meistens führt der Ausgang hohes Potenzial, hier +12 Volt. Innerhalb einer definierten Zeitspanne wird jedoch der Ausgang acht Mal abgeschaltet, wobei eine kurze Pause als „0“ und eine längere als „1“ definiert ist. Zu Beginn jeder Pause wird im Empfänger ein Vergleich gestartet, im Bild die grüne Linie. Ist nach Ablauf der Referenzzeit t1 bis t8 das gesendete Signal immer noch „Aus“, so wird dies als Zustand „0“ interpretiert und umgekehrt. Im Beispiel wird also die Folge „01100110“ übermittelt. Nach jeder solchen Folge wird eine gewisse Zeit lang der 12V-Pegel angelegt, so kann sich der Empfänger mit dem Sender synchronisieren.

Beschaltung des Controllers

Schaltplan Controller

Wie schon bei vorhergehenden Projekten mit einem Mikrocontroller, so ist auch hier die Schaltung wenig spektakulär. Alle 40 Anschlüsse des ATMEGA 8515 sind benutzt. Zum Bus führen die Daten- und Adressleitungen der Ports A bzw. C sowie die Leitungen „/Write“ und „/Reset“. Die Ports B und D sind, wie oben schon genannt, die Ausgänge. Dann fehlen noch die beiden Adressjumper. Der Rest ist eine immer wieder zu sehende Beschaltung: Der Quarz mit den beiden kleinen Kondensatoren legt die Taktfrequenz fest. C3 und C4 sind für die Vermeidung von Spannungseinbrüchen auf der Betriebsspannung zuständig und über K2 kann man den Controller in der Schaltung programmieren (ISP=In System Programming). Die Aufgabe von R1 ist es, die „/Reset“-Leitung auf +5 Volt zu halten so lange kein Reset am Bus anliegt.

Schaltplan der Ausgänge

Schalten von Lichtsignalen

Da beim Anschluss von Lichtsignalen die Betriebsspannung von 12 Volt zusammen mit den Daten über eine Leitung übertragen werden soll, müssen die Signale des Mikrocontrollers verstärkt und dem 12 Volt-Pegel angepasst werden. Oben sind die Bauteile für 8 Ausgänge abgebildet, die Schaltung ist auf der Platine zweifach vorhanden.

Die Transistoren T1 bis T16 schalten die 12V an die Ausgänge, wenn durch ihre Basis ein Strom nach Masse fließt. Diesen Basisstrom stellen die 8 in IC3 zusammengefassten Transistoren bereit. Prinzipiell wäre auch der Einsatz von 8 einzelnen Transistoren nebst Widerständen möglich, das Transistor-Array ist jedoch einfacher in der Verdrahtung und Bestückung.

Die Ausgänge sind zu einer 8-fach-Steckerleiste geführt, sie werden mit den Signal- oder Weichenempfängern verbunden. Der Masseanschluss steht an der Karte auch an K6 zur Verfügung.

Software

Die eigentliche Logik der Verarbeitung, die bei konventionellem Entwurf durch das Verschalten einzelner Logikbausteine in Form von mehreren Schaltkreisen (ICs) erreicht wird, ist hier in der Software im Controller verborgen. Das Programm ist nicht ungeheuer kompliziert oder schwer nachvollziehbar. Es kann an anderer Stelle eingesehen werden, dort wird auch auf die einzelnen Bausteine näher eingegangen. Es eignet sich jedoch kaum als Lehrbeispiel zur erstmaligen Beschäftigung mit dem Thema „Mikrocontroller programmieren“. Es mag jedoch einen Eindruck davon vermitteln, wie dabei vorzugehen ist und welche Möglichkeiten mit dieser Technik gegeben sind. Insofern ist es vielleicht für denjenigen interessant, der bereits einmal programmiert hat und etwas mehr davon verstehen möchte, wie diese Mikrocontroller sinnvoll anzuwenden sind.

nach oben Zum Anfang der Seite

zurück Zurück