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
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.
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
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.
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"
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.
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
>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.
@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."
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.