Forum: Mikrocontroller und Digitale Elektronik Emv gerechte Programmierung Msp430


von Flo (Gast)


Lesenswert?

Hallo erstma!

Momentan programmiere ich im Rahmen meiner Bachelorartbeit einen Msp430. 
Am Ende soll damit ein verkaufsfähiges Produkt entstehen.

Natürlich muss ich dafür wohl auch nen EMV Test machen. Das Gerät soll 
USB powered sein. Das ist wohl erstmal gut weil keine hohen Ströme 
fließen. Da ja der MSP430 mit 3,2V auskommt wollte ich das nutzen und 
durch einen Step Down Konverter ein bisschen mehr Power zur verfügung 
haben(jetzt nich meckern klar! hab ich nich mehr power kann die 
Vorhandene aber besser nutzen denke ich mal da ich ja statt 500mA mit ca 
700mA rechnen kann werd die aber eh nich ganz ausnutzen). Welchen 
Konverter ich da nutze weiss ich noch nich so genau aber es gibt ja 
genug zur Auswahl (Vielleicht habt ihr ja ne Empfehlung).

Was mir aber mehr Bauchschmerzen macht ist halt dieser EMV Test und 
Besonders der Burst Test. Nach der Definition muss das Gerät während des 
Tests ja nich einwandfrei Funktionieren. Danach soll es aber wieder in 
die Aktuelle Position zurückkehren. Also keine gespeicherten Werte 
verlieren die während des Betriebs gespeichert wurden.
Dafür dachte ich nehm ich den Flash dann her also wenn der User ne 
Einstellung ändert wird die im Flash gespeichert.

Was aber eher ein Problem ist was ist mit Program internen Daten, die 
ich ja nich im Flash speichern kann wegen Geschwindigkeit und den max 
100000 zugriffen. Ich Arbeite mit mehreren Übertragungs Protokollen 
Arbeite u.a. Midi und Spi.

Das problem bei Midi ist das es mindestens mit 3 aufeindarefolgenden 
Bytes arbeitet, da ich aber nach jedem Empfangs bzw Sende Vorgang den 
Interrupt verlasse um Zeit für andere Sachen zu haben arbeite ich mit 
Cases. Dies tu ich auch in vielen anderen Fällen. Wenn ich nun davon 
Ausgehen soll das mein Programm jederzeit gestört werden kann, kann es 
natürlich auch zum Verlust des aktuellen Cases kommen.

Wär es vielleicht hier mal ne Sinnvolle Anwendung für den 
Watchdogtimer...
(hab denn bisher in allen früheren Anwendungen immer sofort ausgemacht)
damit ich wieder in nen definierten Zustand komme wenn die Zustände 
nicht in in einer definierten Reihenfolge ablaufen.


Leider kann ich meinen Programmcode aus rechtlichen Gründen nicht Posten 
ich würde mich aber total freuen wenn mir jemand vielleicht allgemeine 
Hinweise geben könnte um mein Gerät stabiler zu machen.

liebe Grüße und nen schönes WE

Flo

von Helmut L. (helmi1)


Lesenswert?

Die Daten die waehrend der Stoerung im uC RAM liegen sind dann eh weg 
bzw. nicht in Korrekt.
Du must nur dafuer sorgen das der uC nach einer Stoerung wieder 
kontrolliert anlaeuft. Und das kannst du mit dem Watchdog erreichen. Das 
die letzte Messung dann nicht OK ist muss halt in kauf genommen werden. 
Ich habe selber mit dem MSP430 eine Messbox entwickelt wo die 
Anforderungen noch viel hoeher lagen (400kV Hochspannungsueberschlag in 
ca. 5m Entfernung) und habe die Tests bestanden.

von Flo (Gast)


Lesenswert?

Aber kann ich denn davon ausgehen, dass der sich irgendwo aufhängt und 
den Timer nich zurücksetzt oder sollte man in allen Zustandsketten 
abfragen ob die auch korrekt abgearbeitet wurden.


kann ich da irgendwie Schaltungstechnisch noch was machen

von Purzel H. (hacky)


Lesenswert?

Der EMV Test ist nicht so schwierig wenn man sich an ein paar Regeln 
haelt.
1) Leiterplatte mit GND Plane, 4 Lagig ist noch besser
2) Bei 2 lagiger Leiterplatte oben und unten mit GND fuellen und mit 
einer grosszuegigen anzahl Vias verbinden.
3) Industriegeraete im Metallgehaeuse. Das Metallgehaeuse liegt auf 
Erde. Die Leiterplatte kann auf Erde liegen, oder auf GND. Falls GND 
ungleich Erde, muessen beide mit hinreichend mit Keramikkondensatoren 
verbunden sein.
4) Alle DC kabel, die die Leiterplatte verlassen mit 100nF gegen GND 
oder ERDE abblocken, und zwar direkt am Stecker. 1 Zoll Draht, oder 
Leiterbahn ist schon eine gute Antenne fuer Signale oberhalb 1GHz. Die 
EMV Richtlinie geht bis 3GHz. Irgendwelche RF, die auf das Kabel 
einkoppelt sieht so einen Kurzschluss.
5) Alle Signalkabel, mit Signalen langsamer 100kHz, werden mit 1nF gegen 
GND resp ERDE geblockt. Irgendwelche RF, die auf das Kabel einkoppelt 
sieht so einen Kurzschluss.
6) Netz sollte man vermeiden. Da gelten strengere Anforderungen. Also 
lieber ein externes 5Voder 12V Netzteil.

Abweichungen sind moeglich, wenn man genau weiss was mach macht und 
weshalb. Medizingeraete gehoeren zu den Ausnahmen.

von Helmut L. (helmi1)


Lesenswert?

Flo schrieb:
> Aber kann ich denn davon ausgehen, dass der sich irgendwo aufhängt und
> den Timer nich zurücksetzt oder sollte man in allen Zustandsketten
> abfragen ob die auch korrekt abgearbeitet wurden.

Wenn du den WD nicht bedienst wird der nach einiger Zeit zubeissen und 
den uC wieder auf den Boden der Tatsachen zurueck holen.

Zur weiteren Sicherheit kannst du ja Plausibilaeteskontrollen einbauen 
ob die Ergebnisse im korrekten Bereich liegen.

>kann ich da irgendwie Schaltungstechnisch noch was machen

Du kannst in den Zuleitungen Filter einbauen. (EMV , Burst , Surge etc.)
Gemaess der Regel "Nur so schnell schalten wie noetig nicht so schnell 
wie moeglich"

von Flo (Gast)


Lesenswert?

Super dankeschön,

Werd das dann schonmal im Hardware design beherzigen.
@Pico Oschi ist sowieso vom USB gepowered deshalb brauch ich mir darum 
keine sorgen machen wegen Netzteil

Am Ende muss man halt die Daumen drücken denke ich mal. Das gute ist ds 
wir an der Uni ne EMV Kammer haben und ich den Test zur Not ein paar mal 
machen kann.

Die Vorstellung macht einem halt nur Bauchschmerzen das der Fehler immer 
und überall im Programm eintreten kann.

von Arc N. (arc)


Lesenswert?

Flo schrieb:
> Aber kann ich denn davon ausgehen, dass der sich irgendwo aufhängt und
> den Timer nich zurücksetzt oder sollte man in allen Zustandsketten
> abfragen ob die auch korrekt abgearbeitet wurden.
>
>
> kann ich da irgendwie Schaltungstechnisch noch was machen

Kommt drauf an wie die Schaltung jetzt aussieht...
Für USB z.B. 
http://www.we-online.de/web/de/index.php/show/media/passive_bauteile_-_standard/download_center/application_notes_berichte/Robustes_Design_von_USB_20_Anwendungen.pdf
Von TI z.B.
http://www.ti.com/lit/ml/slap126/slap126.pdf
http://www.ti.com/lit/an/szza009/szza009.pdf

von Purzel H. (hacky)


Lesenswert?

>Am Ende muss man halt die Daumen drücken denke ich mal. Das gute ist ds
wir an der Uni ne EMV Kammer haben und ich den Test zur Not ein paar mal
machen kann.

.. vielleicht ein Opferhuhn, oder ein Opferlamm, oder eine kleine Spende 
...
Nee. EMV  macht man in erster Linie mit der Hardware. Watchdog und 
Softwaremassnahmen sind Symptombekaempfung. Wenn man allerdings ein LCD 
dabei hat, hat man schon mal schlechtere Karten, denn man hat eine 
hinreichen grosse Oeffnung im Gehauese, um 1-3GHz eine Ausbreitung zu 
ermoeglichen. Dann muss man's auch mit der Software machen. zB muss man 
das LCD periodisch neu initialisieren, und periodisch neu beschreiben.

von Flo (Gast)


Lesenswert?

@Pico Oschi
in die ganze Opfergeschichte muss ich mich noch einlesen ;)


ne aber im ernst hier das war der grund meiner Verunsicherung

http://www.nkl-emv.de/downloads/seminar2.pdf
Seite 43 bzw 3 in dem Dokument
"Als übergeordnete Regel gilt aber immer, daß das Gerät keinen 
unsicheren oder
gefährlichen Zustand annehmen darf ! Deshalb sollten Geräte, von denen 
ein Gefährdung im
sicherheitstechnischen Sinne ausgehen könnte, immer so konstruiert sein, 
daß auch bei einer
Fehlfunktion der Elektronik durch andere Maßnahmen (Schmelz- oder 
Thermo- sicherungen,
mechanische Endschalter etc.) eine Gefährdung ausgeschlossen ist.
Dies bedeutet in der Praxis, daß hauptsächlich digital gesteuerte 
(Mikroprozessor) Geräte bei
dieser Prüfung Probleme bereiten können. Ein rein analoges Gerät, z. B. 
ein Differenzspannungsverstärker
für Temperatur-Sensoren, wird zwar während der Prüfung vorübergehend
einen falschen Meßwert ausgeben, aber nach Abschalten der Störimpulse 
wieder in den
normalen Betriebszustand zurückgehen, sofern keine dauerhafte 
Beschädigung der Elektronik
eingetreten ist. Diese muß natürlich auf jeden Fall verhindert werden."

von Flo (Gast)


Lesenswert?

Ach so und
@Arc Net thx a lot!

von Arc N. (arc)


Lesenswert?

Pico Oschi schrieb:
> Nee. EMV  macht man in erster Linie mit der Hardware. Watchdog und
> Softwaremassnahmen sind Symptombekaempfung.

I/Os die nicht auf einem festen Potential liegen...oder nur mit (zu) 
schwachen internen Pull-Ups/Downs gehalten werden...
Watchdog: Hier z.B. USB + ESD-Schutz + gutes Layout heißt noch lange 
nicht, dass der Controller mit dem was danach noch angekommt auch 
"umgehen" kann.
Oder was passiert bei einem Fehler in einem ext. Bauteil wenn bspw. mit 
while (irgendwas) { } auf etwas gewartet wird ohne z.B. einen Zähler in 
der Schleife runterzuzählen.

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.