Forum: Mikrocontroller und Digitale Elektronik DCC Schaltdekoder


von HJH-TT (Gast)


Lesenswert?

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

von Roland E. (roland0815)


Lesenswert?

Was gefällt dir an den fertig zu kaufenden nicht?

von Sultan (Gast)


Lesenswert?

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

von Klapperschädel (Gast)


Lesenswert?

Roland E. schrieb:
> Was gefällt dir an den fertig zu kaufenden nicht?

Warum ißt Du nicht mal eine Hühnerkeule? Dann hättest Du fettige Pfoten 
und würdest auf der Tastatur keine schwachsinnigen Gegenfragen tippen.

von Willi (Gast)


Lesenswert?

Bascom wird wohl da eher das Problem sein.....

von W.A. (Gast)


Lesenswert?

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. Vielleicht
> kann jemand helfen.

Das Thema ist nicht neu
Beitrag "Re: DCC Decoder"

von Roland E. (roland0815)


Lesenswert?

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.

von HJH-TT (Gast)


Lesenswert?

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.

von Mein grosses V. (vorbild)


Lesenswert?

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.

: Bearbeitet durch User
von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Hannes L. (hannes)


Lesenswert?

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.

...

von Ft (Gast)


Lesenswert?


von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Hannes L. schrieb:
> Falls es auch ein gut funktionierender Assemblercode für einen Tiny13
> sein darf...

Richtig sportlich wird es auf dem Tiny10, der spart sogar noch Platz. 
Hannes, da geht noch was :o).

von HJH-TT (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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.

...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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!

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
Noch kein Account? Hier anmelden.