Forum: HF, Funk und Felder Störungen durch GSM-Signal - Abschirmung?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael H. (michael_h89)


Lesenswert?

Hallo,

ich bastle gerade an einer Schaltung bestehend aus einem Raspberry Pi 
Pico an dem ein Display (i2c), ein Servo und ein SIM800L GSM-Modul 
(URAT) hängen.

Die Aufgabe des Gerätes ist es, eine GPRS-Verbindung zu einem Server 
herzustellen, einen "Status" abzuholen und diesen am Display 
darzustellen und ggf. den Servo zu bewegen.

Grundsätzlich funktioniert alles einwandfrei nur leider nicht sehr 
zuverlässig. Der Pico (oder auch ein anderes Board mit RP2040 Prozessor) 
"hängt sich immer mal wieder auf" und manchmal "zuckt" der Servo 
unmotiviert.

Als (wahrscheinliche) Ursache habe Störungen durch den 
GSM-Verbindungsaufbau identifiziert. Ich hab nun probehalber das 
SIM-Modul, so weit es das Gehäuse zulässt, vom Pico getrennt und mit 
längeren Drähten verbunden. Die Antenne habe "außen" angebracht (Aber 
nur ca. 10 cm vom SIM800 entfernt, mehr Platz gibt das Gehäuse nicht 
her; das Gehäuse ist aus Holz (12mm Siebdruckplatte), schirmt also nicht 
bzw. wenig).

Den Pico (in einem zusätzlichen Kunststoffgehäuse) und alle 
Verbindungsleitungen (zum Servo, zum Display, zum SIM800 und zur 
Spannungsversorgung) hab ich nun probehalber mit Alufolie umwickelt.

Jetzt funktioniert es zumindest in 99 von 100 Fällen.... also gehe ich 
davon aus, dass tatsächlich "Funkstörungen" die Ursache fürs "Aufhängen" 
sind.

Kennt jemand das Problem? Wie würdet ihr das angehen? Wie kann ich 
geeignet "abschirmen" - die Alufolienlösung gefällt mir nicht ;-)

Bin gespannt auf eure Meinungen und Erfahrungen!

: Verschoben durch Moderator
von Florian L. (muut) Benutzerseite


Lesenswert?

Bild vom Aufbau?

Saubere Versorgung? Modems brauchen einiges an Strom beim senden.

Softwaremechanismen implementiert, um Resetsource herauszufinden?

von Michael H. (michael_h89)


Lesenswert?

Florian L. schrieb:
> Bild vom Aufbau?

Kann ich heute Abend nachliefern

Florian L. schrieb:
> Saubere Versorgung? Modems brauchen einiges an Strom beim senden.

Das Problem tritt mit jeder Art von Versorgung auf. Auch, wenn ich das 
SIM800L mit einer getrennten Quelle versorge (z.B. SIM800 vom 
Labornetzgerät oder Akku und Pico über USB vom PC) - in der Endvariante 
wird alles von einem Akkupack versorgt) - Achja, das SIM800L bleibt ja 
weiterhin verbunden (sichtbar an der StatusLED), nur der Controller 
hängt.

Florian L. schrieb:
> Softwaremechanismen implementiert, um Resetsource herauszufinden?

Es wird kein Reset durchgeführt. Der Pico bleibt einfach stehen (es 
kommen keine Debug-Meldungen mehr in der Console an, das Display "friert 
ein" (lasse zu Testzwechen einen einfachen Counter am Display 
mitausgeben)

von Gerald B. (gerald_b)


Lesenswert?

Das SIM 800 Modul kann bis zu 2A Spitzen ziehen und soll laut Datenblatt 
mit 1000µ gepuffert werden. Lange Leitungen, die vermeindlich die 
Störungen reduzieren, begrenzen durch ihre parasitäre Induktivität dann 
wieder den Strom, so das die Instabilität nur eine andere Ursache 
bekommt.
Auch wenn der 1000µ meist als Tantalelko auf der SIM Platine sitzt, ist 
das A & O eine potente Stromversorgung mit großzügig ausgelegter 
Pufferung mit low ESR Elko und einem zusätzlichen KerKo.

von Michael H. (michael_h89)


Lesenswert?

Gerald B. schrieb:
> Das SIM 800 Modul kann bis zu 2A Spitzen ziehen und soll laut Datenblatt
> mit 1000µ gepuffert werden. Lange Leitungen, die vermeindlich die
> Störungen reduzieren, begrenzen durch ihre parasitäre Induktivität dann
> wieder den Strom, so das die Instabilität nur eine andere Ursache
> bekommt.
> Auch wenn der 1000µ meist als Tantalelko auf der SIM Platine sitzt, ist
> das A & O eine potente Stromversorgung mit großzügig ausgelegter
> Pufferung mit low ESR Elko und einem zusätzlichen KerKo.

Ist soweit bekannt. Parallel zum Original-Kondensator habe ich einen 
Elko gelötet. Wenn ich den weglasse, gibts einen Reboot-Loop, allerdings 
vom SIM800 selbst und nicht vom Pico. (Wie groß sollte der/die 
zusätzliche(n) Kondensatoren deiner Meinung nach sein. Meiner ist mit 
4700uF derzeit wahrscheinlich etwas überdimensioniert.... hatte aber 
gerade nichts anderes zur Hand.)

Mit "längeren Drähten" meine ich etwa 10 cm. Größer ist das Gehäuse 
nicht ;-)

Aber nochmal: das Problem tritt auch auf, wenn das SIM800 (mit 
Zusatzelko) eine getrennte Versorgung hat. Ich kann den Pico auch 
"gezeilt" zum Absturz bringen, wenn ich die Antenne ganz nah darüber 
halte.... ich gehe also immer noch von einer Elektromagnetische Störung 
und nicht von einem Versorgungsproblem aus...

von Rüdiger B. (rbruns)


Lesenswert?

Blechgehäuse für den Pico oder den SIM900.

von Res (resmon)


Lesenswert?

Wird der Servo direkt angesteuert, oder über ein Relais/MOSFET?

Verdrillte Kabel könnte helfen.
Filter an den Ein/Ausgängen. Bzw passende(!) Ferrite.
Abschirmen wäre ziemlich aufwändig.

von Michael H. (michael_h89)


Angehängte Dateien:

Lesenswert?

So, hier mal die versprochenen Bilder....

Bild 1 zeigt, wie es "fertig" aussehen soll, die Alu-Folie habe ich für 
die Bilder großteils wieder entfernt.

Derzeit ist kein "echter" Pico sondern ein waveshare rp2040-zero 
drinnen. Wie schon im Eingangspost erwähnt, ist das Verhalten bei beiden 
gleich.

Bild 6 gibt dann nochmals einen Überblick mit abgenommenen Deckeln, das 
Display wird in einen Rahmen in der Frontplatte gesteckt, darum muss das 
Kabel so lange sein.

von Michael H. (michael_h89)


Lesenswert?

Res schrieb:
> Wird der Servo direkt angesteuert, oder über ein Relais/MOSFET?
>
> Verdrillte Kabel könnte helfen.
> Filter an den Ein/Ausgängen. Bzw passende(!) Ferrite.
> Abschirmen wäre ziemlich aufwändig.

Der Servo hängt einerseits direkt an 5V und GND der Spannungsquelle und 
andererseits an GPIO15. Wird also direkt angesteuert.

Welche Kabel meinst du? die zum Servo? Wie könnte ich das 
bewerkstelligen? Einfach selbst verdrillen oder gegen ein verdrilltes 
tauschen? Eventuell verdrillt und geschirmt?

vielen Dank jedenfalls mal für den Input....

von Hmmm (hmmm)


Lesenswert?

Michael H. schrieb:
> Der Servo hängt einerseits direkt an 5V und GND der Spannungsquelle und
> andererseits an GPIO15. Wird also direkt angesteuert.

Bei ausgeschaltetem Servo liegen also 5V über den Servo an einem Pin, 
der für 3.3V ausgelegt ist. Absolute Maximum Rating (also nicht 
empfehlenswert, sondern "darüber kann es qualmen") ist IOVDD+0.5V, also 
3.8V.

Wenn Du ihn einschaltest, sprengst Du dann die Grenze von (wenn ich das 
beim Datenblatt-Überfliegen richtig sehe) maximal 12mA pro Pin.

von Michael H. (michael_h89)


Lesenswert?

Hmmm schrieb:
> Bei ausgeschaltetem Servo liegen also 5V über den Servo an einem Pin,
> der für 3.3V ausgelegt ist. Absolute Maximum Rating (also nicht
> empfehlenswert, sondern "darüber kann es qualmen") ist IOVDD+0.5V, also
> 3.8V.

Einen Servo kann man nicht "ausschalten". Warum sollte der Servo seine 
5V Versorgungsspannung über die Steuerleitung an den Prozessor 
weitergeben?

von Kay-Uwe R. (dfias)


Lesenswert?

Wenn die Störungen durch den Äther kommen, müsstest du die Schaltung mit 
deinem Handy - gleiches Band vorausgesetzt - auch aus dem Tritt bringen 
können. Einfach mal daneben halten und telefonieren oder aus- und 
einschalten zum Einchecken.

von Hmmm (hmmm)


Lesenswert?

Michael H. schrieb:
> Warum sollte der Servo seine
> 5V Versorgungsspannung über die Steuerleitung an den Prozessor
> weitergeben?

Vergiss meinen Einwand, ich hatte das "und GND" überlesen und dachte, 
dass Du mit dem GPIO die GND-Leitung des Servos schaltest.

von Res (resmon)


Lesenswert?

Ich würde vermuten dass GSM in eine der Leitungen einstrahlt und dadurch 
den uC aus dem Takt bringt.
Du kannst mal versuchen die Antenne an eine der Leitungen zu halten und 
schauen ob du das damit reproduzieren kannst. Dann müsstest du diese 
Leitung entsprechend verdrosseln.

von Lu O. (oszi45)


Lesenswert?

Jeder Draht ist auch eine Antenne.
Evtl. mach die Servo-Ansteuerung den Ärger? Kabel zum Test mal anders 
verlegen und Klappferrit gegen steile Impulse testen?
Oder Software ohne Servo-Ansteuerung auf Zuverlässigkeit testen?
EMV siehe https://www.mikrocontroller.net/articles/EMV

: Bearbeitet durch User
von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Michael H. schrieb:
> Der Pico bleibt einfach stehen
Sowas passiert wenn der Clock ausfällt und die MCU das nicht erkennen 
kann.
Ist dann kein Watchdog mit separater Clock Source aktiv, hängt die 
Kiste.
Um den Quarzoszillator ausfallen zu lassen gehört nicht viel.
Kenne den Pico nicht weiter.
Kann der keinen Clockausfall erkennen und auf eine andere Taktquelle 
umschalten damit man dann einen Reset auslösen kann?

Willkommen in der wunderbaren Welt der EMI.
Die Theorie dazu und Maßnahmen zur Vermeidung füllen Bücher.
Das kann 'conducted' also kabelgebunden oder 'radiated' also gestrahlt 
sein oder beides.
Was immer hilft ist die MCU komplett zu schirmen und alle Verbindungen 
zur Außenwelt mit Filtern zu verblocken.
Aber auch das kann beliebig kompliziert werden.

Setz eine durchgehende Massefläche unter die Antenne, zwischen Antenne 
und Pico und verwende ggf. einen ext Watchdog, wenn der pico da schwach 
aufgestellt ist.

Gibt5 auch tolle Ferritfolien von z.B. Würth zum aufkleben, aber die 
werden Dir wohl zu teuer sein.

von Lu O. (oszi45)


Lesenswert?

Michael schrieb:
> Was immer hilft ist die MCU komplett zu schirmen und alle Verbindungen
> zur Außenwelt mit Filtern zu verblocken.
> Aber auch das kann beliebig kompliziert werden.

Sagen wir oft. Wenn es doch Spannungseinbrüche sein sollten, hilft kein 
Blech, sondern eine bessere Schaltung.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Auf die Kabel zwischen SIM und Pico einen "Mantelstromfilter" oder die 
Kabel (gemeinsam) durch einen Ferritring wickeln ... zumindest mal 
probieren ...

von Helmut -. (dc3yc)


Lesenswert?

Das ganze Gedöns gehört in ein Metallgehäuse und die Antenne außen dran. 
Diese Art von Antenne (Viertelwellenstrahler) braucht zwingend eine 
Metallfläche als Gegengewicht! Und zwar mindestens Lambda/viertel im 
Quadrat. Und sie muß senkrecht auf der Metallfläche stehen. Sonst wirst 
du mit deinen Störungen leben müssen. HF ist kein Lego-Spielzeug.

von Michael H. (michael_h89)


Lesenswert?

Vielen Dank für die vielen konstruktiven Anregungen. Da habe ich einige 
Ansatzpunkte. Nach kurzen Tests gestern habe ich immer mehr den 
Eindruck, dass die "Einstreuung" in der Servo-Zuleitung passiert. Hatte 
aber nicht ausreichend Zeit, das weiter zu verifizieren. Werde am 
Wochenende mal ausführlich experimentieren und dann berichteten.


Helmut -. schrieb:
> braucht zwingend eine
> Metallfläche als Gegengewicht!

Wie auf Bild 4 ersichtlich, ist die Antenne auf einem Metallstreifen 
montiert. (Lambda/4)^2 hat die Fläche allerdings in der Tat nicht. Etwa 
die Hälfte.... die größer zu machen schadet sich nicht, werd ich 
probieren...

Helmut -. schrieb:
> Und sie muß senkrecht auf der Metallfläche stehen

Das wird schwierig, zumal der Hersteller dem Ding einen 90° 
Winkelstecker verpasst hat....

Helmut -. schrieb:
> HF ist kein Lego-Spielzeug

D'accord. Sonst hätte ich die Frage im Lego-Forum gepostet.

von Helmut -. (dc3yc)


Lesenswert?

Michael H. schrieb:
> Helmut -. schrieb:
>> Und sie muß senkrecht auf der Metallfläche stehen
>
> Das wird schwierig, zumal der Hersteller dem Ding einen 90°
> Winkelstecker verpasst hat....
>
> Helmut -. schrieb:
>> HF ist kein Lego-Spielzeug

Deswegen gibt es auch Winkelstecker oder Winkeladapter. Wenn der 
Strahler zwei Zentimeter von einer Metallfläche weg ist, verschiebt sich 
die Resonanzfrequenz und auch die Abstrahlcharakteristik. Und auch der 
Verkäufer, der sowas anbietet, hat nur Ahnung von Lego, aber nicht von 
HF.

: Bearbeitet durch User
von Michael H. (michael_h89)


Lesenswert?

Helmut -. schrieb:
> Und auch der
> Verkäufer, der sowas anbietet, hat nur Ahnung von Lego, aber nicht von
> HF.

..beziehungsweise muss man in der Praxis manchmal Kompromisse 
eingehen... im Labor ist es einfach, eine Antenne senkrecht auf ein 
Blech zu setzen.

GSM (ursprünglich Singleband, 900 MHz) hat eine Wellenlänge ~30cm. Ich 
kenne kein Handy (nicht mal die alten Motorolas, Nokias, Ericssons...) 
das eine 7,5 x 7,5 cm große Metallfläche im rechten Winkel zur (damals 
noch extern aufgesteckten oder geschraubten) Antenne hatte... ;-)

von Michael H. (michael_h89)


Angehängte Dateien:

Lesenswert?

Sooooo.....

Ich konnte das Problem nun weiter eingrenzen.... es tritt definitiv auf, 
wenn ich die GSM-Antenne in die Nähe des Servo-Kabels bringe, wie in 
Bild 7 gezeigt.

Wie ebenfalls in Bild 7 sichtbar, habe ich die Drähte nun verdrillt.... 
das macht es zwar besser, ganz weg ist das Phänomen jedoch nicht.... 
soll heißen:

mit "geraden" Drähten stürzt der Prozessor in obiger Versuchsanordnung 
in 8 von 10 Fällen ab, mit verdrillten Drähten in 4 von 10. Wenn ich die 
Antenne mit verdrillten Drähten nun weit genug weg gebe, ist mir bisher 
noch kein einziger Absturz gelungen, 100% sicher ist das allerdings 
nicht...

Noch ein paar Details:

- Der Absturz passiert meist beim Verbindungsaufbau. Wenn die Verbindung 
mal steht (die Software macht eine Art "HTTP Long Polling"), läuft der 
Prozessor meistens weiter.

- Es spielt keine Rolle, ob das Servo überhaupt angeschlossen ist, es 
reicht, die Antenne in die Nähe der "offenen Enden" der Anschlussdrähte 
zu halten.

- Wenn ich die Antenne direkt an die Verbindungsdrähte zum Display, zum 
SIM800 oder an die Versorgungsleitung halte, läuft der Prozessor brav 
weit....


Wie bringe ich das Problem nun endgültig und zu 100% weg? Klappferrit um 
die Servoleitung? Geschirmte Servoleitung? Anderer GPIO?


Freue mich auf Euren weiteren Input.

von Res (resmon)


Lesenswert?

Michael H. schrieb:
> Wie bringe ich das Problem nun endgültig und zu 100% weg? Klappferrit um
> die Servoleitung? Geschirmte Servoleitung? Anderer GPIO?

- Servo-Treiber mit Optokoppler verwenden
- Klappferrit kann funktionieren, aber da musst du dich durch 
Datenblätter arbeiten um welche zu finden, die bei (vermutlich) 900 MHz 
noch einigermassen funktionieren.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Die passenden Ferrite wirst du nicht finden. Alternative: Mit NPO-Kondis 
so ca. 1nF parallel gegen Masse zu den Leitungen zum Prozessor die 
Fremdspannung kurzschließen.

von Kay-Uwe R. (dfias)


Lesenswert?

Das Gerät sollte letztendlich aber nicht nur die selbst erzeugte HF 
vertragen. Um welche Leistung geht es hier? Kommt da auch so viel 
heraus, wie aus einem Smartphone? Den Test mit einem solchen 
HF-Generator in der Nähe würde ich jedenfalls auch noch mal machen! Oder 
soll da ein Aufkleber drauf, dass Handys verboten sind, so wie früher in 
den Krankenhäusern?

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Abdul K. schrieb:
> Die passenden Ferrite wirst du nicht finden.

Grad mal das Würth Designkit WE-AFB aufgeklappt.
Kein Problem was zu finden.
Auch das 'Snap Ferrites Star-Series' Design Kit bietet passendes.

Aber ebenso wenig wäre es ein Problem das Servo Kabel zu schirmen, die 
Antenne mal sinnvoll zu montieren, Pi-Filter in allen Zuleitungen zur 
MCU zu verwenden etc. pp.
Also zielorientiert zu arbeiten und nicht Bauklötze zu staunen das eine 
Peak Sendeleistung von zulässigen 2W an der Sendeantenne in 
unmittelbarer Nähe einer antennenähnlichen Leitung eben erhebliche 
Empfangsleistung bedeutet, die jetzt völlig ungebremst in internen MCU 
Strukturen verbraten wird und Fehlfunktionen verursacht.

von Michael H. (michael_h89)


Lesenswert?

Michael schrieb:
> Also zielorientiert zu arbeiten und nicht Bauklötze zu staunen das eine
> Peak Sendeleistung von zulässigen 2W an der Sendeantenne in
> unmittelbarer Nähe einer antennenähnlichen Leitung eben erhebliche
> Empfangsleistung bedeutet, die jetzt völlig ungebremst in internen MCU
> Strukturen verbraten wird und Fehlfunktionen verursacht.

Du hast schon mitbekommen, dass das ein Versuchsaufbau war, um 
herauszufinden, wo die Störung herkommt? Wie gesagt, dem i2c-Bus, bei 
dem die Kabeln um einiges länger sind, war die nebenliegend Antenne 
völlig wurscht.

Gestaunt hab ich übrigens kein bisschen. Im Gegenteil. Ich war froh, die 
"schuldige" Leitung zu identifiziert, die nun 
entkoppelt/geschirmt/gefiltert/whatever werden muss. Also ja: ein Ziel 
ist vor Augen.

Vielen Dank trotzdem für die ansonsten konstruktiven Tipps.

: Bearbeitet durch User
von Michael H. (michael_h89)


Lesenswert?

Problem gelöst. Abhilfe war: Verkürzen der Kabel zwischen Prozessor und 
Servo und diese (und nur diese) mit Hilfe von selbstklebender 
Kupferfolie zu schirmen.

Zusätzlich habe ich die Metallfläche, auf der die Antenne montiert ist, 
vergrößert - aber nach wie vor mittels Winkelstecker "parallel" zur 
Fläche.

Vielen Dank an alle, die ihren konstruktiven Input geliefert haben.

PS: Klappferrit in verschiedenen Größen (allerdings hatte ich keine 
Datenblätter und hab nur "herumprobiert") hat nichts gebracht.

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.