Forum: Mikrocontroller und Digitale Elektronik Schaltung störungssicherer auslegen


von C'est moi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von H.Joachim S. (crazyhorse)


Lesenswert?

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

von Der E. (rogie)


Lesenswert?

Twisted Pair Leitungen mit symmetrischen Signalen benutzen:

https://secure.wikimedia.org/wikipedia/de/wiki/Twisted-Pair-Kabel

von MaWin (Gast)


Lesenswert?

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.

von Floh (Gast)


Lesenswert?

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.

von Littlerock (Gast)


Lesenswert?

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

von C'est moi (Gast)


Lesenswert?

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.

von Littlerock (Gast)


Lesenswert?

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

von C'est moi (Gast)


Lesenswert?

@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

von Littlerock (Gast)


Lesenswert?

> 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

von Paul (Gast)


Lesenswert?

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.

von steve (Gast)


Lesenswert?

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.

von Stefan (Gast)


Lesenswert?

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.

von Wirf Hirn vom Himmel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.