Wenn die Daten wirklich als 0V / 15 V codiert sind, dann könnte man einen einfachen Spannungsteiler auf etwas weniger als 1/3 nehmen, also z.B. 22 Kohm und 10 KOhm.
Hallo zusammen.
Ich möchte mir einen Protokolleser für das d132 system von carrera basteln. Die Daten werden auf der Schiene zu den einzelnen Komponenten wie Weichen und Fahrfeugen übermittelt. Die Spannung beträgt 15V und wird bei einer Datenübertragung in Manchestercode ein und ausgeschaltet. Die datenübertragung beträgt ca. 10kBaud. Nun möchte ich die daten mit meinem Atmega8 mit horchen und nach einer Manchester -> bit umwandlung an den seriellen Anschluss meines PC's senden.
Jetzt habe ich folgendes Problem:
Wie kann ich die 15V Logikpegel, ohne grosse Verlustleistung oder gar signalstörungen zu verursachen, auf 5V TTL Pegel umwandeln um die Daten am Atmega empfangen zu können?
Würde ein paralell geschalteter Kondensator und ein nachgeschalteter PullUp Widerstand (ist im Atmega integriert) funktionieren oder muss ich einen Optokoppler einsetzen?
Carrera Schiene mit 15V 0-----||-----0 Atmega mit 5V
Ich hoffe ihr könnt mir weiter helfen.
Wenn die Daten wirklich als 0V / 15 V codiert sind, dann könnte man einen einfachen Spannungsteiler auf etwas weniger als 1/3 nehmen, also z.B. 22 Kohm und 10 KOhm.
Eventuell könnte das mit einem MAX232 gehen.
Die Daten der seriellen Schnittstelle sind zwar mit +/- 12...15V codiert, aber vieleicht funktioniert es auch mit 0V 15V??
jup, nen hochohmigen spannungsteiler, und dann noch eine z-diode mit 5,2V als schutz,Zitat von Besserwessi
wobei der AVR auch 4,5V als high erkennen sollte, ist also unkritisch ob da nun 0V .. 5V oder
0,2V .. 4,5V ankomme.
den genauen "erkennungswert" findet man im Datenblatt.
GrußundTschüß \/
~Jürgen
Eine 5,2 V zenderdiode hilft nur richtig, wenn da noch ein extra Widerstand vor dem Eingang ist. Bei einem relativ hochohmigen Teiler sollten aber auch die internen Schutzdioden schon reichen.
ja, ich meinte (schrieb) ja hinter einem hochohmigen Teiler.
GrußundTschüß \/
~Jürgen
Vielen Dank für die Antworten.
Ich habe heute das Schienenstück erhalten dass umgebaut werden soll. Ich werde mal versuchen die Daten die 0V / 15V codiert sind mit einem hochohmigen Spannungsteiler und einer zenerdiode auf 0V / 5V zu bekommen.
Muss ich da einen Mindeststrom beachten? könnte es sein, dass wenn der Spannungsteiler zu hochohmig wird, dass der AVR die 5V nicht mehr erkennt?
Wenn der Teiler viel zu groß wird, hasste nicht genug strom um den internen kondensator schnell genug umzuladen,
mit 20k-10k wird das aber gut klappen, 200k-100k "sollte" auch gehen.
kommt auch drauf an, wielange du in der software warten kannst(umladen) um den port abzufragen.
Was genau der controller als high und als low pegel erkennt findest du im datenblatt, da müsste auch was zu den porteigenschaften zu finden sein.
GrußundTschüß \/
~Jürgen
Ich würde die Signalanpassung mit einem Optokoppler durchführen. Hat zudem noch den Vorteil das man eine galvanische Trennung inklusive hat.
so kann der Controller keinen Schaden nehmen.
Danke für die Antworten.
Da mir nun mein AtMega8 am herzen liegt :-P studiere ich an der Optokoppler variante herum. Dazu babe ich aber noch ein paar Fragen, denn es wäre meine erste Schaltung mit Optokoppler.
Können die Optokoppler mit Transistorausgang die 10kBaud problemlos übertragen? Leider habe ich noch keinen Optokoppler gefunden der mit 15V Eingangsspannung arbeitet. Hast du da einen Vorschlag? Ich müsste eine Variante im DIL gehäuse haben, da ich die SMD-Bauteile nnicht löten kann.
Wenn es nichts passendes gibt werde ich die Schaltung wie oben vorgeschlagen mit einem Spannungsteiler realisieren
Lesezeichen