Hallo
Ich habe mich am Wochenende mal etwas mit AVR Microcontrollern von ATMEL beschäftigt.
Da ich etwas Assembler und C programmieren kann, komme ich eigentlich ganz gut klar.
Wird aber wohl noch einige Zeit dauern, bis ich da was Produktives machen kann.
Hauptptoblem DCC empfangen und auswerten.
Auf opendcc.de ist einiges erklärt, aber auch recht kompliziert.
Ich wollte einfach mal fragen, ob sich noch jemand damit beschäftigt?
Dann könnte man mal Erfahrungen und Ideen austauschen.
Meine Ziele:
DCC Schaltdecoder, Servo Decoder (Weichen, Entkuppler, Drehscheibe bzw. Schrittmotor), Booster und S-88 oder Selektrix Module selber bauen.
Platinen ätzen, Layout mit Eagle. AVR Studio, USB PRogrammer, Pollin Experimentierboard.
Ich will einfach unabhängig von irgendwelchen Anbietern sein und eigene Features einbauen können.
Hoffe, es meldet sich jemand
Gruß
Thomas
Hallo Thomas,
vielleicht auch als Basis zu gebrauchen ;)
http://www.mobasbs.de/Eisenbahn/MoBaSbS/MoBaSbS.htm
http://www.wagenlehner.net/Decoder/index.html
http://www.railway-lauf.de/GBM-16RM.htm
evtl. nicht alles auf AVR-Basis.
Hallo Thomas,
Vieleicht aug ein interessante Site ist http://bahn-in-haan.de/_decoder.html
Schau Special nach die hex-Code,
mit einer grüß
Thomass
Hallo, Thomas,
habe selbst inzwischen 12 von den OpenDecodern im Einsatz, und das mit bestem Erfolg. Wenn Du es nicht aus Interesse an der Sache von Null an programmieren willst, würde ich Dir davon abraten. Diese Dekoder sind so professionell entwickelt, dass man im DCC-Teil eigentlich nichts besser machen kann. Der Aktionsteil kann dann den eigenen Bedürfnissen bei Bedarf angepasst werden. Ich habe z. B. ein Ballon-Projekt im Auge mit Feuerstrahl (3 LED's) und entsprechendem Geräusch, als i-Tüpfelchen dann noch ein winkendes girl im Korb. Braucht aber noch etwas Zeit...
Vom Grundsatz her habe ich die gleiche Intention wie Du, die Unabhängikeit von anderen. Ich habe mir aus der gleichen Quelle auch die Zentrale gebaut, mit bestem Erfolg. Booster folgt.
Freundliche Grüße aus Leipzig
Dieter
Hi Thomas,
wie Karl schon mitgeteilt:
http://www.railway-lauf.de/GBM-16RM.htm
Ruf mal Herrn Ratschmeier an, sehr netter Herr, er beschäftigt sich mit ATMEL und wird Dir sicher Auskunft geben. Ob sich die Eigenentwicklung lohnt ist natürlich Deine Entscheidung. Ich habe mich vor nicht langer Zeit auch einmal mit dem Gedanken geplagt aber als ich die Preise für Belichtungsgerät nebst Ätzanlage erfahren habe und dann die Preise für galvanisch behandelte Platinen, in meinem Fall Booster und Drehscheibendecoder von Herrn Ratschmeier, hab ich den Gedanken aufgegeben.
Hallo Thomas,
als Selbstversorger stand ich vor einem Jahr vor der gleichen Frage: Ätzen ja oder nein?
Ich hab's probiert und es hat sich gelohnt, obwohl ich vorher Nullahnung davon hatte.
Dazu habe ich mir kupferbeschichtete Platten besorgt. Diese mit Positiv20 besprüht und einen Tag trocknen lassen, schneller gehts in der Bratröhre bei 60° in etwa 35 Minuten.
Das Layout habe ich mit mit dem Programm Sprint Layout entworfen.
Zwei Schalen, die ich vom entwickeln von Bilder noch hatte, habe ich für die Bäder genutzt.
Am Ständer eines Vergrößerungsgerätes habe ich eine UV Lampe von Philips im Abstand von ca. 30 cm von der der
Grundfläche entfernt befestigt, das war's. Ach ja ein Timer zum messen der Belichtungszeit wäre gut. Die Belichtungszeiten
und Entwicklungszeiten sind aber unkritisch, es kommt nicht auf die Sekunde an , wie z.B beim entwickeln von Fotographien.
Also:
1. Layout am PC entwerfen mit z.B Eagle Light (kostenlos). Mein Sprint hat glaub ich um die 90 € gekostet.
Das Layout habe ich mit einem 8 Jahre alten HP Tintendrucker auf Laserfolie ausdrucken lassen mit gutem Ergebnis.
2. UV Lampe ca. 40€
3. Das Spray Positiv20 kostet ca. 20€. Das Problem ist, daß ich die Beschichtung nicht ganz gleichmäßig hin kriege. Sieht
dann nicht so gut aus ist aber ausreichend. Es gibt aber fertig beschichtete Platten wie du schon weißt. Leider
kriege ich die in Antalya nicht.
4. Schalen und Chemikalien sind eigentlich vom Geld her zu vernachlässigen.
5. Kupferbeschichtete Platten Stückpreis ca. 2€. 160mm x 100 mm.
Geätzt habe ich bisher Beleuchtungsplatten für Loks, da diese als Ersatzteil nicht mehr zu bekommen waren,
Verteiler usw. Sicher waren die Ergebnisse nicht professionel aber der Zweck wurde erfüllt.
Ist eine interssannte Geschichte. Im Internet gibts reihenweise Anleitungen dazu und die Sache ist auch von Laien beherrschbar.
Die ersten zwei drei Versuche sind wegen zu niedrigen Bad Temperaturen ins Auge gegangen aber seither klappt's.
Nur Mut.
Zitat von: Thomas Wilcke in 16. März 2009, 13:07:58
....
Meine Ziele:
DCC Schaltdecoder, Servo Decoder (Weichen, Entkuppler, Drehscheibe bzw. Schrittmotor), Booster und S-88 oder Selektrix Module selber bauen.
.....
Vielleicht ist das das Richtige:
Sven Brandt Decoder
http://www.digital-bahn.de/eigenbau.htm
Ich bin mit den dort angebotenen Artikeln zufrieden.
Ich hoffe die Webseite weckt auch dein Interesse
schönen Abend wünscht Christian
Hi
Ich glaube ich habe mich für Sven Brandt entschieden.
Werde mal das komplette Sortiment nachbauen und gegebenenfalls anpassen.
Der Assembler läuft schon bei mir.
Nur die SMD Friemelei und die doppelseitigen Platinen schrecken mich noch etwas ab.
Die Platinen sind im Notfall (kleine Änderungen) schwer selbst herzustellen.
Besonders wenn sie durchkontaktiert sind.
Solange man die Platinen von Sven beziehen kann aber sicher kein Problem.
Mit Platinenservices kenne ich mich nicht aus, da kostet ein Prototyp ca. 50 Euro und was dann die
einzelnen Platinen kosten steht da meistens garnicht dabei... Das scheint viel zu teuer.
@Christian: Laut Profil hast Du doch alles von Lenz?
Gruß
Thomas
Hallo Thomas,
auch ich habe einige Projekte von Sven in SMD-Technik nachgebaut. Das ging recht problemlos, obwohl ich vorher nichts damit zu tun hatte.
Eigene Platinen habe ich mittlerweile auch schon selbst hergestellt. Dabei halt auf doppelseitige Belegung verzichtet zu Lasten der Größe. Und erste Assembler-Erfahrungen und Erfolge konnte ich auch schon verbuchen.
Die Seite von Sven hat mir hierzu viel Wissen vermittelt.
Eine weitere Quelle für PIC-Assembler ist http://www.sprut.de/electronic/index.htm (http://www.sprut.de/electronic/index.htm)
Viele liebe Grüße
Markus
Hallo Markus
Hast Du die Platinen von Sven auf einseitig umgelayouted (tolles Wort)?
Das habe ich auch schon überlegt, aber dazu muß ich mich erstmal in Eagle einarbeiten...
Oder sind das eigene, andere Platinen?
Gruß
Thomas
Hallo Thomas,
ich habe Eigene erstellt, aber auf Grundlage von Sven. Und das PIC-Programm dazu erstellt.
Als Layout-Programm habe ich mir Target 3001 zugelegt. Da das ganze Thema neuland ist, wollte ich mich nicht auch noch mit nem Englischen Layout Programm rummärgern und Komponenten selber entwerfen müssen.
Siehe Anlage (Als ein Beispiel)
Viele Grüße
Hallo Thomas,
und hier noch der Schaltplan, das Layout in 100% und zum besseren erkennen in 400% und der Bestückungsplan.
Viele Grüße
Markus
Kleiner Tipp betreffend Durchkontaktierungen.
blanke (versilberte) Aderendhuelsen mit einseitigem Kragen, so fuer 0,25 bis 0,5 qmm, sind gut geeignet. Bohrung entsprechend dem Aussendurchmesser der Huelse an den Verbindungspunkten der oben- und untenliegenden Leiterbahnen erstellen, Aderendhuelse durchstecken und mit einem Seitenschneider ca. 0,5 mm ueber der Platine abkneifen. Durch die Quetschung und des einseitig vorhandenen Kragens bleibt die Huelse im Loch. Beide Seiten etwas verloeten.
Die Pfriemelei mit sog. Durchkontaktiernieten lag und liegt mir auch nicht. Aderendhuelsen sieht ausserdem jeder "Halbblinde", optimistisch "Halbsehende", noch.
Gute Idee!
Dann müssen die Löcher auch nicht soooo genau übereinander liegen.
Ich habe mal die wichtigsten Platinen von SB geordert.
Wenn die laufen, dann werde ich es an meine Bedürfnisse anpassen, wenn überhaupt nötig.
Ziele;
PIC Programmer
S-88 N Bus mit Powermodul.
S-88 Lichtschranken
LED 5x2 Schalter für Signale
Relais 8 für Gleisabschnitte, Beleuchtungen
LED Decoder
Snoopy
Servo Decoder (wenn fertig)
irgendwie muß ich dann noch eine Schrittmotorsteuerung entwickeln für selbstgebaute Drehscheiben
Damit kann ich meine komplette Anlage dann wohl steuern.
Vorhandene Viessmann Weichendecoder und Gleisbesetztmelder werde ich dann wieder verkaufen... ;-)
Gruß
Thomas
Hallo Karl, Hallo Thomas,
zu diesem Zweck hatte ich mir vor Jahren mal Kupferhohlnieten A-drm 1,0 und 1,2 mm besorgt. Könnte durchaus möglich sein, daß Fohrmann die Dinger im Programm hat oder aber beschaffen kann. Diese Dinger sind auch sehr nützlich um Kupplungsadapter aus unterschiedlichen Materialien, die sich schlecht kleben lassen, zusammenzufügen ebenso dIe Herstellung von Schleifern aus Epoxiabschnitten und Phosphorbronzestreifen. Gehören eigentlich in jede gut ausgerüstete Bastelkiste. Die Aderendhülsen gehen auch, sind aber doch recht groß und stören die Optik einbisschen, auch wenn das nicht entscheidend ist.
meine kleinste Aderendhuelse:
Aussen-Schaft-Durchmesser 1,2 mm :)
Kragen-Aussen-Durchmesser 2,1 mm (verdammt gross) >:(
Laenge 5,6 mm
schaffe ich mit meinen Wurstfingern und ohne Pinzette zu verarbeiten. ;)
Hallo Thomas,
mich würde mal interessieren, ob Du auch die Software des Decoders selbst programmieren möchtest.
Dazu kenne ich drei Methoden:
Fire-And-Forget DCC (a ca 1 Mio Instructions / sek.): Man versuchts einen schnellen Assembler Code zu schreiben , der periodisch abtastets und die Befehl in der selben Periode (Timer-Routine) ausführt. Dabei kommt man bei "intelligen" Decodern die mehr als Ein/Aus schalten schnell an die Grenzen. In der MoBa Literatur oft mit wenig sinnigen 22 us Abtastinterval implementiert.
Das oft veröffentlichte Fire-And-Forget DCC taugt aus flgendem Grund nix: Die Hauptaufgabe eines DCC Decoders sind Soll-Stellung empfangen und kontinuirlcih über rel. lange Zeitspannen dafür zu sorgen , das sich die Iist Werte der Ausgänge den Sollwerten annähern bis die erreicht sind. Ein Loko hält nich sofort an, sonder das dauert, auch wenn es nur einen Stop-Befehl gibt. Ein guter Weichendecoder beherrscht auch (konfigurierbare) Schaltintervalle, und kann sogar eine Schaltvorgang jederzeit abrechen und mit der Ausführung eines wirdersprüchlcihen Befhels beginnnen. Dazu brauct es wenigstens das zweite Verfahren:
Double-Threaded DCC (ab ca 2 Mio Instructions / sek.): Der auch Loko-taugliche goldene Mittelweg: Man tastet periodisch das Signal in der Timer-Interrupt-Routine ab, und qeued die decodierten Bits in einen FiFo. Die Time-Interrupt-Routine kann dann später auch noch andere wichtige peridische Echtzeit Jobs intelligenter Decoder übernehmen. Das eigentliche Parsen der Befehle passiert dann im Hauptprogramm, welchen Bits für Bits aus dem Fifo holt und in dem man dann "alle Zeit der Welt" für beliebige interpretierende Auswertung hat. Die beste Methode für hochwertiges ungestörtes dcc (und auch mfx). Abtastrate 32 oder 40 us. Ost West-Richung erkennend (HLU), Zeit für AD-Wandlung zwecks Assymetrieauswertng (ABC).
Hochsprachen-Kanonen DCC (ab ca 10 Mio Instructions / sek.): Man programmiert in C, Man tastet nicht , sondern misst den Abstand zwischen den Flankenwechseln. Vorteil, man erkennt auch Flanken anderer Protokolle. Nachteil: Selbst Flanken von Störungen laufen Gefahr den DCC-Bit-Strom zu stören. Empfindliches Verfahren und bei einem wirklichen Multi-Prot-Decoder eine Interpreter-Thread für jedes Protokoll ratsam.
Noch ein Spezialfall zur Zeitintervallberechnung: Diese kann beim Einsatz eine langsamen Optos im Signalweg oder eines ansonsten hochkapazitiven Eingangs von Vortiel sein, das diese evtl. die Flankendauer für den uC soweit reduziert, das keine Flanke sondern nur noch ein wenige us andauernder Impuls ankommt. Dies taugt aber pratiksch nur für langsame Optos, da - wie gesagt - bei diesem Verfahren jede kleinste Störung einen ungedämpften Eingang aus dem Takt wirft.
Wofür der Decoder langfristig einsetzbar ist, entscheidet sich also bereits am Anfang bei der Implementierung der notwendigen Interruptroutine und der Modularität der ersten Version. Wenn keine Real-Time Debugging (ist meist unbezahlbar) zur Verfügung steht, sollte die von Anfang an absolut fehlerfrei sein. Bitte unter widrigsten Umständen testen bis der Arzt kommt ;). Der Rest (Features) ist dann eher Fleissarbeit. Eine umfangreiche Doku, was bei dcc alles zu bedenken ist, dindet man unter www.nmra.org. Wenn Du das alles durchgelesen hast, bist Du gut informiert, welche grundlegenden qualitativen und funktionalen Anforderungen dcc an eine Programm-Gerüst stellt.
Viele Grüße
Frank
Hallo Frank
Soweit bin ich noch nicht.
Es exisitiert eine DCC Erkennungs-Software, die funktioniert.
Die arbeitet mit Interrupts.
Es gibt eigentlich keinen Grund, die zu ändern.
Muß mich da noch einarbeiten.
Alles in Assembler. Den Code kann ich schon assemblieren.
Gruß
Thomas