Raspi GPIO im Interruptbetrieb sehr störanfällig

Begonnen von ThomasFh, 01 Oktober 2021, 12:44:41

Vorheriges Thema - Nächstes Thema

ThomasFh

ja, die Spikes habe ich auch am Raspi Netzteil, wenn ich mit einer Messleitung auf Masse gehe (das andere Ende hängt in der Luft).
Zusätzlich hängen dort noch je 1mF + 47nF Kondensator auf +5V und +3.3V am GPIO Stecker.

Bei 50.0ns  triggert das Rigol und zeigt mir einen sauber liner abwschingenden Sinus mit ca. 2 Perioden (ca.) auf der Betriebsspannung mit +/-2V.  (Empfindlichkeit auf 500mV je +4cm/-4cm scale) Eingang ist auf AC geschaltet.

Ich werde dann den Eingang mit 2 Schottky Dioden absichern, damit der Raspi das überlebt.

Ich kann da aber nicht viel machen, denn final wird der Raspi über einen PoE Splitter mit +5V versorgt.

EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

crusader

Das würde ja bedeuten das man auf der 5V Rail des Netzteils +/-2V Spikes finden müsste.

Öhmm, nein !

Wir sprechen hier im Wesentlichen von Gleichtaktstörungen.
Ob die auf einem Scope (insbesondere einem mit passivem Tastkopf) sichtbar werden, hängt von der Impedanz der Tastkopfspitze und der Tastkopfmasse ab.

In gleicher Weise hängt die Auswirkung auf die Interrupt-Auslösung von der Eingangsimpedanz des GPIO-Pins (relativ zum Substrat) ab. Eine Kompensation des Störsignals durch z.B. einen Masse-Kondensator gelingt da eigentlich nie zufriedenstellend.
Deshalb die Radikal-Lösung über ein Filter und anschliessende Triggerung mit Schalt-Hysterese.

Hat außerdem den Vorteil, dass bei extern angeschlossenen Tastern (o.ä.)  ein ESD- Impuls nicht gleich den Raspi killt.
Bastel-Aufwand ist natürlich grösser.

herrmannj

verstehe- Messen müsste man dann vmtl gegen Erde?

crusader

Wenn Du damit die Schutzerde meinst:

Es ist ein Irrtum, dass diese ein quasi störfreies Potential darstellt. Ganz im Gegenteil: Viele Geräte besitzen Störfilter, die mit der Schutzerde verbunden sind und die Netzstörungen auch dorthin einspeisen.
Deshalb ist es immer eine Sisyphus-Arbeit, EMV-Störungen mit Scopes einzukreisen.

Wenn Du die Störung reproduzierbar machen kannst, hilft da eingentlich nur die Try-and-Error-Methode mit unterschiedlichen Beschaltungen.
Ich konnte auf diese Weise die Störanfälligkeit des Interrupt-Eingangs durch Variation von Pullup-Widerstand und Puffer-Kondensator durchaus reduzieren.
Aber eben (in meinem Fall) nicht auf Null bringen.   

ThomasFh

Zitat von: crusader am 01 Oktober 2021, 17:36:31
Kann ich bestätigen.

Das Problem bei Netzstörungen ist i.A., dass diese über die üblichen Schaltnetzteile auf die DC-Seite gelangen, wo sie zu niederohmig sind, um sie mit Elkos abzufiltern.
Über Pullups geraten sie dann auf hochohmige GPIOs.

Meine Lösung:

Eingangs-Signal (Taster o.ä.) über ein ausreichend dimensioniertes RC-Filter auf den Eingang eines Schmitt-Triggers, der mit 5V versorgt ist.
Ausgang dann niederohmig auf den GPIO.

OK, hat Du hier mal ein Schitt-Trigger IC und einen RC-Filter-Kombi parat? Es liest sich so, als wenn Du das Problem schon mal hardwareseitig angefaßt hast.
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

crusader

Habe einen HEF40106 aus der Grabbelkiste verwendet.
Die gibt es aber immer noch bei Reichelt  und Co.

Die Dimensionierung des RC-Filters hängt von der Nutzsignal-Frequenz ab, denn man möchte ja nicht das Nutzsignal abfiltern.
Bei einem manuellen Tastereingang hat man da großen Spielraum (Habe 22k/10nF verwendet).

Bei Deiner Beschaltung würde ich aber vielleicht erstmal den Pulldown-Widerstand entfernen. Der zieht ja den DC-Pegel auf 2.2V und VOH beim Raspi liegt nur bei 2.0V.
Die Vorstellung, dass viel Kondensator viel hilft, trifft bei Gleichtaktstörungen auch nicht zu. Man möchte ja eigentlich nur den Einfluß von GND und VCC symmetrieren.
Vielleicht hilft ein kleinerer Kondensator da besser oder sogar einer gegen VCC.

ThomasFh

Hallo,

nachdem ich einen Schmitt Trigger mit RC Filter vorgeschaltet habe, traten besagte Fehler immer noch auf.

Die Fehler treten sogar noch auf, wenn man das GPIO Port direkt auf Masse legt, bzw wenn lediglich der interene Pullup Widerstand angeschlossen ist.

Getestet wurde mit einem elektronisch gesteuertem Lötkolben (Lonove) an der selben Steckdose. Das Teil scheint besonders schlecht entstört zu sein.

D.h., keine Chance für mich (mit zuwenig fhem know how) mit Interrupts zu arbeiten.

EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

tux75at

Wenn Netzstörungen die Ursache sind, dann wird vermutlich die beste Lösung sein, die Geräte zu entkoppeln.
Ich vermute, dass aufgrund unterschiedlicher Phasen, das GND Niveau bei diversen Störungen weggezogen wird.

Am Einfachsten ist es, einen Optokoppler (z.B PC817 oder ähnlichen), am besten direkt beim RasPi, bzw. so nahe wie möglich, zu positionieren.
Der interne Pull-up des RasPi wird wohl zu hoch sein (50-65k??). Je nach Optokoppler reicht wahrscheinlich ein Pull-up von ~1k-5k

Ich vermute, dies könnte die Lösung für euer Problem sein.

LG
Tux

ThomasFh

Zitat von: tux75at am 31 Oktober 2021, 09:37:13
Wenn Netzstörungen die Ursache sind, dann wird vermutlich die beste Lösung sein, die Geräte zu entkoppeln.
Ich vermute, dass aufgrund unterschiedlicher Phasen, das GND Niveau bei diversen Störungen weggezogen wird.

Am Einfachsten ist es, einen Optokoppler (z.B PC817 oder ähnlichen), am besten direkt beim RasPi, bzw. so nahe wie möglich, zu positionieren.
Der interne Pull-up des RasPi wird wohl zu hoch sein (50-65k??). Je nach Optokoppler reicht wahrscheinlich ein Pull-up von ~1k-5k

Ich vermute, dies könnte die Lösung für euer Problem sein.

LG
Tux


Die Fehler treten sogar noch auf, wenn man das GPIO Port direkt auf Masse legt.


EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

tux75at

GPIO auf GND aber das andere Gerät noch verbunden?
Für diesen Test würde ich alle anderen Geräte abhängen. Hier dürften keine Interrupts auftreten, wenn doch, dann ist die HW (RasPi) defekt oder in der SW gibt es falsche Einstellungen.
Wenn das andere Gerät noch angehängt ist, kann es durchaus zu Störungen kommen, da es zu Ausgleichsströmen über GND kommen kann.

LG
Tux

ThomasFh

Zitat von: tux75at am 01 November 2021, 18:34:43
GPIO auf GND aber das andere Gerät noch verbunden?
Für diesen Test würde ich alle anderen Geräte abhängen. Hier dürften keine Interrupts auftreten, wenn doch, dann ist die HW (RasPi) defekt oder in der SW gibt es falsche Einstellungen.
Wenn das andere Gerät noch angehängt ist, kann es durchaus zu Störungen kommen, da es zu Ausgleichsströmen über GND kommen kann.
LG
Tux

Nur der Raspi mit GPIO auf GND. Keine weiteren Geräte dabei. Tritt so 1 x alle paar Tage auf.
Habe leider nur 2 Raspi's um dies zu testen. Bei beiden der gleiche Effekt.


EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C