Aufbauanleitung zu OpenDecoder (Var. 2)
Vorbemerkung:
-
Zuerst mal der übliche Sums: Elektroniklötkolben (nicht über
300W;-), geeignetes Lötzinn (kein Tiffany-Bleilot), Dioden und
Kondensatoren richtig polen (kleiner Strich oder + im Layout),
ICs sind statisch gefährdet, kurzum: wer's nicht kann, soll
nicht mit dieser Schaltung das Üben anfangen. Die Werte der
Widerstände und C's sind in der Regel unkritisch.
Vorgehensweise:
Es sollte zuerst der der Atmega8515 (im 44-lead TQFP Gehäuse, Pitch 0,8mm) auf der Bauteilseite bestückt werden.
-
Hinweis zum Löten des Prozessors: Der ATmega ist im
44-poligen Gehäuse mit 0,8mm Pitch. Hier wird zuerst nur ein
Eckpin auf der Leiterplatte verzinnt, dann wird der Chip
darüber gelegt. Jetzt wird dieses Pad und der Pin erhitzt
und verlötet. Danach wird der Chip exakt auf die Pads
ausgerichtet.
Nun kann man alle anderen Pins verlöten - feine Lötspitze und 0.5mm Lötzinn sind hilfreich ;-).
Keine Panik, wenn Pins mit Lötzinn kurzgeschlossen sind: nicht lange rumbruzeln, sondern abkühlen lassen und dann mit dünner Lötsauglitze das überschüssige Zinn aufnehmen.
Zum Schluß werden der Reihe nach Fassungen, Widerstände, IC's, Stecker und Kondensatoren bestückt.
Hinweis zum Optokoppler OK3: Wird statt 6N136 der 6N137 verwendet, so muß beim 6N137 noch zusätzlich der Pin 7 (Freigabeeingang) mit dem Pin 8 verbunden werden. (nicht im Layout). Beim 6N136 muß dieser Pin frei bleiben!
Wird statt 6N136 (8-polig) der 4N25 (6-polig) verwendet, so ist der Pin 1 des 4N25 auf Pin 2 des Layout zu platzieren.
Bilder der bestückten Platine
Inbetriebnahme und Test:
- Nach dem Bestücken alles nochmal genau optisch kontrollieren und Flußmittelreste mit Alkohol abwaschen.
Nun wird zum ersten Mal Spannung angelegt (aus einem geregelten Labornetzteil, Strombegrenzung auf 50mA).
Die 5V und die Stromaufnahme kontrollieren. Wenn der Prozessor schon programmiert ist, dann sollte die LED 5x mal schnell blinken, dann eine Pause machen (Gesamtzykluszeit 2s). Nach dem Drücken der Programmiertaste sollte die LED permanent leuchten. Dieser 5-fach Kontrollblinker ist nach dem Programmieren der Adresse abgeschaltet.
Prozessor programmieren:
-
Nachdem die Hardware fertig aufgebaut ist, muß der Prozessor
noch passend konfiguriert und mit der Firmware geladen werden.
Das kann leicht mit einem selbst gebauten Adapter (ein paar
Widerstände und Dioden plus RS232 Stecker sowie 6-poliger
Schneidklemmstecker) und einem Programmiertool durchgeführt
werden. Ein frei erhältliches Programmiertool ist z.B. ponyprog.
- Chip Konfiguration: wie sich der Chip in der Platine verhalten soll (Frequenz, Spannung, Start)
- Programm: Welches Programm der Chip ausführen soll, also z.B. OpenDecoder.hex
- EEPROM: welche vordefinierten Daten in Chip hinterlegt werden, z.B. OpenDecoder.eep
- Chip Konfiguration:
Wichtig: vor dem Konfigurieren des Chips die exteren Ausgänge 6, 7 und 8 abklemmen, diese schalten sonst mit der Programmierung mit! (das macht nichts bei LEDs, aber bei Weichenantrieben geht's rund :-)
Der Atmel ATmega8515 verfügt über mehrere Möglichkeiten der Taktung und verschiedene Bootmodi. Diese werden mit sog. Fuses gesetzt. Im Menüpunkt Command->Configuration können diese selektiert werden. Für den in OpenDecoder2 eingesetzten Prozessor (interner RC-Oszillator) sind folgend Fusebits zu setzen:Fusebits CKSEL3...0 =0100 Häkchen bei CKSEL3, CKSEL1 und CKSEL0, bedeutet interner RC-Oszillator mit 8 MHz CKSEL3...0 =1110 Alternative nur ein Häkchen bei CKSEL0, bedeutet Brownout Detector on Crystal mit 10MHz SUT1..0 =0 0 Häkchen bei SUT1 und SUT0 (Power Up Delay) EESAVE =1 kein Häkchen bei EESAVE, bedeutet EEPROM Inhalt wird beim Update überschrieben. BODLEVEL =0 Häkchen, bedeutet Threshold bei 4V, kein Häkchen bedeutet Threshold bei 2,7V (erfordert Atmega8515L) BODEN =0 Häkchen, Brown Out Detection enabled -
Noch ein wichtiger Hinweis: bitte diesen Vorgang recht
sorgfältig machen und nicht einfach rumprobieren. Wenn
nämlich dabei auf externen Takt konfiguriert wird und kein
externer Takt an XTAL1 angeschlossen ist, dann kann man
nicht mehr mit dem Prozessor reden.
- Programm:
Zum Laden des Programms wird nun opendecoder2.hex geöffnet und dann mit dem Befehl write program an den Atmel übertragen. Logischerweise muß das Programmfile zur oben eingestellten Frequenz passen. - Daten (EEPROM):
Jetzt müssen noch die Daten in den Chip geschrieben werden. Dies erfolgt mit dem EEPROM-File, hierzu muß man bei der Dateiauswahl auf .eep umschalten.
Hinweis: Bei diesem Adapter ist der Reset in der Ponyprog-Konfiguration als invertiert zu markieren.
Dieser Adapter wird an JP2 angeschlossen und dann wird der Prozessor programmiert; anschließend kann der Adapter wieder abgezogen werden. Mit dem Adapter können auch andere Prozessoren programmiert werden.
Im Programmiertool wird der Chip ATmega8515 aus der AVR-Familie ausgewählt.
Bei der Programmierung sind die folgenden drei Inhalte in den Chip einzuschreiben:
Platinenoptionen / Jumper / Lötbrücken / Änderungen:
- Quarz:
Optional kann ein übliche HCU49 Quarz bestückt werden - logischerweise muß die CPU auch so schnell sein und das geladene Programm muß für die Frequenz angepaßt ein. Zum Quarz sind die Kondensatoren C4 und C5 erforderlich. - DMX Schnittstelle:
Wenn IC1 (RS485 Treiber) bestückt wird, so entfallt X5 (gleicher Platinenplatz).
Zugleich ist SJ4 zu schließen und SJ3 bleibt offen - damit ist der mittlere Pin von X6 auf GND. - Feedback:
Wird keine Rückmeldung per Endlagenschalter benötigt, dann sollten die Zenerdiode D2 bis D10 (Melf) sowie die SMD-Widerstände auf der Platinenunterseite entfallen. - ACK (CV-Programmierung):
Wenn diese nicht benötigt wird, so kann OK4, R13, R14, D14 und D15 (BAV99 auf der Lötseite) entfallen. - SJ1 und SJ2:
Sind diese geschlossen, so wird das Feedback (Acknowledge-Puls) auf den DCC-Eingang gekoppelt - damit ist DCC-Programmieren (CV-Werte) des Decoders möglich. (Natürlich müssen auch die entsprechenden Bauteile bestückt sein) - SJ3 und SJ4:
Damit kann der mittlere Pin von X6 entweder auf +15V oder auf GND gelegt werden. Für alle normalen Anwendungen ist SJ3 zu schließen und SJ4 offen zu lassen, nur bei DMX ist es invertiert. Keinesfalls dürfen beide geschlossen sein - KURZSCHLUSS! - SJ5:
Dieser Jumper ist zu schliessen, wenn statt des PC817 Optokopplers ein CNY17 bestückt werden soll.
Hinweis: In diesem Fall muß die Brücke zwischen Pin 4 und 5 durchgetrennt werden. - SJ6 und SJ7:
Sind diese geschlossen, so ist der DCC-Eingang und der Powereingang verbunden. DCC ist dann an X2 anzuschliessen. - Stromversorgung:
Sollte ein Servo mit versorgt werden, so ist der 5V Regler zu kühlen.
Was tun, wenn es nicht funktioniert?
-
Zuerst mal Ruhe bewahren :-)
- Kontrolle der Bauelemente, ob überall das richtige Bauteil mit der richtigen Polung steckt. Das hätte man schon vor dem Einschalten machen sollen!
- Sichtprüfung der Lötstellen und der Leiterbahnen - am besten mit der Optikerlupe.
- Kontrolle der 5V und der Ruhestromaufnahme.
- Kontrolle ob das Programmieren geht - und falls ja, mit Ponyprog wieder zurücklesen. Auch das EEPROM kontrollieren.
- Kontrolle von Reset (hat die Leitung +5V) und des
Taktoszillators (falls externer Quarz): an XTAL2 müssen 8MHz
anliegen.
Ein (in der Adresse) unprogrammiertes Design blinkt -x-x-x-x-x-----x-x-x-x-x---- wobei die 5 Blinker recht schnell aufeinander folgen, die Zykluszeit etwa 2s ist. - Sollte nach dem Prozessor programmieren der Dekoder zwar auf den Taster reagieren, aber nicht blinken, so ist vermutlich der EEPROM Inhalt nicht geschrieben worden.
- Wird die Polyfuse heiß? Dann ist ein Kurzschluß auf einem Ausgang
- Wenn soweit alles gut aussieht, aber der Decoder nicht auf DCC reagiert: Testdesign mit aktiven Ausgängen laden und die Ausgänge kontrollieren. (Kontrolle: R15 und C11 sind nicht bestückt - n.f. = 'not fitted')
Dann folgende Dinge kontrollieren: