Forum: Mikrocontroller und Digitale Elektronik robuste GPIO Eingangsbeschaltung am Arduino


von Thomas P. (tomtom1976)


Lesenswert?

Hallo zusammen,

da ich ehre der Typ für die 0 und 1 bin und nicht von V and mA. Bin ich 
auf der Suche nach einer Schaltung zur robusten Nutzung der GPIO eines 
Arduino Due (also 3,3V).

Kurz zum Projekt: Es geht hier um das Messen von Zeiten. Der Rest um das 
Projekt steht soweit. Counter zum Zählen und als Takt ein VCTCXO oder 
TCXO. Beim Einsatz von mehreren verteilten System ggf. ein LEA-M8F 
Modul.

Es gilt es noch die Sensorik sauber anzubinden. Das können zum einen 
Short-Circuit Ausgänge von Schaltkontakten oder Open-Kollektor von 
Lichtschranken sein. Dabei können diese bis zu mehrere 10m bis 100m 
Kabellängen haben.

Über etwas Kommunikation hierzu mit ein paar Gedanken um den Weg in die 
richtige Richtung zu finden wäre ich sehr dankbar.

Gruß
Thomas

von . . (Gast)


Lesenswert?

Das sind sehr allgemeinkonkrete Vorgaben.

von Thomas P. (tomtom1976)


Lesenswert?

Was wird denn Konkreteres benötigt? Wie gesagt ich bin 0 und 1... SORRY

von U. M. (oeletronika)


Lesenswert?

Hallo,
das Thema Überspannungschutz kann recht komplex werden, je nachdem 
welche Bedingungen man annimmt und welchen Schutzgrad man anstrebt.
> Thomas P. schrieb:
> da ich ehre der Typ für die 0 und 1 bin und nicht von V and mA. Bin ich
> auf der Suche nach einer Schaltung zur robusten Nutzung der GPIO eines
> Arduino Due (also 3,3V).
Da kommt es drauf an, ob man Eingänge oder Ausgänge hat.
Eingänge am uC sind üblicherweise hochohmig und deshalb empfindlicher 
gegen Überspannungen auch schon bei sehr kleiner Störleistung.
Aktiv schaltende Ausgänge brauchen dagegen schon höhere Störleistung, um 
beschädigt zu werden.

> Short-Circuit Ausgänge von Schaltkontakten oder Open-Kollektor von
> Lichtschranken sein.
Das sind also die Quellen? Und es geht konkret um Dig-Eingänge am uC?

> Dabei können diese bis zu mehrere 10m bis 100m Kabellängen haben.
Das ist nicht harmlos. Insbesondere Bei Gewitter können bei Blitzschlag 
in der Nähe erhebliche Störspannungen auf den Leitungen induziert 
werden.
Dagegen sollten ein paar grundsätzliche Maßnahmen ergrifffen werden:

1) Nutzung von abgeschirmten Leitungen. Die Schirmung sollte beidseitig 
gut geerdet werden, damit Induktionsströme durch Blitzschlag (hunderte 
Ampere)korrekt abgeleitet werden.
Problem können bei langen Leitungen die Potentialdifferenzen zwischen 
den Enden sein (eigentlich nur im industriellen Umfeld mit sehr großen 
Lasten am Netz mit zig-KW bis MW-Bereich). Dann können erhebliche 
Ausgleichströme auf dem Schirm fließen. In dem Falle darf der Schirm nur 
auf einer Seite DC-mäßig geerdet werden, auf der anderen Seite nur per 
AC-Kopplung.

2) Die Leitungen sollten möglichst differentielle Signale übertragen, 
die dann aber über paarig verdrillte Adern geführt werden (twisted 
pairs).
https://de.wikipedia.org/wiki/Twisted-Pair-Kabel
Aber auch bei unsymetrischen signalen kann die Verdrillung nützlich 
sein.

3) Unter Umständen ist eine galv. Trennung zwischen uC und externen 
Signalen, z.B. durch Optokoppler zweckmäßig.
Dabei wird außerdem gewährleistet, dass nicht nur mit der Spannung 
angesteuert wird, sondern auch ein gewisser Signalstrom fließt. Dadurch 
verbessert sich automatisch das SNR, was nicht nur bezüglich Rauschen, 
sondern auch gegen andere Störungen bessere Bedingungen herstellt.

4) Bei langen Leitungen über 100m und mehr würde ich aber trotzdem auch 
Überspannungschutzdioden einsetzen. Je nach Konzept auch einen 
Überspannungsschutz, der speziell für Gleichtaktstörungen (z.B. mittel 
Gasableiter) und differenzielle Störungen (Supperessordioden) optimiert 
ist. Das müßte man dann aber schon konkret im Detail besprechen.

> Über etwas Kommunikation hierzu mit ein paar Gedanken um den Weg in die
> richtige Richtung zu finden wäre ich sehr dankbar.
Lese dazu auch hier:
Beitrag "Re: RS485 aber mit minimalstem verbrauch."
Beitrag "Re: 5V Differentielles Signal erzeugen"
Beitrag "Re: Digitales Signal sicher übertragen"
Gruß Öletronika

von Stefan F. (Gast)


Lesenswert?

Um eine Schutzschaltung du gestalten braucht man mehr Infos:

a) Welche Signale werden übertragen (analog, digital)?
b) Mit welcher Frequenz bzw. Pulsbreite?
c) Wie viel Verzerrung/Verzögerung durch die Schutzschaltung ist 
erlaubt?
d) Gegen welche Störungen soll geschützt werden? Vorab: gegen direkten 
Blitzeinschlag gibt es keinen Schutz.
e) Wie hoch ist die Signalquelle belastbar?
f) Wie hoch ist die Spannung des Nutzsignals von der Quelle?
g) Welche Spannungspegel erfordert die Senke (ergibt sich in diesem Fall 
aus dem Datenblatt des Mikrocontrollers)?
h) Haben Quelle und Senke ein gemeinsames Masse-Potential? Wenn nicht, 
wie weit unterscheiden sie sich maximal?
i) Welche Leitungen werden zur Übertragung verwendet? Kann man sie durch 
andere austauschen?
j) Wie lang sind die Leitungen?

Beantworte all diese Fragen, daraus ergibt sich, was man machen kann.

von Thomas P. (tomtom1976)


Angehängte Dateien:

Lesenswert?

Hallo,

erstmal danke für die beiden Antworten und die hier gestellten Fragen 
und Anregungen. Ohne zu zitieren, will ich versuchen so viel wie möglich 
zu beantworten.

Kurz noch mal zum Projekt. Es geht um das Messen von Zeiten im Bereich 
Sport. Die zu messenden Zeiten liegen also im Bereich von 1/1000s also 
Millisekunden. Also sollten die Reaktionszeiten der Schutzschaltung im 
Bereich von Mikrosekunden liegen.

Die zu verarbeitenden Signale sind auf Schaltungsseite alles nur 
Eingänge. Das heißt Ausgänge aus Sensorik wie Lichtschranken (z.B. im 
Ziel) oder Schaltkontakten wie Kontaktbändern oder Startanlagen.

Die potentialfreien Schaltkontakte sind in der Regel bis mind. 30V 
belastbar.
Ein Bandschalter z.B.: "Für alle Bandschalter gilt eine maximale 
Spannung von 30V und ein maximaler Schaltstrom von 1 A." (aus dem 
Datenblatt)

Bei den Lichtschranken z.B. habe ich nachfolgendes im Datenblatt 
gefunden:
"Ausgang "Open collector" - Arbeitskontakt" Das wars...
Ein Blick in das Gerät hat mir verraten das ein Transistor-Ausgangs 
Optokoppler vom Typ PC357NJ0000F verwendet wird. (Bild 1)
Wenn ich das Datenblatt hier richtig lese, sollte ja die Belastbarkeit 
die "Collector-Emitter Voltage", welche hier 80V ist.

Ein weiterer Blick in zwei Zeitmessgeräte anderer Hersteller hat mir 
gezeigt dass diese hier im Regelfall RC-Glieder inkl. Schutzdioden 
verwenden (Bild 2).
Im zweiten Gerät kommt noch ein Comparator (LM239) zum Einsatz. (Bild 3)

Zum Thema Leitungen: Im Alltag kommen hier 1,5² Kupferleitungen mit z.B. 
den wohl bekannten Bananen Steckern zum Einsatz.
Eine weitere alternative sind zum Beispiel ein Kabel 4x0,5² mit 
Tuchelstecker. (Bild 4)

Noch zum IC, welcher die Impulse/Signale dann verarbeiten soll. hier 
habe ich mir Arduino Due ausgesucht. Auf dem arbeitet ein Cortex-M3.
Also LVTTL 3,3V Eingangspegel. Low ≤ 0,8V und High ≥ 2,0V.

Und am Schluss noch was zum Thema "robust". Hier ist in erster Linie die 
Signalrobustheit und in zweiter die Überspannung. Und ja wenn der Blitz 
einschlägt, habe wir glaube ich größere Probleme oder ein defektes 
Gerät.

Gruß

von Stefan F. (Gast)


Lesenswert?

> Die zu messenden Zeiten liegen also im Bereich
> von 1/1000s also Millisekunden.

Kein mechanischer Kontakt der Welt kann in weniger als einer 1/1000 
Sekunde betätigt werden. Wohl eher 1/10 Sekunden, und weil wir es gut 
meinen, wollen wir 1/100 Sekunden messen können.

Wir bewegen uns also sinnvollerweise im unteren Millisekunden Bereich.

Da deine Signale unsymmetrisch sind und über einfache Stromkabel 
überträgst (nicht so etwas wie Cat 5) sind wir schon ziemlich stark 
eingeschränkt. Für einstellige Millisekunden aber noch OK.

Fremdspannung sind nicht eher nicht zu erwarten, du brauchst also nur 
einen Schutz gegen Störsignale. Ich schlage folgende Schaltung vor:
1
      Kontakt  100Ω        4,7kΩ
2
        ____
3
GND |----  ----[===]---+---[===]---o VCC +5V 
4
                       |
5
GND |-------||---------+---[===]------o µC Eingang
6
7
          100nF             47kΩ

Damit kannst du Schaltsignale mit etwas weniger als 1ms Verzögerung 
erfassen und bist einigermaßen gegen Störungen geschützt. Die 
Schutzdiden sind in diesem Fall im Mikrocontroller integriert, der 47kΩ 
Widerstand begrenzt den Strom durch diese Dioden falls doch mal ein Depp 
Fremdspannung anlegt.

Je größer der Kondensator ist, umso besser die Schutzwirkung und umso 
größer ist die Verzögerung des Signals.

Ich würde Dir dazu raten, abgeschirmte Leitungen zu benutzen. Benutze 
zwei Adern für das Signal und schließe den Schirm nur an einem Ende an 
GND an.

von m.n. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Kein mechanischer Kontakt der Welt kann in weniger als einer 1/1000
> Sekunde betätigt werden.

Halte Dich doch mal mit Deinen "Bauchmeinungen" zurück. Ein Reedkontakt 
schafft das locker.

Thomas P. schrieb:
> Die zu verarbeitenden Signale sind auf Schaltungsseite alles nur
> Eingänge. Das heißt Ausgänge aus Sensorik wie Lichtschranken (z.B. im
> Ziel) oder Schaltkontakten wie Kontaktbändern oder Startanlagen.

Dann nimm Optokoppler. Damit hast Du sichere Potentialtrennung.

> Und ja, wenn der Blitz
> einschlägt, haben wir glaube ich größere Probleme oder ein defektes
> Gerät.

Das sehe ich genauso ;-)

von Stefan F. (Gast)


Lesenswert?

Frage an den TO: Reicht Dir mein Vorschlag? Oder verwendet ihr auf der 
Ziel-Linie Reed Kontakte?

von Thomas P. (tomtom1976)


Angehängte Dateien:

Lesenswert?

Danke für die Anregung:

1. Also, die Reaktionszeit der Schaltung muss schon unter "weit" unter 
1ms. Als Beispiel hierfür ist Schwimmen zu nennen. Da werden mechanische 
Kontaktbänder verwendet, diese sind in sogenannten Anschlagmatten 
verbaut. Die gelben Dinger, die da im Wasser hängen (Bild). Also ist da 
kein Mensch der was auf Sicht messen muss, sondern der Schwimmer löst 
den Kontakt selber aus.
Diese Kontaktbänder werden auch auf der Ziellinie beim Bahnradsport 
genutzt. Um eine "Backup" Zeit zu messen. Die eigentliche Zeitmessung 
erfolgt hier mit einer Kamera, welche 5000 "Bilder" (was nur Zeilen 
sind) pro Sekunde macht. Also eine Auflösung von 1/5000 Sekunden hat.

2. Zum Thema Optokoppler werde ich mich dann mal schlau machen. Also im 
groben das wie es aus der besagten Lichtschranke kommt.

von Stefan F. (Gast)


Lesenswert?

Deine Anforderung zum Timing erscheint mir immer noch sinnfrei, aber 
lassen wir das außen vor.

Dann musst du halt kleinere Kondensatoren verwenden und die 
elektromagnetischen Störungen mit anderen Mitteln fern halten (z.B. 
doppelte Abschirmung).

Nachtrag: Da die Verzögerungszeit konstant ist könnte man sie auch 
einfach von der gemessenen Zeit subtrahieren.

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Stefanus F. schrieb:
> Kein mechanischer Kontakt der Welt kann in weniger als einer 1/1000
> Sekunde betätigt werden.
Du solltest dich nicht zu weit aus dem Fenster lehnen!
https://standexelectronics.com/viewer/pdfjs/web/viewer.php?file=https%3A%2F%2Fstandexelectronics.com%2Fwp-content%2Fuploads%2F2015%2F03%2FRM05-4A_V03.pdf
-> Operating Time 0,6ms (incl. Prellen)
und hier noch besser:
https://standexelectronics.com/viewer/pdfjs/web/viewer.php?file=https%3A%2F%2Fstandexelectronics.com%2Fwp-content%2Fuploads%2F2015%2F03%2FUMS_V03.pdf
-> Operating Time 0,2ms (incl. Prellen)

> Wohl eher 1/10 Sekunden, und weil wir es gut
> meinen, wollen wir 1/100 Sekunden messen können.
Da liegst du schon etwas weit daneben.
Mechanischer Kontakt meint nicht nur einen billigen Lichtschalter.
Gruß Öletronika

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Thomas P. schrieb:

> Kurz noch mal zum Projekt. Es geht um das Messen von Zeiten im Bereich
> Sport. Die zu messenden Zeiten liegen also im Bereich von 1/1000s also
> Millisekunden. Also sollten die Reaktionszeiten der Schutzschaltung im
> Bereich von Mikrosekunden liegen.
Elektronisch kein sehr großes Problem.

> Ausgänge aus Sensorik wie Lichtschranken (z.B. im Ziel)
> oder Schaltkontakten wie Kontaktbändern oder Startanlagen.
> Die potentialfreien Schaltkontakte sind in der Regel bis mind. 30V
> belastbar.
> Ein Bandschalter z.B.: "Für alle Bandschalter gilt eine maximale
> Spannung von 30V und ein maximaler Schaltstrom von 1 A." (aus dem
> Datenblatt)
12V sollten als Signalspannung ok sein.
Falls zufällig 24V irgend wo zufällig bereitgestellt werden, ist das 
auch kein Problem. Man kann eine Eingangsbeschaltung auch so auslegen, 
dass sie z.B. von 8...30V zuverlässig funktioniert.

> Lichtschranken: "Ausgang "Open collector"
kein Problem für oben genannte Signalspannungen und Ströme unter 100mA.

> Zum Thema Leitungen: Im Alltag kommen hier 1,5² Kupferleitungen mit z.B.
> den wohl bekannten Bananen Steckern zum Einsatz.
> Eine weitere alternative sind zum Beispiel ein Kabel 4x0,5² mit
> Tuchelstecker. (Bild 4)
Ok.
> Noch zum IC, welcher die Impulse/Signale dann verarbeiten soll. hier
> habe ich mir Arduino Due ausgesucht. Auf dem arbeitet ein Cortex-M3.
> Also LVTTL 3,3V Eingangspegel. Low ≤ 0,8V und High ≥ 2,0V.
Da würde ich schon sehr dazu raten, die sensiblen uC-Ports von den 
Eingängen mit Optokoppler zu entkoppeln.
Setze die Optokoppler am besten auf Fassungen. Dann nervt es auch nicht 
so sehr, wenn mal was ausgetauscht werden muß.

> Und am Schluss noch was zum Thema "robust". Hier ist in erster Linie die
> Signalrobustheit und in zweiter die Überspannung.
Das unterschätzt du evtl. etwas.
Lange Leitungen fangen auch mel eben Störspannungen durch irgend welche 
Schaltvorgänge größerer elektrischer Lasten im Umfeld ein.
Gewitter ziehen auch bei schönen Wetter eben mal innerhalb von Minuten 
auf und dann denkt keiner mehr an verlegte Kabel. Da reicht ein 
Blitzschlag im weiteren Umfeld, z.B. ins Trägerkonstruktionen des 
Stadions oder Fahnenstangen in der Nähe. Da fließen typisch Ströem in 
der Gröeßenordnung von paar hundertausend Ampere, die um Umfeld einen 
sehr kräftigen EMP erzeugen. Da bekommst du schnell paar hundert Volt 
auf die Leitungen. Das zerstört dir systematisch alle Ports. Da würde 
ich schon auch die Optokoppler-Eingänge mit leistungsfähigen 
Vorwiderstänen und ordentlichen Schutzdioden schützen (Was nicht so 
schwer ist).

Die Optokoppler sollten dann auch mit einem guten Stromfluß angesteuert 
werden (20...50mA). Oben hatte ich schon erklärt, warum das auch positiv 
auf die Störfestigkeit auswirkt (auch im normalen Betrieb).
Schaltzeiten über die Leitungen im Bereich on 10...30us sind dann kein 
Problem, sofern die Quellen zügig durchsteuern.

> Und ja wenn der Blitz einschlägt, habe wir glaube ich größere Probleme
Wieso denn das? Es geht dabei nicht um einen direkten Einschlag.
> oder ein defektes Gerät.
Der Blitz schlägt schnell mal in der Nähe ein und nach dem Gewitter will 
man evtl. gerne weiter machen, oder?
Gruß Öletronika

: Bearbeitet durch User
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.