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...
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.
@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.