Schoenen Guten Tag liebe Community. Ich hätte hier mal ein kleines Problemchen und zwar dreht es sich um eine Mikrocontrollerschaltung, mit der über Interrupts die fallenden Flanken von fünf Hallsensoren ausgelesen werden sollen. Das ganze kommt an einem Verbrennungsmotor zum Einsatz und wie erwartet kämpfe ich hier ziemlich mit Störungen, die meine Interrupts einfach auslösen lassen. Am Anfang hatte ich schon Probleme mit meinem Steckernetzteil und den 220V des Stromnetzes (allerdings nur wenn Kabel bzw. Adern am Controller angeschlossen waren). Deswegen kam statt dem Linearregler eine Kombination aus Dc-Dc Wandler, zur galvanischen Trennung, und zusätzlichem Filter für die Spannungsversorgung in die Schaltung. Weiter wurde eine TVS-Diode wegen der Spannungsspitzen eingebaut um die Schwankungen des Bordnetzes schon vor dem Dc-Dc Wandler wegzubekommen Das Problem momentan ist, sobald ich Kabel zwischen den Hallsensoren und dem Controller anschließe und dann einfach nur den Anlasser drehen lasse, lösen meine Interrupts aus (ohne Kabel nicht). Meistens nur wenn der Anlasser gestoppt wird. Am Anfang hatte ich einfache Adern, die ca. 1.5m lang waren, mittlerweile sind geschirmte Kabel im Einsatz (schätzungsweise werden am Ende bestimmt 3-4m benötigt). Zusätzlich habe ich auch noch externe PullUps bei den Interrupt-, bzw. PinChangeInterrupteingängen verwendet (1kOhm). Momentan weiß ich nicht so richtig weiter, mein nächster Schritt wäre, die Spannungsversorgungen der Hallsensoren von meiner Versorgungsspannung des Mikrocontrollers zu entkoppeln. Hat irgendjemand vielleicht ein paar Tips oder Ratschläge (urspr.Schaltplan im Anhang). Vielen Dank schon mal, C'est moi.
Wahrscheinlich haben die Hallsensoren (genauer Typ?) open-collector-Ausgänge und du benutzt nur die internen pull-ups des AVR? Definitiv zu hochohmig. Nur ein erster Ansatz, es gibt noch weitere Baustellen. edit: ups, gar nicht zu Ende gelesen...
Twisted Pair Leitungen mit symmetrischen Signalen benutzen: https://secure.wikimedia.org/wikipedia/de/wiki/Twisted-Pair-Kabel
Ein 10k Vorwiderstandspoti an der LED der LCD HIntergrundbeleuchtung und VEE(VD) an Masse ? Da hast du irgendwas nicht verstanden.... R6 bis R8 dürfen grösser sein, so 10k. Die Versorgungsspannung der Hallsensoren, also zum Stecker, sollte direkt vom Ausgang de 7805 kommen. Wenn es ein Verbrennungsmotor mit Zündung ist, also kein Glühzünder, sollten die Leitungen verdrillt oder abgeschirmt (Abschirmung geht an Massepunkt des 7805) werden. Es schadet nichts, die 5V am Stecker direkt mit 100nF zu überbrücken und über das Kabel einen Ferritring zu stülpen, so wie du sie von PCs her kennst. Dein Störproblem wird eventuell der L293D, der produziert hohe Ströme auf der Masseleitung, muß also eine eigene Leitung zum 7805 Massepunkt bekommen und räumlich entfernt vom uC montiert werden, denn gerade wenn Motoren angeschlossen werden mit ihren UKW-Störungen, verbreiten sich die Störungen auch ohne Leitung.
Deine Stromversorgung ist mir zu optimistisch. http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23 An deinem L293 ist Enable1 nicht angeschlossen, was sollen die Ausgänge treiben? 10uF für die gesamte 12V-Schiene ist arg geizig :-) Das Layout wäre auch mal interessant.
1. Speisung: Wenn Du Anlasser startest bricht immer die Bordspannung zusammen oder es gibt Überspannungsspitzen. Im Atmel, auf den Leitungen, in der Speisung passiert dann alles mögliche oder unmögliche .. --> größerer Stützkondensator am Speiseeingang, mind 220 µF --> mind. 47 oder mehr µF nach dem DCDC Wandler oder Linearregler Du musst mind 10 ms Spannungsausfall überbrücken können 2. Prozessor: --> C5/8/9 so dicht als möglich am Controler --> parallel zu C5 einen 470pF COG Kondensator, weil ATMEGA ist nicht ohne Grund billig 3. ext. Schnittstellen: externe Leitungen nie direkt auf eine Prozessor führen. Der Atmega hält diese für Superantennen oder tolle Induktionsschleifen.. --> wenns geht Trennung über Optokoppler --> wenn nicht möglich, Reihenwiderstand mind 1k, besser 10k einsetzen, Schutzdioden zum Abschneiden von Überspannungsspitzen vor dem Reihenwiderstand oder/und kleinen Kondensator gegen Masse (1nF COG), ev. Es gäbe noch mehr Maßnahmen, einfach mal auf microcontroller.de nach Schutzbeschaltung o. ä. googeln
Soviele Antworten, dankeschön schon mal dafür. Vielleicht vorweg, ich bin kein Elektroniker, das wird mir hier glaube ich auch zum Verhängnis. Vielleicht alles der Reihe nach: - Momentan verwende ich verdrillte und geschirmte Kabel - Die Sache mit dem LCD und der Hintergrundbeleuchtung, war mein Fehler, das liegt an dem Libraryfile von Eagle, bei mir ist Anode und Kathode vertauscht. Die Beleuchtung funktioniert aber. - wegen R6 bis R8, werde ich mir noch einmal ansehen, bis jetzt sind die Taster aber wohl das Einzige was keine Probleme macht. - den L293D habe ich extra nicht benutzt und vor kurzem sogar die 12V Versorgung und Masse ausgelötet um die Störquelle zu beseitigen - Die Masseverbindung zu den Sensoren ist auch so kurz es geht (ich löte auf einer Lochrasterplatine) - die 10uF sind wahrlich nicht sonderlich groß, werde ich ändern Noch ein paar Fragen: - Wieso ein Ferritkern, wenn ich doch sowieso geschirmte Kabel benutze? - die 5V mit 100nF überbrücken verstehe ich leider nicht so ganz, könnte mir das jemand erklären? - Enable 1 brauche ich doch nicht oder? Ich treibe doch nur die Ausgänge 3 und 4 und deswegen habe ich auch nur Enable34 benutzt, nicht? Sobald ich wieder an Eagle rankomme, schicke ich den veränderten Schaltplan auch mit der veränderten Spannungsversorgung. Das Layout ist natürlich nicht so prickelnd, wie gesagt ist ein Lochraster. Nochmals Dankeschön, C'est moi.
Ach ja und hast du den L293 direkt auf die Bordspannung gehangen? Wann ja: oh oh. der brauch eine eigene stabile Speisung, möglichst getrennt vom µC
@Littlerock Hallo, gegoogelt und gelesen habe ich schon jede Menge, manchmal habe ich aber das Gefühl, dass man dann durchaus die Dinge verschlimmbessert, deswegen frage ich jetzt auch erst einmal nach. Nach dem Dc-Dc Wandler, also auf der 5V Seite habe ich mittlerweile schon einen 220uF Elko (wie gesagt, ich liefere noch einen aktualisierten Schaltplan nach). Den vor der Spannungswandlung werde ich noch vergrößern. C5/8/9 sind schon so nahe es geht an meinem uC. Warum parallel noch einen Kondensator, kann ich nicht einfach einen größeren C5 nehmen? Wegen der Speisung, momentan sieht es so aus, dass größtenteils bei Abschaltung des Anlassers alle meine Interrupts auslösen, also nicht beim Einschalten. Optokoppler sind dann noch die nächste Option, die ich umsetzen werde. Wegen den Widerständen in Reihe, ich hatte schon 50 Ohm, darf man einfach so große 1kOhm oder sogar 10kOhm in Reihe schalten? Verzögert das nicht, genauso wie noch ein zusätzlicher Kondensator, mein Signal? Der L293 sitzt hinter der TVS-Diode, soll aber noch hinter den Dc-Dc Wandler. Danke, C'est moi
> Warum parallel noch einen Kondensator, kann ich nicht einfach einen > größeren C5 nehmen? großer Kondensator schließt niedrige HF kurz, kleiner Kondensator schließt hohe HF kurz, wenn Du eh neues Layou machst, sieh den Platz einfach vor weil frißt ja kein Brot wenn Du s nicht brauchst > Wegen der Speisung, momentan sieht es so aus, dass größtenteils bei > Abschaltung des Anlassers alle meine Interrupts auslösen, also nicht > beim Einschalten. Rückinduktion aus Anlassermotor, -spule oder irgendsowas ---> große Spannungsspitze im Bordnetz ---> wird weitergereicht über Speisung oder ext. Schnittstellen an den Prozessor an ausgewertet, in deinem Fall alls Interrupt Hier empfiehlt sich auch und hilft oft eine statistische SW-Auswertung der ext. Schnittstellen, also eine Entprellung, auch bei Optokopplern. Sowas wie ein gleitendender Mittelwert. Weis nicht wie schnell das System sein muß aber 100 ms sind bei statischen Systemen durchaus üblich > Optokoppler sind dann noch die nächste Option, die ich umsetzen werde. > Wegen den Widerständen in Reihe, ich hatte schon 50 Ohm, darf man > einfach so große 1kOhm oder sogar 10kOhm in Reihe schalten? Verzögert > das nicht, genauso wie noch ein zusätzlicher Kondensator, mein Signal? ja und ja und ja dabei beachten wieviel Strom am Prozessoreingang mind fließen muss > Der L293 sitzt hinter der TVS-Diode, soll aber noch hinter den Dc-Dc > Wandler. gute Entscheidung -->möglichst trennen vom Prozessor vlt eigenen Ferrit in der Speisung -->im Layout nach dem DCDC so eine Art Tiefpaß zumindestens vorsehen. der sollte Frequenzen die größer 100 HZ sind bedämpfen, weil ich schätze der DCDC Wandler arbeitet mit einer bestimmten oder variablen Schaltfrequenz von größer 50 kHz, und der Atmel hat intern einen HF-Kurzschluss, zwischen AREF und Masse
Fast alle Drehgeber oder Hall-Geber in der Industrie arbeiten mit symmetrischer Signalübertragung ähnlich RS485. Ich würde die Signale der Hallgeber symmetrisch zum Atmel übertragen. Sämtliche Gleichtaktstörung sind dann eliminiert. An den Eingängen würde ich auch noch Glieder aus Ferriten (bei Symmetrie sogar stromkompensierte Drosseln) und ker. Kondensatoren vorsehen. An allen Zugängen von Außen Suppressordioden zur Ableitung von Störspannungen gegen GND und VSS vorsehen. Kabelschirme bei Datenleitungen , anders als in der NF-Technik, beidseitig!!! erden. Wenn gar nichts hilft, galvanisch getrennte Übertragung der Hall-Sensoren (ADUM-Serie von Analog-Devices). Je nach Geschwindigkeitsanforderung evtl. eine kleine Entprellroutine (2 ms) im Programm vorsehen und nur bei Übereinstimmung auf Interrupt reagieren. PS.: Als Literaturempfehlung zur Entstörung von Baugruppen kann ich die Triologie der Induktivitäten aus dem Hause Würth-Elektronik nennen! Ein super Buch.
Falls du mit einer Verzögerung der Flanken leben kannst, 1k Pullup und 100nF gegen GND direkt an den Interrupteingängen. Das verwende ich immer an low-aktiven Eingängen und hab bei Surge Bestörung (schnelle Transienten) bisher gute Erfahrungen mit gemacht. Etwas vergleichbares verwendest du ja auch an dem Resetpin deines µC. Falls die 100nF zu stark die Flanke verzögern, kannst du es auch mit kleineren Werten probieren. Eine Erweiterung ist ein Serienwiderstand zwischen Signalquelle und Kondensator (vorgeladener Tiefpass), ist aber meistens nicht nötig.
Hallo du hast den Reset Wiederstand auf Masse gelegt und nicht auf Plus. Wie die Anderen schon geschrieben haben.Du brauchst auf der 5Volt seite einen größeren Wieder stand.
Stefan schrieb: > Hallo du hast den Reset Wiederstand auf Masse gelegt und nicht auf Plus. > Wie die Anderen schon geschrieben haben.Du brauchst auf der 5Volt seite > einen größeren Wieder stand. Geh' erstmal wieder in die Schule, Deutsch lernen. Ach ja: Das Thema ist von 2011, aber den roten Hinweis müsste man ja lesen könnnen.
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.