Forum: Mikrocontroller und Digitale Elektronik GPIO entstören - Serienwiderstand benötigt?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Fragender (Gast)


Angehängte Dateien:

Bewertung
-2 lesenswert
nicht lesenswert
Hallo,

ich habe auf einem GPIO Störungen, so dass dieser gelegentlich Signale 
am Eingang ohne Schalterbetätigung sieht.
Wenn ich nun einen 100nF kerko gegen Masse schalte, müsste dieser ja bei 
offenem schalter einen Tiefpass bilden.
Ist meine Annahme richtig, dass der gestrichelte Widerstand für den 
Tiefpass nicht gebraucht wird?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Dafür muss der Taster jetzt jedesmal den Kondensator kurzschliessen und 
diesen Strom vertragen. Besser ist ein echter RC Tiefpass, also 
Widerstand in Serie und dann einen vernünftig kleinen C am GPIO gegen 
Masse.

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du meinst mit echtem Tiefpass, den gestrichelten Widerstand 
hinzuzunehmen?

von was (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Setz den Pullup doch direkt an den uC Pin, nicht ans andere Ende der 
Leitung. Dann fängst du dir unterwegs auch nicht so viele Störungen ein.

von HildeK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> Ist meine Annahme richtig, dass der gestrichelte Widerstand für den
> Tiefpass nicht gebraucht wird?

Ja, das ist richtig,
Ohne ihn hast du eben 10K/100n, mit sind es 11k/100n. Er hat einen 
geringen Einfluss. Das selbe Ergebnis erreicht man auch durch Vergrößern 
des 10k auf 11k.

Der gestrichelte R ist zum Schutz des Tasters sinnvoll. Aber da tun es 
auch 100R oder gar keiner, wenn der Taster robust ist.

Fragender schrieb:
> ich habe auf einem GPIO Störungen, so dass dieser gelegentlich Signale
> am Eingang ohne Schalterbetätigung sieht.

Der Kondensator hilft dabei, auch eine Reduzierung der 10k auf z.B 1k 
wird zusätzlich helfen - zusammen mit dem C.
Du solltes auch danach suchen woher die Störungen kommen. Lange Leitung 
und/oder schlechte Leitungsführung zum Taster, verseuchte Umgebung, 
Schaltnetzteile ...

von Peter D. (peda)


Bewertung
1 lesenswert
nicht lesenswert
Mechanische Kontakte liest man grundsätzlich über eine (ordentliche) 
Entprell-Lib ein. Diese filtert kurze Störungen heraus.
Kondensatoren nehmen nur Anfänger.

von Peter D. (peda)


Bewertung
1 lesenswert
nicht lesenswert
Fragender schrieb:
> Ist meine Annahme richtig, dass der gestrichelte Widerstand für den
> Tiefpass nicht gebraucht wird?

Ohne den Widerstand entstehen am GND-Anschluß des Kondensators negative 
Pulse beim Drücken.
Je nachdem, was da noch in der Nähe angeschlossen ist, kann das die 
lustigsten Fehlfunktionen bewirken, bis hin zum Latchup des MCs.

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Hilfe! Ich habe noch ein paar Rückfragen:

@Peter D.
Das mit den negativen Pulsen verstehe ich nicht ganz. Man könnte 
argumentieren, dass der Kondensator und die Leitung einen Schwingkreis 
bilden. Dieser wird durch den Serienwiderstand dann bedämpft. Geht deine 
Überlegung in diese Richtung?

@was:
Wenn ich dich richtig verstehe, würdest du den Serienwiderstand und den 
Kondensator weglassen. Stattdessen würdest du den Pull up so nah wie 
möglich an den GPIO Pin bringen. Habe ich das richtig verstanden?

@HildeK:
Vielen Dank für deine Antwort. Ich schätze deine Antworten hier im Forum 
sehr. Die Antwort habe ich verstanden, keine Rückfragen. :)

von Guest (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Peter D. schrieb:
> Mechanische Kontakte liest man grundsätzlich über eine (ordentliche)
> Entprell-Lib ein. Diese filtert kurze Störungen heraus.
> Kondensatoren nehmen nur Anfänger.

Achso damit dann bei permanenten Störungen nur alle 250ms statt alle 
10µs falsch getriggert wird?

(Bevor sich jemand beschwert, alle Zeitangaben sind vollständig aus der 
Luft gegriffen.)

von Peter D. (peda)


Bewertung
2 lesenswert
nicht lesenswert
Fragender schrieb:
> Das mit den negativen Pulsen verstehe ich nicht ganz.

Jede Leitung hat einen Widerstand und der geladene 100nF bildet eine 
Spannungsquelle. Beim Kurzschluß durch die Taste teilt sich die Spannung 
an den einzelnen Leiterstücken auf.
Man kann das simulieren, indem man in jeden Leiterzug einen Widerstand 
setzt.

von Peter D. (peda)


Bewertung
2 lesenswert
nicht lesenswert
Guest schrieb:
> Achso damit dann bei permanenten Störungen nur alle 250ms statt alle
> 10µs falsch getriggert wird?

Nö, das passiert nicht. Der SW-Tiefpaß läßt nur längeres konstantes Low 
oder High durch.
Die "permanenten Störungen" müßten schon exakt synchron zum 
Abtastinterval liegen, um durch Aliasing das Filter zu stören.
Wer aber besonders ängstlich ist, kann das Abtastinterval mit 
Pseudozufall etwas jittern lassen.

von Immer diese Sparfüchse (Gast)


Bewertung
-6 lesenswert
nicht lesenswert
Da merkt man, wenn jemand Produkte mit großen auflagen entwickelt :D

Alles in Software und nur keinen Kondensator für 0,1 Cent mehr mit aufs 
PCB. Lasst ihr auch die Pull-Downs am Gate weg? Ich mein macht ja die 
Software zumindest sobald sie gestartet ist. Was beim Programmieren oder 
während des Bootens passiert ist ja egal, da kann es auch mal flackern 
und unvorhergesehen zugehen. ;)

von asdf (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Guest schrieb:
>> Kondensatoren nehmen nur Anfänger.

Dann schreib das doch mal in den Artikel über Entprellen rein 
(https://www.mikrocontroller.net/articles/Entprellung). Der scheint da 
ja komplett falsch zu sein.

von Guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
asdf schrieb:
> Guest schrieb:
>>> Kondensatoren nehmen nur Anfänger.

Hey bitte richtig zitieren sonst sieht es ja so aus als ob ich den Mist 
geschrieben hab und nicht der gute Peter D. :D

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nochmal Danke für alle Antworten.
Zwei Fragen sind mir noch gekommen:
1. Wenn man keine genaueren Informationen über die Störung hat, welche 
Grenzfrequenz legt man dann am besten fest um damit C zu dimensionieren?
2. Ich habe in einem Buch gelesen, dass man hinter das RC Glied einen 
Schmitt-Trigger schalten MUSS. Ist das notwendig?

von Peter D. (peda)


Bewertung
1 lesenswert
nicht lesenswert
Fragender schrieb:
> 1. Wenn man keine genaueren Informationen über die Störung hat, welche
> Grenzfrequenz legt man dann am besten fest

Gute Erfahrungen habe ich mit einem Timerinterrupt von 10ms und Zählen 
bis 4 gemacht. Das ergibt dann einen Tiefpaß von 12,5Hz.
Der genaue Wert ist unkritsch, 2..50ms Interrupt bzw. Zählen bis 8 
zeigen keinen merkbaren Unterschied.

von HildeK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> 2. Ich habe in einem Buch gelesen, dass man hinter das RC Glied einen
> Schmitt-Trigger schalten MUSS. Ist das notwendig?

Muss nicht, das hängt von mehreren Dingen ab.
- Was ist die übrig bleibende Anstiegszeit nach dem RC-Glied?
- Was hat der Eingang für eine Spezifikation bez. max. Anstiegszeit?
- hat der Eingang nicht evtl. sowieso einen Schmitt-Trigger-Eingang? In 
dem Fall erübrigt sich das

von HildeK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Der genaue Wert ist unkritsch, 2..50ms Interrupt bzw. Zählen bis 8
> zeigen keinen merkbaren Unterschied.

Als Erklärung für den TO - man hat halt zwei Grenzbedingungen:
- zu kurz, dann werden die Prellungen/Störungen trotzdem erfasst und 
nicht unterdrückt
- zu lang, dann reagiert die Taste nicht mehr auf einen kurzen 
Tastendruck durch den Menschen, verhindert aber noch besser Störungen. 
Wenn man keinen Taster hat, sondern nur einen (seltener) bedienten 
Schalter, dann ist 'zu lang' eher kein Problem.

50ms und Zählen bis 8 erscheint mir zumindest für einen Taster zu lange. 
Die 400ms Entprellzeit beginnen ja erst vollständig abzulaufen, wenn die 
Prellung selber vorbei ist.
Beim Rufen eines Aufzugs passiert mir es immer wieder, dass ich zu kurz 
drücke ...
Ich würde so schätzen, dass man in <50ms, besser <30ms den Tastendruck 
als solchen erkannt haben sollte - schon um mich nicht am Aufzug zu 
ärgern :-).

Wie ich oben schon bemerkte: solche Störungen sollten eigentlich extrem 
selten auftreten, und wenn, ist es ratsam den Grund dafür zu ermitteln 
und das zu bewerten.
Wenn das mal bei einem nahen Gewitter passiert, dann braucht man keine 
Zusatzmaßnahmen; wenn es regelmäßig passiert (Kühlschrank schaltet, 
Licht wird geschaltet usw.), dann ist was anderes faul.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
HildeK schrieb:
> Beim Rufen eines Aufzugs passiert mir es immer wieder, dass ich zu kurz
> drücke ...

Bei vielen "professionellen" Steuerungen wird leider kein Filter 
benutzt, sondern nur ein langes Delay. Besonders an Fußgängerampeln ist 
das nervig.
Ein typischer Erwachsener drückt ~300ms, ein Delay von 500ms sorgt daher 
unweigerlich für Ärger. Ich hab auch schon eingetretene Taster gesehen.

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Gute Erfahrungen habe ich mit einem Timerinterrupt von 10ms und Zählen
> bis 4 gemacht. Das ergibt dann einen Tiefpaß von 12,5Hz.
> Der genaue Wert ist unkritsch, 2..50ms Interrupt bzw. Zählen bis 8
> zeigen keinen merkbaren Unterschied.
Du meinst du dein Timer kommt alle 10ms und du lässt ihn 4 mal kommen? 
Das ergibt aber 25 Hz oder? :)

HildeK schrieb:
> Muss nicht, das hängt von mehreren Dingen ab.
> - Was ist die übrig bleibende Anstiegszeit nach dem RC-Glied?
> - Was hat der Eingang für eine Spezifikation bez. max. Anstiegszeit?
> - hat der Eingang nicht evtl. sowieso einen Schmitt-Trigger-Eingang? In
> dem Fall erübrigt sich das
Kannst du mir den Zusammenhang zwischen der Anstiegszeit des Signals 
nach dem RC-Filter und dem Eingang eklären (2. Stichpunkt von dir)? Der 
Rest ist klar.

Nochmal @Peter:
Mir erschließt sich nicht ganz der Unterschied zwischen einem Delay und 
einem Filter. Letztendlich schlägst du doch ein Delay vor? Deine 
Software blockiert zwar nicht, durch die Interrupts (also kein busy 
waiting), aber dennoch hast du ja ein Delay. Für die Person die im 
Fahrstuhl den Schalter drückt, macht das ja keinen Unterschied?

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> Mir erschließt sich nicht ganz der Unterschied zwischen einem Delay und
> einem Filter.

Typische Delay-Lösungen nehmen das Delay nur, um solange weitere 
Interrupts zu blockieren. Sie sind damit einem Filter bezüglich 
Störfestigkeit weit unterlegen.
Ein Filter arbeitet dagegen wie ein echter Tiefpaß. Es prüft, ob für die 
geforderte Anzahl aufeinanderfolgende 0-en oder 1-en anliegen und 
schaltet erst dann um.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> Für die Person die im
> Fahrstuhl den Schalter drückt, macht das ja keinen Unterschied?

Ist man elektrostatisch aufgeladen, kann es passieren, daß alle Tasten 
aufleuchten (hab ich schon gesehen). Dann hält man erstmal an allen 
Zwischenetagen, statt sofort zum Ziel zu fahren. Ein Filter ist also 
auch beim Fahrstuhl sinnvoll.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> Das ergibt aber 25 Hz oder? :)

Das ist nur eine Halbwelle, Du mußt ja auch wieder loslassen.

von W.S. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Peter D. schrieb:
> Mechanische Kontakte liest man grundsätzlich über eine (ordentliche)
> Entprell-Lib ein. Diese filtert kurze Störungen heraus...

..und machen die ganze Sache lahm. Das sind lediglich deine persönlichen 
Ansichten, die vom Rest der Welt nicht uneingeschränkt geteilt werden.

> Kondensatoren nehmen nur Anfänger...

..oder Leute, die wissen, was sie tun und die auch wissen, wie man mit 
den heutzutage üblichen HF-Störungen durch Schaltnetzteile etc. umgehen 
muß.

Nochwas wirklich Ernstes und Allgemeines: Wenn man Eingänge mit 
Hysterese haben kann (Schmitt-Trigger-Verhalten), dann ist der besagte 
Kondensator das mit weitem Abstand beste Mittel, um mechanische Kontakte 
zu entprellen. Und selbst ohne Hysterese funktioniert das weitaus 
besser, als alle superausgeklügelten Softwarevarianten, die im Grunde 
lediglich eine Mehrfachabtastung machen, ohne dabei das Abtasttheorem zu 
beachten. Wer eigentlich wissen sollte - es aber mit Fleiß ignoriert, 
daß man beim Abtasten der realen analogen Welt die Signalbandbreite auf 
der analogen Seite auf < FSample/2 zu begrenzen hat, um verläßliche 
Ergebnisse zu erzielen, der ist einfach nur blöd. Und wer das nicht 
beachtet, weil er es halt nicht weiß, der benötigt mehr fachliche 
Bildung.

W.S.

von W.S. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
HildeK schrieb:
> Als Erklärung für den TO - man hat halt zwei Grenzbedingungen:
> - zu kurz, dann werden die Prellungen/Störungen trotzdem erfasst und
> nicht unterdrückt
> - zu lang, dann reagiert die Taste nicht mehr auf einen kurzen
> Tastendruck durch den Menschen, verhindert aber noch besser Störungen.
> Wenn man keinen Taster hat, sondern nur einen (seltener) bedienten
> Schalter, dann ist 'zu lang' eher kein Problem.
>
> 50ms und Zählen bis 8 erscheint mir zumindest für einen Taster zu lange.

Der Peter liegt eben immer wieder mal falsch. Er glaubt eben fest daran, 
daß man alles per Software lösen kann.

Die Sache geht andes herum:

1. auf der analogen Seite muß man etwas gegen analoge Störungen tun. Das 
kann man auf der digitalen Seite NICHT MEHR, weil es dort bereits 
"gesamplet" ist und man deswegen nicht mehr zwischen Störung und 
Betätigung unterscheiden kann.

2. Das "Gedrücktwerden" der Taste soll man überhaupt nicht verzögern, 
sondern den allerersten Kontakt als Tastenereignis behandeln.

3. Das "Ist-Wieder-Losgelassen" der Taste ist es, wo man die 
softwareseitige Entprellung tun muß. Also für eine gewisse Zeit 
nachschauen, ob die Taste am Stück losgelassen ist. Da reichen 
normalerweise 50..80 ms völlig aus, denn kein realer Taster hat 
mechanische Eigenschwingungen im Bereich unter 20 Hz, weswegen die 
üblichen Prellereien "Pausen"-Zeiten im 0.5 bis 5 ms Bereich aufweisen.

Und zur Benutzungsweise: Ich habe schon viele Kunden gehabt, die auf die 
Tasten wie auf's Klavier geklopft haben. Die Gedrückt-Zeit ist bei sowas 
um die 15 ms - und die Leute erwarten, daß die Kiste darauf korrekt 
reagiert. Mit Peters Software-Zeugs würden die mir das Gerät um die 
Ohren hauen, wegen Unbedienbarkeit.

Nochwas zu bedenken: Schau mal, was du für eine Repetierrate bei der 
Tastatur deines PC einstellen kannst: das geht zumeist deutlich über 10 
Zeichen/Sekunde, wenn man's schnell haben will. Das macht ne virtuelle 
Tastenzeit von weniger als 100 ms beim Repetieren aus - und sowas sind 
PC-Benutzer durchaus gewöhnt.

W.S.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
W.S. schrieb:
> Peter D. schrieb:
>> Mechanische Kontakte liest man grundsätzlich über eine (ordentliche)
>> Entprell-Lib ein. Diese filtert kurze Störungen heraus...
> ..und machen die ganze Sache lahm.
Mechanische Taster sind lahm.
Wir reden da von Entprellzeiten im Bereich um und knapp unter 100ms. Und 
das reicht für normale Taster und die dadurch bedienten Anwendungen 
locker. Wenn einer im Halbsekundenbereich entprellt, dann hat er den 
Sinn der Sache nicht kapiert.

> ..und machen die ganze Sache lahm.
Ein Kondensator macht die Sache auch "lahm". Er muss sie nämlich genau 
so "lahm" machen, dass die Störungen herausgefiltert werden.

> Wer eigentlich wissen sollte - es aber mit Fleiß ignoriert, daß man
> beim Abtasten der realen analogen Welt die Signalbandbreite auf der
> analogen Seite auf < FSample/2 zu begrenzen hat, um verläßliche
> Ergebnisse zu erzielen, der ist einfach nur blöd.
Da vergleichst du aber ganz arg Kraut mit Rüben. Denn hier geht es nicht 
um ein Abtasten eines Signals mit dem Ziel, ein digitales Abbild zu 
erzeugen, sondern es geht nur darum, keine Funktionen durch Störimpulse 
auszulösen. Mal angenommen, ich will nur gültige Tastendrücke mit 
mindestens 15ms erkennen. Dann muss ich eben den Pin nicht mit 1MHz 
abtasten, auch wenn da Störimpulse mit 1µs ankämen. Denn ich will ja 
diese Störimpulse gar nicht erfassen.

> dann ist der besagte Kondensator das mit weitem Abstand beste Mittel, um
> mechanische Kontakte zu entprellen
Der Kondesnator entprellt nicht. Er filtert nur. Den Unterchied muss man 
kennen.

Mein Ansatz wäre hier jetzt übrigens, den 10k Pullup einfach wesentlich 
niederohmiger zu machen. Denn alles über 1k ist laut meinem EMV-Spezi 
aus EMV-Sicht "eigentlich nicht vorhanden". Der Pullup ist hinsichtlich 
EMV-Störungen also völlig wirkungslos. Seine Impedanz ist zu hoch. 
Denn auch ein Kondensator vom Pin nach GND oder Vcc verringert im Grunde 
lediglich diese Impedanz für die hochfrequenten Störimpulse.

BTW:
W.S. schrieb:
> Und zur Benutzungsweise: Ich habe schon viele Kunden gehabt, die auf die
> Tasten wie auf's Klavier geklopft haben.
Wenn ich mich über schlechte Software ohne brauchbaren Autorepeat 
aufrege, mache ich das manchmal auch...

: Bearbeitet durch Moderator
von Teo D. (teoderix)


Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Peter D. schrieb:
>> Mechanische Kontakte liest man grundsätzlich über eine (ordentliche)
>> Entprell-Lib ein. Diese filtert kurze Störungen heraus...
>
> ..und machen die ganze Sache lahm.

Quatsch, auch nicht mehr als ein Anloger-Filter, nur mit der Option 
schon mal was vorbereiten zu können, auch wenn man es dann doch 
verwirft!

W.S. schrieb:
> ..oder Leute, die wissen, was sie tun und die auch wissen, wie man mit
> den heutzutage üblichen HF-Störungen durch Schaltnetzteile etc. umgehen
> muß.

Völlig andere Baustelle!

W.S. schrieb:
> 1. auf der analogen Seite muß man etwas gegen analoge Störungen tun. Das
> kann man auf der digitalen Seite NICHT MEHR, weil es dort bereits
> "gesamplet" ist und man deswegen nicht mehr zwischen Störung und
> Betätigung unterscheiden kann.

Quatsch³ Prinzipiell gibts da keinen Unterschied. Nur bei 
dauerhafter/ständigen Störungen, macht das rein in SW, keinen Sinn mehr. 
("heutzutage üblichen HF-Störungen ")

W.S. schrieb:
> Und zur Benutzungsweise: Ich habe schon viele Kunden gehabt, die auf die
> Tasten wie auf's Klavier geklopft haben. Die Gedrückt-Zeit ist bei sowas
> um die 15 ms - und die Leute erwarten, daß die Kiste darauf korrekt
> reagiert. Mit Peters Software-Zeugs würden die mir das Gerät um die
> Ohren hauen, wegen Unbedienbarkeit.

Dafür ist es ja nicht gedacht! Das lässt sich aber ziemlich simpel in SW 
umsetzen. Mit den selben Vor- u. Nachteilen wie in HW.

Lothar M. schrieb:
>> ..und machen die ganze Sache lahm.
> Mechanische Taster sind lahm.
> Wir reden da von Entprellzeiten im Bereich unter 100ms. Und das reicht
> für normale Taster und die dadurch bedienten Anwendungen locker. Wenn
> einer im Halbsekundenbereich entprellt, dann hat er den Sinn der Sache
> nicht kapiert.

Wer sagt das man einen Tastendruck nicht als solchen erkennen/reagieren 
kann, auch wenn er immer noch prellt! Hauptsache es bleibt EIN 
Tastendruck.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Fragender schrieb:
>> 1. Wenn man keine genaueren Informationen über die Störung hat, welche
>> Grenzfrequenz legt man dann am besten fest
>
> Gute Erfahrungen habe ich mit einem Timerinterrupt von 10ms und Zählen
> bis 4 gemacht. Das ergibt dann einen Tiefpaß von 12,5Hz.
> Der genaue Wert ist unkritsch, 2..50ms Interrupt bzw. Zählen bis 8
> zeigen keinen merkbaren Unterschied.

so konnte ich dank PeDas Tastenentprellung auch Störimpulse aus einer 
Lasertriggerung filtern, einfach die Entprellung ins Raster 1ms und den 
Input für während der Dauer wo keine Triggerimpulse einlaufen dürfen 
sperren.
Das klappte da die Störimpulse ja auch unregelmäßig auftraten. Die 
ungestörten Zeiten gaben ja den Startpunkt von 10 Hz. Danach konnte 
jeder Impuls dazwischen nur Störung sein.

von Peter D. (peda)


Bewertung
2 lesenswert
nicht lesenswert
W.S. schrieb:
> Der Peter liegt eben immer wieder mal falsch. Er glaubt eben fest daran,
> daß man alles per Software lösen kann.

Kann man auch.
Wenn Dir die Zeiten nicht passen, dann ändere sie doch einfach. Das ist 
in SW ja kein Problem. Du must dazu nichts umlöten, sondern nur andere 
Zahlen in den Quelltext eintragen. Das geht viel schneller, als sich 
hier unnötig darüber aufzuregen.

von HildeK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fragender schrieb:
> Kannst du mir den Zusammenhang zwischen der Anstiegszeit des Signals
> nach dem RC-Filter und dem Eingang eklären

In den Spezifikationen von ICs steht meistens (sollte stehen), wie 
'langsam' die Flanke an einem Eingang höchstens ansteigen darf, um keine 
Fehlinterpretation zu erzeugen. Langsam steigende Eingangssignale führen 
auch zu einem erhöhten Stromverbrauch, solange sich der Pegel im 
mittleren Bereich befindet.
Kein Problem ist dies bei Eingängen, die als Schmitt-Trigger ausgeführt 
sind - auch das sollte im Datenblatt stehen.

Ein RC-Glied, also ein Tiefpass, das mit einer (steilen) Flanke 
beaufschlagt wird, verschleift diese. Je tiefer die TP-Grenzfrequenz 
liegt, desto langsamer steigt dann das Ausgangsignal am TP. Die Zeit, 
bis das Signal auf ca. 63% gekommen ist, berechnet sich zu tau = R*C.
Und nach dem RC-Glied hast dann ggf. ein zu langsam ansteigende Flanke 
für den Eingang des betreffenden ICs.
Deshalb prüft man, ob R*C kleiner ist als der in der Spezifikation 
angegebene Wert. Besser noch, ob 3*R*C die Anforderung erfüllt, denn 
dann ist das Ausgangssignal des TP auf 95% angewachsen und im sicheren 
Bereich.

Dass die endliche Anstiegszeit des Eingangssignals auch noch eingeht, 
leuchtet sicher ein, das kann man jedoch meist vernachlässigen - beim 
Taster sowieso.

von HildeK (Gast)


Bewertung
1 lesenswert
nicht lesenswert
W.S. schrieb:
> 2. Das "Gedrücktwerden" der Taste soll man überhaupt nicht verzögern,
> sondern den allerersten Kontakt als Tastenereignis behandeln.
Idealerweise ja.

> Und zur Benutzungsweise: Ich habe schon viele Kunden gehabt, die auf die
> Tasten wie auf's Klavier geklopft haben. Die Gedrückt-Zeit ist bei sowas
> um die 15 ms - und die Leute erwarten, daß die Kiste darauf korrekt
> reagiert. Mit Peters Software-Zeugs würden die mir das Gerät um die
> Ohren hauen, wegen Unbedienbarkeit.
15ms würde ich für mich nicht fordern, aber 25-30ms schon. 
Klavierspieler könnten schneller sein :-).

Lothar M. schrieb:
> Mein Ansatz wäre hier jetzt übrigens, den 10k Pullup einfach wesentlich
> niederohmiger zu machen. Denn alles über 1k ist laut meinem EMV-Spezi
> aus EMV-Sicht "eigentlich nicht vorhanden".
Mit der Aussage laufe ich auch immer gegen die Wand! Recht hat er!
Die Reduzierung 1k hatte ich weit oben schon vorgeschlagen und wenn man 
viel 'Dreck' hat, kann man auch noch weiter verringern. Der Tastendruck 
ist meist nur kurz und selten.

HW-Entprellung und Filterung sind ja nicht das selbe. Es bewirkt quasi 
das selbe, hat aber verschiedene Ursachen.
- Ein Filter soll Einstreuungen verhindern. Einstreuungen sind aber 
häufig ein Zeichen schlechten Designs, schlechten Aufbaus, schlechter 
Leitungsführung. Vergleich: selbst wenn man in Audiosignalen Störungen 
hört, dann sind diese Störpegel (bei PA, meist übers Mikro eingefangen) 
immer noch um Zehnerpotenzen kleiner als das, was einen Digitaleingang 
triggern würde. Es geht also.
- eine Entprellung soll die Unzulänglichkeit des Tasters/Schalters 
eliminieren.

Eine HW-Entprellung, die nicht verzögert (Wunsch von W.S.) kann man mit 
einem Umschalttaster und einem RS-FF (z.B. zwei NAND) wunderbar 
erreichen. Einstreuungen verhindert es aber nicht ganz, man kann sie nur 
durch einen niederohmigen PU reduzieren. Wobei der geschlossene 
Ruhekontakt und der richtige Abgriff am RS-Ausgang auch Reaktionen auf 
Einstreuungen während der Ruhephase des Tasters verhindert. Der Nachteil 
ist: man braucht einen Umschaltkontakt im Taster und hat zusätzlichen 
Aufwand.

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>> Mein Ansatz wäre hier jetzt übrigens, den 10k Pullup einfach wesentlich
>> niederohmiger zu machen. Denn alles über 1k ist laut meinem EMV-Spezi
>> aus EMV-Sicht "eigentlich nicht vorhanden".
> Mit der Aussage laufe ich auch immer gegen die Wand! Recht hat er!
> Die Reduzierung 1k hatte ich weit oben schon vorgeschlagen und wenn man
> viel 'Dreck' hat, kann man auch noch weiter verringern. Der Tastendruck
> ist meist nur kurz und selten.
Es geht mir darum, so viel wie möglich zu lernen, um dann eine 
Entscheidung zu treffen. Ich habe mich noch für keine Variante 
entschieden. :)
Mir ging es nicht darum einen Fisch zu bekommen, ich wollte Angeln 
lernen...

Es geht übrigens um einen RPi 1 (BCM2835). Leider gibt es dort so gut 
wie keinen brauchbaren Informationen. Siehe auch hier:
http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/gpio-pin-electrical-specifications#input-and-output-pin-electrical-specifications

von Fragender (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Den RC-Tiefpass wird man z.B. einfach probieren müssen. Weil sich die 
Anstiegszeiten für den Sch. Trig. nicht wirklich finden lassen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.