Servo-Ansteuerung für Weichenbefehle
-
- Site Admin
- Beiträge: 882
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 144 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Nach allem was ich gelesen habe, werden die DCC Befehle nicht korrekt dekodiert.
Die Verschiebung der Weichenadresse kommt erst später ins Spiel und braucht uns gerade noch nicht zu interessieren.
Ich kann die DCC-Dekodierung leider gerade nicht testen und ich habe sie auch schon relativ lange nicht mehr getestet.
Ich setze das Thema mal auf die TODO Liste, kann dir aber noch nichts versprechen.
Welche ESP8266 setzt du ein? Nodemcu, D1 mini, ...
Die Verschiebung der Weichenadresse kommt erst später ins Spiel und braucht uns gerade noch nicht zu interessieren.
Ich kann die DCC-Dekodierung leider gerade nicht testen und ich habe sie auch schon relativ lange nicht mehr getestet.
Ich setze das Thema mal auf die TODO Liste, kann dir aber noch nichts versprechen.
Welche ESP8266 setzt du ein? Nodemcu, D1 mini, ...
-
- Beiträge: 34
- Registriert: 20.04.2019, 19:24
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Ich habe den DCC Eingang mal mit einem Logic Analyzer überprüft. Das anliegende Signal ist für eine Weiche mit der Adresse 8. Für mich sieht das Signal soweit sauber aus:
Vielleicht hilft das ja bei der Ursachenforschung weiter.
Beste Grüße
Lorenzo
Vielleicht hilft das ja bei der Ursachenforschung weiter.
Beste Grüße
Lorenzo
-
- Site Admin
- Beiträge: 882
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 144 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Ich habe die Schaltung jetzt endlich wieder zusammen, so dass ich hoffentlich am WE testen kann.
-
- Site Admin
- Beiträge: 882
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 144 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Ich kann bestätigen, dass es nicht funktioniert.
Bei mir ein ähnlicher Fall: LogicAnalyser sagt alles gut, ESP8266 empfängt nichts.
Aktueller Stand:
- Die DCC Signale lösen Interrupts aus, aber es werden keine Befehle erkannt.
Bei mir ein ähnlicher Fall: LogicAnalyser sagt alles gut, ESP8266 empfängt nichts.
Aktueller Stand:
- Die DCC Signale lösen Interrupts aus, aber es werden keine Befehle erkannt.
-
- Beiträge: 300
- Registriert: 31.12.2018, 08:07
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 71 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Hallo,
hier wurde heute auch mit DCC-Einspeisung gespielt.
In meiner noch existierenden Steckbrettanordnung für SUSI ist noch die .bin von Dez. 2017 drauf,
damit wird DCC erkannt.
Vielleicht hilft diese Erkenntnis ja, sieht so aus, als wäre der Fehler also neueren Datums.
VG Norbert
hier wurde heute auch mit DCC-Einspeisung gespielt.
In meiner noch existierenden Steckbrettanordnung für SUSI ist noch die .bin von Dez. 2017 drauf,
damit wird DCC erkannt.
Vielleicht hilft diese Erkenntnis ja, sieht so aus, als wäre der Fehler also neueren Datums.
VG Norbert
-
- Site Admin
- Beiträge: 882
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 144 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Nach gefühlt unendlichen Stunden, die keinen Spaß gemacht haben, habe ich den Fehler gefunden.
Ursache ist ein Fehler in der NmraDcc Lib, genauer, in der Funktion ExternalInterruptHandler.
Hier werden die Abstände der Flanken berechnet:
micros() liefert aber ein unsigned long zurück. Damit sind die Felder zu klein und die berechneten Werte machen keinen Sinn.
Aber ..... Ich habe keine Idee warum es in der Vergangenheit funktioniert hat und nun nicht mehr.
Wenn ich viel Nerv habe, werde ich mal schauen, ob micros() in der Vergangenheit einen anderen Rückgabe Type hatte.
Ein fertiges Binary bekommt ihr später am Abend. Ich muss erstmal wieder aufräumen.
Gruß,
Sven
Ursache ist ein Fehler in der NmraDcc Lib, genauer, in der Funktion ExternalInterruptHandler.
Hier werden die Abstände der Flanken berechnet:
Code: Alles auswählen
static word lastMicros;
unsigned int actMicros, bitMicros;
....
actMicros = micros();
bitMicros = actMicros-lastMicros;
micros() liefert aber ein unsigned long zurück. Damit sind die Felder zu klein und die berechneten Werte machen keinen Sinn.
Diese Aussage wundert mich jetzt gar nicht. Ich habe nämlich in die Sourcen geschaut und es gab in diesem Bereich seit der ersten Version keine relevanten Änderungen.
Aber ..... Ich habe keine Idee warum es in der Vergangenheit funktioniert hat und nun nicht mehr.
Wenn ich viel Nerv habe, werde ich mal schauen, ob micros() in der Vergangenheit einen anderen Rückgabe Type hatte.
Ein fertiges Binary bekommt ihr später am Abend. Ich muss erstmal wieder aufräumen.
Gruß,
Sven
-
- Site Admin
- Beiträge: 882
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 33 Mal
- Danksagung erhalten: 144 Mal
Re: Servo-Ansteuerung für Weichenbefehle
Alle IDEs greifen auf das gleiche ESP8266-Arduino Framework zurück, so dass es dort keinen Unterschied geben sollte.
Keine Ahnung, warum es überhaupt mal funktioniert hat.
Die Version 1.1.9 sollte jetzt aber funktionieren:
https://github.com/littleyoda/littleyod ... tag/v1.1.9
Erinnerung an mich selber:
Auf der nächsten Testplatine auch die Bauteile für die DCC-Decoderiung vorsehen.
Keine Ahnung, warum es überhaupt mal funktioniert hat.
Die Version 1.1.9 sollte jetzt aber funktionieren:
https://github.com/littleyoda/littleyod ... tag/v1.1.9
Erinnerung an mich selber:
Auf der nächsten Testplatine auch die Bauteile für die DCC-Decoderiung vorsehen.
- Dateianhänge
-
- TestAufbau.png (1.35 MiB) 7491 mal betrachtet