DCC Schaltdekoder

Gast #4543503
Hallo,
ich suche für einen Selbstbau-Dekoder für das DCC-Protokoll einen gut 
funktionierenden Code in Bascom für einen ATtiny45 oder 2313. Vielleicht 
kann jemand helfen. Ja, ich habe schon im Netz gesucht aber die meisten 
Antworten in diversen Foren sind einfach inaczeptabel und teilweise auch 
falsch!
Danke und viele Grüße aus MD
HJH
Gast #4543792
HJH-TT schrieb:
> Hallo,
> ich suche für einen Selbstbau-Dekoder für das DCC-Protokoll einen gut
> funktionierenden Code in Bascom für einen ATtiny45 oder 2313. Vielleicht
> kann jemand helfen. Ja, ich habe schon im Netz gesucht aber die meisten
> Antworten in diversen Foren sind einfach inaczeptabel und teilweise auch
> falsch!
> Danke und viele Grüße aus MD
> HJH

Hast du schon einmal daran gedacht, die Sache selbst in die Hand 
zunehmen?

http://www.opendcc.de/info/dcc/dcc.html
#4543987
Sultan schrieb:
> HJH-TT schrieb:
>> Hallo,
>> ich suche für einen Selbstbau-Dekoder für das DCC-Protokoll einen gut
>> funktionierenden Code in Bascom für einen ATtiny45 oder 2313. Vielleicht
>> kann jemand helfen. Ja, ich habe schon im Netz gesucht aber die meisten
>> Antworten in diversen Foren sind einfach inaczeptabel und teilweise auch
>> falsch!
>> Danke und viele Grüße aus MD
>> HJH
>
> Hast du schon einmal daran gedacht, die Sache selbst in die Hand
> zunehmen?
>
> http://www.opendcc.de/info/dcc/dcc.html

Hat er wohl, aber er versteht wohl das Protokoll nicht und kann wohl 
auch nicht wirklich programmieren. Daher ja auch die Frage nach fertigem 
Code.
Gast #4547112
Ja, es ist eben wie schon in einigen anderen Foren.
Und der Klapperschädel hat die Bemerkung von ...
auf den Punkt kommentiert. Danke!
opendcc ist mir auch seit einiger Zeit bekannt.
Übrigens läuft der Decoder von "Bahn-in-Han" ganz gut.
Nur eben in Assembler. Und was spricht gegen Bascom,
wenn man die Register der Timer benutzt?
Ich will gerade mal herausfinden, warum das Protokoll
solche ungeraden Zeiten verwendet und warum die Abfrage
immer bei genau 87µs erfolgen muß oder soll.
Trotzdem danke!
HJH

Ich bin übrigens S7-Programm. für etwas größere Maschinen
und Anlagen und deshalb auch viel unterwegs. Aber alle meine
AVR-Projekte laufen. Demnächst wohl mit CodeVision.
#4547151
HJH-TT schrieb:
> warum die Abfrage
> immer bei genau 87µs erfolgen muß oder soll.

Das liegt genau in der Mitte zwischen den beiden PWM-Längen von 58 bzw. 
116µs. Man triggert auf die steigende Flanke und liest nach 87µs 
entweder ein 1-Datenbit als 0-Pegel oder ein 0-Datenbit als 1-Pegel. 
Selbst wenn das Timing noch 30µs daneben liegt. Das muß man nicht so 
machen, ist aber ziemlich einfach und sicher und lässt sich beim Dekoder 
somit ohne Quarz bewerkstelligen. Die Zentrale muß natürlich genau 
senden.
(Firma: TravelRec.) Persönliche Seite #4547323
Moderne AVRs (XMegas) erlauben Pulse und Perioden eines Signals direkt 
zu messen und tragen den Wert in das jeweilige Capture-Register ein. 
Dies muss man dann nur abholen, wenn ein neuer Wert per Interrupt 
signalisiert wird. Die manuelle Abtastung nach 87us kann damit 
entfallen, was dem Programm mehr Zeit für andere Dinge gibt.
Gast #4547328
HJH-TT schrieb:
> Ich will gerade mal herausfinden, warum das Protokoll
> solche ungeraden Zeiten verwendet und warum die Abfrage
> immer bei genau 87µs erfolgen muß oder soll.

Weder die Parität noch die Primfaktorzerlegung der Zahl spielt eine 
Rolle. "Ungerade" ist die nur, wenn man sie in Einheiten von 
Mikrosekunden misst.

Die Zeit so gewählt, das man beim Lesen des Signals den maximalen 
Störabstand hat.
#4547434
HJH-TT schrieb:
> ich suche für einen Selbstbau-Dekoder für das DCC-Protokoll einen gut
> funktionierenden Code in Bascom für einen ATtiny45 oder 2313.

Falls es auch ein gut funktionierender Assemblercode für einen Tiny13 
sein darf, dann kannst Du Dich gerne per Mail bei mir melden. Ich bin da 
etwa 8 km östlich von Dir, da sollte persönlicher Kontakt möglich sein.

Mit Bascom wird es etwas schwieriger, da Bascom (auf kleinen 
Controllern) sehr verschwenderisch mit Ressourcen umgeht. Andererseits 
habe ich bereits eine kleine DCC-Zentrale in Bascom auf einem Mega8 
realisieren können.

...
Gast #4547588
Danke für die vielen Hinweise. Da lernt Mann Leute kennen, wie z.B. die 
Gartenbahn in Aken. Und ein Dekoder mit dem Tiny10 oder Tiny13 macht 
mich nervös, denn den XMega bekomme ich nicht unter. Aber Assembler will 
ich nicht mehr lernen. Trotzdem danke für das Angebot Hannes. Meine 
Kommunikation läuft zur Zeit über das RS232-Protokoll mit einer S7-300 
als Master und einer kleinen Visualisierung. Aber meine Enkel wollen 
schalten!
Gruß von westlich der Elbe
hjh-md@web.de
#4548016
Knut B. schrieb:
> Hannes, da geht noch was :o).

Hallo Knut,

Natürlich geht da noch was, aber das muss ich doch nicht machen... ;-)
Ich habe mehr als genug zu tun, was Akkubetrieb und Funksteuerung von
Jartenbahnen angeht. Der Einzelweichendecoder mit Tiny13 stammt noch 
von 2008. Seitdem war DCC eigentlich kein großes Thema mehr, abgesehen 
von der Mini-Zentrale (Bascom, Mega8), die eine Gemeinschaftsarbeit mit 
Paul war (deshalb auch Bascom).

HJH-TT schrieb:
> Meine
> Kommunikation läuft zur Zeit über das RS232-Protokoll mit einer S7-300
> als Master und einer kleinen Visualisierung.

Das wäre meinen Freunden und Bekannten viel zu kompliziert.

> Aber meine Enkel wollen
> schalten!

Eben, das wollen meine Jartenbahner auch. Akkubetriebene Loks per Funk 
steuern und Weichen per Schuhlöffel oder per Funk schalten. ;-)
PC-Steuerung und WLAN-Smartphone sehen die als unerwünschte 
Modeerscheinung.

...
(Firma: TravelRec.) Persönliche Seite #4548747
Hannes L. schrieb:
> PC-Steuerung und WLAN-Smartphone sehen die als unerwünschte
> Modeerscheinung.

Geht mir auch so, obwohl ich technisch interessiert bin - oder gerade 
weil... Die Vorzüge der Digitaltechnik mit vernünftigen Knöpfen, 
Anzeigen und Reglern, die man anfassen kann - das ist für mich eine 
tragbare Symbiose. Loks per Tablet oder Maus zu steuern, das geht ja gar 
nicht!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.