Beschreibung: DCC Lok Decoder mit Atmel Tiny5 Lok Decoder nach NMRA DCC Befehlsstandart einfacher Aufbau, kleinste Bauform SMD 0805 zweiseitig Platine * 8 mm mit etwas SMD Erfahrung leicht Nachbaubar günstig Bootloaderbetrieb, -wire Softwareupdate möglich somit sind Funktionserweiterungen jederzeit möglich aktuelle Funktionen: kurze und lange Adressen,8 und 8 Fahrstufen bei und 8 Fahrstufenanpassung für Anfahrspannung und Maximalspannung in CV/5 oder über Kennlinie in CV67-9 bei 8 Fahrstufen Anfahrspannung über CV Anfahr/Bremsverzögerung in CV/ Motor PWM Frequenz mit: 6kHz oder khz in CV9 optionales sichern der letzten FS+Richtung im EEprom (ist keine DCC Norm) Fahrlicht Richtungsabhängig mit 80Hz in 0 Stufen Dimmbar in CV50 Lastreglung mit Schrittweite, max. Korrekturweite, mindeste Abweichung in CV5,5,5 Kickstart: Zeit und Spannung in CV 65,66 mit F Schleichfahrt -> Geschwindigkeit wird halbiert Programmierung über ServiceMode momentan nur CVByte schreiben Programmierung auf den Hauptgleis (POM) momentan nur CVByte schreiben Betriebsspannung 8-7V (DCC Norm ist ab 7V) Lichtausgänge je 90mA Dauerlast möglich Motorstrom bis A je nach Gleichrichterdioden und Endstufe was nicht geht: nur eingeschränkter Analogbetrieb (Hardwareseitig nicht eingeplant Software seitig momentan noch nicht eingebaut) kein Railcom (Hardwareseitig nicht eingeplant) keine Überstromsicherung der Lichtausgänge (Hardwareseitig nicht eingeplant) was noch machbar ist: weitere DCC Funktionen diverse Codeoptimierungen eingeschränkter Analogbetrieb ab ca. 7V Analogspannung
Hardware: K K Gleis IC +5V +UB K Gleis K R 7k D ZMY7 C +,7µF C 0,µF IN C OUT TS80CX50 0,µF +5V C 0,µF IC OUT VCC VCC FIN BD6 OUT VREF RIN R R 0k 0k K8 Motor K9 Motor Li v T K5 Li h SN700 T SN700 IC PB5 PB PB TINY5 VCC PB PB PB0 C5 0,7µF R,8k K6 -wire K7 Maßstab Änderung Ausgabe Datei 96,00% Firma 06.0. 09:59.0. :59 T5lokdec_bd6_.T00 Zeichner Titel Projekt Blatt Das DCC Gleissignal gelangt über die Klemmen K und an den Gleichrichter. Die 5V Versorgung für den Atmel wird mit Hilfe eines Linearregler erzeugt Als Steuerung wird ein Atmel Tiny5 verwendet, ohne Bootloader ist auch ein Tiny5 möglich, aber nicht empfehlenswert, da der Reset Pin benötigt wird und somit keine ISP Programmierung mehr möglich ist. Das DCC Signal wird über 7Kohm dem Tiny5 zugeführt und von dessen Eingangsschutzdioden auf Ub bzw. begrenzt. Für das Fahrrichtungslicht kommen MOS-FET-Transistoren zum Einsatz. Als Motortreiber wird ein BD60F (0,5A) oder BD6F (A) von Rohm verwendet. Des Weiteren sind noch ein und ein -wire Testpunkt zur Decoderprogrammierung vorhanden.
Platine: Version T5-8 7 6 5 8 7 6 5
Platine: Version T5-a In Version T5- hat sich der Fehlerteufel eingeschlichen. Das Gehäuse des Tiny5 ist in der Target Bibliothek falsch hinterlegt. Version T5-a ist berichtigt. 8 7 6 5 5 6 7 8
Software: Grundsätzliches: Die Software ist mit AVR Studio in Assembler geschrieben und teilt sich in. Bootloader und. Decodersoftware. Da alle 6 IO Pins des Tiny5 verwendet werden und somit der Reset Pin nicht mehr zur Verfügung steht, wurde der Bootloader mit integriert. Aus diesem Grund wurde auch ein Tiny5 mit K Programmspeicher und nicht der kleinere Tiny5 mit nur K Programmspeicher verwendet. Hier ist jetzt auch noch genügend Platz für weitere Funktionen im Programmspeicher. Als Bootloader wurde die Version von Hagen aus dem Mikrocontroller-Forum http://www.mikrocontroller.net/topic/9589#new mit kleinen Anpassungen verwendet (im Anhang anbei). Da der Bootloader immer am Programmstart ausgeführt wird und dies bei dem Rad/Schiene Kontakt eines Lok Decoder recht häufig vorkommt, wird er im Normalfall sofort wieder verlassen. Die eigentliche Funktion des Softwareupdate kann nur durch schreiben einer in CV55 ausgelöst werden. Dann Stoppt die normale Decoderfunktion und der Bootloader wird zyklisch durch einen Watchdog Reset aufgerufen (genauer Ablauf siehe Abschnitt: Softwareupdate). Damit in der kurzen Zeit, in welcher der Bootloader nach jeder Stromunterbrechung aktiv ist, die Beleuchtungsausgänge nicht flackern, werden diese Ports als erstes nach dem Start des Loaders auf Ausgang und auf Low ( aus) gesetzt (das ist auch die Anpassung des Bootloaders). Die genaue Loaderkonfiguration ist im Anhang enthalten. Der Bootloader startet dann die eigentliche Decodersoftware (welche auch ohne Bootloader lauffähig ist). Decodersoftware: Die Decodersoftware ist Modular aufgebaut, um sie einfach an andere AVR s anpassen zu können. Die verwendete Hardware des AVR erlaubt eine Vielzahl möglicher Typen. Notwendig sind: mindestens 8Mhz Systemtakt, ein 8 Bit Timer im CTC Modus, ein 6 Bit Timer im fast PWM Modus, ein 8 Bit ADC Kanal, 50 Byte SRAM und ca. 00 Byte Eeprom. Die Portpins sind bis auf die PWM Ausgänge (OCRpins) und dem ADC Eingang (es ist aber jeder ADC Kanal möglich) beliebig. Die Software gliedert sich folgendermaßen:. Hardwareinit Register Ports Timer. Decoderinit Daten aus Eeprom laden und setzen. Timergesteuerter Decoderbetrieb Der Decoderbetrieb wird durch den im 0us CTC Modus laufenden Timer gesteuert. Seine Hauptaufgabe ist es, alle 0us den DCC Pin abzutasten und daraus den DCC Bitstrom zu gewinnen. Nach 8 Aufrufen ( alle,8ms) wird zusätzlich zuerst die Fahrrichtungsbeleuchtung per Softwaredimmer mit 0 Stufen gesetzt und dann ein neuer Ist-Wert für die Motor-PWM. Die normale Hauptschleife baut den DCC Befehl zusammen, überprüft die Zuständigkeit und setzt die neu empfangenden Funktionen. Zusätzlich wird zur Motorlastreglung die Induktionsspannung gemessen. Weitere Details zur Software ist in dem umfangreich dokumentierten Assembler Code zu finden.
Programmierung des AVR: Wie schon mehrfach erläutert, empfehle ich das Verwenden eines Bootloader. Das ist nicht nur nötig um den AVR im eingebautem Zustand ohne Reset Pin und HV Programmer neu zu programmieren sondern auch sehr praktisch, da zur Programmierung im Draht Modus (- wire) nur eine und eine Signalverbindung nötig sind. Folgende Schritte sind nötig:. Vorbereiten des AVR mit folgenden FUSE Bits: SELFPRGEN aktivieren RSTDISBL bleibt vorerst inaktiv!! DWEN inaktiv lassen WDTON inaktiv lassen SPIEN aktiviert lassen!! EESAVE aktivieren BODLEVEL auf BOD ein mit,v setzen CKDIV8 inaktivieren CKOUT inaktiv lassen SUT_CKSEL auf int 8 MHz RC schnellste Start-up-time daraus ergibt sich: Fuse EXTENDED: $FE Fuse HighByte: $D und Fuse LowByte: $C. Die Datei AVRootloader.hex aus dem Verzeichnis Bootloader6 in den AVR programmieren. Wer möchte kann auch gleich den EEPROM mit den Decoderdaten laden, dazu die Datei T5lokdec.eep in den EEPROM speichern.. Zur Sicherheit noch einmal ein Verrify (Vergleich) des Programmspeichers mit der AVRootloader.hex durchführen, die FUSE Bits noch einmal auslesen und vergleichen, wenn jetzt alles stimmt kann der Reset Pin deaktiviert werden, dazu die Fuse: RSTDISBL aktivieren (Fuse HighByte ist dann: $5). Danach ist kein ISP programmieren mehr möglich!. Den AVR auf die Decoderplatine löten. 5. Eine -wire Verbindung (Kabel siehe Anhang) mit dem Decoder herstellen 6. Hagens Programm AVRootloader.exe (im Anhang anbei) starten, COM Port einstellen, Baudrate und Sign belassen, als Programmfiles die Datei T5lokdec.hex auswählen, den Button Connect to device betätigen und dann das Programmfiles flashen 7. fertig! -wire Verbindung trennen und Decoder testen Wer erst einmal die Decodersoftware testen möchte, kann auch ohne Bootloader direkt die T5lokdec.hex in den Programmspeicher schreiben. Die Reset Fuse kann auch aktiv bleiben, dann ist ein ISP - programmieren weiter möglich (der dann fehlende Beleuchtungsausgang ist für die Funktion nicht nötig). Zu beachten ist dann nur, das der RESET Widerstand (,kohm) bestückt wird!
Bauteilliste: GL MBS/HD0 darisusgmbh.de 0. Euro D,5W 7V SMA darisusgmbh.de 0.8 Euro C,7uF5V SMD Tantal 0% darisusgmbh.de 0.0 Euro C// 00nF/50V 0805 it-wns.de 0.0 Euro darisusgmbh.de 0.0 Euro C5 70nF/50V 0805 it-wns.de(0nf) 0.0 Euro darisusgmbh.de 0.07 Euro R 7kohm 0805 it-wns.de(k) 0.0 Euro darisusgmbh.de 0.09 Euro R/ 0kohm 0805 it-wns.de 0.0 Euro darisusgmbh.de 0.09 Euro R,8kohm 0805 it-wns.de 0.0 Euro darisusgmbh.de 0.09 Euro T/ SN700,BSS8N darisusgmbh.de 0.0 Euro IC LM80IM-5 rs-online.com.5 Euro farnell.de.0 Euro IC Tiny5 it-wns.de.9 Euro darisusgmbh.de.99 Euro IC BD6F rs-online.com.70 Euro farnell.de.66 Euro Platine.60 Euro Alle Preise stammen vom März 0 und sind für je Stück incl. MWSt ohne Versandkosten. Es gibt meist Staffelpreise ab 0 oder 5 Stück. Man kommt dann auf Bauteilpreise von unter 8.00 Euro je Decoder. Die erste Platinenserie hat einen Package Fehler des Tiny5, ich biete sie nur mit fertig Programmierten und aufgelöteten Tiny5 für.00 Euro an. Ab der. Serie gibt es die Platinen auch einzeln. Für alle, die mit dem programmieren des Tiny5 überfordert sind, biete ich auf Anfrage einen Programmierservice an (Anfragen an toralfwilhelm@web.de).