Hallo! Da Bilder mehr sagen als tausend Worte, bitte ich das angehängte Foto kurz anzusehen. Das Problem ist, das der GPIO sporadisch Signale bekommt. Laut meinem Wissen ist dafür der ebenso eingebaute standardmäßige 10k Ohm pulldown als Entstörmaßnahme allgemein üblich vorgesehen. Da dies nicht funktioniert, woran liegt's? Zu niedriger pulldown? Oder zu hoch? Ordnungsgemäßer Betrieb bei dieser Leitungslänge unmöglich?
Die langen Leitungen sind natürlich Antennen, die sowohl Hochfrequenzstörungen als auch elektrostatische Entladungen einfangen. Eine sehr einfache, aber wirkungsvolle Entstörmaßnahme ist die Anbringung eines Kondensators zwischen Eingang und GND; hierbei sind 100nF sehr praktikabel. Dadurch reduziert man sowohl die ESD- als auch Störempfindlichkeit. Der Ladestrom muss aber auch durch den Schalter aufgebracht werden können. Vorzugsweise sollte auch noch ein Serienwiderstand (z.B. 1kOhm) vor dem mit dem Kondensator abgeblockten Eingang liegen. Der Pull-Up- oder Pull-Down-Widerstand darf aber im Normalbetrieb keinen Spannungsteiler mit dem Vorwiderstand bilden, sondern sollte schalterwärts angebracht sein.
Roman Krass schrieb: > Laut meinem Wissen ist dafür der ebenso eingebaute standardmäßige 10k > Ohm pulldown als Entstörmaßnahme allgemein üblich vorgesehen. Laut meinem EMV Spezi ist alles über 4k7 hochohmig. Bei langen Leitungen (definiere "lang") mache ich da einen 1k Widerstand rein und parallel dazu 100nF... Und miss mal die Spannung am Pin bei offenem Schalter. Das sollten 0V ein. Nicht dass noch einer einen Pullup im RPi aktiviert hat...
Roman Krass schrieb: > als Entstörmaßnahme Würde ich mal so explizit nicht stehen lassen. Fakt ist, dass eine stromgeführte Leitungsführung unempfindlicher ist als eine Spannungsgeführte. Daher sind die meisten bekannten üblichen Datenleitungen auch stromgeführt und hier eben asymetrisch in der einfachsten Form mit einem Openkollektor auf Senderseite und einen Pullup auf Empfängerseite konstruiert. Bei einer so niedrigen Spannung und so einer langen Leitung sollte man mal berücksichtigen ob auch genug Strom fließt. Wenn diese Anforderungen erfüllt werden, führt man noch zu jedem Signalleiter eine Masseleitung parallel mit, was dann entstörend wirkt. (Bei einem früheren Beitrag hier, wurde dadurch ein ähnliches Problem gelöst). Wäre noch wichtig mit welchen Frequenzen die Leitung vergewaltigt wird, nicht, dass das Signal auf dem Weg verhungert. ;-b Je schneller die Datenrate um so niedriger müsste dann der Widerstand werden.
Logger schrieb: > Wenn diese Anforderungen erfüllt werden, führt man noch zu > jedem Signalleiter eine Masseleitung parallel mit, was dann entstörend > wirkt. Die Vcc-Leitung ist HF-technisch wie GND zu sehen. Es darf keine nenneswerte Impedanz zwischen Vcc und GND sein, sonst ist die Versorgung schlecht. Also: die beiden Leitungen zum Schalter miteinander verdrillen, das hilft auch schon was...
Trotzdem ist die Schaltung ziemlich unpraktisch, weil bei einem Kurzschluss gegen Masse die Versorgungsspannung des µC zusammen bricht. Besser ist es Gnd zu schalten und VCC über einen angemessen kleinen Pull-Up an den µC-Eingang zu führen.
Also wenn die Leitung sehr lang ist, wäre vielleicht ein Optokoppler eine sinnvolle Lösung.
Mike schrieb: > Besser ist es Gnd zu schalten und VCC über einen angemessen kleinen > Pull-Up an den µC-Eingang zu führen. ACK. Und wenn die "lange Leitung" wirklich so mit 3.3V betrieben werden soll, dann kommen nur "langsame Schaltungen" in Frage, die zuverlässig ausgewertet werden können. Z.B. als manuell betätigter (Licht)Schalter. Oder irgendwas, das nur langsame Schaltvorgänge ausführt, wo es nicht auf eine Reaktionszeit im Mikrosekundenbereich ankommt. Kurzfristige Störimpulse auf der Leitung braucht man dann einfach nur durch einen Tiefpassfilter ausfiltern. Entweder durch einen Hardware-Tiefpassfilter (Kondensator/Widerstand). Oder durch einen Software-Tiefpassfilter mit entsprechender Auswertung.
Kontakte an langer Leitung lasse ich durch die gleiche Entprellroutine laufen, wie alle Bedientasten.
Mike schrieb: > Trotzdem ist die Schaltung ziemlich unpraktisch, weil bei einem > Kurzschluss gegen Masse die Versorgungsspannung des µC zusammen bricht. Wie soll das passieren? Da wo die Doppelader des TE langführt, gibt es keine Leitung, die das GND-Potential des µC führen würde. Und daß das GND des µC auf Hauserde (PE etc.) liegt, ist ja eher nicht anzunehmen. Für die Außenwelt sind das einfach zwei Leitungen, die (zu ihr) potentialfrei sind und zwischen denen ein Potentialunterschied von ca. 3V besteht. Da ist es vollkommen Wumpe, ob das µC-GND und ein GPIO mit Pullup zu 3.3V ist. Oder so wie vom TE vorgesehen 3.3V und ein Pulldown nach µC-GND. @Roman: falls das noch nicht klar gewesen sein sollte, es sind 3 Maßnahmen nötig (alle drei): 1. den Pullup für den GPIO im rPi abschalten. 2. den Pulldown kleiner machen. 1K wäre deutlich besser als 10K. 3. zwischen Pulldown und rPi-GPIO einen Tiefpaß aus ca. 10K und 100nF einfügen (also die 10K in Reihe und dann die 100nF nach GND). Das Abschalten des Pullup verbessert den Störabstand. Der kleinere Pulldown schluckt Einstreuungen mit niedriger Energie. Der Tiefpaß filtert hochfrequente Einstreuungen. Außerdem bildet der 10K Widerstand zusammen mit dem Schutzdioden im rPi eine Schutzschaltung gegen Über/Unterspannung. XL
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.