Details zur Schaltung des OpenDecoders (Variante 3)

    english page is missing - you can help the project with a translation!
  • Schaltplan:
    Diese Variante ist eine Weiterentwicklung der beiden Vorgänger: Variante 1 (besonders kostengünstig) und Variante 2 (flexibel). Die wesentlichen Änderungen sind gegenüber der Variante 2 sind hier NMRA-BiDi (railcom), 4 Relais-Ausgänge und 4 Eingänge. Diese Hardware ist damit optimal für besondere Zubehördecoder wie z.B. DMX oder Servoansteuerung geeignet.


    Diese Plattform basiert auf ATmega162 (16k Flash, 1024 Bytes RAM und 512 Bytes EEPROM). Sie ist weitgehend in SMD aufgebaut, allerdings noch mit moderat großen Bauformen und damit noch manuell lötbar. Sie ist ab April 2008 bei Tams Elektronik auch kommerziell verfügbar.

    Die Plattform 3 hat die Maße 73*82.5mm (zweiseitig) und große Schraubklemmen an einer Seite; auf der anderen Seite ist entweder DMX, Easynet oder XPressNet aufbaubar. Loconet wäre (nach Klärung der Lizenzfragen) auch möglich. Es sind 2 Servoausgänge, 4 Relais Schaltausgänge und 4 Eingänge vorgesehen. Auf der DCC-Seite kann ein Programmier-Acknowledge (Bestätigungspuls) sowie BiDi (Railcom) zurückgesendet werden. Das DCC-Interface ist komplett optogekoppelt und es besteht über Lötbrücken die Wahlmöglichkeit, ob der Decoder fremdgespeist oder von DCC versorgt wird.
    Der Decoder ist programmierbar mit CVs und liefert einen Acknowledge-Puls zurück, er kann damit als voll NRMA-kompatibler Accessory Decoder agieren (muß aber nicht:-). Zusätzlich ist die Unterstützung von NMRA-BiDi vorgesehen.





    Schaltplan V3.00; die auf dem Blatt 3 angegebenen Optionen sind alle nicht bestückt.
  • Schaltungsbeschreibung:
    Spannungsversorgung:
    An X2.Pin 8 und Pin 17 wird die Eingangsspannung des externen Netzteils eingespeist (ca. 8V); Polarität und Stromart ist egal: es kann also ein Modellbahntrafo, ein Steckernetzteil oder das DCC-Signal verwendet werden.
    Die Eingangsspannung wird gleichgerichtet und über den üblichen 5V Längsregler 7805 zur Versorgung des Prozessors verwendet. Alternativ ist auch Schaltregler mit Max1837 bestückbar. Der Leerlaufstrom beträgt etwa 20mA;
    Hinweis: Servos können je nach Größe bis zu 1A Strom verbrauchen. Wenn die Eingangspannung zu groß ist, dann fällt am 7805 viel Verlustleistung an. Bitte eine passende Stromversorgung verwenden. In besonderen Fällen kann es sinnvoll sein, den Servo separat einzuspeisen - hierzu bieten sich die Netzteile an, welche bei USB-Hubs beiliegen.

    DCC-Eingang:
    An X2.Pin 9 und Pin 18 wird das DCC-Signal angeschlossen. Dieses wird über einen Optokoppler OK1 (6N136) von der Spannungsversorgung des Decoders getrennt. Der Optokoppler sorgt für einen störungsfreien Betrieb auch bei ausgedehnten Anlagen. Verwendbar ist sowohl der 6N136 als auch der 6N137 oder 4N25, wobei beim 6N137 noch zusätzlich der Pin 7 (Freigabeeingang) mit dem Pin 8 verbunden werden muß (Widerstand R20). Der 4N25 (oder seine Derivate) muß so bestückt werden, dass der Pin 1 des 4N25 auf Pin 2 des Layouts kommt (Pin 1 des Layout ist dann frei).
    Tipp: wer das DCC Eingangssignal überwachen möchte, kann die Freilaufdiode durch eine LED ersetzen.
    Der 4N25 ist relativ langsam, insbesondere die Freiräumzeit ist relativ lang. Der Pullup (R5) am Ausgang muss auf 1k verkleinert werden, ansonsten kommen nach dem Optokoppler nur verfälschte Signale an.
    Empfehlung: 6N136 verwenden.

    Wenn der Decoder Service Mode unterstützen soll, so ist zusätzlich der Optokoppler OK2 erforderlich; Im Servicemode sendet der Decoder einen DCC-konformen Acknowledgepuls zurück. Hierbei handelt es sich um kurzfristige Lasterhöhung (> 60mA für 6ms) auf dem DCC Eingang. Dieser Puls kann von der Zentrale am Programmiergleis ausgewertet werden. Hierzu wird über die Dioden D14 und D15 (BAV199) das DCC-Signal gleichgerichtet und mit einer schaltbaren Last von 100 Ohm (R13) beaufschlagt.

    Bei Railcom kommen 2 weitere Optokoppler hinzu: OK8 überträgt die Daten, diese werden auf der DCC-Seite mit der Stromquelle bestehend aus T3 und T5 mit 30mA rückgespeist; während der Rückspeisung muß T4 durchgeschaltet sein, dies wird mit OK7 ausgelöst. C10 puffert die Energie, die während der Rückkanalübertragung benötigt wird.

    Schaltausgang:
    Das Board verfügt über 4 potentialfreie Schaltausgänge. Diese können entweder einzeln betrieben werden oder als Herzstückumschalter verwendet werden. Bei Verwendung als Herzstückumschalter ist SJ1 und SJ2 zu schließen. Damit sind dann je zwei Schaltausgänge gekoppelt.

    Bedieneingang:
    Die Eingänge für externe Taster sind intern jeweils mit einem schwachem Pull-Up auf +5V ausgerüstet. Externe Taster sind ohne weitere Verbindung zu anderen Schaltungen gegen die Masse auf Anschluß X2.Pin 6 bzw. X2 Pin 15 anzuschließen.

    Prozessor:
    Als Prozessor wird ein Atmel ATmega162 im TQFP44-Gehäuse verwendet.

    Takterzeugung:
    Der Atmel ATmega162 wird mit einem werksabgeglichenen RC-Oszillator ausgeliefert, welcher bei 8MHz läuft, der Quarz und die Kondensatoren 18pF könnten daher entfallen. Beim Übersetzen ist also entsprechend die Taktrate (F_CPU) auf 8000000 zu stellen, alle Timingeinstellungen werden automatisch angepaßt.
    Hinweis: Der interne RC-Oszillator des ATmega162 ist mit einem erheblichen Jitter gesegnet: bei Servopulsen von 1ms jittert das Signal um 10us. Dementsprechend flattert auch ein angeschlossenes Servo. Ich empfehle daher, einen externen Quarz mit 8MHz (und die zusätzlichen 18pF Kondensatoren) zu bestücken. Bei der Programmierung der Fusebits muß entsprechend auf "external crystal" umgestellt werden.
    Sollte eine andere Quarzfrequenz verwendet, so ist beim Übersetzen entsprechend die Taktrate (F_CPU) auf diesen Wert zu stellen, alle Timingeinstellungen werden automatisch angepaßt.



    Taste und LED:
    Als LED ist eine 2mA Typen zu verwenden, diese kann direkt mit dem ATmega angesteuert werden. Der Taster wird zum Starten des Programmierens verwendet.

    Servoausgang:
    Es sind 2 Steckplätze für Servos vorgesehen, die übliche Pinbelegung
     GND  +5V  Servo 
    wurde verwendet. Die Servos werden nicht abgeschaltet, bleiben also ständig an den 5V. Die Servos belegen separate Ausgänge am Prozessor (von Timern), so daß die Ansteuerung kaum CPU-Last verursacht. Zudem ermöglicht die Ansteuerung über die Timer eine besonders feine Auflösung der Servos, was bei entsprechend guten Servos ein butterweiches Laufverhalten bewirkt.

    Servos verursachen erhebliche Stromspitzen bei der Bewegung, der keramische Kondensator neben den Servos sollte daher möglichst groß sein, z.B. 47uF. Die Stromversorgung der Servos ist mit einer selbstrückstellenden Sicherung (Polyfuse) abgesichert.

    Weichenrückmeldung:
    Sollte eine echte Rückmeldung der Lage gewünscht werden, so ist der Kontaktschalter an der Stellschwelle mit den Eingängen zu verbinden. Damit ist eine Rückmeldung der tatsächlichen Weichenlage möglich bzw. kann erkannt werden, ob die Weiche geschaltet hat. (Natürlich geht das nicht zusammen mit der Handbedienung.) Diese Rückmelderkontakte schalten jeweils gegen Masse, der entsprechende Pull-Up ist auf OpenDecoder3 bereits integriert.

    DMX:
    Ein bidirektionaler RS485 Treiber (online umschaltbar) ermöglicht sowohl die Ansteuerung der Platine von DMX aus als auch das Erzeugen eines DMX Datenstroms. Zumsammen mit der aus OpenDCC bekannten Macroprogrammierung läßt sich damit die Hintergrundbeleuchtung der Modellbahn von DCC aus schalten.
  • Layout:
    Die Platine ist in der Version 3.00 als zweiseitige Platine mit den Abmessungen 73*82,5mm realisiert. Es sind überwiegend SMDs verwendet, die Relais, Optokoppler, Leistungsdioden und Elkos sind noch Durchsteckbauteile.

    Bauteilseite / Components
    Bauteilseite
    Lötseite / Solder
    Lötseite

Versionen, Änderungen:

    Version 3.00:
  • --.--.2007: none

Unterlagen

    Nochmals der Hinweis: Diese Schaltung und Layout ist frei für den privaten Gebrauch, eine kommerzielle Verwertung bedarf der schriftlichen Genehmigung.
    Schaltplan / Layout:
    Stückliste:
    Layout:
    Datenblätter:
    -