Störungen durch GSM-Signal - Abschirmung?

OP #7582529
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!

OP #7582545
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)

#7582568
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.

OP #7582590
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...

OP #7582779
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.

Angehängte Dateien:
OP #7582787
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....

#7582801
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.

OP #7582807
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?

#7582989
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.

Gast #7583086
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.

#7583146
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.

OP #7583168
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.

#7583199
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.

OP #7583212
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... ;-)

OP #7583742
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.

Angehängte Dateien:
#7583825
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.
#7583929
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?

Gast #7584022
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.

OP #7584085
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.

OP #7589473
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren