Hallo, ich versuche per Leicht modifiziertem OpenDCC (http://opendcc.de/elektronik/HW1/opendecoder_hw_sch.html Variante 1) einige Modellbahn H0 Weichen (also im Prinzip Spulen) zu steuern. Das funktioniert mit dem Schaltplan im Anhang schon ganz gut. Falls der Schaltplan zu undurchsichtig ist (habe einige Anschlüsse drin für das Board Design), dann kann ich auch nochmal ein Minimalbeispiel zeigen. Ansonsten ist das Schema: VCC + -------- .---. | 1N4001 o o | |\ /| - Weiche | X | ^ |/ \| | o o | '---' | -------- | | ||-+ AVR Pin ||<- IRLZ 34N -----o----------||-+ | | | | | | | _ | ---|___|------o | 10k | GND Mein Problem ist jetzt: Ich steuere die Weichen mit 24V an, da sowohl neue wie auch recht alte Weichen verwendet werden sollen. Bei den älteren Weichen klappt alles problemlos, ich gebe einen kurzen Puls gesteuert über das DCC Signal, etwa 0,1 sec lang und die Weiche schaltet. Mit nur LEDs an den Ausgängen funktioniert alles auch unproblematisch. Wenn ich jetzt als Last neue Weichen nutze, die nach dem Umschalten sperren, dann bleibt mein Port auf high. D.h. die Weiche wird geschaltet aber es liegt noch weiterhin Spannung an der Weiche an. Das kann in meinen Augen nur daran liegen, dass am Gate noch Spannung anliegt, Drain-Source aber nicht mehr definiert ist. Wenn ich die Weiche von Hand zurückdrücke, wird der Pin wie erwartet auf low gesetzt. Kann mir vielleicht jemand erklären was dort passiert, oder wie ich der Problematik aus dem Weg gehen kann? Falls jemand an dem Programm interessiert ist, es ist unter http://opendcc.de/elektronik/opendecoder/opendecoder_sw_schalt.html zu finden. Viele Grüße fanick
Fabian B. schrieb: > Wenn ich jetzt als Last neue Weichen nutze, die nach dem Umschalten > sperren, dann bleibt mein Port auf high. Was hat das mit dem Portzustand zu tun, wenn sich die Last am FET wegschaltet. Wenn der µC den Port auf Low schaltet, muss der das auch tun, zumal die Gate-Ableitwiderstände das auch noch unterstützen. Bist du sicher, dass sich der µC nicht wegen der langsamen 1N4007 weg hängt?
Danke für deine Antwort! Ich habe auch erwartet, dass der µC den Port auf low bekommt, bei LEDs und alten Weichen tut es das auch. Ich tausche die Diode gleich zum Testen gegen eine MBR745 Schottky Diode, hoffe ja daran liegts nicht. Wäre ne teuere und platzraubende Lösung ;-)
> Wenn ich jetzt als Last neue Weichen nutze, die nach dem Umschalten > sperren, dann bleibt mein Port auf high. D.h. die Weiche wird geschaltet Was bedeutet "nach dem Umschalten sperren"? > aber es liegt noch weiterhin Spannung an der Weiche an. > Das kann in meinen Augen nur daran liegen, dass am Gate noch Spannung Hast du die Gatespannung nachgemessen? > anliegt, Drain-Source aber nicht mehr definiert ist. Wenn ich die Weiche > von Hand zurückdrücke, wird der Pin wie erwartet auf low gesetzt. Putzig.
Hast du ein Bild von dem fraglichen Aufbau (Transistor und so)?
Bild kann ich gleich anfertigen, leider nach und nach gewachsen und nicht ordentlich aufgebaut :-( Werd versuchen das etwas zu beschriften damit alles erkenntlich ist, also dauert etwas. > Was bedeutet "nach dem Umschalten sperren"? Die Spule schaltet nicht mehr durch, im Gleis wird einfach der Kontakt umgelegt. Ist eine sehr nützliche Sache ansich und verhindert durchbrutzeln der Spulen falls man versehentlich dauerhaft schaltet. > Hast du die Gatespannung nachgemessen? Ja, aber bin mir nicht mehr sicher ob das mit dem gleichen Aufbau war. Wiederhole ich gleich nochmal.
Also, Schottky dioden eingesetzt, Aufbau geprüft, und Gatespannung gemessen: Gleiches Verhalten, Gatespannung bleibt bei 5V und Mikrocontroller reagiert in der Zeit scheinbar nicht, erst nachdem ich die Weiche zurück gedrückt habe (also Kreislauf geschlossen). Ablockkondensator natürlich vorhanden. Bild lade ich später hier noch.
Fabian B. schrieb: > Mikrocontroller reagiert in der Zeit scheinbar nicht Dann lass den µC mal parallel zu der Weichensteuerung mit einem Pin wackeln (LED blinken), damit du siehst, ob er überhaupt läuft.
Fabian B. schrieb: > Gleiches Verhalten, Gatespannung bleibt bei 5V und Mikrocontroller > reagiert in der Zeit scheinbar nicht, erst nachdem ich die Weiche zurück > gedrückt habe (also Kreislauf geschlossen). Was bedeutet "Mikrocontroller reagiert nicht"? Kannst du feststellen, ob das Programm noch abgearbeitet wird (andere Weiche besser LED schalten)? Du schriebst, dass die Spule der Weiche automatisch getrennt wird. D. h. beim Zurückdrücken wird die Spule wieder mit dem MOSFET verbunden. Putzig.
> Die Spule schaltet nicht mehr durch, im Gleis wird einfach der Kontakt > umgelegt. Ist eine sehr nützliche Sache ansich und verhindert > durchbrutzeln der Spulen falls man versehentlich dauerhaft schaltet. Kann nicht sein - die Weiche würde nie wieder schalten ;-) also muss der Endschalter anders funktionieren , was für eine Weiche 'Firma + Typ ' ?
Pastor Braune schrieb: >> Die Spule schaltet nicht mehr durch, im Gleis wird einfach der Kontakt >> umgelegt. Ist eine sehr nützliche Sache ansich und verhindert >> durchbrutzeln der Spulen falls man versehentlich dauerhaft schaltet. > > Kann nicht sein - die Weiche würde nie wieder schalten ;-) Zwei Spulen?
Ja wäre logisch - zwei Endschalter 2 Spulen oder Drehmagnet und Wechselspannung oder ....
Genau, 2 Spulen sind einfach drin! Typ und Hersteller dauert etwas bis ich das herausgefunden habe. Mache das nur für meinen Vater, aber es sind wirklich einfach 2 Spulen, von denen immer eine geschlossen ist und geschaltet werden kann. Der "Programmierschalter" vom OpenDCC wird ganz normal in der Main dauerhaft abgefragt und den kann ich normalerweise jederzeit klicken, so dass eine LED leuchten sollte. Das ist nicht möglich wenn die Weiche hängt, deswegen gehe ich davon aus, dass der ganze Mikrocontroller hängt. Gatespannung ist dabei 5V und durch den MOSFET fließt kein Strom. Ich hatte gehofft das ist irgendein bekanntes Verhalten.
Das geschilderte Verhalten ist nicht normal. Irgendwie scheinen die neuen Weichen wohl mehr Störungen zu verursachen, die bis zum µC durchkommen. Das liegt vermutlich weniger an der gezeigten Schaltung, sondern eher am Aufbau, also wo sind Abblockkondensatoren und wie liegen die Leistungen. An der Geschwindigkeit der Diode wird es nicht liegen, auch wenn die 1N4007 beim Einschalten vielleicht etwas langsamer ist, sind das Zeiten im Bereich einiger ns und ein mehr an Spannung von höchstens 1-5 V, eher noch weniger - das ist für den MOSFET kein Problem.
Also danke an euch alle für eure Hilfe! Im Anhang ist ein Foto des Aufbaus, steinigt mich oder kritisiert was ich noch deutlicher machen soll :-). Ich denke nicht dass ich was verschaltet habe, alles läuft sonst sehr gut. Hab einen 10µF Kondensator zur Pufferung drin und einen 100 nF Keramik Kondensator Wenn ich in den nächsten Tagen keine andere Lösung finde, werde ich gucken, dass ich das Protokoll am Laptop zum Laufen bekomme. Dann kann ich das mal am Oszi in der Uni testen. Edit: Kann bitte jemand das erste Foto (1.5MB) löschen? Hab es nochmal komprimiert.
Fabian B. schrieb: > und einen 100 nF Keramik Kondensator Der muss aber ganz nahe am µC sitzen. Ansonsten ist dieser Ausbau perfekt dazu geeignet, sich jeden Dreck einzufangen und den µC abstürzen zu lassen :-( Weitere Maßnahmen: - 10..100nF am Reset-Pin - GND der FETs an den Einspeisepunkt der Versorgung anschließen - dto. GND der Versorgungsspannung der Weichen (sternförmige Verdrahtung der GNDs) - größere räumliche Trennung von µC und Weichen - Snubber parallel zur Weiche - ... Gruß Dietrich
Danke für die super Hinweise Dietrich, wüsste sonst gar nicht wie ich mit Ausnahme des Ablockkondensators anfangen soll zu optimieren. Klar dass ein solcher Aufbau nicht ideal ist. Ich habe auf dem Schaltplan basierend schon ein Board erstellt, dass ich irgendwo fertigen lassen möchte. Dort sind natürlich die Wege viel kürzer und in der Praxis liegen die Weichen logischerweise etwas entfernt, so 1 bis 2 m ungefähr. Zum testen hatte ich die Weiche einen halben Meter entfernt, bin schon davon ausgegangen, dass die Induktion von einer solchen Spule nicht ohne ist. Aktuell sitzt der Ablockkondensator recht nah am VCC, vllt 1 cm entfernt. Werde also das ganze weiter umbauen, bzw mit Oszi nachprüfen was sich verändert. Es ist für mich trotzdem seltsam, dass das mit den alten Weichen alles perfekt läuft. Ich habe da gefühlt Vorkriegs-Weichen genutzt, mit einem ordentlichen Peak von über 2A, für mehr als 0,1s. Bei den neuen Weichen konnte ich mit der Messgenauigkeit meines billig Multimeters nicht mal vernünftig eine Stromstärke ausmachen bevor die Weiche umgeschaltet hat. Ganz dumme Frage, ist es denn ein normales "Reset" Anzeichen wenn der Controller auf nix mehr reagiert und den letzten Zustand hält? Viele Grüße fanick
Fabian B. schrieb: > Es ist für mich trotzdem seltsam, dass das mit den alten Weichen alles > perfekt läuft. Ich habe da gefühlt Vorkriegs-Weichen genutzt, mit einem > ordentlichen Peak von über 2A, für mehr als 0,1s. Spekulation: Der Kontakt für die Funktion "nach dem Umschalten sperren" produziert beim Öffnen Funken. Die gibt es bei den alten Weichen nicht (daher die Idee mit dem Snubber (RC-Glied) direkt an der Weiche). > Ganz dumme Frage, ist es denn ein normales "Reset" Anzeichen wenn der > Controller auf nix mehr reagiert und den letzten Zustand hält? Bei Reset müsste der µC eigentlich nur neu starten. Aber was Dein Programm dann allerdings genau macht, weißt nur Du... Alternativ kann eine Störung bewirken, dass sich das Programm einfach nur "verläuft". Was es dann tut, ist unvorhersehbar. Gruß Dietrich
Dietrich L. schrieb: > Aber was Dein > Programm dann allerdings genau macht, weißt nur Du... Es ist nicht sein Programm, sondern dass von Open-DCC. Ich weiß nicht, welche Weichen verwendet werden, die H0-Weichen, die ich von damals kenne, waren für 16V Wechselspannung bestimmt und zogen etwa 0,8A. Wenn man sie mit Gleichspannung betreibt, fällt der induktive Widerstand weg, da reichen meist 12V. Ich hatte mit dem ersten Aufbau meines Eigenbau-Einzelweichendecoders für LGB-Weichen auch Probleme, da brach die Versorgung des Tiny13 aufgrund unzureichender Entkopplung der Versorgung ein. ...
mh...mit Interesse habe ich als alter Modelleisenbahner diesen Thread studiert. Ich habe den 1. Kommentar 3x durchgelesen und es bis jetzt immer noch nicht ganz verstanden. Aber das nur mal so! Schon als ich die 24 Volt las dachte ich "oh Gott". Ich muß zu meiner Schande gestehen, daß alle Weichen der Fa. Fleischmann mit der Klappertechnik (also Relais) mit 12 V angesteuert werden. Insofern faszinierte mich dieser Schaltplan mit FETs. Werde mir einen Test aufbauen und eine Weiche mal damit ansteuern. Ich gehe hier auch von extremen Störspannungen aus die den AVR durcheinander bringen. Selbst mit den Relais arbeitet die Sache nicht ganz ohne Störungen hat schon manchen Zusammenstoß gegeben. Bei allem finde ich die Hardware interessant. Grüße Rolf
Rolf H. schrieb: > Bei allem finde ich die Hardware interessant. Was ist daran so besonders? Es ist die übliche Decoderschaltung von Open-DCC, bei der der übliche ULN2803 durch arg überdimensionierte LL-FETs ersetzt wurde. Ich benutze auch LL-FETs am AVR-Pin (ohne zusätzliche Treiberschaltung), bevorzuge aber den IRLU024N, da dieser nur halb soviel Gate-Kapazität hat und somit den AVR-Pin nicht so hoch belastet. In Gartenbahn-Lokdecodern (DCC, wie auch RC) werden sie am ATTiny13 mit PWM von 28,8 kHz betrieben, was sehr gut funktioniert. ...
ich kenne die FETs mit der Bezeichnung "N-Kanal bzw. P-Kanal" Was sind denn LL-FETs? Das mit den ULN2803 ist ne gute Idee. Da sind doch 8 Treiber mit Freilaufdiode im Chip, oder? Werde sehen, daß ich von meiner Klappertechnik bald wegkomme. Open-DCC ist mir auch was neues, bestimmt nichts für Spur H0 Grüße Rolf
Die OpenDCC Homepage bietet viele Informationen dazu: http://opendcc.de Sollte auch alles bei Spur H0 unproblematisch sein, schließlich ist H0 ja keine Gartenbahn. Ich denke Hannes meint mit "LL-FETs" Logic Level FETs. Ich habe leider wenig Erfahrung im Elektronik und Mikrocontroller Bereich und habe zwecks "Platz" sparen auf eine Treiberstufe verzichten wollen. Bei meinem Problem könnte natürlich auch eine galvanische Trennung die Lösung sein. Kann dem aber erst in den nächsten Tagen auf den Grund gehen. Die Weichen die zum Teil gesteuert werden sehen wie gesagt aus wie Vorkriegsweichen ;-) Da benötigt man einen sehr starken Impuls für kurze Zeit, bei den 24V deutlich über 2A. @Rolf H.: von Relais wollte ich Abstand nehmen. Die Spulen benötigen nur einen Impuls (0,1s ausreichend) und dafür ist ein MOSFET doch ideal. Der ULN2803 liefert max. 500 mA, für mich mit Sicherheit zu wenig.
Dietrich L. schrieb: > Spekulation: Der Kontakt für die Funktion "nach dem Umschalten sperren" > produziert beim Öffnen Funken. Die gibt es bei den alten Weichen nicht > (daher die Idee mit dem Snubber (RC-Glied) direkt an der Weiche). Das ist nicht nur eine Spekulation sondern das ist so. Hat auch mal sowas gebaut und die Endabschaltung der Weichen hatten die Stoerungen verursacht. Die Freilaufdiode nutz da recht wenig wenn im inneren Kreis der Stromfluss durch die Endabschaltung getrennt wird. Dann geistert mal wieder ein Stoerimpuls herum und laest sein uC abstuerzen.
Rolf H. schrieb: > ich kenne die FETs mit der Bezeichnung "N-Kanal bzw. P-Kanal" Diese Klassifizierung gilt auch weiterhin. > Was sind denn LL-FETs? Das sind LogicLevel-FETs. Sie haben eine geringere Schwellenspannung für das Gate und lassen sich somit mit Pegeln von Logic-ICs oder von Mikrocontrollern zuverlässig ansteuern. Ein herkömmlicher FET schaltet mit 5V am Gate nicht richtig durch, was zu höherem RDS (Drain-Source-Widerstand) und damit zu höherer Erwärmung führt. > Das mit den ULN2803 ist ne gute Idee. Da sind doch 8 Treiber mit > Freilaufdiode im Chip, oder? Richtig, allerdings haben sie aufgrund der Darlington-Schaltung einen recht hohen Spannungsabfall UBE. Rolf H. schrieb: > Open-DCC ist mir auch was neues, bestimmt nichts für Spur H0 Doch, gerade in Spur H0 wird viel mit Digitaltechnik gearbeitet. Da reichen aber FETs mit sehr kleinen SMD-Bauformen in den Lokdecodern. Fabian B. schrieb: > Bei meinem Problem könnte natürlich auch eine galvanische > Trennung die Lösung sein. Nein, Du wirst (wie bereits erwähnt) Freilaufdioden direkt an den Weichenspulen brauchen, die den Abreißfunken an den Endabschaltungskontakten löschen. Und Du wirst mit der Spannung herunter gehen müssen, 24V sind bestimmt zuviel. Versuche aber erstmal, die Weichen statt mit einer gegätteten Gleichspannung mit Halbwellen aus dem 24V-Trafo zu betreiben (also nur eine Diode ohne Elko), kann sein, dass die Weichen damit besser zurecht kommen. ...
Hallo Hannes Lux, danke für Deine Ausführungen, man lernt doch immer wieder was dazu. Die Signale von Fleischmann haben nur eine Spule, das weis ich genau, aber mit den Weichen bin ich mir jetzt nicht ganz sicher. Grüße Rolf
Noch kurz zu meiner Auflösung des Problems (im Sommer hatte ich nicht weitergebaut): Ich habe das Problem einfach ungelöst gelassen, mit verschiedenen Filtern ist das immer noch nicht 100% stabil gelaufen. Habe aber in unzähligen Testläufen feststellen können, dass das nur sehr selten auftritt und nur bei sehr sehr schnellen hin und her Schalten der Weiche (also im Bereich unter 300 ms). Letztendlich habe ich das softwareseitig abgefangen :-( Vielen Dank trotzdem für eure Hilfen!
Ich würde mir einfach eine hand voll Snubber (http://www.conrad.de/ce/de/product/452335/F-T-Kontakt-Entstoer-Kondensator-KONTENTSTOERUNG-01-UF-100-OHM01-F100-250-VAC?ref=searchDetail) kaufen und parallel zu jeder Weiche so einen schalten, möglichst nache an der Weiche.
1 | +---[===]---||---+ |
2 | | | |
3 | Common (12V) o---+------XXXXX-----+-----o Links |
4 | | |
5 | | |
6 | +------XXXXX-----+-----o Rechts |
7 | | | |
8 | +---[===]---||---+ |
Außerdem würde ich so einen Snubber auch parallel zur Fahrspannung schalten. Das hilft sehr warscheinlich. Wenns billiger sein soll, einen normalen 100nF Kondensator mit 100 Ohm in Reihe schalten.
Ich wusste gar nicht, dass es solche fertigen Entstör Kondensatoren gibt :$ Hatte das bisher bereits mit dem 100nF+Widerstand ausprobiert, gefühlt war es besser, aber das Aufhängen ist trotzdem noch selten vorgekommen. Werde mir mal Entstörkondensatoren anlegen und damit testen, ich will nicht wissen, wie viele Störspannungen auf den Signalen liegen. Mein Vater hat sich da wenig Mühe gegeben irgendwas zu optimieren.
oh...Gott..schon wieder ein Jahr vorbei, aber ich bleibe am Ball! Habe mich intensiv mit dem Timer1 vom Atmega8 beschäftigt. (ADC und PWM) sogar ein Servotester ins Leben gerufen. Ein gesundes NEUES JAHR an: Fabian Hannes Lux Spess und Karl Heinz Grüße Rolf Übrigens..meine Fleischmann-Weichen laufen mit einem zusätzlichen Relais, was die 12 V nur kurz zuschaltet.
100nF zw. Reset und Gnd wurde ja schon gesag, ich würde möglichst nah am 100nF Kerko zw VCC und GND noch eine Drosselspule mit 100µH davorsetzten dann dürfte der µC nicht mehr hängen bleiben. Die gennante Methode mit einer LED die im Tak blinkt kannst du auch einfacher machen. Einfach am Start des Programms die LED z.B. 1 Sekunde lang blinken lassen und dann die Weiche erst umstellen, wenns dann wieder blinkt hat entweder dein µC resetet oder dein Programm ist wegen eines Überlaufs wieder am Anfang gelandet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.