Hallo, Ich kämpfe mit EMV Problemen in Kombination mit einem SDIO Interface bei einer STM32F4 MCU. Mittlerweile wurde auf eine 4-lagige PCB umgestellt (Top,GND,VCC,Bottom) aber ich bin immer noch knapp über dem geforderten Grenzwert bei der Emissionsmessung. Ist keine MicroSD Karte gesteckt, ist alles in Ordnung, also muss es daran liegen. Anbei ein Bild meines Layouts, eine Messung mit und eine ohne SD Karte und die Längen der Leitungen. Ich weiß dass man das Routen noch schöner hinbekommen kann, schau ich mir aber andere Schaltungen (bzw. Layouts) an, ist mein Layout auch nicht viel schlimmer. Als Referenzschaltung hab ich das STM32-H407 [1] von Olimex herangezogen, wobei die aber höchstwahrscheinlich auch keine EMV Messungen mit dem Board gemacht haben. Kann jemand sagen ob das Layout daran schuld ist? Kennt jemand gute Referenzdesigns mit Layouts? [1] https://github.com/OLIMEX/STM32F4/tree/master/HARDWARE/STM32-H407
Hm...sieht das nur so aus, oder hast du die Vcc- und Gnd-Lage mit Leiterbahnen zersiebt? Wie schnell schaltet der Chip? Kannst du den dazu bringen, langsamer zu schalten?
Hallo, auf deinem Bild ist etwas schwer zu erkennen, auf welchen Layern welche Signale verlegt sind. Um geringe Abstrahlungen zu erreichen, ist es sehr hilfreich, wenn die kritischen Signale direkt über einer durchgehenden Fläche (GND oder Versorgung) liegen. Ist das bei dir so? Ansonsten könntest du noch versuchen, in die Taktleitung direkt am Controller einen Reihenwiderstand (Wert irgendwo im Bereich 47 - 82 Ohm) einzubauen, der Reflexionen in der Leitung dämpft. Fast imer ist die Taktleitung der größte Störstrahler. Wenn es in der Taktleitung hilft, könntest du die anderen Leitungen evtl. auch auf ähnliche Weise terminieren. Ansonsten könnte es auch sein, dass die Störungen über die Spannungsversorgung abgestrahlt werden. Hier könnten dann Stützkondensatoren und SMD-Ferrite eine verbesserung bringen.
Ja, ich hab eine eigene GND und VCC Lage (siehe Beschreibung) über den ganzen Bereich, das sollte also nicht das Problem sein. Hatte ich Anfangs nicht, deshalb wurde auch auf vier Lagen umgestellt. I hoffte dadurch die Störaussendung in den Griff zu bekommen. Es wurde auch deutlich besser, doch der eine Peak bei 178.25MHz blieb. Meine Überlegung war auch in alle relevanten Leitungen ein 0603er Package rein zu setzten und dann mit verschiedenen Induktivitäten oder Widerständen zu experimentieren. In der Versorgung hab ich bereits zwei Stützkondensatoren und eine Induktivität sitzen. Anbei noch die Beschaltung. Wie gesagt, die Schaltung hab ich von Olimex übernommen. lG, Markus
Treiberstärke der I/Os reduzieren könnte helfen, das geht bei STM32ern.
Summsumm schrieb: > Treiberstärke der I/Os reduzieren könnte helfen, das geht bei STM32ern. Hmm, das kannte ich noch nicht. Muss ich mir anschauen
Entferne das Kupfer unter der SD-Karte und lege den Schirm des SD-Sockels über ein 0603-Package auf Ground. Fang mal mit einem 100n als Koppelkondensator an. Alternativ: Fläche unter dem Sockel auf Schirmpotential legen, das über ein 0603-Package mit Ground verbunden ist. Keine anderen Signale oder Planes in diesem Gebiet haben. Meine Überlegung geht dahin, dass die SD-Karte irgendwelche Störungen in Deine Schaltung einkoppelt. fchk
Deine Taktfrequenz ist zu stabil. Wenn die Frequenz über die Mittelungszeit des EMI Empfängers ausreichend durch die Gegend eiert, verschmieren die Peaks im Spektrum und jagen nicht mehr durch die Grenzkurve. Die Abstrahlung wird dadurch nicht geringer, aber die EMV-Fuzies mit ihren Grenzkurven sind befriedigt.
Die F4 können SpreadSpectrum mit der PLL. Ansonsten sehe ich auch keinen wirklichen Returnpfad von der SD Karte zum STM32, irgendwas schneidet da immer. Muss die SD Karte denn mit maximalen SDIO Takt laufen? 5-10MHz tuhens meistens auch und dann lässt sich die Treiberstärke der GPIO schon ordentlich drosseln.
Markus M. schrieb: > Meine Überlegung war auch in alle relevanten Leitungen ein 0603er > Package rein zu setzten und dann mit verschiedenen Induktivitäten oder > Widerständen zu experimentieren. Hallo, ich würde in jedem Fall Serienwidestände vorsehen. Zumindest in der CLK Leitung würde ich auf jeden Fall 33 oder 22 Ohm in Serie einsetzen. Die dürfte auch bei dir das dominante Problem sein. Die Widerstände schaden auch nicht in den Datenleitungen. Von der Größe her musst du halt abwägen (besser messen) ist das ein Trade-off zwischen Signalintegrität (Flankensteilheit und -sauberkeit) und EMV. Du wirst schon ein besseres Oszilloskop brauchen (400 MHz aufwärts) um das sauber bewerten zu können. Der Serienwiderstand für die Clock gehört auf jeden Fall ganz nah an den SDIO Master (STM32) hin. Über die in den Datenleitungen lässt sich wegen der Bidirektionalität im SDIO trefflich streiten. Ein Vorredner hat ja schon die Driver-Strength erwähnt, die ist natürlich auch eine Idee. Eine andere Erklärung wäre natürlich die interne Taktgenerierung im STM32 die irgendwo herausleckt (nicht notwendiger Weise an den SDIO Leitungen) welche nur aktiviert wird wenn du das SDIO auch nutzt. Bei Ethernet hatte ich mal so einen Fall bei einem STM32 wo am Master-Clock-Out Pin (zwangsaktiviert aber frei hängend da unbenutzt) der Takt böse rausgestrahlt hat. Zuerst würde ich aber die Serienwiderstände versuchen die sollten dir die paar dB die du brauchst schon bringen. Generell finde ich dein Decoupling nicht ganz ideal. Deine Kondensatoren hängen immer wie Stubs da. Ich versuche immer den Strom zu zwingen über das Kondensatorpad zu fließen. Also Via von Versorgungsfläche -> Leiterbahn -> Kondensatorpad -> Leiterbahn -> IC-Pin. Bei dir ist es Kondensatorpad -> Via von Versorgungsfläche -> IC-Pin. Das Decoupling von der SD-Karte dürfte angesichts der Leiterbahnlänge eher wenig wirken und für hohe Frequenzen solltest du noch 10nF parallel dazu hängen. Ich nehme mal an, dass du eine beidseitige Bestückung vermeiden willst, ansonsten sollte das Decoupling natürlich direkt unter den Versorgungspin der SD-Karte auf eine kleine Kupfer-Insel die dann z.B. mit 6 oder mehr Vias durchkontaktiert auf eine kleine Kupfer-Insel um den Versorgungspin des SD-Kartenhalters geht. Die Signalleitungen wirken mir auch ein wenig unnötig lang wegen der Via-Anordnung. Also zu weit weg geroutet und dann wieder zurück auf der anderen Lage. (Und versuchen 50 Ohm impedanzkontrolliert zu routen wenn es dein Lagenaufbau bzw. die daraus entstehende Leiterbahnbreite zulässt.) Dass GND- und 3,3V Lage durchgehend sind nehme ich mal an oder? Wenn die SDIO Leitungen über einen Plane-Split gehen strahlt das halt gerne. Bestehst du denn bei den leitungsgebundenen Störungen? Und wie wurden das Spektrum aufgenommen (in der Kammer oder aushalb mit Antenne oder mit Nahfeldsonden?) Anbei noch dein annotiertes Layout zum Decoupling
Mw E. schrieb: > Ansonsten sehe ich auch keinen wirklichen Returnpfad von der SD Karte > zum STM32, irgendwas schneidet da immer. Wie gesagt, es gibt eine eigene GND plane unter der TOP plane. Da sollte es genug Returnpfade > Muss die SD Karte denn mit maximalen SDIO Takt laufen? 5-10MHz tuhens > meistens auch und dann lässt sich die Treiberstärke der GPIO schon > ordentlich drosseln. Nein, das werd ich mir anschauen.
Markus M. schrieb: > Wie gesagt, es gibt eine eigene GND plane unter der TOP plane. Da sollte > es genug Returnpfade So wie ich das sehe, wechselst du allerdings öfters zwischen TOP und BOTTOM. Damit verlierst du den Rückpfad, der sollte auf einer durchgehenden GND-Plane direkt unter der Leitung verlaufen.
Andi schrieb: > So wie ich das sehe, wechselst du allerdings öfters zwischen TOP und > BOTTOM. > Damit verlierst du den Rückpfad, der sollte auf einer durchgehenden > GND-Plane direkt unter der Leitung verlaufen. Wieso verliert man durch die VIAs den Rückpfad? Ich weiß schon was du meinst denke aber nicht dass das so ist. Unter allen Datenleitungen befindet sich eine Massefläche nur in den Bereichen der VIAs muss der Strom um diese "herum laufen". Wobei das jetzt kein großer Umweg ist und dadurch auch keine Fläche aufgespannt wird. Sicher ist es schöner wenn alles nur über den TOP Layer geroutet wird, denke aber nicht dass das so kritisch ist. Betonung auf denken und nicht wissen!
Markus M. schrieb: > Es wurde auch > deutlich besser, doch der eine Peak bei 178.25MHz blieb. Wo kommt überhaupt diese Frequenz her? Mit welcher Frequenz betreibst du das SDIO? Das ist ja kein Vielfaches der üblichen Verdächtigen 24 MHz und 37,5 MHz (Maximum beim F4 dank Errata).
Mw E. schrieb: > klingt wie 22,x MHz beim SDIO wenn man die Freq/8 nimmt. Um diesen Takt zu erreichen müsste man aber die 48-MHz-PLL mit 44,5 MHz betreiben. Man muss die zwar nicht zwangsweise mit 48 MHz betreiben und kann sie sogar "übertakten", aber außer der genannten Errata gibt es m.W. keinen Grund das zu tun, und hierbei würde man die PLL-Frequenz ja auch erhöhen (auf 75 MHz) und nicht senken. Man könnte mal probieren, die SDIO-Frequenz zu variieren und schauen, ob sich das Spektrum ändert...
Dr. Sommer schrieb: > Wo kommt überhaupt diese Frequenz her? Mit welcher Frequenz betreibst du > das SDIO? Das ist ja kein Vielfaches der üblichen Verdächtigen 24 MHz > und 37,5 MHz (Maximum beim F4 dank Errata). Das frag ich mich generell auch. Wobei man das ja bei Rechtecksignalen wie einem Clock durch die steilen Flanken ja nie so genau sagen kann. Anbei mal ein Screenshot vom SDIO Takt. Die 6.8MHz kommen mir auch komisch vor (gemessen mit einem 100MHz Oszi).
Markus M. schrieb: > Anbei mal ein Screenshot vom SDIO Takt. Die 6.8MHz kommen mir auch > komisch vor (gemessen mit einem 100MHz Oszi). Ja sehr! CLKDIV auf 5 gestellt (d.h. Division des 48MHz-Takt durch 7)? Im RefMan heißt es ja: SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]. Zeig mal deine SDIO-Initialisierung. Sicher dass der Systemtakt korrekt ist? Vielleicht mal den Quarz oszilloskopieren, oder den internen Systemtakt auf MCO ausgeben lassen (RCC_CFGR -> MCO1/2)
Du kannst ja mal versuchen, aus etwas Draht eine provisorische H-Feldsonde zu bauen. Damit kannst du mal um deine Platine herumgehen und versuchen, die Stelle lokalisieren, die da so strahlt (Stichwort Triangulation). http://www.eevblog.com/forum/projects/diy-magentic-field-probes/
Markus M. schrieb: > Wieso verliert man durch die VIAs den Rückpfad? Ich weiß schon was du > meinst denke aber nicht dass das so ist. Unter allen Datenleitungen > befindet sich eine Massefläche nur in den Bereichen der VIAs muss der > Strom um diese "herum laufen". Wobei das jetzt kein großer Umweg ist und > dadurch auch keine Fläche aufgespannt wird. Die Vias an sich sind für die Betrachtung des Rückstroms in dem Fall erstmal egal. Wenn man sich aber vor Augen hält dass der Rückstrom IMMER versucht den kürzesten Weg möglichst nahe der Leitung, also idealerweise in der darunterliegenden Bezugsfläche (GND bzw. VCC-Plane) zu nehmen, wird klar warum das bei den Leitungsabschnitten auf BOTTOM nicht mehr funktionieren kann: Für diese Abschnitte ist deine VCC-Plane die Referenz. Versucht der Rückstrom analog zur Leitung ebenfalls zu wechseln gelingt es ihm nicht und voila, bei jedem Flankenwechsel geht eine Störwelle durch das ganze Stromversorgungssystem. > Sicher ist es schöner wenn alles nur über den TOP Layer geroutet wird, > denke aber nicht dass das so kritisch ist. Aus Sicht der EMV: nicht schöner, sondern zwingend notwendig. Einfache Regeln für High-Speed Leitungen: Impedanzdefiniert routen. Jede Signallage muss zwingend eine GND-Plane als Referenz haben. Keine Lagenwechsel 'unterwegs'. Sprich: unmittelbar am Pin der CPU bzw. des Steckers (idealerweise im Pad direkt) einen Lagenwechsel machen, danach ohne Wechsel zum Ziel und dort wieder nach TOP wechseln. > Betonung auf denken und nicht > wissen! ad denken: du willst eine neue Physik erfinden. ad wissen: du weißt dass die Physik sich nicht austricksen lässt. Eben deswegen gibt es gute Bücher und auch Schulungen zu dem Thema ;) Und auch (sauteure) Messgeräte mit denen man solche Sünden auch messen kann. Theorie: Ist die Karte bei den EMV-Messungen überhaupt in Betrieb? Die Frequenz der Störung deutet ja nicht unmittelbar darauf hin. Die Ursache liegt u.U. gar nicht ausschließlich bei deinen Signalleitungen zur SD-Karte. Ich gehe bei dem Lagenaufbau von der Tatsache aus dass das Stromversorgungssystem 'versaut' ist (Ja, ist einfach so, hat bisher noch jede Messung an Platinen dieser Art erwiesen). Deine eingesteckte Karte wirkt daher u.U. schlicht und einfach als Antenne die dafür sorgt dass die Störungen ein wenig besser 'raus' können.
OK, Ich hab jetzt mal am Layout gearbeitet und versucht alle Vorschläge möglichst gut einzuarbeiten. 1) Ground unter SD Karte entfernt. Das Shield des SD Slots zusammengeführt und via 100nF auf GND verbunden 2) Die Koppelkondensatoren generell besser eingebunden, wie "Rest (Gast)" vorgeschlagen hat. Macht ja auch Sinn. 3) Daten, CMD und CLK Leitung des SDIO verkürtzt. Einmal an der MCU auf die BOTTOM Lage, dann möglichst weit zur SD Karte und wieder auf die TOP zurück. Generell, würde ich es schaffen fast alle SDIO Leitungen nur über TOP zu führen. Bei DAT0 und DAT1 geht es leider nicht. Was noch fehlt sind die Widerstände in all den Leitungen. Die will ich auf jeden Fall noch drinnen haben und gegebenenfalls durch 0R ersetzten. @Rest: Die Messung fand in der Kammer statt. @Dr.Sommer: Den Takt bzw. Initialisierung muss ich mir noch anschauen.
Markus M. schrieb: > @Dr.Sommer: Den Takt bzw. Initialisierung muss ich mir noch anschauen. Ich würde ja die Quelle des Übels als allererstes ausfindig machen, bevor ich am Layout rumbastle und dann feststelle dass etwas ganz anderes schuld war :-)
Was soll denn das bringen die Massefläche zu entfernen? Wenn der Schirm eh über nen Kondensator gekoppelt wird (ist beides kapazitive kopplung nach Masse)? Außerdem sind viele SD Slots UNTEN nicht geschirmt, das wär da dann offen...
Dr. Sommer schrieb: > Ich würde ja die Quelle des Übels als allererstes ausfindig machen, > bevor ich am Layout rumbastle und dann feststelle dass etwas ganz > anderes schuld war :-) Dito. Fast alles, was du auflistest, ist mehr oder weniger Rätselraten (und auch wenn es gut gemeint ist, viele Tipps hier scheinen mir eher aus dem Voodoo-Keller entsprungen denn aus Erfahrung.)
Ich vermute, dass du die Flankensteilheit von Takt- und Datenleitungen siehst. Wenn du diese direkt am Ausgang vom µC durch einen Widerstand beschränkst, könnte es sich bessern. Bei MISO natürlich am Kartensockel.
Markus M. schrieb: > Ich kämpfe mit EMV Problemen in Kombination mit einem SDIO Interface bei > einer STM32F4 MCU. Dein Layout sieht auch ein bissel eigentümlich aus. Einerseits hast du links oben eine ganze Breitseite an GND-Vias abgefeuert und andererseits fehlen dazu die Gegenstücke. Dann hast du Mitte oben die TPGND und TPSWO usw. zusammen mit den Vias links davon so unglücklich gelegt, daß da kein Durchkommen von GND ist, so daß alles nur am GND-Pin 63 hängt (wenn ich mich nicht verzählt habe). Und wenn du schon BE auf der L-Seite hast (wie das unter dem µC), dann könnten deine diversen Hochzieher an den SD-Anschlüssen auch unten un dunter der SD-Fassung liegen. Du hast GND zu sehr zu Lametta zerschnitten, das ist nie gut. Obendrein ist es nicht schädlich, sondern eher besser, wenn du in alle zur SD-fassung gehenden Leitungen so ca. 33 Ohm einschleifst. Sowas gibt es als 4er Block in einem 1206 (ARCxxx). W.S.
Hallo Mmax! Ich danke Dir für Deinen Beitrag, denn genau heute hatte ich Rückfragen von einem Kunden, ob man nicht die Serienwiderstände an der SDcard wegoptimieren/reduzieren könnte. Meine Antwort war: erprobtes Design. Weglassen der Widerstände wird nichts an der Funktion ändern, man wird es nur im EMV-Test sehen. grins Also, um das Design konform zu machen: - Serienwiderstände 22R in alle Datenleitungen zur SDcard - SDcard Power sauber filtern, dass die nicht zurückschlägt ins Board - Transildioden an die Datenleitungen, wenn der SDcard-Sockel benutzerberührbar ist. Sonst fällst Du als nächstes bei der Kontaktentladung durch - keine Schnitte in die Massefläche, saubere Verlegung der Signalleitungen Viel Erfolg! Marcus P.S.: ich bin mir mit W.S., wie meist, einig. Hab nur geantwortet, weil das Thema gerade heute wieder aktuell war...
:
Bearbeitet durch User
Marcus H. schrieb: > - Transildioden an die Datenleitungen, wenn der SDcard-Sockel > benutzerberührbar ist. Sonst fällst Du als nächstes bei der > Kontaktentladung durch Ich weiß jetzt nicht was der TO für einen SDcard-Sockel vorgesehen hat, aber ich vermute mal etwas in die Richtung: https://www.digikey.de/product-detail/de/amphenol-commercial-products/114-00841-68/114-00841-68-1-ND/2187101 Da sind die Pins für die Datenleitung nicht für den Benutzer berührbar, sondern nur der Metallrahmen des Sockels. Letzterer wäre hart auf GND, wie beim TO bisher auch. Hast Du bei so einer Konstruktion die TVS-Dioden in den Datenleitungen gegen die Kontaktentladung gebraucht? Oder ist das für die aufklappbaren Sockel, bei denen man in offenem Zustand die Pins für die Datenleitungen direkt berühren kann? Da würde ich die TVSse auf jeden Fall vorsehen.
Huhu Gerd! Faire Frage. Allerdings ist ESD ein Eichhörnchen und man weiß nicht, wie es durch die Baugruppe wuselt. Auch weiß man nichts über die tatsächlich eingelegte SDcard. Die könnte theoretisch auch über Ihre verschmutzte Ober-/Unterfläche ESD an die Kontakte bringen. Kommt auch auf die Zielanwendung an. Ich habe gern mal mit 15kV Luft / 8kV Kontakt zu tun. ESD ist nicht alles: Zusätzlichbringt die Karte als Antenne ggf. auch weitere Störeinstrahlung in die Datenleitungen. Wenn die Stückzahlen so groß sind, dass die Transildioden teurer sind als ein zweiter EMV-Test, dann kann man die Teile ja optional vorsehen und bei Bedarf einlöten. {Im EMV-Labor, in die Reservebaugruppe, weil die erste ja gerade gegrillt wurde. ;) } marcus
Gerd E. schrieb: > Hast Du bei so einer Konstruktion die TVS-Dioden in den Datenleitungen > gegen die Kontaktentladung gebraucht? Nein, hab keine TVS-Dioden verbaut und bei den ESD Entladungen (+/- 8kv Luft und Kontakt) gibts (mittlerweile) kein Probleme mehr. Die SD-Karte ist zum einschieben [1] und eigentlich kommt man nicht an den Sockel ran, sondern berührt vorher das Gehäuse aus CFK. [1] https://www.pollin.at/p/microsd-speicherkarten-sockel-atom-mr01-ap20324-451526
:
Bearbeitet durch User
Erst mal: Sei dir sicher, dass es die SDIO ist, und nicht die Karte. Probier ein paar verschiedene Karten. Ich hatte schon SD-Karten, die von sich aus Störungen produziert haben. Schließlich ist da ein recht mächtiger Controller drauf. Wenn du wissen willst welche Leitung der SDIO es genau ist: Stell den Messempfänger auf den relevanten Peak. Nimm einen langen Schraubenzieher (oder anderes leitfähiges Objekt) und kontaktier den an die unterschiedlichen Leitungen. Ob du die richtige Leitung gefunden hast, siehst du, wenn der Peak einen Satz nach oben macht. Dadurch kannst du das Problem genauer eingrenzen. Vielleicht ists nur der Clock, und dann kannst du ein kleines RC-Filter einbauen oder so. Impedanzkontrolle kann auch helfen, und deine Masseflächen wurden ja schon angesprochen. Sonst fällt mir noch ein: Beim F4 kann man glaub ich an der "driving strength" rumderehen. Setz die mal runter. Vielleicht hilft es. Viel Glück!
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.