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
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
Vielleicht solltest Du in Deinem Programm mal die "Reset Source" auswerten. Dann siehst Du wahrscheinlich ob es der Reset-Pin oder sie Spannungsversorgung war.
> 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?
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
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
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
> 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
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
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
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.
Was hast Du denn für einen Spannungsregler? LDOs schalten bei etwa 16V ab, als Überspannungsschutz. Peter
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
> 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
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
> 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
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)
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.