Forum: Mikrocontroller und Digitale Elektronik EMV-stabile Software?


von Lukas D. (lukas_d)


Lesenswert?

Hallo Leute,

eine Software die ich geschrieben habe läuft bei der EMV-Prüfung nicht 
immer optimal. Oft bleibt der Prozessor zum Beispiel hängen und es geht 
nichts mehr oder das Display zeigt wirres Zeug an. Daher wollte ich mich 
mal erkundigen ob es auch Software seitig Möglichkeiten zur 
Stabilisierung des Programmablaufs gibt. Ich bin offen für alles was 
euch einfällt. Vielen Dank.

Mit freundlichen Grüßen

Lukas

von Dominik S. (dasd)


Lesenswert?

Lukas D. schrieb:
> eine Software die ich geschrieben habe läuft bei der EMV-Prüfung nicht
> immer optimal. Oft bleibt der Prozessor zum Beispiel hängen und es geht
> nichts mehr oder das Display zeigt wirres Zeug an.

Das liegt aber nicht an der Software sondern daran, dass das 
Hardware-Design nicht EMV-gerecht designed wurde.

: Bearbeitet durch User
von Ellen Moore (Gast)


Lesenswert?

Es gibt keine EMV stabile Software, denn bei einem schlechten HW Design 
wird es unweigerlich zu unerwünschten Zuständen kommen. Man kann nur die 
Wahrscheinlichkeit minimieren, dass dies passiert.

von Hugo (Gast)


Lesenswert?

Vermutlich ist es eher ein HW Problem.
Es gibt aber durchaus auch softwareseitig Dinge, die man tun kann.
Stichworte: einstellbare Flankensteilheit z.B. oder bei gößeren 
Controllern (STM32) die einstellbare Taktfrequenz mancher Ausgänge, oder 
keine floatenden Eingänge (z.B. interne PullUps per Software 
aktivieren).
Watchdog aktivieren... ist aber ein weitläufiges Thema.

von hmm (Gast)


Lesenswert?

Wenn das Display wirres Zeug anzeigt, dann einfach prophylaktisch 
refreshen. So ist beim Test zwar murx aufm Display, aber ne Sekunde 
später ist wieder alles da...

von H.L.P. (Gast)


Lesenswert?

Lukas D. schrieb:
> Daher wollte ich mich
> mal erkundigen ob es auch Software seitig Möglichkeiten zur
> Stabilisierung des Programmablaufs gibt.

Für die EMV-Festigkeit trägt die Software eine ähnlich große 
Verantwortung wie die Hardware. Es gibt sehr viele Möglichkeiten die 
Software stabiler zumachen:
- keine undefinierten Werte in Variablen
- eingelesene Werte mehrfach einlesen und vergleichen
- Werte im EEPROM dreifach ablegen und Werte im Programmablauf damit 
permanent aktualisieren
- am Ende ungenutzter Bereiche im ROM sinnvolle Sprungbefehle setzen
- Daten zur Anzeige auf Displays, LEDs usw. ständig neu senden
- Hauptprogramm als Schleife laufen lassen
- Timeouts einbauen

... und so weiter und so fort.

von Karl H. (kbuchegg)


Lesenswert?

Das wichtigste ist aber, erst mal die Hardware EMV-gerecht zu machen. 
Ein µC der ständig abstürzt (bei korrektem Programm) ist eindeutig ein 
Hardware-Problem.
Das macht ja auch keinen Sinn, wenn der µC alle paar Minuten per 
Watchdog rebooten muss und man softwaremässig eine Menge Aufwand in 
Wiederaufsetzstrategien steckt, um das Programm an der Stelle weiter 
machen zu lassen, wo der µC abgestürzt ist.

von Helge A. (besupreme)


Lesenswert?

Einen Watchdogtimer aktivieren und damit einen Reset ausführen, wenn 
dein Controller sowas drin hat.

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


Lesenswert?

Helge A. schrieb:
> Einen Watchdogtimer aktivieren und damit einen Reset ausführen, wenn
> dein Controller sowas drin hat.
Ja, das ist die längere Schreibweise für "Murks"...

von Peter D. (peda)


Lesenswert?

Man kann in der SW ne ganze Menge tun für die EMV, z.B.:

Die SW muß alle Signale auf Plausibilität prüfen (Dauer, Pegel, 
Verlauf).
Sie darf an keiner Stelle blockieren können.
Ist auf etwas zu warten, muß entweder ein Timeout gestartet werden oder 
das Warten nebenläufig erfolgen.

Ein Displayabsturz kann HW- oder SW-Ursachen haben. Das sollte man 
abklären und nicht einfach zyklisch neu initialisieren.

Der Watchdog hilft in keinster Weise bei Schlamperei in der HW- oder 
SW-Entwicklung. Er ist während der Entwicklungs- und Testphase 
grundsätzlich zu deaktivieren.

: Bearbeitet durch User
von TTL (Gast)


Lesenswert?

EN61508 hilft weiter

von Hoppla ! (Gast)


Lesenswert?

LCD sind ein Problem, denn die kann man nicht schirmen. Dort muss man 
periodisch alles refreshen. Ich schreibe zB immer alles neu. Der 
Bildschirm inhalt ist im RAM, wird dort immer neu erzeugt, und wird 
periodisch mit dem Timer auf das LCD gespuelt. Wenn man moechte kann man 
auch periodisch einen Reset des LCD durchfuehren.

von Daniel V. (danvet)


Lesenswert?

Mal einen Oszillator für die CPU verwenden, statt einem Quarz. Hat bei 
uns geholfen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?


von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Sowas ähnliches hatte ich auch mal.
Bei meiner Kaffeemaschiene schalte ich die Komponenten mit 
überdimensionierten Schützen für den gewissen RUMMS.

Nur hatte sich der Prozessor ab und zu aufgehangen wenn ein Schütz 
schaltete.
Langes hin und her ergab, dass sich der AVR immer beim Busyflag auslesen 
erhängt hat.
Ein Ferrit im Displayflachkabel löste das Problem auch nicht.
Das Display noch weiter weg von den Schützen positionieren war auch nich 
möglich.
Also Display ohne Busyflag und mit delays angesteuert und es wird 
periodisch neu initialisiert und neubeschrieben.

Das Display hängte sich bei mir als auf und gab kein Busyflag mehr 
aus...

von oszi40 (Gast)


Lesenswert?

Eigentlich braucht man stabile Hardware und Deine gewünschte SW ist nur 
eine Art der Lebensversicherung falls doch mal was schief geht. Dann 
reicht es aber nicht das Display mit neuen Fehlern zu beliefern, sondern 
das System sollte ein Log führen warum der Fehler entstand, damit man 
später Hinweise zu deren Beseitigung hat. z.B. falscher Wert am Eingang 
...

von Hoppla ! (Gast)


Lesenswert?

Das Busyflag braucht es nicht, ein timer ist genuegend

von L. P. (lpg)


Lesenswert?

Hi,

bei WELCHEM Test der EMV-Prüfung tritt der Ausfall auf?
Störaussendung oder Störbeaufschlagung?
Ich gehe mal davon aus das das bei Störbeaufschlagung passiert. Jetzt 
wär dann noch die Feldstärke und Frequenz interessant bei/(ab wann) der 
Fehler auftritt.

lg.

von Hoppla ! (Gast)


Lesenswert?

Naja, irgewas zwischen null und 3GHz wird schon ins Display reingehen...

von Christian B. (luckyfu)


Lesenswert?

bei der EMV sidn aber nicht nur Störaussendung und Störfestigkeit zu 
Prüfen sondern auch die Gemeinen Sachen wie z.B. Burst und Surge. Die 
bekommen die Hardware idR mehr zum Schwitzen.
Dann hat man schlussendlich noch ESD Entladungen. Beim Display immer 
wieder für eine Freude gut.

von Lukas D. (lukas_d)


Lesenswert?

Vielen Dank erstmal für eure Antworten. Sehr interessant was hier alles 
so zusammenkommt (:

> bei WELCHEM Test der EMV-Prüfung tritt der Ausfall auf?

Beim Bursttest.

Das Display ist in diesem Fall eine 4 x 7 Segmentanzeige kein LCD.

von Christian B. (luckyfu)


Lesenswert?

Dann würde ich mir ganz Klar mal die Spannungsversorgung und die 
Kabelverlegung anschauen. Am Besten das Netzkabel weit weg von allem 
idealerweise nur vom Stecker zu einem Line Filter und dann so kurz wie 
möglich ins Netzteil. Wenn du einen Kabelbaum im Gerät hast, worin das 
Netzkabel und irgendein Signalkabel eine gewisse Zeit zusammen ist musst 
du dich nicht wundern.
Es kann aber auch sein, daß sas NT selbst aufgibt: dann musst du 
entweder ein anderes nehmen oder mit geeigneten Maßnahmen deine 
Spannungsversorgung Puffern, damit sie kurze Ausfälle übersteht.

: Bearbeitet durch User
von L. P. (lpg)


Lesenswert?

@Christian B

Christian B. schrieb:
> Spannungsversorgung Puffern

da gehts weiter mit Layout usw...

Beitrag "Folgethread zu EMV-Stabilere Software? Hardwarebetrachtung!"

lg.

: Bearbeitet durch User
von Daniel V. (danvet)


Lesenswert?

Lukas D. schrieb:
> Vielen Dank erstmal für eure Antworten. Sehr interessant was hier alles
> so zusammenkommt (:
>
>> bei WELCHEM Test der EMV-Prüfung tritt der Ausfall auf?
>
> Beim Bursttest.
>

Quarz durch Oszillator ersetzen !

von Christian B. (luckyfu)


Lesenswert?

Das bringt hier vermutlich null

von Hoppla ! (Gast)


Lesenswert?

Wir reden von einem Metallgehaeuse mit Netzfilter am Netzeingang? Und 
alle Signalleitungen, die das Gehaeuse verlassen sind mit Kondensatoren 
abgeblockt ?

von Daniel V. (danvet)


Lesenswert?

Christian B. schrieb:
> Das bringt hier vermutlich null

Naja, wenn das Layout schon Murks ist...

von Xx (Gast)


Lesenswert?

Lukas D. schrieb:
> Beim Bursttest.

Dann nimm doch eine Antenne die den Burst empfängt, einen 
Interrupt/Reset auslöst und alles neu initialisiert.

Deine EMV Störfestigkeit wird traumhaft sein ;-).

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.