Forum: Mikrocontroller und Digitale Elektronik DCC Signal Decoder mit ATTiny2313 für Atlas N Signale


von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hi leute,

ich will für meine Modelleisenbahn einen Signaldecoder auf Basis des 
ATTiny2313 und der Vorlage von OpenDCC konstruieren.
Ich möchte damit allerdings nur die Spur N Signale von Atlas ansteuern.
Hab mir also die Vorlage genommen und alles auf SMD Basis um gesetzt.
Jetzt habe ich allerdings bedenken wegen dem DCC Eingang auf den Atmel.
Bei OpenDCC läuft das ganze über einen 6N136 Optokoppler, bei einer 
anderen Seite habe ich das ganze über einen 2,2k Ohm Widerstand gesehen.
Mir ist schon klar das die Optokoppler Variante natürlich besser ist, 
nur bekomme ich Bauchschmerzen das Layout was jetzt nur 35x34mm groß ist 
und für 2 Signale ausgelegt ist, um einen DIL8 zu erweitern.
Jetzt ist meine frage, hat jemand Erfahrung damit und wo ist der große 
unterschied?

Gruß Sven

von Sven F. (mr_sven)


Lesenswert?

Hab mich bei dem Schaltplan vertippt IC2 soll natürlich der TA78L05F 
sein.

von Bernd H. (bhallinger) Benutzerseite


Lesenswert?

Optokoppler gibts doch auch in SMD
Also muss nicht gleich die DIL variante her. Ansonsten würde ich je ne 
Diode vom Signaleingang nach Masse und 5V schalten. So dass bei mehr als 
5V Strom nach 5V fließt und bei weniger als Masse Strom dorthin fließt. 
Den Strom mittels des 2k2 Widerstand begrenzen ist sicher ne gute 
Lösung. Dann würde ich halt noch irgendwas zum Überspannung ableiten in 
die 5V Schalten (Suppressoer zB)

von Sven F. (mr_sven)


Lesenswert?

Gibt es denn einen äquivalenten SMD Optokoppler zu dem 6N136, denn 
meines erachtens is das ein high speed Optokoppler.

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

Hallo Sven, es geht auch ohne Optokoppler. Eigentlich genügt ein 
Widerstand im zweistelligen Kiloohm-Bereich, besser ist ein 
Spannungsteiler.

Da können wir aber am Samstag in der Garage nochmal drüber reden, falls 
Du auch anwesend bist.

Frohes Fest,
Hannes

von Sven F. (mr_sven)


Lesenswert?

Hallo Hannes,

ich sehe du hast da noch nen Widerstand gegen Masse dran, was würdest du 
mir denn empfehlen, bei Spur N DCC liegen ja maximal 16V~ an.

Gruß Sven

PS: Bin am Samstag leider nicht da.

von Hannes L. (hannes)


Lesenswert?

Hi Sven, ich habe glaube 22k/10k dran, es geht aber auch bedeutend 
hochohmiger. Du solltest aber vorher prüfen, ob die verwendete Firmware 
nicht etwa den internen PullUp aktiviert (was bei Optokoppler durchaus 
Sinn macht), dann reicht vielleicht auch eine Diode, die das Signal nach 
L zieht.

Alternativ kannst Du natürlich auch eine Diode vom DCC-Signal (Anode an 
AVR) und einen (AVR-externen) PullUp nach +5V einsetzen.

In der Schaltung hätte ich einige Dinge anders gemacht:

- der Elko C3 ist vor dem Spannungsregler besser aufgehoben als 
dahinter.
- Reset hätte ich über 10k an Vcc gelegt, das ermöglicht 
Firmwareupdates.

...

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

C3 vor den Spannungsregler? hatte mich extra an die Standart Application 
gehalten die in dem Datenblatt steht.

Über die möglichkeit des firmwareupdates hatte ich auch schon nach 
gedacht, hatte aber keine zündende Idee, danke.

Hatte in der Software nach geschaut, der Pin wird intern auf 1 gesetzt.

Gruß Sven

von Paul Baumann (Gast)


Lesenswert?

Der Kondensator vor dem Regler muß größer sein als der danach, sonst 
schwingt das Ganze anständig.

MfG Paul

von Siggi (Gast)


Lesenswert?

@ Paul Baumann

Woher kommt denn nun wieder diese Weisheit?

von Sven F. (mr_sven)


Lesenswert?

Naja, werd mir erstmal nen Prototyp basteln, dann werden wir sehen wie 
das ganze funktioniert.

von Paul Baumann (Gast)


Lesenswert?

@Siggi
Bau es auf, dann findest Du die Weisheit bestätigt.

MfG Paul

von Willi (Gast)


Lesenswert?

Hallo zusammen und noch frohe Weihnachten,

wenn es nicht galva. getrennt sein muß, nehme ich 47k vom Gleis (DCC) 
direkt an den PortPin vom AVR. Die IO Pins vom AVR sind nach UB/GND mit 
Dioden abgesichert, das läuft problemlos.
Dem TA.. verpasse ich immer ca 2,2uF am Eingang (Glättung des DCC 
Signal) und 100nF am Ausgang.

Gruß Willi

von Sven F. (mr_sven)


Lesenswert?

was meinst du mit "Die IO Pins vom AVR sind nach UB/GND mit
Dioden abgesichert"
Sorry wenn ich manchmal etwas begriffsstuzig bin.

Gruß Sven

von STK500-Besitzer (Gast)


Lesenswert?

>was meinst du mit "Die IO Pins vom AVR sind nach UB/GND mit
>Dioden abgesichert"

Guck dir mal die Schaltung eines AVR-Pins an. Da sind noch zwie Dioden 
drin: beide sind in Sperrrichtung geschaltet - die eine gegen Vcc und 
die andere gegen GND. Liegen jetzt Spannungen über Vcc oder unter GND 
an, sol leiten diese Dioden den Strom gegen die jeweilige Leitung ab. Da 
geht aber nur mit kleinen Strömen, weil sie sonst als Sicherungen 
arbeiten und durchbrennen.Deswegen kann man mit 47kOhm-Widerständen 
arbeiten (nicht schön, geht aber...).

von Sven F. (mr_sven)


Lesenswert?

Kann ich dann eigentlich den Tiny auch über das Programiergleis 
Programieren und auslesen, wenn ich das Programm entsprechen 
programmieren würde, oder muss ich da die Anbindung an den DCC Eingang 
umbauen?
Also CV Adressen und so.

von Sinusgeek (Gast)


Lesenswert?

Tja, gute Frage...

Selbstverständlich kannst Du die CV-Programmierung in das Programm 
implementieren, wenn also die richtigen (bis zu 6 Bytes langen) 
Telegramme kommen, dann wird der Wert ins EEP geschrieben. Damit hast Du 
zwar eine CV-Programmierung, aber noch lange keinen "Rückkanal". Dieser 
wird bei DCC-Lokdecodern durch eine erhöhte Stromaufnahme realisiert, 
die von der Zentrale gemessen und entsprechend interpretiert wird. Das 
Auslesen erfolgt also durch Verify-Kommandos und Auswerten der 
"Quittung" in Form erhöhter Stromaufnahme. Inwieweit das bei 
Zubehördecodern sinnvoll ist, vermag ich nicht zu beurteilen.

~

von Sven F. (mr_sven)


Lesenswert?

Ok, danke erstmal, also brauche ich nicht unbedingt den Rückkanal.
Da es bei den Amis so viele Varianten gibt, die ein 3 Licht Signal 
anzeigen kann ist das natürlich schöner und kann das ding komplett über 
CVs programmieren. War schon kurz davor nen UART dran zu basteln zum 
konfigurieren.

Danke erstmal

von Sinusgeek (Gast)


Lesenswert?

Stimmt, ich vergaß, dass Du dabei bist, Amerika nachzubauen. Da willst 
Du natürlich auch vorbildgerechte Amerikanische Lichtsignale. Da kenne 
ich mich leider nicht aus, ich weiß also nicht, ob die rein statisch 
sind oder ob da auch noch was blinkt.

Letzteres würde die Sache etwas verkomplizieren, aber nicht unmöglich 
machen. Ohne Blinkerei brauchst Du halt für jeden Signalzustand eine CV, 
in der das Bitmuster gespeichert wird.

Ähnliches wird ja auch bei einigen Multifunktionsdecodern (Lokdecodern) 
gemacht, da gibt es für jede Funktion eine CV, die das Bitmuster des 
Ausgangsports enthält. Da ist der Standard verdammt offen, da solltest 
Du genügend Spielraum für eigene Definitionen haben.

~

von Sven F. (mr_sven)


Lesenswert?

Ich werde da natürlich einige standart Modis einsetzten.
Zusätzlich will ich dann einen Custom Modus bereit stellen.
Dort kann man entsprechend zwei aufeinander folgende CVs nehmen, im 
Ersten wird vermerkt, welche LED an sein soll und im Zweiten welche 
davon Blinkt.

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Hier mal ein Bild der Platine

von Sven F. (mr_sven)


Angehängte Dateien:

Lesenswert?

Habe nochmal eins mit angeschlossenen Signalen gemacht

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.