Hallo zusammen, kennt sich hier jemand mit dem neuen Maerklin Protokoll aus ?? Ich bin auf der Suche nach einer Funktionsbeschreibung des neuen Protokolls (F1...F4). Das Alte habe ich bereits fertig programmiert, bei dem neuen häng ich fest. Hoffe hier ist auch irgendeiner der sich damit schon beschäftigt hat. Dank im vorraus, Eisenbahnfreak
Hallo Eisenbahnfreak, das könnte dir weiter helfen: http://www.mue473.de/mfxrahmen.htm ansonsten hilft im augenblick nur ein CAN-->USB board zum Messen was die Lok bei welchem Befehl macht. Muss mir demnächst auch noch so was basteln. Märklin hält ja weiterhin hinter dem Berg und ESU will sein Protokoll irgendwann in nächster Zeit der Öffentligkeit frei geben genau so wie Zimo. Mir schwebt da nur etwas grösseres vor in richtung CS mit einem AT91RM9200 mit einem Linux das eine Mono umgebung beherbergt. Gruß Uwe
Hallo Uwe, danke für den Hinweis. Ich denke ich habe mich falsch ausgedrückt. Im Moment arbeite ich an dem "neuen" Protokoll, will sagen nicht an dem "ganz neuen". Derzeit ist es ein kleines Interface von USB -> BOOSTER Eingang. Ich kann 80 Loks sowie 256 Decoder nach dem alten Protokoll steuern. Es gibt aber noch die Zusatzfunktionen F1..- F4. Hier häng ich fest. Die Beschreibungen die man findet sind in genau diesem Punkt leider falsch. http://www.diei.unipg.it/STAFF/scorzoni_file/personale/hobby/motorola.htm Leider auch bei dem genannten Link. Vielleicht hast du ja noch eine Idee. Gruß der Eisenbahnfreak
Hallo Uwe, nochmals danke für den Link, ist aber ein recht großer Bausatz. Im Prinzip weisst du aber wie es geht bzw. Patrik sollte es wissen. So hoch wollte ich nicht hinaus daher erklär ich meine simple Lösung noch mal. Also, ich habe ein Board mit 2 Microcontrollern (AT90S2313, AT89S8252) entwickelt, größe Streicholzschachtel. Man kann wie schon erwähnt bereits Standard Protokoll (80 Loks, 256 Decoder) hiermit steuern. Die USB Schnittstelle stellt nun eine entsprechende API auf der PC Seite zur Verfügung. Ebenso existiert bereits ein WIN Programm zum Steuern der Eisenbahn. Der 2te Controller übersetzt nun Die entsprechenden Befehle in die Signale, welche der Märklin Booster am Eingang benötigt. Ebenso kann man mit dem 2ten Controller PC unabhängig (Zentrale) die Eisenbahn autonom steuern. Wie gesagt, mir fehlt das Verständnis für die Funktion F1... F4. Das hat Patrick aber scheinbar im Griff. Bin also sehr am Kontakt interessiert. Wo ist das Forum zu finden das du erwähnt hast ? Dann könnten wir ja mal in Kontakt treten. Der Eisenbahnfreak
Hallo Eisenbahnfreak, meinst du jetzt MM1,MM2 oder mfx oder gar das Lenz Xnet. MM1 = Motorola alt MM2 = Motorola neu mfx = ESU CAN Lenz XPressNet = Multiprotokoll im moment ohne mfx Gruß Uwe
Hallo Uwe, ich meine MM2, sorry für die Verwirrung. Bin gerade deine Links am lesen, bin aber noch nicht fündig geworden. Wie gesagt MM2, die Funktionen F1 - F4. Hoffe du hast noch eine Idee. Gruß Eisenbahnfreak
Hallo Eisenbahnfreak, vielleicht wird dir hier geholfen http://home.arcor.de/dr.koenig/digital/motoueb.htm Gruss Peter
Hier kommen wir der Sache näher, Ich suche genau den beschriebenen Ablauf (siehe Anhang) für die Funktion F1 ON/OFF - F4 ON/OFF der Eisenbahnfreak
Hallo Peter, auf der Seite von König und Scorzone ist genau das falsch beschrieben.
Hallo Eisenbahnfreak, Das was Märklin zugegeben hat: http://www.marklin.com/tech/digital1/components/commands.html Vieleicht hilft dir diese Seite weiter http://members.tripod.com/~Bardioc/index-0.html Die seite wird noch aufrecht erhalten da der Gehbehinderte Michael Bardioc verstorben ist, er ist normalerweise bekannt. Gruß Uwe
Hallo Eisenbahnfreak Wie du im Forum geschrieben hast, hast du ja das Protokoll für das alte MM1 Protokoll schon programmiert. In welcher Programmiersprache hast du das gemacht und wo her hattest du die Informationen, denn ich habe immer nur Infos über das neue gefunden und für das was ich möchte, würde eben das alte völlig reichen. Ich muss nur verschiedene Loks in einer bestimmten geschwindigkeit fahren lassen können. Controller hätte ich bis zu 100MIP zur verfügung. Wenn es in C wäre, könnte ich vielleicht eine kopie davon haben oder so? Vielen Dank Gruss, Marc
So, ich hol den Thread noch einmal nach oben. In der Zwischenzeit habe ich nun alle Hürden genommen und das Protokoll vollständig verstanden. Als Ergebnis liegt nun die Beta Version von "MC Loco" vor. Im Anhang habe ich 2 Bilder beigefügt, zum einem das Interface zum anderen ein Screenshot der Software. Das Interface löst die Zentrale vollständig ab. Alle Funktionen sind im AT89S8252 enthalten. Digitales Format -MM1 -MM2 alte Version (relative Fahrtrichtung) -MM2 neue Version (absolute Fahrtrichtung) -DCC in Vorbereitung Bei Verwendung von Dekodern im erweiterten Format sind bis zu 256 Lokadressen möglich, 1280 Sonderfunktionen F1-F4, sowie 1024 Magnetartikel. Das Interface wird am USB Bus (PC Seite) und Ausgangsseitig direkt mit dem Boostereingang verbunden. In der nächsten Version ist die Software netzwerkfähig. Dann können mehrere Teilnehmer im Netzwerk Teile einer Anlage entsprechend zuweisen und eine komplexe Eisenbahn gemeinsam steuern. Ich weiß nicht ob das hier das richtige Forum ist aber bei Interesse kann ich das Projekt hier hereinstellen. Ebenso kann die Schaltung nachgebaut werden. Bei Startschwierigkeiten wäre ich behilflich. @ Marc Lüthie, Ich habe den Thread seinerzeit nicht weiterverfolgt und deine Frage dementsprechend nicht mehr beantwortet. Du schreibst: Wie du im Forum geschrieben hast, hast du ja das Protokoll für das alte MM1 Protokoll schon programmiert. In welcher Programmiersprache hast du das gemacht und wo her hattest du die Informationen? Eigentlich findet man alles im www. Das Problem besteht darin das Protokoll wirklich zu durchschauen. Ich hab das ganze durchweg in Assembler programmiert. Die Erzeugung des Signals ist reichlich komplex und timing kritisch. In C hätte ich das garnicht erst versucht. Falls du hier noch mitlesen solltest so melde dich einfach noch einmal und frag was du wissen möchtest. Also, wenn interesse besteht dann bitte melden. Gruß Der Eisenbahnfreak
Hallo Eisenbahnfreak, ich bin erst jetzt über den Tread gestolpert. Es gibt mehrere Plattformen in denen Interesse an Deinem "Projekt" bestehen könnte. bzw. sich Kontakt zu anderen Modellbahnern ergibt. zunächst einmal die UseNet-News Group de.rec.modelle.bahn Bei yahoo gibt es noch eine "LocoNet" Yahoo-Group die das Loconet behandelt wie es von der Intellibox und Digitrax genutzt wird. Da das "Stummi" Forum - dort treiben sich recht viele "Märklinisten" herum. Weitere Foren sind das Eisenbahn-Kurier Fotum sowie das drehscheibe-online Modellbahn Forum. Such auch mal nach "OpenDCC". Grüße, Stefan
Hallo Eisenbahnfreak Danke für deine Antwort. Mich würde eigentlich nur die endansteuerug interessieren. Ist der Endkontroller, welcher das Signal für die Lok's erzeugt via Serielle Schnittstelle ansteuerbar. Der zweite kleinere Kontroller, stellt dieser die USB Verbindung zur Verfügung? Mittlerweile habe ich halt auch eine 6050 Interface Box von Märklin gekauft. Gruss, Marc
Hallo Eisenbahnfreak, das mit deiner "Zentrale" klingt für mich sehr interessant. Ich wäre da an mehr Informationen ggf. zum Nachbau interessiert. Wo kann ich ich diesbezüglich mehr Informationen bekommen. Gruss Helmut
Hallo zusammen, @ Stefan, vielen Dank für deine Zahlreichen Hinweise. Ich schau mir die mal in Ruhe an. @ Marc, im Anhang findest du ein Photo von dem ersten Prototypen. Hier hatte ich noch beide Schnittstellen in Verwendung. Da aber neuere PC's, insbesondere Laptops häufig keine RS-232 mehr haben, habe ich mich dann endgültig für die USB Variante entschieden. Im Prinzip hast du aber die Sache richtig verstanden, der AT89S8252 enthält die komplette Software zur Erzeugung des entsprechenden Signals für den Booster. Die USB Lösung basiert auf der App. Note AVR309 von Atmel. Dieser Baustein dient als USB->UART Protokoll Konverter. Hier habe ich lediglich einige Modifikationen durchgeführt. Verwendest du also anstelle dieser Lösung einen MAX 232, dann gehts auch per serieller Schnittstelle. Die WIN Software unterstützt dies aber nicht. Mein Eindruck ist allerdings das du hier lieber etwas selber entwickeln möchtest, ist das so ? Dann reicht dir der AT89S8252. Die API Aufrufe an das USB Interface sind aber recht einfach, könntest du also auch verwenden. @ Helmut, Ich habe noch keine Detailinformationen ins Netz gestellt, die Diskussion die ich hier begonnen habe geht ja unter anderem um genau dieses Thema. Wie du gesehen hast habe ich die Diskussion auch in einem "Modelbahn Forum" hineingestellt und nach hier verlinkt. So langsam kristallisiert sich aber folgendes dadurch heraus: Einige Eintwickeln gerne und sind an Details interessiert. Ebenso wird diese Gruppe von Leuten keine Schwierigkeiten, bei einer entsprechenden Beschreibung, beim Nachbau haben. Andere möchten die fertige Schaltung und ihren Spaß beim "Modelbahn Hobby". Auch ok. Die Frage ist, wie organisiert man so etwas ? Wenn du das Ganze ausprobieren möchtest so wäre ich bereit dir ein Interface zu geben. Im Gegenzug schreibst du deine entsprechenden Erfahrung zurück ins Forum. Ideal wäre es das Thema innerhalb eines Forums als getrennte Rubrik aufzumachen. Wie siehst du die Sache. Ich bin fast der Meinung das ein Modelbahnforum geeigneter ist. Gruß Eisenbahnfreak PS: Hier wird das Thema ebenso diskutiert. http://www.railroad24.de/modelleisenbahn/digital.php?forum=0
Hallo Eisenbahnfreak Ich möchte schon eher selber was machen. Ich habe nun 4 Jahre lang Elektroniker gelernt und einiges selber programmiert und entwickelt. Wenn es jedoch schon was schlaues gibt, dann möchte ich das nicht neu machen. Mit assembler kenn ich mich nicht so gut aus. Aber der Chip kann ja über die Serielle mit Kommandos gefüttert werden. Ist das so, dass z.B. die lok adresse und die einstellungen einmal übertragen werden, oder sendet der pc dauernd daten? Die einstellungen der Loks und weichen werden ja dauernd widerholt. Nun ja. Ich werden in den nächsten 21 Wochen sowieso nicht mehr zeit haben, mich um das zu kümmern. Ich gehe in die grünen Ferien. (21 Wochen Militärdienst als Strategischer Funkaufklärer) Eventuell melde ich mich später wieder bei dir. Danke auf jeden fall einmal für deine Antworten. Gruss, Marc
Marc, du überträgst die Information nur einmal, den Rest macht der MC.
Ich kann dir das Protokoll dann zur Verfügung stellen, den Rest
schaffst du dann selber.
>>> Nun ja. Ich werden in den nächsten 21 Wochen sowieso nicht mehr
zeit
haben, mich um das zu kümmern. Ich gehe in die grünen Ferien. (21
Wochen Militärdienst als Strategischer Funkaufklärer) <<<
Na dann, viel Spaß und lass von dir hören.
Hallo, melde Dich mal bei mir - hätte Interesse am Märklinprotokoll und könnte Dir eine DCC-Implementierung bieten. Servus Wolfgang http://www.opendcc.de
Hallo Wolfgang, gemeinsam unschlagbar, habs mir mal angesehen. Zentralen >400 Euro schlagen wir dann locker ;-) Spaß beiseite, ich melde mich bei dir per Mail. Allerdings ist dir schon klar das ich hier die 8051 Familie für die Signalerzeugung verwende ? Auch wenns nen Atmel Derivat ist ?! Hier wird also schon noch ein bischen Arbeit auf uns zu kommen, oder wir kombinieren, koordinieren die beiden MC's. Mal sehen. Das wäre fürs Forum doch ein echtes Versöhnungsprojekt, wo doch hier schon so häufig darüber gestritten wurde welche MC Familie die bessere sei ;-)) Ne, die Diskussion werden wir nicht führen !!!!!
>> Zentralen >400 Euro schlagen wir dann locker ;-)
Das war auch meine Idee; wir hatten bei einer Vereinsausstellung
ziemliche Probleme mit der Resetbox; Ich habe dann in Nürnberg den
Hersteller drauf angesprochen und bin ziemlich abgewimmelt worden :-(
("ja, sicher wir nehmen das ernst und wir arbeiten dran und melden uns
wieder").
Servus Wolfgang
Hallo!! ich brauche dringend Hilfe! Ich muss für ein Projekt in der Schule eine Platine in Assembler programmieren, welche eine Märklin Digital Bahn fahren lässt. d.h. auf Knopfdruck soll sie vorwärts bzw. rückwärts fahren. Ich habe mir die Informationen auf der Seite vn DR. König angeschaut und habe auch ein Programm geschrieben. Mein Ergebniss:Die eine Eisenbahn fährt immer rückwärts, egal welche Adresse ich benutze oder was für eine Geschwindigkeit ich einstelle und die andere Bahn macht garnichts. Nun komme ich nicht weiter und wollte fragen ob jemand ein kommentierten quelltext in assembler oder c hat, der dauernd ein Fahrsignal "sendet" an einem Port ausgibt. Ein PAP würde auch gehen. ich hoffe mir kann jemand schnell helfen in 2 wochen ist Abgabe!! vielen dank, gruß Fabian Rauber
Hast Du ein Speicheroszilloskop zur Verfügung ? Schau Dir mal die Signale aus einer Märklin 6021 an und vergleiche mit dem, das Du auf ds Gleis gibst. Stimmt Dein Timing ? Was hast Du für einen uC ? Zum Steuern Eines Zuges musst Du ja nur die passende Bitfolge an einen BOOSTER ausgeben - Bist Du sicher das Du die richtig erzeugst ? Wenn Du einen UART hast kannst sogar dem das das Bitschieben überlassen. Poste doch mal was Du an Quelltext erarbeitet hast. Grüße, Stefan ... in zwei Wochen ist abgabe ? Seit wann weisst Du das ?
Nein, ein Speicherosziloskop habe ich nicht. 6021 ? Ist das der Trafo oder die Steuereinheit? Ich hhab nur ein Trafo hier. Ich benutze Synario Ride und da kann ich das Signal nicht als Osziloskopbild ausgeben lassen. ich hab es mit einem timer gelöst, dann müsste ja das timing stimmen ? ich glaub ich hab ein chip der serie 8252 es steht AT89S8252 drauf. was ist ein uart und und wie kann ich ihn benutzen ? ich benutze den RLC befehl. ich habe erst diese woche die hardware(booster,lok, trafo) zum testen bekommen. das programm habe ich schon länger fertig. gruß fabian hier der quellcode: include reg_52.pdf LJMP init ORG 000Bh LJMP timer0 ORG 001Bh LJMP timer1 init: MOV TMOD,#11h MOV IE,#8Ah ; signal code MOV R0,#11100011b ; 8 Bit Adresse MOV R1,#11110011b ; 2 Bit Funktion on/off, 6 Bit Fahrt MOV R2,#01000000b ; restliche 2 Bit Fahrt m2: CJNE R4,#00h,m9 mov TL2, #0Ah ; kurze Pause nach einem Paket mov TH2, #0FAh m9: CJNE R4,#01h,m10 mov TL2, #0FEh ; lange Pause nach dem Doppe-Paket mov TH2, #0FBh mov R4,#00h m10: CJNE R3,#00h,m8 ; erste 8 Bit des Siganls Mov A, R0 m8: CJNE R3,#09h,m4 ; zweite 8 Bit des Siganls Mov A, R1 m4: CJNE R3,#11h,m5; letzten 2 Bit des Signals Mov A, R2 m5: CJNE R3,#13h,m6 ; erstes Paket ist abgeschlossen lcall zeit ; Pause wird aufgerufen MOV R0,#11100011b ; Signal Code wird wieder geladen MOV R1,#11110011b MOV R2,#01000000b MOV R3,#00h INC R4 m6: INC R3 ;nach jedem gesendetem Bit wird R3 erhöht m3:JNB P2.1,m3 ; wartet bis Timer 1, P2.1 high schaltet CLR P2.1 RLC A ; Inhalt des Akkumulator wird rotiert JB CY ,m1 ; abfrage ob das Carryflag 1 ist MOV TL0,#0E5h ;CY ist 0, kurze HIGH Periode wird geladen MOV TH0,#0FFh MOV TL1,#49h MOV TH1,#0FFh SETB TR0 ; Timer0 wird gestartet SETB P2.0 ; P2.0 wird 1 -> High Signal m1: MOV TL0,#49h ;CY ist 1, lange HIGH Periode wird geladen MOV TH0,#0FFh MOV TL1,#0E5h MOV TH1,#0FFh SETB TR0 ; Timer0 wird gestartet SETB P2.0 ; P2.0 wird 1 -> High Signal LJMP m2 timer0: ; Interrupt timer0 Startet den Timer 1 CLR P2.0 CLR TR0 CLR TF0 SETB TR1 reti timer1: ; Interrupt timer1 setzt P2.1 wieder auf 1 CLR TR1 ; -> nächste Impulswird gestartet CLR TF1 SETB P2.1 reti zeit: ; Pause zwischen zwei Pakten SETB TR2 m7:JNB TF2,m7 CLR TR2 CLR TF2 ret end
Hallo Fabian, Also 8051 Assebler hab ich jetzt schon ewig nicht mehr programmiert, was mir aber auffällt, nach der INIT: Routine fällt das PGM einfach durch mehrere Compares durch - soll das so sein ? R4 ist auch garnicht initialisiert1. Ist Synario eine art Programmgenerator ? Ein UART ( Universal Asyncrounus Receiver Transmitter ) oder USART ist eine Serielle Schnittstelle. Ohne dass ich jetzt in das Datenblatt hineingesehen habe - imho haben 8051-Derviate alle irgendwie so etwas. Hast Du überhaupt ein Oszi ? Wenn das so eine integrierte Programmierumgebung ist, kannst Du per single-Step den Programmablauf verfolgen ? Grüße, Stefan
Hallo Eisenbahnfreak, hätte Interesse am MM2-Code, bin gerade dabei, eine Implementierung auf STM32 Hardware zu machen. Grüße Roland
Schwein gehabt, ich lese hier manchmal noch mit :-) http://home.arcor.de/dr.koenig/digital/motoueb.htm Das war meine Starthilfe zu dem Thema und ich habe den Code damals für einen 8x51 typ in Assembler geschrieben. Ich weiss nicht ob du diesen Code lesen kannst ? wenn Bedarf dann kann ich den mal hervorkramen. Mittlerweile habe ich aber fast Alles vergessen :-) Auf welchem STM32 willst du den Code den portieren ? Ich gehe davon aus das du das Prinzip verstanden hast und das MM1 Protokoll bei dir schon läuft ? und du brauchst noch das MM2 ? oder beginnst du bei Null ?
Hallo Bernd, ich verwende den STM32F103RB. Den hab ich bei ebay als Developer-Board mit LCD für ca 25€ ersteigert. Mit max. 72 MHz müsste er doch schnell genug sein, oder ? Also mit MM1 fange ich von Null an. Hast Du den Code noch im Einsatz ? Grüße Roland
Also du fängst bei Null an ? >> Hast Du den Code noch im Einsatz ? Nö, ich besitze nicht mal eine Märklin Eisenbahn aber ich habe damals die Software dafür geschrieben. Wenn du bei Null startest dann solltest du dir ALLES aus dem verlinkten Artikel durchlesen. Das gilt für MM1 und MM2. Die "König" Seite erklärt das wirklich sehr gut und ausführlich. Wenn die Definition für Logisch 0, 1 etc. gebaut sind dann erzeugst du mal eine komplette Sequenz. Hierbei sollte das Timing sehr genau eingehalten werden. Dann ist es eigentlich nur noch ein Zusammensetzen von Lokadresse, Fahrtrichtung, Geschwindigkeit etc. Ich will dich nicht mit Assmbler nerven, wenn du es lesen kannst dann stell ich es rein. Die Frage hast du aber noch nicht beantwortet. >> ich verwende den STM32F103RB... Klar, der ist mehr als schnell genug.
Hallo Bernd, mit Assembler kann ich nix anfangen. Den STM32 programmiere ich mit C, bei dem Board war eine kleine CD mit Beispielen dabei. Diese modifiziere ich und "spiele" ein wenig herum. Dann werde ich mich mal durch die "Königlichen Seiten" durcharbeiten. Danke für die schnelle Antwort. Grüße Roland
Hallo Eisenbahnfreak, nun habs ich endlich geschafft. Auf meinem STM32-Board habe ich nun das MM1-Protokoll (14 Fahrstufen) am laufen und kann nun Licht schalten und in beide Richtungen fahren. Die Eingabe erfolgt über einen Impuls-Drehgeber. Nun versuche ich mich an MM2 ! Grüße Roland
Kannst Du Deinen Quelltext (MM1) und Boardversion hier mal posten. Ich haette da jemanden mit Interesse.
:
Bearbeitet durch User
Hi, ja aber sicher. Also reingucken wuerde ich da schon mal gerne, was Du da so gemacht hast.
Hallo Barney, dieses Board verwende ich: http://www.ebay.de/itm/STM32F103RBT6-development-board-2-8-TFT-lcd-module-true-color-touch-screen-/222050066777?hash=item33b3372159:g:omcAAOSwyjBW4puV Quellcode muss ich noch suchen .... Grüße Roland
Hallo Barney, auf dieser Seite: http://members.home.nl/robert.evers/mdrrc2.htm gibts ein fertiges Projekt einer Zentrale (DCC und MM2). Leider keinen Quellcode. Robert benutzt das selbe Board. Grüße Roland
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.