www.mikrocontroller.net

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


Autor: Sven Fabricius (mr_sven)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mich bei dem Schaltplan vertippt IC2 soll natürlich der TA78L05F 
sein.

Autor: Bernd Hallinger (bhallinger) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Sven Fabricius (mr_sven)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Sven Fabricius (mr_sven)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

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

MfG Paul

Autor: Siggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Paul Baumann

Woher kommt denn nun wieder diese Weisheit?

Autor: Sven Fabricius (mr_sven)
Datum:

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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Siggi
Bau es auf, dann findest Du die Weisheit bestätigt.

MfG Paul

Autor: Willi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...).

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

~

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

~

Autor: Sven Fabricius (mr_sven)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Fabricius (mr_sven)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Bild der Platine

Autor: Sven Fabricius (mr_sven)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe nochmal eins mit angeschlossenen Signalen gemacht

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.