Forum: Mikrocontroller und Digitale Elektronik Reset durch EMV auf I/O-Pin?


von Stefan R. (stefan09)


Lesenswert?

Hallo zusammen !

Ich weis das Thema EMV ist hier schon oft behandelt worden. Leider hab 
ich nichts zu diesem Punkt gefunden. Deshalb:

Kann es passieren das ein µC (Atmega8) durch Störimpulse auf 
I/O-Leitungen einen Reset ausführt ? Oder ist das eher unwahrscheinlich 
?

Ich betreibe den Controller in einer relativ Verseuchten(EMV) Umgebung 
und hab schon fast alles andere ausprobiert.

Gruß Stefan

von Tom (Gast)


Lesenswert?

Hast du alle Ausgänge (vor Allem den /reset und die diversen 
Gnd-Leitungen) richig beschaltet (Anschaltung, Widerstandswerte, 
Kapazitäten i.O.? Löstellen okay?)? Alle Abblockkondensatoren vorhanden? 
Sauberes Massekonzept? Wie schaut deine Versorgungsspannung aus? (gibts 
da Spikes bzw. Spannungseinbrücke? Alles mit größeren Kapazitäten bzw. 
low-ESR-Cs abgeblockt?) Keine langen störverseuchten Leiterbahen 
parallel zu deiner Reset-Leitung?

Wenn alles obige i.O. vielleicht mal über einen externen 
Reset-Controller und Abschirmgehäuse nachdenken.. Keine Ahnung, wie 
schlimm deine "relativ verseuchte Umgebung" wirklich ist...

hth, Tom

von Jörg B. (manos)


Lesenswert?

Vielleicht solltest Du in Deinem Programm mal die "Reset Source" 
auswerten. Dann siehst Du wahrscheinlich ob es der Reset-Pin oder sie 
Spannungsversorgung war.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Kann es passieren das ein µC (Atmega8) durch Störimpulse auf
> I/O-Leitungen einen Reset ausführt ?
Das kommt eher davon, dass deine Software von so einem Puls überrascht 
wird und nichts Sinnvolles mehr tut. Und dann schlägt evtl. der Watchdog 
per Reset zu...

Wie sieht deine Reset-Beschaltung aus? Bei EMV-Problemem ist alles über 
4,7kOhm hochohmig. Ganz schlecht sind offene Eingänge...


> Ich betreibe den Controller in einer relativ Verseuchten(EMV) Umgebung
> und hab schon fast alles andere ausprobiert.
Warum hast du fast alles probiert?
Wo liegt eigentlich das Problem?

von Peter D. (peda)


Lesenswert?

Jörg B. schrieb:
> Vielleicht solltest Du in Deinem Programm mal die "Reset Source"
> auswerten.

Ja!

Bevor Du das nicht gemacht hast, sind alle anderen Versuche vollkommen 
sinnlos.


Peter

von Stefan R. (stefan09)


Angehängte Dateien:

Lesenswert?

Danke für die schnellen und reichlichen Antworten !
Also dann werde ich jetzt erstmal dir "Reset-Source" auswerten !

>Wie sieht deine Reset-Beschaltung aus? Bei EMV-Problemem ist alles über
>4,7kOhm hochohmig. Ganz schlecht sind offene Eingänge...

Also Reset hab ich mit 1K an + und 100nF an Masse.
Bei den offenen Eingängen hab ich mal gelesen das man diese einfach den 
Internen Pull-Up aktivieren soll um störungen zu vermeiden.
Oder sollte man die besser als ausgang mit hi-Pegel programmieren ?


>Hast du alle Ausgänge (vor Allem den /reset und die diversen
>Gnd-Leitungen) richig beschaltet (Anschaltung, Widerstandswerte,
>Kapazitäten i.O.? Löstellen okay?)? Alle Abblockkondensatoren vorhanden?
>Sauberes Massekonzept? Wie schaut deine Versorgungsspannung aus? (gibts
>da Spikes bzw. Spannungseinbrücke? Alles mit größeren Kapazitäten bzw.
>low-ESR-Cs abgeblockt?) Keine langen störverseuchten Leiterbahen
>parallel zu deiner Reset-Leitung?

Alle GND's beschaltet, Reset s.o., Alle Ablockkondensatoren 100nF, 
Massekonzept z.Zt. noch schwierig da Lochraster, Versorgungsspannung s. 
Anhang, Reset hab ich so kurz wie möglich angeschlossen.

Gruß Stefan

von Tom (Gast)


Lesenswert?

Muss Jörg Recht geben, die reset source ist natürlich erst mal das 
wichtigste...

Ansonsten ist Lochraster natürlich immer empfindlicher gegenüber EMV als 
eine (sorgfältig gemachte) "richtige" Platine. Was du so beschreibst 
könnte es durchaus sein, dass du dir Einbrüche in der 
Spannungsversorgung einfängst (wenn z.B. der µC schaltet - was hängt da 
denn dran?), wenn du die Abblock-Cs nicht ganz nah an den µC bringst. 
Bei DIL-Gehäuse und Lochraster am Besten 100n keramisch und parallel nen 
10µF-Elko direkt unter das Gehäuse (oder besser die Fassung) löten. Und 
egal ob Lochraster oder nicht, ein gewisses Massekonzept ist nun mal 
unverzichtbar und gerade bei solchen Fehlern wie du sie beschreibst hast 
du ne gute Chance da fündig zu werden. Also -> Sternmasse (geht auch auf 
Lochraster ;) ) und Power- und Signalmasse auf JEDEN FALL sauber 
trennen!

Dann alle fliegenden Leitungen so gut als möglich kürzen und auf 
definierte Pegel setzen (so niederohmig als möglich). Die offenen 
Eingänge sollten das eigentlich abkönnen, aber testweise kannst du ja 
mal alle auf Gnd legen und schauen, ob das dein Problem behebt - wäre 
allerdings verwunderlich (Es sei denn du betreibst deine Schaltung in 
einer laufenden Mikrowelle, das wäre wirklich eine "ziemlich verseuchte 
Umgebung" ;) )

Wenn gar nix hilft, den µC noch mal aus der Schaltung rausnehmen und mit 
der Minimalbeschaltung (Reset, Oszillator, ICSP -> siehe Datenblatt) auf 
ner frischen Platine starten. Wenn das dann läuft die Peripherie drumrum 
Stück für Stück aufbauen und jedesmal testen ob es noch geht...

Viel Spaß und Erfolg beim Probieren!

Grüße,
Tom

von Stefan R. (stefan09)


Lesenswert?

> Also -> Sternmasse (geht auch auf
> Lochraster ;) ) und Power- und Signalmasse auf JEDEN FALL sauber
> trennen!

Hm, meine Power-Masse ist leider gleichzeitig auch Signal-Masse. Geht 
leider nicht anders ! Oder sollte ich da versuchen die Massen erst 
außerhalb des gehäuses an verschiedenen Stellen auf "Gesamt-Masse" zu 
legen ?


> Wenn gar nix hilft, den µC noch mal aus der Schaltung rausnehmen und mit
> der Minimalbeschaltung (Reset, Oszillator, ICSP -> siehe Datenblatt) auf
> ner frischen Platine starten. Wenn das dann läuft die Peripherie drumrum
> Stück für Stück aufbauen und jedesmal testen ob es noch geht...

Ja das wird meine letzte Möglichkeit sein. Wenn der jetzige Versuch 
keine Ergebnisse bringt.

> Viel Spaß und Erfolg beim Probieren!

Danke ! Kann ich brauchen !

Gruß Stefan

von Tom (Gast)


Lesenswert?

Naja das sagt eigentlich der Begriff "Sternmasse" schon: Alles was Power 
hat (Leistungstransistoren etc.) zusammenfassen und alles was nur Signal 
macht (also µC usw.) ebenfalls. Dann nur an  einem (!) Punkt verbinden 
(der "Gesamtmasse" wenn du so willst ;) ) und drauf achten wie ein 
Heftlesmacher, dass es nur diese eine Verbindung gibt. Zweckmäßigerweise 
verwendet man dafür den Pin von der Stelle, an der der Saft auf die 
Platine kommt... So liegt zumindest der Signalteil auf ein und demselben 
Pegel und man sieht nicht jede Stromspitze direkt als ein Anheben der 
Masse (btw. hast du deine Masse (nebst Versorgungsspannung) eigentlich 
mal oszilloskopiert?).

Aber vielleicht wäre es trotzdem mal ganz hilfreich zu wissen, was du an 
deinem µC eigentlich dranhängen hast und was das später mal werden soll?

Viele Grüße,
Tom

von Stefan R. (stefan09)


Lesenswert?

Hallo Zusammen !

Habs heute endlich geschaft nen paar Tests zu machen!
Leider habe ich nur einen Test den man ernst nehmen kann, bei den 
anderen hab ich im nachinein festgestellt das die Batterie langsam ihren 
geist aufgegeben hat :-)

Aber es sieht tatsächlich so aus, als ob ich ein problem mit der 
Spannungsversorgung habe.Es sind ausschließlich POR's aufgetreten!

Auf der Platine befinden sich lediglich die Spannungsversorgung, der 
Controller, ein FTDI232, ein Optokoppler und nen paar 
Wiederstände,Dioden und Kondensatoren. Das eingangssignal geht über den 
Optokoppler an den µC, der verarbeitet das Signal und sendet dann das 
Ausgangssignal(Pin wird durch Wiederstand und Diode zusätzlich 
geschützt). Diese beiden Leitungen(Ein-/Ausgang) sind ca.1,2 m lang.
Beim Eingang kann ich die Masse ja trennen(SternMasse) aber beim Ausgang 
wird die Masse vom µC sprich Spannungsversorgung genommen.

Hab eigendlich gedacht, ich hätte die Spannung gut genug gesiebt und 
gefiltert ?! Wobei ja der Reset trotz Batterie ausgelöst wird, und das 
weist ja eigentlich darauf hin, dass ich mir was aus der Umgebung 
einfange.
Die Schaltung werkelt übrigens in einem 2-Takter. Deshalb auch die 
"verseuchte" Umgebung(Zündspule,Zündkabel,Funkenstrecke,...).

Hab auch schonmal Versucht mit dem Oszi was zu erkennen, aber da die 
Störungen nur sporadisch auftreten und meistens nur wenn ich fahre ist 
es nahezu unmöglich da was zu messen.

Wenn jemand von euch noch ne Idee hat, dann her damit. Ich weis nichts 
mehr !

Ansonsten werde ich mal versuchen die Platine neu aufzubauen, kann aber 
nen bißchen dauern. Muß erstmal die Bauteile neu besorgen.

Gruß Stefan

von Eddy C. (chrisi)


Lesenswert?

Solange keine EMV-Maßnahmen an dem IO-Pin erfolgt sind (also eine 
Schutzbeschaltung), kannst Du Dir die Auswertung der Reset-Source 
sparen. Dafür gibt es zu viele Sekundäreffekte, die Dir den Controller 
in jeden beliebigen Zustand versetzen könnten. Das ist dann wie 
Kaffeesatz lesen und führt nur in die Irre.

von Peter D. (peda)


Lesenswert?

Was hast Du denn für einen Spannungsregler?

LDOs schalten bei etwa 16V ab, als Überspannungsschutz.


Peter

von Tom (Gast)


Lesenswert?

Ist deine Schaltung schon in deinem Zweitakter eingebaut und betreibst 
du die auch da? Oder treten die Resets auch auf dem Basteltisch auf?

Allgemein ist dir schon klar, dass, wenn du irgentwas im KFZ-  Moped-  
Sonstwasmitverbrennungsmotor betreibst, du das Ganze sorgfältig 
absichern musst? Die Überspannungsspitzen die du in so einem Bordnetz 
hast sind ziemlich fies (die Spannungseinbrüche übrigens auch) und 
machen richtig Ärger, das kann soweit gehen, dass du dir eine auf dem 
Basteltisch normal funktionierende Schaltung gründlich brätst. Btw: wenn 
du wirklich Überspannungsspitzen ordentlicher Ausprägung hast, ergäbe 
das ein ähnliches Fehlerbild...

Das Elko meint zu Schaltungen im Bordnetz:

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Sollte man beachten... ;)

Ansonsten: Erst mal in definierter und bekannter Umgebung zuverlässig 
zum Laufen bringen und dann erst in die "Einsatzumgebung" bringen.

In deinem Fall scheint entweder ein Speicheroszi das Ding der Wahl zu 
sein (dann ist aber das Triggern nicht ganz einfach - am Besten den 
/Reset-Eingang benutzen und auf die fallende Flanke triggern) oder wenn 
du tatsächlich Probleme mit Überspannung hast (was zu vermuten ist) wär 
mein Vorschlag folgender: Über nen Monoflop eine LED ansteuern und den 
Trigger des Monoflops über eine - sagen wir mal - 33V Z-Diode an die 
Versorgung klemmen. Bekommst du nen Spike (auch wenn der nur ein paar 
zig ns lang ist) der über die Z-Spannung geht, dann wird das Monoflop 
getriggert und die LED leuchtet für ein paar Sekunden (kannst ja passend 
einstellen). Wenn also µC aus- und die LED gleichzeitig angeht, kannst 
du zumindest drauf schließen, dass du zeitgleich nen Überspannungsspike 
auf der Versorgung hattest... (ach ja.. die Z-Dioden kann man ruhig auch 
mal variieren, wenn der erste Versuch keinen Erfolg bringt)

Dann viel Erfolg beim Fehlersuchen!

Grüße, Tom

von Stefan R. (stefan09)


Lesenswert?

> Ist deine Schaltung schon in deinem Zweitakter eingebaut und betreibst
> du die auch da? Oder treten die Resets auch auf dem Basteltisch auf?

Ist schon verbaut ! Auf dem Schreibtisch funktioniert alles 1A !

> Allgemein ist dir schon klar, dass, wenn du irgentwas im KFZ- / Moped- /
> Sonstwasmitverbrennungsmotor betreibst, du das Ganze sorgfältig
> absichern musst? Die Überspannungsspitzen die du in so einem Bordnetz
> hast sind ziemlich fies (die Spannungseinbrüche übrigens auch) und
> machen richtig Ärger, das kann soweit gehen, dass du dir eine auf dem
> Basteltisch normal funktionierende Schaltung gründlich brätst. Btw: wenn
> du wirklich Überspannungsspitzen ordentlicher Ausprägung hast, ergäbe
> das ein ähnliches Fehlerbild...
>
> Das Elko meint zu Schaltungen im Bordnetz:
>
> http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Den Artikel kenn ich schon ! Daher stammt ja u.A auch ein Teil der 
Spannungsversorgung. Im Gegensatz zur Autotechnik besteht mein 
komplettes Bordnetz aus Wechselspannung und es gibt keine Relais oder 
Anlasser.


> Ansonsten: Erst mal in definierter und bekannter Umgebung zuverlässig
> zum Laufen bringen und dann erst in die "Einsatzumgebung" bringen.

Wie gesagt auf dem Schreibtisch und auch am Fahrzeug funktioniert die 
Schaltung(prinzipiell). Der Fehler tritt nur sporadisch auf und nur beim 
Fahren.


> In deinem Fall scheint entweder ein Speicheroszi das Ding der Wahl zu
> sein (dann ist aber das Triggern nicht ganz einfach - am Besten den
> /Reset-Eingang benutzen und auf die fallende Flanke triggern) oder wenn
> du tatsächlich Probleme mit Überspannung hast (was zu vermuten ist) wär
> mein Vorschlag folgender: Über nen Monoflop eine LED ansteuern und den
> Trigger des Monoflops über eine - sagen wir mal - 33V Z-Diode an die
> Versorgung klemmen. Bekommst du nen Spike (auch wenn der nur ein paar
> zig ns lang ist) der über die Z-Spannung geht, dann wird das Monoflop
> getriggert und die LED leuchtet für ein paar Sekunden (kannst ja passend
> einstellen). Wenn also µC aus- und die LED gleichzeitig angeht, kannst
> du zumindest drauf schließen, dass du zeitgleich nen Überspannungsspike
> auf der Versorgung hattest... (ach ja.. die Z-Dioden kann man ruhig auch
> mal variieren, wenn der erste Versuch keinen Erfolg bringt)

Das ist ne gute Idee, werd ich mal versuchen ! Danke !

@Eddy
>Solange keine EMV-Maßnahmen an dem IO-Pin erfolgt sind (also eine
>Schutzbeschaltung), kannst Du Dir die Auswertung der Reset-Source
>sparen.
Keine EMV Maßnahmen an welchem IO-Pin ? Eingang oder Ausgang oder an 
allen Pins ? Und wie könnte die Schutzbeschaltung aussehen ?

Danke und Gruß

Stefan

von zrtr (Gast)


Lesenswert?

Die Tatsache, dass es auch im "Nur Batterie Modus" zu Reset Fehler kommt 
ist ein Hinweis dafür daß es sich höchst wahrscheinlich um eine 
Feldeinkopplung in den Leitungen handelt und nicht an ein Problem der 
Versorgung als solche. Maßnahmen: kurzere Leitungen,wenn möglich nur 
Einsatz von SMD Bauteile, Eingangsfilter wie schon erwähnt und 
optimiertes Routing.

Viel Erfolg auch von mir

von Stefan R. (stefan09)


Lesenswert?

> Die Tatsache, dass es auch im "Nur Batterie Modus" zu Reset Fehler kommt
> ist ein Hinweis dafür daß es sich höchst wahrscheinlich um eine
> Feldeinkopplung in den Leitungen handelt und nicht an ein Problem der
> Versorgung als solche. Maßnahmen: kurzere Leitungen,wenn möglich nur
> Einsatz von SMD Bauteile, Eingangsfilter wie schon erwähnt und
> optimiertes Routing.

Solche Einkopplungen waren ja auch schon meine Vermutung. Da nur 
PowerOn-Resets aufgetreten sind war meine Vermutung das der µC sich die 
Einkopplung in der Spannungsversorgung einfängt. Oder kann der Reset 
auch durch EMV auf den IO-Pins ausgelößt werden ?!

Reicht als Eingangsfilter dann die Schaltung von "dse-faq" ?
Also sowas:

Eingang --10k--+--10k-- Eingang µC
               |
              10nF
               |
              GND

Gruß Stefan

von zrtr (Gast)


Lesenswert?

ich würde parallel zum 1nF auch ein 100nF SMD dazu schalten und die 
Leitung zum Reset Pin entweder mit Power Planes schirmen oder zumindest 
Masseleitungen(0 Potential in der Schaltung in der Nähe bringen)

von Tom (Gast)


Lesenswert?

Jetzt bin ich ja doch neugierig... Zweitakter, Wechselspannungsbordnetz 
und keine Relais? Hmm wohl was Exotischeres wie Modellbau oder ein 
Boot...?

Dennoch, sobald du ne Hochspannungszündung hast kann das schön üble 
Störungen auf der Versorgung geben. Irgentwo müssen auch die Störungen 
herkommen, die einkoppeln... (Das mit dem "nur Batterie-Modus" hab ich 
wohl überlesen: Also noch mal zu meinem persönlichen Verständnis: Treten 
die Probleme auch auf, wenn außer deiner Schaltung NIX anderes in deiner 
Zielapplikation läuft?! - Wenn ja schau dir mal deinen Oszilllator an, 
ob der stabil schwingt...)
Wenn nein, kannst du ja auch mal das umgekehrte Vorgehen ausprobieren 
und die anderen Verbraucher stück für Stück vom Bordnetz abklemmen, bis 
das Problem nicht mehr besteht. Der zuletzt Abgeklemmte ist dann 
zunächst verdächtig. Wieder anklemmen und schauen, ob die Probleme 
wieder da sind. Wenn ja -> Schuldiger gefunden, wenn nein, weitersuchen. 
Wenn du den Verursacher gefunden hast kannst du u.U Rückschlüsse ziehen 
was für Probleme die beiden miteinander haben...

Wie gesagt, das ein µC resettet, bloß weil "normale" Störungen über die 
"normalen" Beinchen reinkommen ist eher unwahrscheinlich. Wenn du aber 
ne kräftige Überspannung an die Pins bekommst ist das Verhalten nicht 
mehr definiert, da ist alles drin, von Ignorieren über Reset bis zum 
Rauchwölkchen... Also, wenn du sicher gehen willst dann ne 
Eingangsschutzbeschaltung wie du sie oben gezeichnet hast an jeden 
Eingangspin und die Ausgangspins auch entsprechend schützen.

ABER: Es nützt nix, wenn du jede Menge Sicherheitsschaltungen 
übereinander stapelst und hoffst, dass es irgentwann geht. Ultima ratio: 
Nimm die Peripherie runter, bring erst mal den µC ab sich zum Laufen, 
dann ab damit in deine Applikation, wenns da stabil läuft, die 
Peripherie Stück für Stück dranbauen. Wenns hakt das zuletzt drangebaute 
wieder abnehmen (schauen ob der Fehler wieder verschwindet) und sich das 
Stückchen Peripherie genauer vornehmen.

Super für die allgemeine Vorstellung wäre ein halbwegs kompletter 
Schaltplan nebst Bild des Aufbaus (am Besten von oben und unten...)

Viele Grüße,
Tom

von Stefan R. (stefan09)


Lesenswert?

Hallo zusammen !

Es hat zwar ne ganze weile gedauert, aber ich glaube ich hab den Fehler 
gefunden. Er ist zumindest seitdem nicht mehr aufgetreten.

Schuld waren die Kondensatoren vom Quartz, und das nicht gesetzte CKOPT 
- Bit !

Und zwar hat mein Quartz einen CL von 32pF (was wohl nicht dem 
Atmel-Standard entspricht), d.h. die Kondensatoren sollten zw. 54pF und 
62pF liegen( C1=C2=2*CL-CS ->  CS=Streukappazität zw.2-10pF).
Ich hatte allerdings nur 22pF !

Ausserdem wird empfohlen das CKOPT-Bit bei "verseuchter" Umgebung zu 
setzen.

>...When CKOPT is programmed, the Oscillator output
>will oscillate a full rail-to-rail swing on the output. This mode is
>suitable when operating in a very noisy environment...

Vielleicht hilft es ja dem einen oder anderen auch weiter !

Danke an alle die mir geholfen haben !

Gruß Stefan

von spess53 (Gast)


Lesenswert?

Hi

Na ja. Aber erst mal alles dem bösen EMV in die Schuhe schieben.

MfG Spess

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.