RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#76 von bertr2d2 , 08.01.2021 19:54

Hallo,

Zitat

Zitat

Gelöstes Problem Programmierung: Debug Port Stecker J52 ist leider nicht kompatibel zu den beliebten FTDI USB/SER China-Boards. PIn RX / TX scheinen vertauscht zu sein (habe allerdings noch erste Platinen-Version). Damit geht natürlich auch das serielle Programmieren nicht, egal wie man die Jumper steckt. Mit der diekten Verbindung gemäß Heise Artikel hat das Programmieren dann doch funktioniert...


Ich habe das als Bugreport aufgenommen.



aiee, dreimal um die Ecke gedacht und dann verkehrt gemacht. Ist in der Platine V1.3 nun gefixt.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.537
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#77 von fantux , 08.01.2021 20:54

Hallo freunde der Retrodigotalsteuerung

für alle ganz Ungeduldigen gibt es den ersten Entwurf eines Handbuchs. Morgen mit besserem Licht mache ich auch mal Fotos und schaue mir die Struktur nochmal genauer an.

Zitat

ich hatte die BluePill Onboard LED als Zustandsanzeige gedacht. Momentan mache ich da einen einfachen 1Hz Blinker:
[...]Die zweite, zusätzliche LED würde ich für z.B. Stop and Go Zustandsanzeige nutzen. Ggf. kann sie ja nervös blinken, wenn der Status noch ungeklärt ist.
Bessere Vorschläge sind aber immer willkommen !



Zusammen mit dem Problem "Lokdatenbank herunterladen" und "Da ist noch ein unbenutzter Knopf auf dem PCB" ist mir noch folgende Idee gekommen:

* Rote LED gibt grundsätzlich den Stop/Go zustand an, soweit bekannt.
* Ein kurzer Druck auf SW1 schaltet den Stop/Go-Zustand um.
* Ein langer Druck auf SW1 stößt ein Update der Lokdatenbank an.
* Solange ein Datenbank-Download läuft, blinkt die LED langsam.
* Im Fehlerfall blinkt die LED schnell.

Damit bleibt wäre On-Board-LED des BluePill komplett unbelegt und steht für irgendwelche anderen Meldungen mit An/aus, langsam blinken, schnell blinken zur Verfügung.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#78 von fantux , 09.01.2021 14:54

Hallo Stummis,

die erste Version ist fertig, jetzt auch mit Struktur und Bildern: Handbuch zur c6021light. Dazu gibt es auch eine weitere Anleitung, wie man sich mit der seriellen Konsole verbindet. Im Moment habe ich keine konkreten Ideen, wie das Handbuch weiter ausgebaut werden sollte. Wenn ihr Fehler, Unklarheiten oder Ergänzungswünsche habt: gerne her damit, dann habe ich neue Inspiration zum schreiben.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#79 von markra , 09.01.2021 15:44

Hallo an Alle,

schön, dass es so viele Reaktionen auf meinen Post gegeben hat.

Okay, ich sollte meine SRSE2 mal aktualisieren, ist schon eine Weile her...

@Gerd: Welche Module betrifft das, oder rätst Du zum Komplett-Update (Da ist wieder, meine Linux Schwäche )

Zu dem I2C Monitor gäbe es 2 Möglichkeiten:

* Bluepill sniffert über Port Pins (Interrupt on Change o.ä.)

* kleiner PIC oder ATTiny (für tiny gibt es einen Sniffer I2C -> seriell, Gerd hat Ihn schon auf GITHUB)
Wenn eine Lösung über z.B. SPI (besser, da ser. Ports ja belegt) gewünscht wird, kann ich gerne einen Sniffer für PIC(z.B 12F1822) shreiben...
Die I2C Kommunikation ist ja glaube ich <= 100kHz... (beim PIC 32MHz (8MHz instruction) ca. 80 Befehle pro Bit, das sollte machbar sein)

Ich würde mich sehr über eine Entwicklung in diese Rchtung mit 6021 freuen, da ich beim Bluepill noch gar keine Ahnung habe.
Immerhin ist gestern mein ST-Link gekommen, also werde ich da auch mal debuggen/helfen können.

Also die Reihenfolge am 6021 ist "ganz einfach" ??? zu ermitteln (wenn ich es richtig verstanden habe), da CU6021 eine Leitung hat, die von den in der Initialisierung angesprochenen Geräte "weitergeschaltet" wird. Wenn Connect21 light ganz rechts hängt, ist dies der letzte Teilnehmer und kann an der Init-I2C-Adresse (wenn Leitung weitegeschaltet und bei Connect angekommen ist) erkennen wie viele Control 80f dranhängen.

Der komplizierteste Teil der I2C-Kommunikation dürfte die Übergabe des "FOCUS" sein, also wer ist berechtigt, die Lok zu Steuern(Blinken/Leuchten der Lokaddresse 6021/Control 80f)...

Ein Multimaster-Protokoll ist wahscheinlich auch noch nötig: Falls der Bluepill das nicht hat(???), kann über den Sniffer auch eine Buskollision detektiert werden... (Sniffer muss gesendetes Paket zurückliefern)

Viele Grüße

Martin

P.S.: Habe nun mein CAN2UDP und PIC geupdated... sieht schon besser aus.

16:53:45.610 CAN 0x0016030B [6] 00 00 30 00 01 01 Magnetartikel MM1 ID 1 Ausgang 1 Strom 1
16:53:45.612 CAN 0x00176F34 [6] 00 00 30 00 01 01 Magnetartikel MM1 ID 1 Ausgang 1 Strom 1
16:53:45.795 CAN 0x0016030B [6] 00 00 30 00 01 00 Magnetartikel MM1 ID 1 Ausgang 1 Strom 0
16:53:45.809 CAN 0x00176F34 [6] 00 00 30 00 01 00 Magnetartikel MM1 ID 1 Ausgang 1 Strom 0
16:53:46.196 CAN 0x0016030B [6] 00 00 30 01 01 01 Magnetartikel MM1 ID 2 Ausgang 1 Strom 1
16:53:46.200 CAN 0x00176F34 [6] 00 00 30 01 01 01 Magnetartikel MM1 ID 2 Ausgang 1 Strom 1
16:53:46.367 CAN 0x0016030B [6] 00 00 30 01 01 00 Magnetartikel MM1 ID 2 Ausgang 1 Strom 0
16:53:46.381 CAN 0x00176F34 [6] 00 00 30 01 01 00 Magnetartikel MM1 ID 2 Ausgang 1 Strom 0

aber die Liste bei "opkg list-upgradable" ist schon bedenklich lang... aber das ist anderes Forum...


markra  
markra
Beiträge: 8
Registriert am: 17.03.2019


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#80 von bleudeur , 09.01.2021 17:02

Zitat

Zitat

Meine Wünsche für Witerentwicklungen:

Sehr wünschenswert wäre, dass auch über die Einbindung einer Loksteuerung über die 6021 mit Control 80f nachgedacht wird. Das wäre der Königsweg. Ihr wertet ja den I2C Bus schon aus. Wenn der Prozessor einen Monitormodus hat (keine Ahnung, also auf Adressen hören, ohne ACK zu erzeugen), dann könnte man ähnlich wie das Interface 6050 agieren. Ich denke schon länger über einen solchen Ansatz nach.



Jetzt halt' dich fest: über die Anbindung von Control 80f denke ich auch schon seit Beginn des Projekts nach . Der STM32 hat aber meines Wissens keinen Monitor-Modus, d.h. die c6021light wird immer eine Control 6021 ersetzen müssen. Loksteuerung über I2C hat allerdings zwei Herausforderungen. Zunächst muss man die angeschlossenen Control 80f bestimmen, dann muss man die Steuerbefehle in beiden Richtungen übersetzen. Um die Menge der Herausforderungen klein zu halten, habe ich mit der Loksteuerung zwischen CAN und LocoNet angefangen. Die Probleme bei der Übersetzung der Steuerbefehle sind die gleichen, aber ich kann diese Probleme vom aufzählen der Control 80f trennen. Mal abgesehen davon, dass ich im Moment gar keine Control 80f habe.




Über genau das hab ich mir in den vergangenen Tagen auch Gedanken gemacht. Ich fände es absolut genial wenn man Control 80f einbinden könnte. Leider sind diese auf ebay für ihr Alter und Funktionalität noch ganz schön happig teuer Wie ich sehe habt ihr beim HW-Design bereits daran gedacht, indem die M_STOP/GO und M_INIT Leitungen am STM32 hängen. Ich denke es wäre absolut vertretbar dass das c6021l die 6021 ersetzt. Alle c80f kommen rechts ran, dann kann die c6021l wie bereits von [user]markra[/user] beschrieben den normalen Init-Prozess mit Erkennung der c80f durchlaufen. Die Stop/Go Funktionalität scheint ja als shared-Bus durchgeschleift zu sein, wo ausgelöst wird wenn ein Teilnehmer eine der Leitungen via Knopf nach 5V zieht (siehe Maerklin-schematics, gibt es irgendwo noch andere HW-Infos zum 60xx System?). Auch das sollte ja einfach zu realisieren sein. Für was habt ihr eigentlich die M_B10 Leitung zum STM32 verbunden? Ich habe nirgendwo Hinweise gefunden, dass die eine Funktion hat.

Was sich für mich aus der I2C-Beschreibung von Dr. Koenig nicht erschliesst: Wie wurde das mit der Steuerungs-Kollision/Zuweisung damals gemacht? Für mich sieht es so aus als wenn die 6021 tracked, welcher Fahrregler welche Lok im Griff hat. Kommt dann eine Anfrage von jemand anderem, gibt es ein NACK zurück. Aber: Wie funktioniert die Freigabe? Muss ein Steuerungsbefehl nach xx ms wiederholt werden, andernfalls gilt die Adresse/Lok als frei? Auch dies sollte machbar sein mit dem STM32.

Das connect6021 von Märklin lässt sich ja über den CAN konfigurieren, sodass man die 80 (bzw 99?) Adressen im 60xx-System virtuell auf Loks in der Datenbank im CAN-System mappen kann. Sowas wäre toll zu haben. Ich denke über kurz oder lang bräuchte die c6021l eine Art CVs um die Konfiguration unterbringen zu können. Wie man diese dann beschreibt/liest, ist eine andere Geschichte.

Was die ganze Adress-Übersetzerei anbelangt, habe ich ehrlich gesagt den Überblick verloren. Wir haben grundsätzlich 4 Busse: CAN, I2C, LN und XPN. Abgesehen von I2C, hat jeder dieser Busse einen Master? Die Frage ist: Muss es systemweit auch einen einzigen Master geben, und ist dann auch das Gerät welches für die Erzeugung vom Gleissignal zuständig ist? Je nachdem macht es Sinn diesen zu definieren. Du schreibst ja oben, dass LN Slots bei der LN-Zentrale angefragt werden müssen. Gibt es auch ein Szenario, bei dem über LN nur Handregler angeschlossen sind und die Zentrale an CAN oder XPN hängt?

Daran angeschlossen: Ist das c6021l der richtige Ort um Steuerungskollisionen von den verschiedenen Bussen zu erkennen? Unterztützt jeder der Busse eine Rückmeldung "Angeforderte Lok bereits belegt"?

Ich denke das Projekt hat gigantisches Potential zu einer Art Universal-Busknoten/Gateway mit dem man die Vorteile aller Bussysteme und erhältlicher Komponenten zusammen nutzen kann. Man denke nur an die echte Weichenrückmeldung über CAN-Weichendekoder, die dann wiederum an alle anderen Busse weitergeschickt werden.


bleudeur  
bleudeur
InterCity (IC)
Beiträge: 615
Registriert am: 18.01.2020
Spurweite H0
Stromart AC


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#81 von fantux , 09.01.2021 18:45

Hallo Stummis,

Zitat

Zu dem I2C Monitor gäbe es 2 Möglichkeiten:

* Bluepill sniffert über Port Pins (Interrupt on Change o.ä.)

* kleiner PIC oder ATTiny (für tiny gibt es einen Sniffer I2C -> seriell, Gerd hat Ihn schon auf GITHUB)
Wenn eine Lösung über z.B. SPI (besser, da ser. Ports ja belegt) gewünscht wird, kann ich gerne einen Sniffer für PIC(z.B 12F1822) shreiben...
Die I2C Kommunikation ist ja glaube ich <= 100kHz... (beim PIC 32MHz (8MHz instruction) ca. 80 Befehle pro Bit, das sollte machbar sein)

Ich würde mich sehr über eine Entwicklung in diese Rchtung mit 6021 freuen, da ich beim Bluepill noch gar keine Ahnung habe.
Immerhin ist gestern mein ST-Link gekommen, also werde ich da auch mal debuggen/helfen können.



wenn ein ATTiny das hinbekommt, hat der STM32 sicher auch genug Ressourcen, um I2C in Software zu machen. Falls sich jemand daran versuchen will: Man kann einfach die Datei src/hal/stm32I2C.cpp entfernen und durch eine Eigenimplementierung mit Software-I2C ersetzen. Dann kann man direkt den Betrieb mit einem Keyboard aufnehmen und testen, ob der SW-I2C grundlegend funktioniert. Ich vermute, dass dann ein Timerinterrupt notwendig ist, um den Bus zu samplen. Eine hälfte der Ressourcen von TIM2 ist für LocoNet verwendet, mit TIM3 bastelt bertr2d2 im MM-Sniffer. Man kann also entweder die zweite hälfte der Ressourcen von TIM2 oder einen der Timer TIM4+ verwenden.

Es gibt übrigens auch ein Projekt für einen I2C-Sniffer auf dem STM32. Ich habe den Sniffer ganz zu Beginn des Projekts benutzt, um ein Gefühl für die Kommunikation zu bekommen. Dr. König hat ein paar Details der I2C- und Märklin-Kommunikation durcheinandergeworfen, was mit das Verständnis erschwert hat. Der Sniffer funktioniert, verwendet im Unterbau allerdings CubeMX statt libopencm3 und arbeitet auch auf anderen Pins.

Zitat

Also die Reihenfolge am 6021 ist "ganz einfach" ??? zu ermitteln (wenn ich es richtig verstanden habe), da CU6021 eine Leitung hat, die von den in der Initialisierung angesprochenen Geräte "weitergeschaltet" wird. Wenn Connect21 light ganz rechts hängt, ist dies der letzte Teilnehmer und kann an der Init-I2C-Adresse (wenn Leitung weitegeschaltet und bei Connect angekommen ist) erkennen wie viele Control 80f dranhängen.

Der komplizierteste Teil der I2C-Kommunikation dürfte die Übergabe des "FOCUS" sein, also wer ist berechtigt, die Lok zu Steuern(Blinken/Leuchten der Lokaddresse 6021/Control 80f)...

Ein Multimaster-Protokoll ist wahscheinlich auch noch nötig: Falls der Bluepill das nicht hat(???), kann über den Sniffer auch eine Buskollision detektiert werden... (Sniffer muss gesendetes Paket zurückliefern)



Das Protokoll selbst ist wahrscheinlich nicht das Problem. In der Software wird es aufwändig, weil man eine Zusandsmaschine braucht, die man dann über die Zeit weiterschalten muss. Was die Übergabe des Fokus angeht, würde ich erstmal mit realen Control 80f testen. Soweit ich mich erinnere war es zumindest in der Kombination Control Unit/Control 80f überhaupt kein Problem, eine Lok von beiden Fahrpulten gleichzeitig zu steuern. Ich könnte mir gut vorstellen, das ein Großteil der Adressierung oder Lokbelegung einfach ignoriert wird.

Zitat

Zitat

Zitat

Meine Wünsche für Witerentwicklungen:

Sehr wünschenswert wäre, dass auch über die Einbindung einer Loksteuerung über die 6021 mit Control 80f nachgedacht wird. Das wäre der Königsweg. Ihr wertet ja den I2C Bus schon aus. Wenn der Prozessor einen Monitormodus hat (keine Ahnung, also auf Adressen hören, ohne ACK zu erzeugen), dann könnte man ähnlich wie das Interface 6050 agieren. Ich denke schon länger über einen solchen Ansatz nach.



Jetzt halt' dich fest: über die Anbindung von Control 80f denke ich auch schon seit Beginn des Projekts nach . Der STM32 hat aber meines Wissens keinen Monitor-Modus, d.h. die c6021light wird immer eine Control 6021 ersetzen müssen. Loksteuerung über I2C hat allerdings zwei Herausforderungen. Zunächst muss man die angeschlossenen Control 80f bestimmen, dann muss man die Steuerbefehle in beiden Richtungen übersetzen. Um die Menge der Herausforderungen klein zu halten, habe ich mit der Loksteuerung zwischen CAN und LocoNet angefangen. Die Probleme bei der Übersetzung der Steuerbefehle sind die gleichen, aber ich kann diese Probleme vom aufzählen der Control 80f trennen. Mal abgesehen davon, dass ich im Moment gar keine Control 80f habe.




Über genau das hab ich mir in den vergangenen Tagen auch Gedanken gemacht. Ich fände es absolut genial wenn man Control 80f einbinden könnte. Leider sind diese auf ebay für ihr Alter und Funktionalität noch ganz schön happig teuer Wie ich sehe habt ihr beim HW-Design bereits daran gedacht, indem die M_STOP/GO und M_INIT Leitungen am STM32 hängen. Ich denke es wäre absolut vertretbar dass das c6021l die 6021 ersetzt. Alle c80f kommen rechts ran, dann kann die c6021l wie bereits von [user]markra[/user] beschrieben den normalen Init-Prozess mit Erkennung der c80f durchlaufen. Die Stop/Go Funktionalität scheint ja als shared-Bus durchgeschleift zu sein, wo ausgelöst wird wenn ein Teilnehmer eine der Leitungen via Knopf nach 5V zieht (siehe Maerklin-schematics, gibt es irgendwo noch andere HW-Infos zum 60xx System?). Auch das sollte ja einfach zu realisieren sein. Für was habt ihr eigentlich die M_B10 Leitung zum STM32 verbunden? Ich habe nirgendwo Hinweise gefunden, dass die eine Funktion hat.




So war's gedacht. Mein persönlicher Plan war eine c6021light für die Keyboards und eine zweite für mögliche Control 80f's zu verwenden. Was M_B10 angeht: Das ist eine Angst-leitung. Wenn sich rausstellt, das man die Leitung für irgendwas braucht, kann man den Jumper setzen. Ansonsten kann man die auch Umfunktionieren. Wobei mir noch nicht bekannt wäre, das jemand die 6 freien GPIOs für irgendwas verbraucht hat. Ich benutze die immer nur, um beim Debuggen von Interruptroutinen Pins zu setzen, die ich mit Oszi oder Logikanalysator beobachten kann.

Zitat

Das connect6021 von Märklin lässt sich ja über den CAN konfigurieren, sodass man die 80 (bzw 99?) Adressen im 60xx-System virtuell auf Loks in der Datenbank im CAN-System mappen kann. Sowas wäre toll zu haben. Ich denke über kurz oder lang bräuchte die c6021l eine Art CVs um die Konfiguration unterbringen zu können. Wie man diese dann beschreibt/liest, ist eine andere Geschichte.



In einem früheren Projekt (LocoNet Eigenbau-Rückmelder/Bremsmodule) habe ich einem Arduino beigebracht, sich über Uhlenbrock LNCV's von einer Intellibox programmieren zu lassen. Das war nett, weil man sich sparen konnte, mit einem USB-Adapter unter der Anlage rumzukriechen, um die Rückmelderadressen einzustellen. Bei der c6021light sehe ich da bisher noch nicht den großen Vorteil - die steht ja tendentiell eher in Reichweite des Lokführers .

Dennoch: Gibt es eine Übersicht, wie die Konfiguration über CAN funktioniert und welche Geräte da als Controller fungieren können? Bei der MS2 kenne ich so eine Funktion nicht, bei einer CS2/CS3 würde ich erwarten, dass man der CS* erstmal beibringen muss, was eine c6021light eigentlich ist.

Ich habe auch schon darüber nachgedacht, einfach Bedienelemente an die c6021light anzuklemmen, wenn man komplexere Usecases hat. Dazu bietet sich der herausgeführte zweite I2C geradezu an Das Display aus dem WLAN-Fahr und -Weichenstellpult ist auch per I2C angebunden. Knöpfe kann man über einen I/O-Expander oder einen Atmega/ATTiny als Slave-Device anbinden.

Zitat

Was die ganze Adress-Übersetzerei anbelangt, habe ich ehrlich gesagt den Überblick verloren. Wir haben grundsätzlich 4 Busse: CAN, I2C, LN und XPN. Abgesehen von I2C, hat jeder dieser Busse einen Master? Die Frage ist: Muss es systemweit auch einen einzigen Master geben, und ist dann auch das Gerät welches für die Erzeugung vom Gleissignal zuständig ist? Je nachdem macht es Sinn diesen zu definieren. Du schreibst ja oben, dass LN Slots bei der LN-Zentrale angefragt werden müssen. Gibt es auch ein Szenario, bei dem über LN nur Handregler angeschlossen sind und die Zentrale an CAN oder XPN hängt?

Daran angeschlossen: Ist das c6021l der richtige Ort um Steuerungskollisionen von den verschiedenen Bussen zu erkennen? Unterztützt jeder der Busse eine Rückmeldung "Angeforderte Lok bereits belegt"?



da gibt es erstmal ein elektrisches Problem: Die Ausgänge verschiedener Zentralen miteinander zu verbinden sorgt üblicherweise für das vorzeitige ableben derselben. Man kann aber bei ordentlicher Trennung der Boosterkreise und beschränkung auf MM2/DCC (ohne MFX) theoretisch schon eine Intellibox an den einen Stromkreis und eine Gleisbox an den anderen hängen. Persönlich habe ich aber eher den Usecase, auch auf LocoNet "Zentrale" zu spielen. Ich habe eine Daisy und zwei FREDIs, die ich an meine Gleisbox anschließen möchte.

Um etwas auszuholen: Beim Modellbahnen mit Gästen hat sich bei der MS2 der Einsatz von Lokkarten als unschlagbar erwiesen. Wenn man z.B. die Intellibox benutzt, muss ich ständig herumspringen und den Leuten Adressen diktieren. Die Adressen lassen sich zwar fast immer logisch aus den Baureihennummern ablesen, aber manch ein Modellbahner hat ja auch nicht mehr perfektes Augenlicht und kann dann die Loknummer nur schwer entziffern. Bei FREDIs sind Adressen für den Benutzer komplett egal, weil sie ohnehin eine beliebige Lok von der Zentrale zugewiesen bekommen. Wie das Zuweisen von Loks geht, weiß ich inzwischen. Implementiert ist's aber noch nicht.

Bonus, wenn eine c6021light die LocoNet-Zentrale spielt: Man kann den FREDIs dann voraussichtlich auch MFX-Loks zuweisen, deren Adresse man ja selber gar nicht kennt

Zitat

Ich denke das Projekt hat gigantisches Potential zu einer Art Universal-Busknoten/Gateway mit dem man die Vorteile aller Bussysteme und erhältlicher Komponenten zusammen nutzen kann. Man denke nur an die echte Weichenrückmeldung über CAN-Weichendekoder, die dann wiederum an alle anderen Busse weitergeschickt werden.



Ich habe noch keine Informationen über XPressNet. Für alle anderen Busse kann ich aber sagen: Das Übersetzen von Stop/Go, Weichenstellen und Besetztmeldern ist ziemlich simpel, da jeder dieser Befehle in jedem System genau einer Nachricht entspricht. Die c6021light muss nichts denken und nur Nachrichtenformate konvertieren. Die Umsetzung zwischen CAN und LocoNet sollte dafür schon vollständig sein. Auf I2C gibt es keine Rückmeldung (hatten wir ja schonmal diskutiert) und es gibt noch keine Unterstützung für Geräte, die sich für Stop/Go aktiv interessieren. Ist also auch nahe dran.

Zum Ausgleich dafür ist die Loksteuerung überall gleichviel schwieriger. Auf jedem System muss man irgend welchen Zustand halten, auf einem anderen System nachfragen, Adressen umrechnen, etc.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#82 von markra , 09.01.2021 19:01

Wow, jetzt nimmt es aber Fahrt auf...

@fantux: Deine Dokumentationen sind super...
Feedback:
Mir fehlt nur noch die Definition von Linefeed CR,LF,CR+LF...
Mit HTERM komme ich bei falschem Linefeed nicht mehr auf eine vernünftige Ausgabe, sehe dann nur noch ESC Sequenzen...das geht wahrscheinlich schon beim ersten Enter los...
Mit VS Code Terminal geht es wunderbar, mit Putty auch.

Timer Interrupt brauchst Du glaube nicht, eine state mashine, die bei steigenden und allenden Flanken SDA und SCL ausgeführt wird ist einfacher...

Die Adress-Übersetzung wäre ja nur nötig, um zu bestimmen, ob der angezeigten MM Adresse der CU6021 / Control 80f nun ein MM/DCC/MFX/SX Decoder zugeordnet sein soll.
Hier könnte auch die Anzahl der Fahrstufen hinterlegt sein. Für CAN spielen die Fahrstufen ja keine Rolle, da hier ja immer 0...100% übertragen werden. Für Anbindung LocoNet oder XPressNet wäre die Anzahl der Fahrstufen hilfreich.
Für MFX Loks sollte man sich wenn möglich nicht auf die MFX-SID beziehen, sondern auf Lok-Namen oder noch besser auf Lok-UID.
Wenn man eine Lok in der Datenbank löscht und die Anlage ist auf Stop, kann es passieren, dass durch Änderung des Anmeldezählers SIDs geändert werden, da sich alle Loks neu anmelden... Beim Einschalten des Connect 6021 light sollte die Lokdatenbank daher auf aktuelle SID abgefragt und in die Tabelle eingetragen werden . Zwar sendet die Gleisbox dann Config-Dateien, aber ich weiß nicht, ob beim Bluepill der Speicherplatz nicht knapp wird, wenn online synchronisiert werden soll...
Wenn eine Lok gelöscht wird muß man dann halt einen Power-Zyklus fahren... Oder man könnte den Taster hierfür nutzen.

Das Connect6021 Protokoll der CS2/CS3 nachbilden zu wollen, halte ich für Zukunfts-Musik...(Wenn es nicht einfach eine Lokdatenbank ähnliche Datei ist). Im ersten Schritt wäre eine Einfache Tabelle hinreichend... Änderbar irgendwie über Terminal...

Aber auch das ist nur Theorie.

Wahrscheinlich müssen wir erst mal die I2C Protokolle anschauen. Ich kann mich noch dunkel an Worte wie zusätliches oder halbes Stopbit erinnern.
Die Doku von Dr Koenig habe ich schon ewig nicht mehr gelesen...
Ich hätte hier 6021,1 Keybord,1 Control 80f und 1 6050. Da werde ich bei freier Zeit mal in den Bus reingucken.

Grüße
Martin


markra  
markra
Beiträge: 8
Registriert am: 17.03.2019


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#83 von bertr2d2 , 09.01.2021 20:35

Hallo,

der I2C Sniffer Code in meinem Git ist hier nicht brauchbar, weil der geschickt AVRs USI verwendet.

Zitat

Timer Interrupt brauchst Du glaube nicht, eine state mashine, die bei steigenden und fallenden Flanken SDA und SCL ausgeführt wird ist einfacher...


Ich sehe es genauso wie Martin: Man muss "nur" auf die jeweils fallenden Flanken scannen. Bei den GPIOs >5 bzw >10 muss man aber etwas mehr tun, weil STM32 den GPIOs keinen separaten externen Interrupts spendiert hat (-> exti15_10_isr). Aber alles kein Hexenwerk.

Die oben verlinkte Design Note #048 kann man IMHO leicht adaptieren und als ersten Wurf verwenden.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.537
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#84 von bleudeur , 10.01.2021 02:54

Zitat

So war's gedacht. Mein persönlicher Plan war eine c6021light für die Keyboards und eine zweite für mögliche Control 80f's zu verwenden. Was M_B10 angeht: Das ist eine Angst-leitung. Wenn sich rausstellt, das man die Leitung für irgendwas braucht, kann man den Jumper setzen. Ansonsten kann man die auch Umfunktionieren. Wobei mir noch nicht bekannt wäre, das jemand die 6 freien GPIOs für irgendwas verbraucht hat. Ich benutze die immer nur, um beim Debuggen von Interruptroutinen Pins zu setzen, die ich mit Oszi oder Logikanalysator beobachten kann.


Hehe, die Angst-Header/Jumper, kennt jeder Prototypen-Designer wohl nur zu gut. Dass ihr die 6 GPIOs zum debuggen benutzt hab ich mir auch schon gedacht. Ich habe es bei meinen Elektronik-Eigenentwicklungen nicht anders gemacht. Anders wird man komplexen Bugs, grade im Zusammenhang mit ISRs, nicht Herr - meiner Erfahrung nach.

Zitat

In einem früheren Projekt (LocoNet Eigenbau-Rückmelder/Bremsmodule) habe ich einem Arduino beigebracht, sich über Uhlenbrock LNCV's von einer Intellibox programmieren zu lassen. Das war nett, weil man sich sparen konnte, mit einem USB-Adapter unter der Anlage rumzukriechen, um die Rückmelderadressen einzustellen. Bei der c6021light sehe ich da bisher noch nicht den großen Vorteil - die steht ja tendentiell eher in Reichweite des Lokführers .


Gut, das stimmt. LNCVs wären zwar parallel dazu trotzdem eine feine Sache, aber sollte wohl nicht prioritär sein.

Zitat

Dennoch: Gibt es eine Übersicht, wie die Konfiguration über CAN funktioniert und welche Geräte da als Controller fungieren können? Bei der MS2 kenne ich so eine Funktion nicht, bei einer CS2/CS3 würde ich erwarten, dass man der CS* erstmal beibringen muss, was eine c6021light eigentlich ist.


Ich befürchte nicht, ich weiss das auch nur weil ich per Google auf ein How-To connect6021 gestossen bin: https://railway.zone/post/how-to-use-the...in-connect-6021 (Abschnitt "Assigning Locomotives") Das Menü ist seehr versteckt. Die BDA von Märklin zu dem Teil ist wieder mal absolut nutzlos.

Zitat

Ich habe auch schon darüber nachgedacht, einfach Bedienelemente an die c6021light anzuklemmen, wenn man komplexere Usecases hat. Dazu bietet sich der herausgeführte zweite I2C geradezu an Das Display aus dem WLAN-Fahr und -Weichenstellpult ist auch per I2C angebunden. Knöpfe kann man über einen I/O-Expander oder einen Atmega/ATTiny als Slave-Device anbinden.


Auch das wäre eine nette Ergänzung.

Zitat

da gibt es erstmal ein elektrisches Problem: Die Ausgänge verschiedener Zentralen miteinander zu verbinden sorgt üblicherweise für das vorzeitige ableben derselben. Man kann aber bei ordentlicher Trennung der Boosterkreise und beschränkung auf MM2/DCC (ohne MFX) theoretisch schon eine Intellibox an den einen Stromkreis und eine Gleisbox an den anderen hängen. Persönlich habe ich aber eher den Usecase, auch auf LocoNet "Zentrale" zu spielen. Ich habe eine Daisy und zwei FREDIs, die ich an meine Gleisbox anschließen möchte.



Vielleicht habe ich mich da etwas unklar ausgedrückt. Ich denke wir sollten uns klar von dem Gedanken verabschieden die Gleis-Ausgänge von zwei Zentralen parallel zu nutzen. Aber schon in meinem einfachen Versuchsaufbau hatte ich ja mit Gleisbox und IB II 2 "Master" im System, einen CAN und einen LN-Master. Beide erzeugen ein Gleissignal, aber solange man kein mfx benutzt steht einem frei welchen man benutzt, das andere System dient als Bediengerät.

Zitat

Bonus, wenn eine c6021light die LocoNet-Zentrale spielt: Man kann den FREDIs dann voraussichtlich auch MFX-Loks zuweisen, deren Adresse man ja selber gar nicht kennt


Ich denke das kommt der Sache schon näher, sprich der usecase bei dem kein LN-Slotmaster extern vorhanden ist. Und, globaler gesprochen: Soll es eine Entity geben, welche global verwaltet wer gerade welche Lok steuert und wie darauf Zugriff kriegt? Beim CAN wäre immer die Gleisbox der CAN-Master, bei LN und XPN müsste man diese je nach Szenario im c6021l emulieren? Soweit ich es verstanden habe, brauchen diese Busse einen Master.

Zitat

Ich habe noch keine Informationen über XPressNet. Für alle anderen Busse kann ich aber sagen: Das Übersetzen von Stop/Go, Weichenstellen und Besetztmeldern ist ziemlich simpel, da jeder dieser Befehle in jedem System genau einer Nachricht entspricht. Die c6021light muss nichts denken und nur Nachrichtenformate konvertieren. Die Umsetzung zwischen CAN und LocoNet sollte dafür schon vollständig sein. Auf I2C gibt es keine Rückmeldung (hatten wir ja schonmal diskutiert) und es gibt noch keine Unterstützung für Geräte, die sich für Stop/Go aktiv interessieren. Ist also auch nahe dran.


Bei opendcc gibt es eine Befehlsübersicht zu Xpressnet, ich denke ihr kennt die schon. Es gibt jedenfalls ein "Accessory Decoder Information Request". Ich werde mich so schnell wie möglich an die XPN-Unterstützung machen, mir fehlt aber leider im Moment sehr die Zeit.

In Sachen I2C: Es gibt dort eine Rückmeldung für Lokbefehle, allerdings nur um dem jeweiligen Fahrgerät mitzuteilen dass es eine Lok steuern oder nicht (mehr) steuern darf. Das kann nützlich sein: Grundsätzlich kann man eine Multi-Steuerung einer Lok von verschiedenen Reglern ja zulassen und überall den Status entsprechend updaten. Das geht natürlich bei I2C nicht, und prinzipiell nicht da die Regler eine Absolut-Stellung anzeigen. Aber sobald jemand von einem anderen Fahrgerät (aus einem anderen Bus) die Lok steuert, kann man ja über den I2C die Nachricht schicken dass der Regler nicht mehr aktiv ist (dann fangen die 7-Segment an zu blinken). Gibt man dort die Adresse neu ein, wird überall sonst wieder die Fahrstufe vom I2C gemeldet.

Zitat

Zum Ausgleich dafür ist die Loksteuerung überall gleichviel schwieriger. Auf jedem System muss man irgend welchen Zustand halten, auf einem anderen System nachfragen, Adressen umrechnen, etc.


Uff, ja ich befürchte das wird nicht ohne. Hier wird es wohl mehrere Szenarien geben wo man Adressen nicht 1:1 übersetzen kann wie du ja oben schon ausgeführt hast. Hier müsste man dann im Idealfall definieren können: Wo sitzt die Zentrale die das Gleissignal erzeugt, deren Datenbank sollte dann massgeblich sein, und alle anderen Busse auf dieses Adresssystem übersetzt werden.

Zitat
Was die Übergabe des Fokus angeht, würde ich erstmal mit realen Control 80f testen. Soweit ich mich erinnere war es zumindest in der Kombination Control Unit/Control 80f überhaupt kein Problem, eine Lok von beiden Fahrpulten gleichzeitig zu steuern.


Was die Geräte da untereinander genau aushandeln muss man wohl in der Tat am echten System testen, die Doku von Dr. Koenig ist dazu wenig informativ. Wenn ich mich nicht aber total falsch erinnere: Eine Lok von mehreren Fahrpulten aus ging nicht, die Adresse hat dann angefangen zu blinken (wie oben bereits beschrieben). In der späten Version des 60xx-Systems konnte man dann die Adresse noch einmal eintippen um die Lok zwangs-zu übernehmen (laut Dr. Koenig). Dann hat die Anzeige im alten Regler geblinkt. Laut der I2C-Befehls-Doku sollten Funktionsbefehle grundsätzlich von überall her möglich sein, hier findet keine Gegenprüfung durch die 6021 statt. Die Geräte haben damals wohl einfach gar nicht solche Pakete verschickt, wenn nach dem Eintippen der Adresse die 6021 gemeldet hat, dass die Lok schon "fremd" gesteuert wird.


bleudeur  
bleudeur
InterCity (IC)
Beiträge: 615
Registriert am: 18.01.2020
Spurweite H0
Stromart AC


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#85 von markra , 10.01.2021 08:29

Hallo fantux,

mir ist bei meinem Exemplar aufgefallen, dass im Stop Modus an der MS2 geschaltete Weichen nicht auf das Keyboard übernommen werden (LEDs ändern sich nicht). Umgekehrt schon. CAN Meldungen kann ich bei beiden im Stop Modus sehen. Habe ich da noch ein Hardware Problem?
Wie verhält sich Connect 6021 light im STOP Modus?
Wer schaltet die im STOP Modus geänderten Weichen nachdem System wieder auf GO geht?

Grüße
Martin


markra  
markra
Beiträge: 8
Registriert am: 17.03.2019


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#86 von fantux , 10.01.2021 11:00

Hallo Martin,

Zitat

mir ist bei meinem Exemplar aufgefallen, dass im Stop Modus an der MS2 geschaltete Weichen nicht auf das Keyboard übernommen werden (LEDs ändern sich nicht). Umgekehrt schon. CAN Meldungen kann ich bei beiden im Stop Modus sehen. Habe ich da noch ein Hardware Problem?
Wie verhält sich Connect 6021 light im STOP Modus?
Wer schaltet die im STOP Modus geänderten Weichen nachdem System wieder auf GO geht?



I2C und CAN verwenden beide Nachrichtenpaare aus Anfrage/Antwort für die Weichenstellbefehle. Die c6021light übersetzt I2C->CAN Anfrage in Anfrage und CAN->I2C Antwort in Antwort. Sowohl an der MS2 als auch am Keyboard löst ein Tastendruck nur eine Anfrage aus. Eine beliebige Antwort sorgt dafür, dass die Anzeige umspringt. Die Antwortnachrichten werden normalerweise von der Gleisbox generiert.

Das Verhalten, das du beschreibst, kann ich bei mir nicht nachstellen. Bei meiner MS2 kann ich im Stop-Modus gar keine Weichen schalten - auch wenn ich nur auf der MS2 herumdrücke, ändert sich die Anzeige an der MS2 nicht. Auf dem CAN sehe ich dabei nur die Requests (gelbe Nachrichten im can-monitor), nicht die Antworten (blaue Nachrichten im CAN-Monitor). Siehst du bei dir Anfragen, Bestätigungen, oder beides? Hängen eventuell neben c6021light, Gleisbox und MS2 noch weitere Geräte am CAN?

Eine Erklärung kann natürlich sein, dass du eine andere Software für MS2/Gleisbox installiert hast, bei der z.B. die Anzeige der MS2 nicht mehr am Eingang von Antowrten hängt. Welche Software hat denn dein System? Ich habe eine MS2 mit SW V2.5 und Gleisbox mit 1.39.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#87 von kuwema , 10.01.2021 20:30

Hallo Gerd, hallo fantux,
mit großer Begeisterung und steigendem Interesse verfolge ich hier die Entwicklung.
Ihr habt super Arbeit geleistet. Schön zu sehen, wie die eingebrachten Ideen berücksichtigt werden.

Bezüglich der Anmerkung von Martin habe ich hier mit MS2-Version 2.7 und GB-Version 1.39 das gleiche Verhalten – Im Stopp-Modus werden keine Weichen geschaltet. Das entspricht auch dem Verhalten einer 6020 oder 6021. So hatte ich auch die Beschreibung zu I²C von Walter Fiedler auf der Seite von Dr. König verstanden und es mit meinem Arduino-Testaufbau umgesetzt.

Einen Wunsch habe ich aber auch noch: Wenn Ihr die Abfrage der noch freien Taste für die Stop/Go-Umschaltung implementiert, könnt Ihr dann auch die Stop- und Go-Leitungen (PA15 und PB4) mit berücksichtigen? Die werden zwar für das Keyboard 6040 nicht benötigt, aber ich könnte dann meine Not-Aus-Fernbedienung weiterverwenden.

Viele Grüße aus dem Mühlenkreis
Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital

zuletzt bearbeitet 17.08.2021 | Top

RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#88 von fantux , 13.01.2021 18:28

Hallo Kay Uwe,

Zitat

Einen Wunsch habe ich aber auch noch: Wenn Ihr die Abfrage der noch freien Taste für die Stop/Go-Umschaltung implementiert, könnt Ihr dann auch die Stop- und Go-Leitungen (PA15 und PB4) mit berücksichtigen? Die werden zwar für das Keyboard 6040 nicht benötigt, aber ich könnte dann meine Not-Aus-Fernbedienung weiterverwenden.



Hast du eine Beschreibung, wie die beiden Leitungen ausgewertet werden? Diese Funktionalität ist wahrscheinlich auch ohne Control 80f leicht implementierbar. Ich habe aber keine Testumgebung, müsste das also blind implementieren und dann dich bitten, den Entwicklungsstand zu testen.

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#89 von kuwema , 14.01.2021 10:14

Hallo fantux,
STOP und GO werden durch einen +5V-Impuls auf den jeweiligen Eingang ausgelöst.
Bei der 6021 sind die Eingänge parallel zu den entsprechenden Tastern geschaltet.
Wenn ich die Schaltung in der 6021 richtig verstehe, hat STOP Vorrang.
Ich suche heute Nachmittag noch den Beitrag hier im Forum raus, nach dem ich meine Anschaltung aufgebaut habe.
In dem Beitrag ist auch ein Link auf die Schaltung der 6021 drin.

Info folgt!

Viele Grüße
Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#90 von kuwema , 14.01.2021 18:45

Hallo fantux,
hier der Link auf den Beitrag: viewtopic.php?p=1510602#p1510602.
Die Anschaltungen sind in Antwort #22 und #27 dargestellt.

Viele Grüße
Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#91 von vikr , 16.01.2021 22:39

Hallo Fantux,

Zitat von fantux im Beitrag Neues Leben für Märklins Keyboard 6040 - Connect 6021 light


Wenn du die Bibliothek für XpressNet einbaust, achte bitte darauf ob die Bibliothek ein Polling beim senden und/oder empfangen verwendet. LocoNet z.B. macht das beim Senden, aber nicht beim Empfangen. Das bremst leider die Kommunikation zwischen unbeteiligten Bussen aus. Im Moment kann man nichts dagegen machen, für LocoNet habe ich aber schon eine mittelfristige Lösung im Kopf. Wenn du sagen kannst, wie das bei XpressNet funktioniert, werde ich das gleich mit erschlagen, wenn es denn soweit ist. Bis dahin gibt es dann halt Polling, falls notwendig.



Die Platine läßt sich viel einfacher löten als gedacht.

Wie ist eigentlich der aktuelle Stand der XpressNet-Einbindung?

Gibt es da in den Tiefen der Reposetries schon irgendeinen Sniffer?

MfG

vik


im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix


vikr  
vikr
ICE-Sprinter
Beiträge: 6.195
Registriert am: 23.10.2011
Gleise M, C u. K.
Spurweite H0, N
Stromart Digital, Analog


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#92 von fantux , 17.01.2021 10:37

Hallo Stummis,

ich habe heute nochmal den Compiler etwas warmlaufen lassen - jetzt gibt es zwei neue Features

Nr. 1: Betrieb ohne CAN. Die c6021light hat jetzt die folgende Konfigurationseinstellung:

1
 
config set generateI2CTurnoutResponse [enabled|disabled]
 



Damit kann man aktivieren, dass bei einem eigngehenden Weichenstellbefehl auf I2C automatisch und sofort eine Antwort generiert wird. Damit kann man nun auch ohne angeschlossene Gleisbox Weichenstellbefehle absetzen und ein Keyboard zufriedenstellen, wenn man z.B. nur I2C und LocoNet verbunden hat. Eventuell über CAN eingehende Antworten werden trotzdem weitergeleitet. Wenn man also CAN angeschlossen hat *und* diese Option aktiviert ist, wird auch im Stop-Mode, wenn die Gleisbox keine Antworten schickt, eine Antwort für das Keyboard generiert.

Nr. 2: Stop/Go-Anfragen über den I2C.

Zitat

STOP und GO werden durch einen +5V-Impuls auf den jeweiligen Eingang ausgelöst.
Bei der 6021 sind die Eingänge parallel zu den entsprechenden Tastern geschaltet.
Wenn ich die Schaltung in der 6021 richtig verstehe, hat STOP Vorrang.



Die beiden Steuerleitungen werden nun ausgewertet. Die c6021light prüft auf Flanken an den beiden Pins PA15/M_GO und PB4/M_STOP. Tritt eine steigende Flanke auf, wird der entsprechende Request auf allen anderen Bussen abgesetzt. Treten beide requests gleichzeitig auf, hat Stop Vorrang. Die c6021light setzt selbst diese beiden Leitungen nicht. Ich bin mir mangels Control80f allerdings nicht sicher, ob wirklich alles stimmt. Insbesondere irritiert mich, dass ich zwar die internen Pull-Down-Widerstände auf den beiden Pins aktiviert habe, mein Multimeter mir trotzdem 3,3V anzeigt, und die Interrupts dennoch feuern . Hier brauche ich Inputs von Anwendern, die das mit realen Geräten testen können. Die früheste Entwicklungsversion, in der dieses Feature verfügbar ist, ist diese hier (bab8ea48).

Wenn das tut, mache ich mal wieder ein Release.

Zitat

Wie ist eigentlich der aktuelle Stand der XpressNet-Einbindung?
Gibt es da in den Tiefen der Reposetries schon irgendeinen Sniffer?



[user]bleudeur[/user] wollte sich damit auseinandersetzen:

Zitat von bleudeur im Beitrag Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

Als nächstes steht dann von meiner Seite die Xpressnet-Unterstützung auf dem Plan. Es gibt eine Bibliothek von Philipp Gahtow, ich werde mal schauen inwiefern sich die integrieren lässt. Soll ich vom aktuellen Master aus starten?



Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#93 von kuwema , 17.01.2021 21:43

Hallo fantux,
vielen Dank für das Update!
Ich habe gerade Deine Änderungen für die Abfrage der Stop/Go-Leitungen getestet.
Leider ist da noch irgendwo der Wurm drin. Die Abfrage auf eine steigende Flanke funktioniert grundsätzlich schon, aber die Pull-Up-Widerstände rühren alles durcheinander.

Erster Versuch (Sollzustand):
PA15 (b10) an +5V (U ~ 5 V) : keine Reaktion, Go erwartet
PA15 (b10) offen (U ~ 3,3 V) : keine Reaktion, ok
PB4 (b12) an +5V (U ~ 5 V) : keine Reaktion, Stop erwartet
PB4 (b12) offen (U ~ 3,3 V) : keine Reaktion, ok

Zweiter Versuch (Test):
PA15 (b10) an 0V (U ~ 0 V) : keine Reaktion
PA15 (b10) offen (U ~ 3,3 V) : Go !
PB4 (b12) an 0V (U ~ 0 V) : keine Reaktion
PB4 (b12) offen (U ~ 3,3 V) : Stop !

Die Spannung habe ich mit einem einfachen Multimeter gemessen.
Zur Sicherheit habe ich dann die Stop/Go-Anschaltung nochmal mit einer 6020 allein, mit einer 6020 mit einem 6040 sowie einer Intellibox getestet - funktioniert! Ein Control80f ist nicht erforderlich.

Irgendwie lassen sich wohl die Pull-Up-Widerstände nicht wirklich abschalten. Müssen für diese PIOs vielleicht Alternativ-Settings benutzt werden?

Viele Grüße
Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#94 von bleudeur , 18.01.2021 22:37

Zitat

[user]bleudeur[/user] wollte sich damit auseinandersetzen:
Zitat von bleudeur im Beitrag Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

Als nächstes steht dann von meiner Seite die Xpressnet-Unterstützung auf dem Plan. Es gibt eine Bibliothek von Philipp Gahtow, ich werde mal schauen inwiefern sich die integrieren lässt. Soll ich vom aktuellen Master aus starten?





Ich bin dran - bin leider deutlich langsamer als du und habe einfach momentan recht wenig Zeit, sorry ops: .

Zitat

Hast du eine Beschreibung, wie die beiden Leitungen ausgewertet werden? Diese Funktionalität ist wahrscheinlich auch ohne Control 80f leicht implementierbar. Ich habe aber keine Testumgebung, müsste das also blind implementieren und dann dich bitten, den Entwicklungsstand zu testen.



Super cool dass ihr schon an den Stop/Go Funktionen dran seid.

Dass das Ganze per pull nach 5V funktioniert habt ihr ja bereits ausgearbeitet Hier gibts noch den ganzen 6021 Schaltplan falls da weitere Insights gewünscht sind (hab ich weiter oben schon verlinkt, dort sieht man wie die Stop/Go intern gegen 5V gehen).

Was das Unerwünschte 3.3V Gepolle angeht, fallen mir 3 Möglichkeiten ein:
- Der Bluepill hat auf der Unterseite wieso auch immer gelötete Pulls
- Diese Pins sind irgendeine Spezial-Peripherie im STM mit ständig aktivierten Pulls oder man muss sie in anderen Registern dekativieren
- Hast du mal mit Debugger in die Register bei laufendem Code geschaut? Nicht dass eine der HAL-Funktionen Unfug treibt oder die Pins sonstwo im Code noch angesprochen werden.


bleudeur  
bleudeur
InterCity (IC)
Beiträge: 615
Registriert am: 18.01.2020
Spurweite H0
Stromart AC


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#95 von kuwema , 19.01.2021 09:50

Hallo fantux,
ich habe mal ins reference manual des STM geschaut.
Per Default liegt über den Stop/Go-Ports die JTAG-Funktionalität. Damit werden die Pull-Ups der Norm entsprechend fest eingeschaltet.
Wenn jetzt JTAG deaktiviert wird (JTAG-DP Disabled), dann sind die Pull-Ups und Pull-Downs frei schaltbar.
Vielleicht kannst Du ja in der Richtung nochmal schauen.

Viele Grüße
Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#96 von bertr2d2 , 19.01.2021 10:28

Hallo,

Zitat

Hallo fantux,
ich habe mal ins reference manual des STM geschaut.
Per Default liegt über den Stop/Go-Ports die JTAG-Funktionalität. Damit werden die Pull-Ups der Norm entsprechend fest eingeschaltet.
Wenn jetzt JTAG deaktiviert wird (JTAG-DP Disabled), dann sind die Pull-Ups und Pull-Downs frei schaltbar.
Vielleicht kannst Du ja in der Richtung nochmal schauen.

Viele Grüße
Kay Uwe


Volltreffer ! Um PA15 (GO) und PB4 (STOP) nutzen zu wollen, muss man den Port erst frei schaufeln:



Das geht in der Port Initialisierung mit:

1
 
gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON, 0);
 



Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.537
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#97 von bleudeur , 19.01.2021 11:07

Ups, JTAG.. das ist natürlich böse. Gut dass man das so abschalten kann dass SW-DP noch funktioniert.


bleudeur  
bleudeur
InterCity (IC)
Beiträge: 615
Registriert am: 18.01.2020
Spurweite H0
Stromart AC


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#98 von bertr2d2 , 19.01.2021 12:10

Hallo fantux,

ich war mal so frei und habe es eingearbeitet

1
2
3
4
5
6
7
8
9
 
--- a/c6021light/src/hal/stm32I2C.cpp
+++ b/c6021light/src/hal/stm32I2C.cpp
@@ -170,6 +170,9 @@ void beginI2C(uint8_t slaveAddress, freertossupport::OsTask routingTask) {
i2c_enable_ack(I2C1);

// Setup GPIO for Stop/Go
+ // disable JTAG
+ gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON, 0);
+
 



@Kay Uwe,

könntest Du es nochmal probieren ?

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.537
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#99 von fantux , 19.01.2021 17:12

Hallo Kay Uwe,

Zitat

ich habe mal ins reference manual des STM geschaut.
Per Default liegt über den Stop/Go-Ports die JTAG-Funktionalität. Damit werden die Pull-Ups der Norm entsprechend fest eingeschaltet.
Wenn jetzt JTAG deaktiviert wird (JTAG-DP Disabled), dann sind die Pull-Ups und Pull-Downs frei schaltbar.
Vielleicht kannst Du ja in der Richtung nochmal schauen.



Respekt, ich hatte noch nicht mal überlegt, wo ich anfangen muss nach dem Problem zu suchen .

Zitat

ich war mal so frei und habe es eingearbeitet

1
2
3
4
5
6
7
8
9
 
--- a/c6021light/src/hal/stm32I2C.cpp
+++ b/c6021light/src/hal/stm32I2C.cpp
@@ -170,6 +170,9 @@ void beginI2C(uint8_t slaveAddress, freertossupport::OsTask routingTask) {
i2c_enable_ack(I2C1);

// Setup GPIO for Stop/Go
+ // disable JTAG
+ gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON, 0);
+
 



@Kay Uwe,

könntest Du es nochmal probieren ?




Ich kann zumindest berichten das die 3,3V weg sind, dass sich Stop/Go aber immernoch schalten lässt. Nur ob die Schaltung richtig rum ist :

Gruß,
fantux


Märklin Keyboards, LocoNet und MobileStation2 vernetzten: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light - mit Code!

Das Aussteigen und Blumenpflücken während der Fahrt ist strengstens untersagt!


fantux  
fantux
InterCity (IC)
Beiträge: 665
Registriert am: 29.01.2012
Gleise Märklin C
Spurweite H0
Stromart Digital


RE: Neues Leben für Märklins Keyboard 6040 - Connect 6021 light

#100 von kuwema , 19.01.2021 19:02

Hallo Gerd, hallo fantux,
ich habe den aktuellen Stand gerade heruntergeladen und den Prozessor neu beschrieben.



Die beiden Eingänge schalten korrekt! Ich habe meine Anschaltung auch nochmal ohne Märklin-Geräte direkt am Board ausprobiert.

Aber schon kommt die nächste Herausforderung:
Die Eingänge sind nicht entprellt. Das sieht man leicht an der Ausgabe im Terminal-Programm.
Vielleicht könnt Ihr da noch ein Debounce einbauen? Das bräuchte man ja auch für den eingebauten Taster.

Viele Grüße

Kay Uwe


Grüße aus dem Mühlenkreis

Kay Uwe


kuwema  
kuwema
S-Bahn (S)
Beiträge: 11
Registriert am: 14.01.2011
Ort: Ostwestfalen / Mühlenkreis
Gleise Märklin K + C
Spurweite H0
Stromart Digital


   

Gleisbild an CS3 erstellen - Gleisverlauf zerschossen
MäCAN Control Panel - Updates und Konfiguration vom PC aus

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz