Beim Designen der Hardware für den Test wurde ein Kompromiss eingegangen. Einerseits sollte sie praktisch benutzbar sein, also problemlos in eine echte Modelleisenbahn eingebaut werden können, andererseits sollte sie klein und billig sein, weshalb auf teure platzfressende Schraubklemmen verzichtet wurde. Dazu kam, dass noch nicht viel Erfahrung beim Ätzen von Platinen vorliegt, weshalb das Leiterbild recht grob gehalten wurde, also nicht konsequent optimiert wurde. Bei der Suche nach einem Stecksystem für den 6-poligen SPI-Bus (GND, Strobe, Clock, +5V, Data, +12V) landete ich bei 16-poligen Pfostensteckern. Nicht, weil ich alle 16 Leitungen brauchte, sondern weil sie extrem billig sind und vorrätig waren. Im Interesse der einfachen Leiterführung wurden von vornherein die jeweils gegenüberliegenden Pins als ein Kontakt betrachtet, was dann 8 Kontakte ergibt. Da nur 6 Kontakte gebraucht wurden, wurde GND und +12V doppelt belegt. Der Einsatz preiswerter Wannenstecker sorgt für ein verpolsicheres System, ich setzte allerdings zweireihige Stiftleisten ein, da diese nicht erst beschafft werden mussten. Zum Verbinden der Module wurde Flachbandkabel AWG28 in Verbindung mit 16-poligen Schneid-Klemm-Pfostenbuchsen verwendet. Dies kann man aus alten FDD-Kabeln recyclen (aber mit neuen Buchsen). Für die Logik und deren Stromversorgung teilen sich 2 Adern ein Signal, für die Leistung (GND, +12V) gleich 4 Adern. Das dürfte belastbar genug sein und die Spannungsabfälle klein halten.
Für die Verbindung zur Anlage wurde für Schaltsignale eine Stiftleiste 2 x 10 polig eingesetzt. Die beiden äußeren Stiftpaare liegen auf +12V, die 8 inneren auf den Ausgängen der ULN2803. Eventuelle Relais für die Abschaltgleise sollten dann Bestandteil der Modellbahn-Anlage sein. Für den Fahrtregler kam ein Wannenstecker 2 x 5 zum Einsatz, die Relais zur Fahrtrichtungsumkehr und deren Treiber sollen auch auf der Anlage platziert werden.
Alle von mir zum Test genutzten Komponenten sind mit LEDs ausgestattet, um ein Feedback bei der Programmentwicklung zu haben. Für die Platinen wurden vorrätige einseitige Epoxyd-Zuschnitte 80 x 120 mm verwendet, die allerdings noch getrennt wurden. Damit die Module beim Hantieren auf dem Tisch keine Kratzer hinterlassen, wurde unter jede Platine ein Stück Wellpappe geklebt. Nun zu den einzelnen Modulen:
Diese Platine enthält einerseits eine Gleichrichtung (Brücke 4 A) mit Elko (3300 µF/35 V) und Spannungsregelung (78S05) für die benötigten +5V und stellt diese und die dabei gewonnene Rohspannung (+12V bis +15V) am Wannenstecker zur Verfügung. Zum Testen wurde ein Steckernetzteil mit 9 V AC / 0,5 A verwendet. Der etwas überdimensionierte Gleichrichter erlaubt aber auch stärkere Trafos. Die Belastung der 5 V ist nur gering, wodurch der 78S05 ohne Kühlkörper auskommt.
Dann enthält diese Platine die Pegelwandler für die Signale der COM-Schnittstelle. Die Pegel werden durch clippen mittels Z-Dioden begrenzt. Die LEDs in den Datenleitungen machen die momentan anliegenden Pegel sichtbar. Achtung, es sind Duo-LEDs (2 Pin), ich hatte nur keine in Eagle gefunden und auch keine Lust, erst ein Device dafür zu zeichnen. Mit einfachen LEDs funktioniert es nicht, sie überleben die negativen Pegel nicht. Für den Anschluss des Verbindungskabels zum PC wurden 9 große Lötpads vorgesehen, sowie 4 Löcher für die Zugentlastung bzw. Befestigung des Kabels. Die großen Lötpads dienen dazu, dass alle Leitungen ihren festen Platz haben, also dass keine losen Strippen herumhängen. Bei eventuellen späteren Erweiterungen bzw. den Tests dazu ist es sicher auch vorteilhaft, die Signale zum Anzapfen parat zu haben. Auch die pegelbegrenzten Logik-Signale sind natürlich auf den Wannenstecker für den Bus gelegt. Die Platine enthält dann noch zwei Pads als Bohrungen zum Anbringen von Befestigungsschrauben. |
Dieses Modul enthält zwei 16-polige Pfostenstecker zum Durchreichen des Busses, einen CD4094 (CMOS-Schieberegister-IC) zum Auffangen des Signals, einen Relaistreiber-IC ULN2803 zum Treiben von Relais oder Weichenantrieben, einen 20-poligen Pfostenstecker zum Anschluss der Relais oder Weichen, sowie 8 LEDs mit Vorwiderständen zum Anzeigen des aktuellen Schaltzustandes und 4 Pads zum Bohren von Befestigungslöchern. Der CD4094 zweigt 8 Datenbits aus dem Datenstrom für sich ab und reicht seinen Überlauf an das nächste Modul weiter. Er behält also zu letzten 8 geschobenen Bits für sich. Mit dem Strobe-Impuls legt er diese an seine Ausgänge, die dann den ULN2803 ansteuern. Diese 8 Ausgangssignale können zusammen mit zweimal +12 V am Pfostenstecker SV3 abgegriffen werden. Zusätzlich werden damit 8 LEDs angesteuert, um die Schaltzustände anzuzeigen. Als LED-Widerstände wurden Widerstandsnetzwerke verwendet. Es genügt eigentlich ein Netzwerk 8 x 1k2, da ich aber noch viele Netzwerke 5 x 1k2 vorrätig habe, wurde das Layout so gestaltet, dass ich auch diese verwenden kann. Um das Layout nicht unnötig zu verkomplizieren, wurde auf das Einhalten der Bitreihenfolge zwischen CD4094 und ULN2803 verzichtet. |
Dieser Baustein ist etwas größer und angelt sich 16 Bit aus dem Bitstrom. Die jüngsten 8 Bit werden an den ULN2803 geleitet und zur Steuerung von Weichen und Relais genutzt. die nächst älteren 8 Bit werden zur Steuerung eines Fahrtreglers genutzt. Das 16-Bit-Schieberegister wird durch einen AVR vom Typ ATTiny2313 realisiert, der auch die Erzeugung der Fahrtregler-PWM und die Steuerung der Richtungsausgänge übernimmt. Der Fahrtregler wurde erstmal recht einfach konzipiert, es gibt nur einen Logic-Level-FET (der Kamerad mit dem Loch im Kopf) für die PWM und zwei Steuerausgänge für externe Relais mit externen Treiber-Transistoren. Somit ist zu Testzwecken erstmal eine Anschlussmöglichkeit für einen Motor gegeben, um die Motorkennlinie (PC-Programm) testen zu können.
Der Mikrocontroller ATTiny2313 braucht natürlich zum Betrieb auch eine Software. Dieser Baustein ist als Provisorium zu sehen, er wird vermutlich mal von einem Baustein ersetzt, der auf Schaltausgänge verzichtet, dafür aber zwei Fahrtregler enthält, vielleicht sogar mit galvanischer Trennung zum Bus bzw. PC.
|