OpenDCC AniMat - Schaltplan AniMat-S

Schaltplan

Schaltungsbeschreibung

    AniMat-S wurde ursprünglich als DCC-Decoder begonnen, bietet aber deutlich mehr Funktionalität als ein Dekoder und ist unversell als Steuerbaustein für Abläufe und Animationen einsetzbar.
  • Stromversorgung: Die Stromversorgung des Decoder kann entweder nur aus DCC-Signal erfolgen (SJ2 ist dann zu schließen) oder mit Hilfe einer zusätlichen Spannungsquelle (Gleichstrom (geregelt, ca. 9-15V)) erfolgen (SJ1 geschlossen). Die zusätzliche Quelle muß komplett vom Rest der Anlage getrennt sein (eigenes Netzteil!).
    Nach dem Gleichrichter steht die ungeregelte Versorgung VCCIO für die Motortreiber und die Audioausgangsstufe zur Verfügung. Aus dieser Spannung werden +5V erzeugt. Dies erfolgt entweder mit einem Längsregler 7805 oder mit dem Schaltregler Max1837. Die 5V werden für die Versorgung der Servos sowie für die BiDi-Stromquelle verwendet, wobei zu beachten ist, dass Servos heftige Spitzenstrom im Bereich von 500mA bis 800mA ziehen. Der Max1837 kann max. 250mA, also muß man Servos i.d.R. extern mit einer zusätzlichen Stromversorgung betreiben. Hierzu kann man entweder den als Alternative vorgesehenen 7805 verwenden oder auch an dieser Stelle einspeisen, SJ3 bleibt dann offen.

    Bitte bachten: Max1837 kann maximal nur 24V am Eingang, der TDA7374 ist nur für maximal 18V Gleichspannung ausgelegt. Bei einer Versorgung aus DCC könnten diese Werte überschritten werden (z.B. bei IB oder Roco liefern Spannungen über der Norm), in diesem Fall unbedingt externe Versorgung mit 12V Gleichspannung wählen.
    Die 3,3V Spannung für den Prozessor und für den mp3-Chip wird mittels eines Linearreglers aus den 5V gewonnen. Alternativen können dem Schaltplan entnommen werden.

    Abhängig von der Applikation können sich folgende Lastströme ergeben:
    AnwendungStrombedarf
    Ruhestrom, unprogrammiert, Schaltregler, VS1011 disabled5mA
    leiser Audiobetrieb140mA
    lauter Audiobetrieb100mA-1200mA
    Motoransteuerung50mA zzgl. Motorstrom (max. 800mA, für beide Motoren max. 1200mA)
    Servoansteuerung50mA zzgl. Servostrom; hierbei bitte die pulsartige Belastung durch Servo bei der Dimensionierung berücksichtigen. Am besten die Servo separat versorgen.
    Empfohlen ist der Betrieb mit einem externen 12V-Schaltnetzteil. Bei größerer Laststärke bzw. Motorströmen ist auch der Brückengleichrichter auf der DCC-Seite zu klein - auch aus diesem Grund sollte ein externe Netzteil verwendet werden.
  • DCC-Eingang:
    Das DCC Signal wird direkt über Widerstand und Schutzdiode auf den Prozessor gegeben. Der ACK-Puls beim Programmieren wird mittels separater Transistorstufe und zusätzlichem Widerstand erzeugt, es muß also keine Last (wie z.B. bei vielen käuflichen Dekodern) zum Programmieren angeschlossen sein. Der ACK-Puls wirkt auch bei getrennter Versorgung immer auf die DCC-Seite.
    Achtung: AniMat arbeitet mit einem Multitasksystem: dadurch kann z.B. eine Motoransteuerung oder eine Audioausgabe laufen während eine Programmierung erfolgt. Die Audioausgabe verursacht naturgemäß stark schwankende Stromaufnahme (je nach Ton), so dass die ACK-Puls-Erkennung nur bei getrennter Stromversorgung funktioniert.

    Simulation mit ltspice Ausgangsstrom der BiDi Stromquelle
    BiDi-Pulserzeugung: R12, T11 und T13 formen eine schaltbare Stromquelle, diese wird aktiviert, wenn der Ausgang RAILCOM des Prozessors low ist. Wenn der Prozessor mit 3,3V läuft, würde die Stromquelle durch Leckströme über R15 und die Schutzdioden des Prozessors auch leicht angesteuert werden. Um dies zu verhindern, wird die Basis von T11 mit den Spannungsteiler aus R15 und R17 sowie der Diode D13 entkoppelt. R17 verhindert zudem, dass T12 zu sehr in die Sättigung gelangt und verbessert dadurch das Timing und die Impulsform. T10 schließt den Kreis.
  • mp3-Decoder, Audioausgangteil:
    Zum Dekodieren des mp3 Datenstromes wird ein vorprogrammierter DSP VS1011e von VLSI Solutions verwendet. Dieser läuft mit einem Quarz 24,576MHz. Der Oszillator ist wohl ziemlich kritisch, es muß unbedingt ein Grundton-Quarz verwendet werden und ein Widerstand mit 1MOhm (R51) muß parallel zum Quarz geschalten werden, so wie in der Beispielschaltung des Datenblatts angegeben.
    Das Ausgangssignal kann entweder über die Klinkenbuchse abgenommen werden oder mittels des integrierten Verstärkers TDA7374 (macht fest 26dB Gain) zur Ansteuerung von Lautsprechern verwendet werden. Der TDA7374 kann bis zu 2x20W an 4Ohm liefern und läuft im AB-Betrieb. Ein Kühlkörper ist erforderlich.
  • Motorausgang:
    Es sind zwei Motorausgänge mit einer integrierten H-Brücke von Zetex (ZXMHC) vorgesehen, diese sind mittels R80 und C80 von der Stromversorgung entkoppelt. Die Lowside der Brücke wird direkt angesteuert, die Highside über einen invertierenden Transistor. Die Brücke steuert bei V(GS) von 3V auf 1A durch, höhere Ströme erfordern eine leicht erhöhte Prozessorspannung.
    Der Summenstrom der jeweiligen Brücke wird über einen Shunt 0.33Ohm gemessen. Tipp hierzu: 3 x 1Ohm übereinanderlöten
  • Servoansteuerung:
    Die Servos sind direkt an der Zwischenspannung von 5V betrieben. Bei Servobetrieb muß unbedingt die Spannungsversorgung passend zu den Servos ausgelegt werden. Standardservos können Lastspitzen bis zu 800mA erzeugen, Leistungsservos entsprechend mehr. Die auf dem Board installierte Schaltreglerstromversorgung ist nur für Miniservos mit geringer Stromaufnahme geeignet.
  • Displayanschluß:
    Das Display ist identisch zum Handregler angeschlossen, bitte die dortigen Erläuterungen und möglichen Varianten ansehen.
  • Tastatur, IR-Empfänger: Es stehen 8 universelle Eingänge (z.B. für Taster oder Drehgeber) zur Verfügung. Diese sind mit einer Zenerdiode und Längswiderstand geschützt. Die Bauform der Widerstände ist so ausgelegt, dass man auch überbrücken kann - die 8 Anschlüsse können also auch direkt erreicht werden. Notfalls kann man auch die beiden Jumper BOOTEN und PROGEN noch als Eingang verwenden.
    Anstelle des DCC-Eingangs kann auch ein IR-Empfänger bestückt werden - dies ist für die Anwendung als OpenPlayer interessant (Details hierzu im Schaltplan).
  • MicroSD-Kartenleser:
    Verwendet wird eine Kartenleser mit Schalter, Top-Mount: Das Layout ist für 2 verschiedene Typen ausgelegt: Yamaichi PJS008-2100 oder Alps SCHA1B0100. Einige andere Typen haben zumindest für die Signalkontakte gleiche Anschlüsse, allerdings unterscheiden sich i.d.R. die Lötflächen für die Befestigung und die Lage des Schalters. Man kann sich auch sehr preiswert mit einem käuflichen microSD auf SD Adapter behelfen, den man dann mit Draht an die Vias anschließt.
  • USB:
    Die entsprechenden Anschlüsse sind auf Stiftleisten im 2,54 Raster gelegt. Hier kann direkt das USB-TTL-Kabel von FTDI angesteckt werden.

    Wegen der möglichen Kurzschlußgefahr und Fremdspeisung darf dieses Kabel nicht zusammen mit der normalen Stromversorgung verwendet werden. Über dieses USB-Kabel ist dann auch Firmware-Update und Debugkonsole möglich.
    (Spannung beachten und VCC auftrennen, damit es nicht zu einer Fremdspeisung kommt; des weiteren besteht die Gefahr von indirekten Kurzschluß über die USB-Masse auf DCC).

  • XPressnet™, CAN:
    Die entsprechenden Anschlüsse sind auf Stiftleisten im 2,54 Raster gelegt. Es gibt dafür kleine Adapterplatinen, mit denen dann entweder Xpressnet oder CAN realisiert werden kann. Der DCC-Eingang muß in diesem Fall wegen der indirekten Kurzschlußgefahr offen bleiben.

Bauanleitung

    Die Hardware von OpenDCC Animat ist keine leichte Kost - zum einen sind kleine SMD verbaut, zum anderen eine relativ große Anzahl an Bauelementen. Zudem sind eine Reihe Bestückungsvarianten möglich.
    Man beginnt also mit dem Festlegen der gewünschten Bestückung und Optionen. (Tipp hierzu: im Schaltplan sind zueinander gehörige Schaltungsteile mit der gleichen 10er-Bezeichnung der Bauteile gekennzeichnet.) Nun werden die Bauteile beginnend mit den kleinen Bauelementen auf die Platine gelötet.

Fuses


    So werden die Fuses für 10 MHz externen Quarz gesetzt - hier ist kein Bootloader eingeschaltet.

Bootloader

    Man kann die Software für den AniMat entweder direkt einspielen oder die nachfolgend beschriebene Bootloader-Option verwenden. Mit dem Bootloader kann man dann die Software per USB erneut einspielen (was speziell in der Entwicklungs- und Testphase hilfreich ist).
    1. Für den Bootloader muß die Fuse BOOTRST gesetzt sein.
    2. Der Code für den Bootloader muß einmalig eingespielt werden:
      Hierzu ist ein normaler ISP-Adapter (wie z.B. ponyprog) erforderlich; sollte der ISP-Adapter eine Stromversorgung mitbringen, so ist darauf zu achten, dass nicht zwei Stromversorgungen gleichzeitig verbunden sind - in diesem Fall erst mal den LM3480 noch nicht bestücken und SJ3 offen lassen.
    3. Applikation einspielen:
      Hierzu beim Starten den Pin BOOTL auf Masse ziehen. Der AniMat geht dadurch nicht in die Applikation, sondern startet den Bootloader.
      FTDI-USB-TTL Kabel verbinden.
      Mittels AVROSP die Dateien einspielen. Dies geschieht analog zum Verfahren bei der Zentrale. Ein entsprechender Batch ist im Download verfügbar.
Bei einem Software-Update muß dann immer nur Schritt 3 durchgeführt werden.

Besondere Hinweise zur Hardware 1.0

    Es geht leider nicht ohne ... folgende Hinweise gelten nur für die V1.0:
  • Schaltplan: Seite 1 Seite 2 Seite 3
    Layout: Lötseite Bestückung
  • Der XRESET-Anschluß des VS1011 (IC50, Pin 26) muß mit Pin 2 des Atmel AT90can128 verbunden werden. R57 wird entfernt. Grund: nach dem Abschalten der Stromversorgung bleibt für relativ lange Zeit eine minimale Restspannung an XRESET erhalten, diese verhindert einen sauberen Reset des mp3-Chips. Dieser wird nun über den Atmel ausgelöst. (Bild)
  • Bei der Version 1.0 war die Stromversorgung noch anders aufgebaut:
    Die Stromversorgung des Decoder kann entweder nur aus DCC-Signal erfolgen (SJ1 ist dann zu schließen) oder mit Hilfe einer zusätzlichen Spannungsquelle (Gleichstrom (ca. 12-15V)) erfolgen (SJ2 geschlossen). Diese zusätzliche Quelle muß komplett vom Rest der Anlage getrennt sein (eigenes Netzteil!) und in diesem Fall muß SJ1 offen sein. SJ2 bleibt immer geschlossen.

    Der DCC-ACK-Puls belastet die Stromversorgung mit einem 6ms langen Strompuls. Wenn externe Versorgung gewählt ist, dann 'sieht' die DCC-Seite diesen Strompuls nicht. Hier entweder zum Programmieren am Programmiergleis auf DCC Versorgung umstellen oder je eine Diode von DCC1 und DCC2 nach R13 (VCCIO-Seite, diese dann auftrennen) legen.
    (Bei Versorgung des Dekoders aus DCC tritt dieses Problem nicht auf. (und im übrigen ist das bei käuflichen Decodern (z.B. Switchpilot) auch nicht besser gelöst) (Bild)