Forum: Mikrocontroller und Digitale Elektronik GPIO Input externe Beschaltung


von Daniel W. (danielwohlmuth)



Lesenswert?

Hallo zusammen,

in einer meiner Schaltungen sind am uC Digital Inputs beschaltet, die 
nach außen auf einen Stecker gehen und (z.b. mittels normaler 
Unterputz/Aufputztaster) gegen GND geschalten werden.
Dadurch dass es durchweg vorkommt, dass einige 10m Kabel dazwischen sind 
und diese nicht immer geschirmt sind passiert es sehr häufig, dass ich 
einen fehlerhaften "LOW" Zustand am Pin bekomme, obwohl der Taster nicht 
geschlossen wurde.

Anbei zwei Beschaltungen der Pins, bei beiden die gleichen Probleme.
V+ sind 24V

Zum testen wurde auch schonmal die SMF entfernt, aber gleiches Problem.
In meinen Augen sollten Störungen auf den Leitungen sich nicht so 
gravierend auswirken dass ein fehlerhafter "LOW" erkannt wird.

Ich stehe gerade ein wenig auf dem Schlauch, bzw. sehe den Wald vor 
lauter Bäumen nicht, daher wollte ich hier kurz um Rat fragen, ob sich 
dass irgendwer erklären kann..

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Einstreuung (induktiv oder kapazitiv) von benachbarten Netzleitungen 
könnte der Grund sein.

von GEKU (Gast)


Lesenswert?

Daniel W. schrieb:
> SMF

SMF? Ich stehe auf der Leitung.

Bei der ersten Schaltung fällt mir auf:

Die Zenerdiode liegt direkt, ohne Vorwiderstand  am Eingang. Was 
passiert bei +24V?

Gut ist es, die Schaltung, auch wenn sie einfach erscheinen mag, mit 
Ltspice zu simulieren.

Beispiel:

Beitrag "Re: Magnet/Türöffnungssensor am Raspi"

Man kann mit LtSpice verschiede Störmuster (Pegel und Zeiten) mit einer 
Spannungsquelle einspeisen. Man kann im Extremfall sogar eine 
Aufzeichnung der Störung mit einem Oszilloskop als Tabelle der 
Spannungsquelle zur Verfügung stellen.

Man muss das Schmitt-Trigger Modell vielleicht noch an den Prozessor 
anpassen.
Dann kann neben der Funktion auch die Verzögerung beurteilt werden.

Man kann auch die Wirkung das Nutzsignals mit verschieden Pegel, 
Pulslängen und verschieden Leitungslänge unter Berücksichtigung der 
Bauteiltoleranzen (Monte Carlo) analysieren.
Es gibt genügend Beispiele, auch hier im Forum.

von (Gast)


Lesenswert?

GEKU schrieb:
> Daniel W. schrieb:
>> SMF
>
> SMF? Ich stehe auf der Leitung.

Zener-Diode

> Bei der ersten Schaltung fällt mir auf:
>
> Die Zenerdiode liegt direkt, ohne Vorwiderstand  am Eingang. Was
> passiert bei +24V?

Die Schaltung macht nur Sinn wenn X8-6 der Eingang ist und AIN der 
Eingang des µC.

von Peter D. (peda)


Lesenswert?

Vermutlich benutzt Du einen Interrupt, der ist ideal, um Störungen 
einzufangen. Der 1µF geht vermutlich nicht unmittelbar an GND des MC 
sondern über ne lange Erdschleife.

MC-Eingänge sollte man nie direkt aus dem Gerät führen. Ich mache da 
immer einen 4,7k direkt an den MC-Input.
Den 1µF würde ich weglassen und dafür in Software entprellen.

von Daniel W. (danielwohlmuth)


Lesenswert?

Christoph db1uq K. schrieb:
> Einstreuung (induktiv oder kapazitiv) von benachbarten
> Netzleitungen
> könnte der Grund sein.

Das dachte ich auch, aber wie arg muss das einstreuen, bzw. was könnte 
man anders machen, damit ich davor gewahrt bin? Ich dachte schon alles 
realisiert zu haben was so möglich ist ohne gleich mit Kanonen auf 
Spatzen zu schießen.
RC , Vorwiderstand, TVS..

GEKU schrieb:
> SMF? Ich stehe auf der Leitung.

SMF3.3 ist eine 3,3V TVS Diode die da drin ist um den Pin zu schützen, 
die leitet ab.. ich glaube ab etwas über 3,3V. Aber die war es nicht, da 
ohne die gleichen Probleme auftreten..

24V direkt komm nie beim Pin an in der linken Schaltung, da der 
Spannungsteiler davor ist. und selbst wenn, dann darf die TVS auch gerne 
meinen Pin schützen :)

von Daniel W. (danielwohlmuth)


Lesenswert?

Peter D. schrieb:
> Vermutlich benutzt Du einen Interrupt, der ist ideal, um Störungen
> einzufangen. Der 1µF geht vermutlich nicht unmittelbar an GND des MC
> sondern über ne lange Erdschleife.

Nein, wenn auch ähnlich einen Task, der alle 200ms den Pin ausliest :) 
dafür ja eigentlich der C der das entprellen machen sollte..
Wie meinst genau wo die Erdschleife zustande kommen könnte?

Peter D. schrieb:
> MC-Eingänge sollte man nie direkt aus dem Gerät führen. Ich mache da
> immer einen 4,7k direkt an den MC-Input.
> Den 1µF würde ich weglassen und dafür in Software entprellen.

Grade in der ersten Schaltung ist da ja ein R dran vor dem uC Eingang, 
aber das macht wie gesagt leider im Fehlerbild keinen Unterschied.
Wenn wäre ein Versuch wert in Software zu entprellen, auch wenn ich noch 
nicht weiß warum das dann besser funktionieren könnte als mit dem C.

von Peter D. (peda)


Lesenswert?

Daniel W. schrieb:
> Wie meinst genau wo die Erdschleife zustande kommen könnte?

Hast Du nun beide Pole des 1µF unmittelbar am MC oder nicht?

24V legt ja ein Leistungsteil nahe. Wenn da nun ein Motor und der 
Eingang sich ein Stück gemeinsamer GND-Leitung teilen, hast Du eine 
prima Koppelspule.
Jeder Leiterzug hat eine Induktivität.

von Daniel W. (danielwohlmuth)


Lesenswert?

Peter D. schrieb:
> Daniel W. schrieb:
>> Wie meinst genau wo die Erdschleife zustande kommen könnte?
>
> Hast Du nun beide Pole des 1µF unmittelbar am MC oder nicht?
>
> 24V legt ja ein Leistungsteil nahe. Wenn da nun ein Motor und der
> Eingang sich ein Stück gemeinsamer GND-Leitung teilen, hast Du eine
> prima Koppelspule.
> Jeder Leiterzug hat eine Induktivität.

Naja, C halt über ein GND Plane angebunden und der andere Pin etwa 2cm 
weg vom uC..
die 24V kommen einfach aus dem Netzteil, das das Gerät mit Strom 
versorgt, da hängt sonst nichts dran ausser eben dieser Platine (die 
auch nichts besonderes sonst tut in diesem Fall).

Das einzige das sonst noch nach außen geht neben den Inputs ist ein 
Netzwerkstecker, dessen Masse bzw. Schirm aber auch gegen GND wie üblich 
über einen 2kV/1n angebunden ist.

von (Gast)


Lesenswert?

Daniel W. schrieb:
> Dadurch dass es durchweg vorkommt, dass einige 10m Kabel dazwischen sind
> und diese nicht immer geschirmt sind passiert es sehr häufig, dass ich
> einen fehlerhaften "LOW" Zustand am Pin bekomme, obwohl der Taster nicht
> geschlossen wurde.

Das ist schon einigermassen seltsam, eventuell liegt das Problem ganz wo 
anders? Eventuell internes pull-down aktiviert? Oder ein anderes 
Software-Problem? Ich würd mir diese "Störungen" mal mit einem Oszi 
ansehen...

von Daniel W. (danielwohlmuth)


Lesenswert?

rµ schrieb:
> Daniel W. schrieb:
>> Dadurch dass es durchweg vorkommt, dass einige 10m Kabel dazwischen sind
>> und diese nicht immer geschirmt sind passiert es sehr häufig, dass ich
>> einen fehlerhaften "LOW" Zustand am Pin bekomme, obwohl der Taster nicht
>> geschlossen wurde.
>
> Das ist schon einigermassen seltsam, eventuell liegt das Problem ganz wo
> anders? Eventuell internes pull-down aktiviert? Oder ein anderes
> Software-Problem? Ich würd mir diese "Störungen" mal mit einem Oszi
> ansehen...

Das wenn so einfach wäre.. auf dem Tisch funktioniert das alles 
problemlos über Tage. Wenn es dann alles da wo es hingehört eingebaut 
ist tritt es so ein paar mal am Tag auf was das mit dem „an den Oszi 
hinhängen“ durchaus schwierig macht, genau den Moment zu erwischen..
Pull down kann es eigentlich nicht sein, hab das mal auf 
unterschiedlichen uC ausprobiert, selbes Ergebnis.

Ich habe schon überlegt den Pullup zu verkleinern, wobei der eigentlich 
nicht übertrieben groß ist meiner Meinung nach..

von Mrc (Gast)


Lesenswert?

Mach mal parallel zu deinem C noch einen 100p...1n parallel dran (nahe 
am uC).
Der 1u ist viel zu gross um bei HF-Störungen noch kapazitiv zu wirken.

von Jdhdiebdkx (Gast)


Lesenswert?

Was spricht gegen einen 1k 100n Tiefpass direkt an den digitalen 
Eingängen?

Beitrag #7103661 wurde von einem Moderator gelöscht.
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.