Forum: Mikrocontroller und Digitale Elektronik Vor/Nachteile SchmittTrigger vs. Softwareentprellung


von Mitko R. (eisfochel)


Lesenswert?

Hallo,

ich steige gerade in die µC Welt ein und bin noch am "rumspielen" um den 
Controller und die Elektronik drumrum kennenzulernen.

Soweit funktioniert auch alles.

Jetzt hat sich aber folgende Frage aufgetan: Welches sind die Vor und 
Nachteile der Entprellung mittels Schmitt Trigger und den diversen 
Softwarelösungen.? Die diversen Threads hierzu habe ich auch gelesen, 
und auch die sehr ausgereiften Lösungen gesehen/probiert/als Anregung 
genutzt.

Ich habe mir zuerst eine (zugegebenermassen recht einfache) 
Softwarelösung implementiert, die funktioniert auch zufriedenstellend. 
Im Tutorial wurde dann die Lösung per Schmitt Trigger aufgezeigt, welche 
ich jetzt auch aufgebaut habe. Tut auch zufriedenstellend.

Nun stellt sich mir die Frage der Vor und Nachteile. Da hier die 
Softwarvariante offensichtlich bevorzugt wird, muss das ja einen Grund 
haben.

Vorteile Software:
 -leicht anpassbar an diverseste Schaltervarianten
 -schnell übertragbar da keine weitere Verdrahtung notwendig
 -funktioniert gleich bei verschiedendsten Controllervarianten

Nachteile Software:
 -Wertvoller Speicherplatz geht für etwas drauf was auh in Hardare ginge
 -man verliert den Timer für andere Zwecke (soweit die Implementierungen
  die ich mir bisher zu Gemüte gefühert hab)


Vorteile Schmitt Trigger:
 -keine weitere Software notwendig

Nachteile Schmitt Trigger:
 -zusätzliche Bauteile und Verdrahtung notwendig
 -zusätzlicher Stromverbrauch



Das ist jetzt das was ich jetzt erstemal sehe. Sicherlich gibt es da ja 
noch zig andere Gründe, Erfahrungswerte, Vor und Nachteile.

Es ist mir klar, daswurde sicherlich shcon alles zig mal durchgekaut, 
aber ich habe bisher nur Threads zu den einzelnen Implementierungen 
gefunden, aber noch keine Gegenüberstellung. Daher wäre es nett wenn Ihr 
mich etwas erleuchten könntet.


LG,

Mitko

von Falk B. (falk)


Lesenswert?

@  Mitko Rürup (eisfochel)

>Vorteile Software:
> -leicht anpassbar an diverseste Schaltervarianten
> -schnell übertragbar da keine weitere Verdrahtung notwendig
> -funktioniert gleich bei verschiedendsten Controllervarianten

 -keine zusätzliche Hardware nötig, Platz- und Kostenreduzierung

>Nachteile Software:
>  - leicht erhöhter Speicherplatzverbrauch
>  - leicht erhöhte CPU-Last

> -man verliert den Timer für andere Zwecke (soweit die Implementierungen
>  die ich mir bisher zu Gemüte gefühert hab)

  nicht wirklich, den Timer kann man auch für andere Sachen nutzen

  - nur für mässig schnelle Signale tauglich

>Vorteile Schmitt Trigger:
> -keine weitere Software notwendig

 - individuell an das Signal anpassbar
 - keinerlei CPU- und Programmlast

>Nachteile Schmitt Trigger:
> -zusätzliche Bauteile und Verdrahtung notwendig

> -zusätzlicher Stromverbrauch

kann man bei CMOS vergessen.

MFG
Falk

von me (Gast)


Lesenswert?

Mitko Rürup schrieb:
> Nachteile Software:
>  -Wertvoller Speicherplatz geht für etwas drauf was auh in Hardare ginge
>  -man verliert den Timer für andere Zwecke (soweit die Implementierungen

Falscher Ansatz.
Speicher spielt heute keine Rolle. Externen Bauteile sind teuer.
k.A. welche Implementierung du meinst, Tastenentprellen macht ein Timer 
idR problemlos neben seiner Hauptaufgabe.

von Prelli (Gast)


Lesenswert?

Speicherplatz ist heute kein Problem mehr und eine gute 
Softwareentprellung frißt sowieso kaum Speicherplatz. Und ein extra 
Timer ist in den meisten Fällen auch unnötig, da bei Meßprozessen oft 
schon ein Timer alle 10...50msec einen Interrupt erzeugt um einen neuen 
Sample zu ziehen.

Nichtsdestotrotz sollte eine µC-Schaltung aber Filter an den Ports für 
die Taster haben, um ESD und andere Störungen abzufangen.

von Mitko R. (eisfochel)


Lesenswert?

Falk Brunner schrieb:
> - nur für mässig schnelle Signale tauglich

Danke für Deine Antworten.

Verstehe ich das richtig, der Schmitt Trigger ist "langsamer"? Leider 
kann ich mir das Signal nicht anschauen, hab noch kein Oszi.

Ich hatte mir das bisher so zusammengereimt das der sozusagen in 
Echtzeit ab erreichen der Schalt-Schwelle ein TTL-Signal rausgibt, und 
der Kondensator am Eingang die Verzögerung vorgibt. Was passiert dann 
wenn zwei Signale in zu schneller Abfolge kommen (z.Bsp. Wildestes 
drehen an nem Drehencoder)?

von Mitko R. (eisfochel)


Lesenswert?

Prelli schrieb:
> Speicherplatz ist heute kein Problem mehr und eine gute
> Softwareentprellung frißt sowieso kaum Speicherplatz. Und ein extra
> Timer ist in den meisten Fällen auch unnötig, da bei Meßprozessen oft
> schon ein Timer alle 10...50msec einen Interrupt erzeugt um einen neuen
> Sample zu ziehen.
>
> Nichtsdestotrotz sollte eine µC-Schaltung aber Filter an den Ports für
> die Taster haben, um ESD und andere Störungen abzufangen.

Ok, jetzt haste mich. Der letzte Satz sagt mir grad gar nichts. Hast Du 
mir bitte einen Link wo ich mich da einlesen kann?

von Mitko R. (eisfochel)


Lesenswert?

me schrieb:
>
> Falscher Ansatz.
> Speicher spielt heute keine Rolle. Externen Bauteile sind teuer.
> k.A. welche Implementierung du meinst, Tastenentprellen macht ein Timer
> idR problemlos neben seiner Hauptaufgabe.

Ok danke, ich rechne mal die Zyklen aus die ich für das entprellen 
brauche. Ok, ist jetzt eher akademischer Natur, wills einfach wissen.

von Karl H. (kbuchegg)


Lesenswert?

Mitko Rürup schrieb:
> me schrieb:
>>
>> Falscher Ansatz.
>> Speicher spielt heute keine Rolle. Externen Bauteile sind teuer.
>> k.A. welche Implementierung du meinst, Tastenentprellen macht ein Timer
>> idR problemlos neben seiner Hauptaufgabe.
>
> Ok danke, ich rechne mal die Zyklen aus die ich für das entprellen
> brauche. Ok, ist jetzt eher akademischer Natur, wills einfach wissen.

Ist unter "ferner liefen".

Die PeDa Entprellung verbraucht (bei einer vernünftigen Taktfrequenz) 
weniger als 1 hunderstel Prozent Rechenzeit. Also völlig uninteressant.
Die ~20 Taktzyklen alle ca. 10 Millisekunden hast du locker immer zur 
Verfügung.

von Kein Name (Gast)


Lesenswert?

> Verstehe ich das richtig, der Schmitt Trigger ist "langsamer"?

Deine alte Betrachtungsweise erscheint mir sinnvoller.

Widerstand und Kondensator sind langsam.

Der Schmitt Trigger wird nur gebraucht, um aus den langsam ansteigenden 
Signalen wieder brauchbare Digital-Signale zu machen.

von Karl H. (kbuchegg)


Lesenswert?

Mitko Rürup schrieb:
> Falk Brunner schrieb:
>> - nur für mässig schnelle Signale tauglich
>
> Danke für Deine Antworten.
>
> Verstehe ich das richtig, der Schmitt Trigger ist "langsamer"? Leider
> kann ich mir das Signal nicht anschauen, hab noch kein Oszi.

Darum gehts nicht. Ausserdem ist es umgekehrt. SW-Entprellung geht nur 
für mässig schnelle Signale.

Wenn ich einen Taster an einem Eingang habe, dann kann kein Mensch einen 
Taster drücken und ihn 30 Millisekunden später schon wieder loslassen. 
So schnell bist du nicht.
Habe ich also ein Eingangssignal, auf dem ich einen Wechsel von 0->1 
feststelle und 5 Millisekunden später fällt dieses Signal wieder zurück 
1->0, dann kann man davon ausgehen, dass dieses ein falsches 
Zurückfallen ist - ein Tastenpreller. Der Zeitunterschied zwischen der 
echten, durch Betätigung hervorgerufenen, Aktivität am Eingangspin und 
dem was mir die Mechanik antut ist groß genug, dass man das in Software 
leicht unterscheiden kann. Weiters ist der Zeitunterschied in einer 
Größenordnung, dass man ihn in SW leicht messen kann, ohne dass der µC 
nichts anderes mehr tut.


Habe ich aber eine Welle die sich 1-tausend mal in der Sekunde dreht und 
bei jeder Umdrehung liefert mir ein Schalter ein Signal, dann hab ich 
ein Problem. Ich kann echtes Schaltsignal und das durch die Mechanik 
hervorgerufene falsche Signal nicht mehr unterscheiden. Die 
Zeitdifferenzen werden so gering, dass ich sie in Software nicht mehr 
(einfach) messen kann. Dann muss Hardware aushelfen.

von oszi40 (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Zeitdifferenzen werden so gering, dass ich sie in Software nicht mehr
> (einfach) messen kann. Dann muss Hardware aushelfen.

Frage wäre auch, wie gefährlich die eingehenden Signale sind. Wenn sich 
Buckel auf dem Schaltkreis bilden, hat die Schutzschaltung versagt. Dann 
sollte man einen "wartungsfreundlichen Aufbau" wählen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Habe ich aber eine Welle die sich 1-tausend mal in der Sekunde dreht

Die ist aber höllisch schnell, die Welle!

von Mitko R. (eisfochel)


Lesenswert?

Ok, ich glaubich habs kapiert.

An so Einsatzzwecke wie mit der rotierenden Welle hatte ich noch gar 
nicht gedacht. Klingt aber sehr sinnig.

Dann bau ich jetzt mal die Entprellroutine in die Ausleseroutine für den 
Drehencoder ein.

Vielen Dank für all die Antworten und Anregungen.

von Christian G. (christian_g83)


Lesenswert?

Knut Ballhause schrieb:
> Die ist aber höllisch schnell, die Welle!

FYI: http://www.jetcat.de/jetcatturbinen/helikopterturbinen.htm

Christian

von Karl H. (kbuchegg)


Lesenswert?

Knut Ballhause schrieb:
> Karl Heinz Buchegger schrieb:
>> Habe ich aber eine Welle die sich 1-tausend mal in der Sekunde dreht
>
> Die ist aber höllisch schnell, die Welle!

Ich hab ja nicht gesagt, welchen Durchmesser sie hat :-)

von Prelli (Gast)


Lesenswert?

>Ok, jetzt haste mich. Der letzte Satz sagt mir grad gar nichts. Hast Du
>mir bitte einen Link wo ich mich da einlesen kann?

Hier zum Beispiel:

http://www.rotgradpsi.de/mc/etc/emv.html

von Ben _. (burning_silicon)


Lesenswert?

Da kann/würde ich aber einen Geber verwenden, der nicht prellt. Z.B. 
eine Reflexlichtschranke oder einen Hallgeber. 60k U/min mit einem 
Mikrotaster zu messen dürfte schon mechanisch in Problemen resultieren.

von Peter D. (peda)


Lesenswert?

Vorteile Software:

- sehr hohe Bequemlichkeit:
Einfach den Code einfügen, die gewünschte Ereignisabfrage aufrufen und 
dann die gewünschte Aktion ausführen.

- sehr hohe Zuverlässigkeit:
Unterdrückt nicht nur Prellen, sondern auch Störungen (EMV).


Nachteile Software:

- keine:
Timer ist nicht verloren, kann noch andere Sachen machen.
Code-, RAM-Verbrauch nicht signifikant, nichtmal beim ATtiny13.


Peter

von Ulrich (Gast)


Lesenswert?

In den meisten Fällen hat der µC noch Platz im Flash, RAM und auch noch 
Rechenzeit frei. Es gibt aber halt auch einige seltene Fälle wo gerade 
die 2 Bytes RAM oder 20 Zyklen nicht mehr über sind.

Meistens ist also die Softwarelösung einfach möglich und besser, weil 
die Resourcen frei sind, und für nicht genutzten Speicher gibt es kein 
Geld zurück.

von Falk B. (falk)


Lesenswert?

@  Peter Dannegger (peda)

>Unterdrückt nicht nur Prellen, sondern auch Störungen (EMV).

Nö, das ist eine Illusion von Softwerkern. Es gibt genügend EMV-Effekte, 
die an einer Softwareentprellung spielend vorbeiziehen, direkt oder 
indirekt.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Falk Brunner schrieb:
> Nö, das ist eine Illusion von Softwerkern.

Na dann betriffts mich ja nicht, ich bin Hardwerker mit Nebentätigkeit 
Firmware.


Falk Brunner schrieb:
> Es gibt genügend EMV-Effekte,
> die an einer Softwareentprellung spielend vorbeiziehen, direkt oder
> indirekt.

Ich meine das im Vergleich zu der "klassischen" falschen Abfrage per 
Interrupt, die fängt gerne mal EMI ein.
Und dann wundert sich der Anfänger, wenn was passiert, obwohl er die 
Taste nichtmal berührt hat.


Peter

von Klaus 2. (klaus2m5)


Lesenswert?

Falk Brunner schrieb:
> Nö, das ist eine Illusion von Softwerkern. Es gibt genügend EMV-Effekte,
> die an einer Softwareentprellung spielend vorbeiziehen, direkt oder
> indirekt.

Du meinst die mit den internen Pullups? Wenns denn sein muss, löte ich 
270 Ohm dran und dann passiert da garnüscht.

von Falk B. (falk)


Lesenswert?

@  Peter Dannegger (peda)

>Ich meine das im Vergleich zu der "klassischen" falschen Abfrage per
>Interrupt, die fängt gerne mal EMI ein.

Ok, da geh ich mit.

>Du meinst die mit den internen Pullups?

Nein, ich meine, dass man EMV-Probleme nur in wenigen Fällen durch 
Software lösen kann. Wenn EMV in die Resetleitung hustet, nützt dir die 
tollste Softwareentprellung nix. Und noch drei Dutzend andere Effekte, 
die mir spontan nicht einfallen.

MfG
Falk

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.