www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Pollin AVR Board Fehler beim drücken der Taster / Qualität der Bauteile


Autor: Bernd (Gast)
Datum:

Falls noch jemand nach dem Fehler sucht :-D
Pollin scheint den Bausatz momentan mal wieder mit extrem minderwertigen
Bauteilen auszuliefern.
Ich habe kürzlich für ein Projekt 8 Stück von den Boards (V2.01)
bestellt und alle haben das Problem, dass der Controller crasht oder
Mist baut wenn einer der Taster gedrückt wird. Der Kondensator C7 (47µF,
16V) ist wohl dafür verantwortlich, mit 220µF aus der Bastelkiste läuft
es wunderbar.
Der Fehler könnte auch für eine Vielzahl weiterer Probleme, die manche
Leute mit dem Board haben verantwortlich sein, im Zweifel einfach einen
zweiten Elko parallel anlöten.

Bitte jetzt keine endlosen Diskussionen über die Entprellung der Taster,
ich finde die Lösung gut und sie funktioniert.

mfg,
Bernd
Autor: Ich (Gast)
Datum:

Sinnvoller.
R7 R8 R11 C19 C17 C18 entfernen und die Taster gegen Masse schalten.
Autor: Bernd (Gast)
Datum:

>Sinnvoller.
>R7 R8 R11 C19 C17 C18 entfernen und die Taster gegen Masse schalten.

Gibts dazu Messungen? Scopebilder über den Spannungseinbruch wären nett.

Ich habe noch zwei weitere Pollin Boards aus einer älteren Bestellung da
funktioniert mit den 47µF Elkos alles problemlos, kann also nicht am
Wert liegen. Rein an der Ladungsmenge kann ein eventueller
Spannungseinbruch eigentlich auch nicht liegen, die kleinen
Kondensatoren verbraten nur <1% der Ladungsträger die in dem Elko
vorhanden sind. Also bleiben nur parasitäre Widerstände und
Induktivitäten.
Autor: Peter Dannegger (peda)
Datum:

Bernd schrieb:
> Bitte jetzt keine endlosen Diskussionen über die Entprellung der Taster,

Aha, Du kennst also die Ursache (C17..19).
Auch der neue 220µF wird irgendwann altern und dann wird Dich das
Problem wieder ärgern.


> ich finde die Lösung gut und sie funktioniert.

Jede Lösung, die nicht die Ursache beseitigt, sondern nur die Wirkung
bekämpft, ist Mist.


Peter
Autor: Martin (Gast)
Datum:

Ich hab auch Probleme beim Drücken der Taster.
Das Testprogramm von Pollin macht nicht das was es soll.
Wie kann ich nun die Ursache beseitigen?
Autor: Ich (Gast)
Datum:

Siehe oben.

Alles andere ist Mist.

http://www.mikrocontroller.net/articles/Pollin_ATM...
Autor: Martin (Gast)
Datum:

Das heißt die Widerstände raus und eine Brücke rein?
Und wie genau schalte ich die Taster gegen Masse?
Autor: Ich (Gast)
Datum:

Keine Brücke sondern Taster anstelle der Widerstände.
R7 R8 R11 C17 C18 C19 ersatzlos entfernen.
Autor: Hannes Jaeger (pnuebergang)
Datum:

Will man die vorhandenen Taster dabei weiter verwenden, muss man an drei
Stellen Leiterbahnen auftrennen, jeweils den linken oberen Tastenpin von
Vcc trennen:
Leiterbahn zu diesem Pin abtrennen
 |
 V
 X----O
 |    |
 |    |
 O----O
TasterX

Die abgetrennten Pins mit Drahtbrücken an Masse legen.
Autor: Martin G. (schraubendreher)
Datum:
Angehängte Dateien:

Nun hab ich es wie beschrieben gemacht, jedoch funktioniert nun gar
nichts mehr.
Der Buzzer klackt ohne mein Zutun ganz oft und die gewünschte Funktion
erfolgt auch nicht.
Autor: Peter Dannegger (peda)
Datum:

Martin G. schrieb:
> Nun hab ich es wie beschrieben gemacht, jedoch funktioniert nun gar
> nichts mehr.

Du mußt natürlich den internen Pullup einschalten und beachten, daß die
Tasten nun low aktiv sind.

Und vor allem brauchst Du eine zuverlässige (bulletproof)
Entprellroutine.


Peter
Autor: Martin G. (schraubendreher)
Datum:

Ah ok alles klar.
Nein doch nicht bitte nochmal langsam und verständlich.
Autor: Martin Vogel (oldmax)
Datum:

Hi
Ich benutze dieses Board nun schon einige Zeit  und staune ein wenig
über die Hinweise, Leiterbahnen zu unterbrechen und irgendwelche
Bauteile zu entfernen. Eine Reklamation bei Pollin bringt da wohl mehr
Erfolg. Es sei denn, man traut seiner Löttechnik nicht und da wird
vermutlich das Problem sein. Ich habe keinerlei Probleme. Ein Hinweis:
wenn sich das Board halt nicht so verhält, wie man's erwartet, dann
reklamiert oder wenn das aus igendwelchen Gründen nicht möglich ist,
benutzt doch ein Steckbrett. Einfach ein altes 40pol. IDE-Kabel aus
alten PC's einseitig auf eine 40pol. Fassung gelötet und die Verbindung
ist fertig. Die Fassung in das Steckbrett und nun könnt ihr eure
Schaltungen entwerfen, wie es euch beliebt. Eine Platine zu verkratzen
und Bauteile nach eigener Wahl einzulöten kann nicht im Sinne des
Erfinders sein und als Tip nicht wirklich hilfreich.
Gruß oldmax
Autor: Schlaumeier (Gast)
Datum:

>Eine Platine zu verkratzen
>und Bauteile nach eigener Wahl einzulöten kann nicht im Sinne des
>Erfinders sein und als Tip nicht wirklich hilfreich.

Die Tastenbeschaltung ist dennoch Murks!
Autor: Jones (Gast)
Datum:

Pollin bietet auch einen bereits fertig aufgebauten und getesteten
Bausatz an. Die Bauelemente sind qualitativ vollkommen in Ordnung,
sicher sind die DIL-Fassung nicht gerade hochwertig. Aber eh man es auf
die Bauteile schiebt sollte man mal seine Lötkünste überprüfen. Manche
Kondensatoren mögen nun mal nicht "langzeitige Erwärmungen".
Autor: Peter Dannegger (peda)
Datum:

Martin Vogel schrieb:
> Hi
> Ich benutze dieses Board nun schon einige Zeit  und staune ein wenig
> über die Hinweise, Leiterbahnen zu unterbrechen und irgendwelche
> Bauteile zu entfernen. Eine Reklamation bei Pollin bringt da wohl mehr
> Erfolg.

Das Ding hat einen Schaltungsfehler, d.h. bei Reklamation kann man nur
sein Geld zurück bekommen.

Man muß auch nichts durchkratzen, wichtig ist nur, daß man die
Kondensatoren in Reihe zu den Tasten entfernt.

Um den Einfluß zu simulieren, bräuchte man genaue Modelle der
Kondensatoren und der Leiterbahninduktivität.


Peter
Autor: Martin Vogel (oldmax)
Datum:

Hi
Du meinst, parallel zu den Widerständen. Nun ja, sicherlich nicht grad
elegant gelöst, aber er sollte doch den Taster entprellen. Allerdings
mag die Schaltung keine gesetzten PullUp's und darauf schließe ich mal
des Fehlverhalten. Prinzipiell widerspricht nichts dem Entfernen und ei
Anschluß eines Tasters einseitig auf den Jumper, andere Seite gegen
Masse. Aber wie ich schon sagte, es funktioniert auch so, wenn man die
PullUp's nicht setzt.....
Gruß oldmax
Autor: Jones (Gast)
Datum:
Angehängte Dateien:

@Peter:
das ist wohl sehr unwahrscheinlich.

C17..19=220nF
R7..11=33kOhm
Autor: Peter Dannegger (peda)
Datum:

Jones schrieb:
> @Peter:
> das ist wohl sehr unwahrscheinlich.
>
> C17..19=220nF

Die Praxis zeigt deutlich das Gegenteil.
Jeder der die Kondis entfernt hat, hatte danach die Probleme nicht mehr.

Keramikkondensatoren sind sehr niederohmig, d.h. da können durchaus
mehrere 10A Impulsströme fließen (für wenige ns).


Peter
Autor: Jones (Gast)
Datum:

Passiert wahrscheinlich nur Leuten die den Taster so schnell drücken das
ein idealer DIRAC-Impuls entsteht. :)

Schade, habe gerade kein passendes GHz-Oszi zur Hand.
Autor: Simon K. (simon) Benutzerseite
Datum:

Das hat doch nichts mit der Geschwindigkeit des Drückens zu tun...
Autor: Jones (Gast)
Datum:

deswegen ist da auch ein :)

und hättest du den Satz zu Ende gelesen oder verstanden wüsstest du was
gemeint ist!
Autor: Martin G. (schraubendreher)
Datum:

Hallo nochmal,
ich würde das Board gerne betreiben nur was muss ich nun alles dazu
ändenr damit es funktioniert?
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Martin G. schrieb:
> Hallo nochmal,
> ich würde das Board gerne betreiben nur was muss ich nun alles dazu
> ändenr damit es funktioniert?

Was haste denn gemacht ?
selbst zusammengelötet? oder bestückt gekauft?
Schon irgendwas an der Bestückung geändert?
und was funktioniert nicht? bei welchem Programm?
Autor: oldmax (Gast)
Datum:

hi
Über 2 Monate, und noch immer kein funktionierendes Board? Also, die
Leiterbahnen sind aufgetrennt, die Platine hingehunzt, sehr schön !
Warum nicht mal lesen, was einfacher ist....
Die eigene Löttechnik überprüfen, da bei anderen dieses Board
anscheinend seine Dienste tut. Siehe meinen Beitrag. Ach ja, es gibt
z.B. für 5€ mehr ein fertiges Board. Aber das funktioniert vermutlich
genausowenig. Warum? Nun, einen µC zu betreiben erfordert ein wenig mehr
Wissen. Da muß z.B. auch ein Programm erstellt, übersetzt und geflasht
werden. Ist nicht einfach nur Controller stecken und fertig.
Eigenes Unvermögen mit schadhaften Bauteilen zu begründen ist der
schlechteste Weg zum Erfolg. Da kommst du keinen Schritt voran, auch
nicht, wenn du dir die teuren STK's zulegst. Der Gedanke, das durch
einen Tastendruck die Versorgungsspannung einbricht läßt nun wirklich
nicht auf schadhafte Taster schließen. Kondis schon möglich, und da ist
der Tip mit den 220 µF gar nicht so schlecht. Bedenkt, das diese Platine
ein Entwicklungsboard ist. Die Taster benutze ich gar nicht. Zur
Schaltungsentwicklung nutze ich ein Steckboard, welches "meine"
Schaltung erlaubt. Die Taster auf dem Pollin-Board sind wirklich nur für
anfängliche Spielereien....
Ich empfehle dir erst einmal ein paar Std. Elektrotechnik, danach
Elektronik. Dann wirst du die Schaltung verstehen und auch, wie man
einen Fehler durch Messungen eingrenzt und findet. Wenn du dir Mühe
gibst, schaffst du es vielleicht noch in diesem Jahr. Also ran....
Enen guten Rutsch ins Neue und nicht verzagen, wenn's in 2009 nicht mehr
klappt.
Gruß oldmax
Autor: Peter Dannegger (peda)
Datum:

Wie oft denn noch?

C17..19 abknipsen, dann läufts!


Peter
Autor: teN crA (Gast)
Datum:

Peter Dannegger schrieb:
> Wie oft denn noch?
>
> C17..19 abknipsen, dann läufts!
>
>
> Peter
Also bei dem Addon auch?
Da sieht die Beschaltung ja gleich aus?
Warum soll man den laut Pollin ATMEL Evaluations-Board die
Kondensatoren abknipsen und die Widerstände zur Masse brücken?
Autor: Peter Dannegger (peda)
Datum:

Der AVR kann interne Pullups benutzen. Schaltet man dann Tasten gegen
GND spart man sich die externen Pullups ein.

Bei Tasten gegen VCC braucht man in jedem Fall externe Pulldowns, hat
also einen höheren Schaltungsaufwand.

Es geht aber beides und ist kein Fehler.


Die Kondensatoren sind dagegen ein echter Schaltungsfehler.
Wie stark er sich auswirkt, hängt von der Leiterbahnführung der VCC- und
GND-Leitungen und vom ESR der Siebkondensatoren ab.
Das erklärt auch, warum der Fehler bei fabrikneuen Kondensatoren mit
geringem ESR oft noch nicht bemerkt wird.


Peter
Autor: Stefan B. (Gast)
Datum:

> Warum soll man den laut Pollin ATMEL Evaluations-Board die
> Kondensatoren abknipsen und die Widerstände zur Masse brücken?

Soll man nicht. Lies die Diskussionsseite des Artikels zu diesem
Vorschlag.

Es reicht aber, wie Peter vorschlägt, die Kondensatoren auszulöten und
die Leiterbahn dort offen zu lassen. Die dadurch fehlende
Entprellfunktion des Kondenstors programmiert man dann in Software.
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Vielleicht nochmal die Begründung, weil die im Artikel nicht deutlich
drinsteht:

Nomalerweise ist der Kondensator C19 (330nF) entladen, weil er mit R7
(33k) überbrückt ist.

Drückt man jetzt auf die Taste, dann wird damit die Versorgungsspannung
direkt auf diesen entladenen Kondensator geschaltet.
Der im Einschaltaugenblick fließende Strom wird nur durch den ESR des
Kondensators und den Kontaktwiderstand des Tasters begrenzt. Da diese
Impedanzen sehr klein sind, kann die Versorgungsspannung so weit
einbrechen, dass andere Bauteile dadurch gestört werden. Wenn jetzt z.B.
die Versorgung des uC (mit 100nF abgeblockt) direkt am Taster liegt,
dann fällt die Spannung am uC von 5V auf 5V*(100nF/330nF) = 1.5V ab.
Dies führt unweigerlich zu Fehlfunktionen.

Ein Vergrößern der Elkos am Spannungsregler macht wenig Sinn, da diese
Elkos einen deutlich höheren (altersabhängigen) ESR haben als C19.
Außerdem sind diese relativ weit entfernt, so dass durch die Impedanz
der Leiterbahn das Einbrechen der Spannung um uC kaum verhindert werden
kann.

Bei solchen Spielchen (Spannung ohne Widerstand auf Kondensator
schalten) kann auch leicht mal passieren, dass hinterher die doppelte
Spannung (oder auch eine negative Spannung) am Kondensator liegt. Der
Kondensator kann nämlich mit der Leiterbahninduktivität einen
Schwingkreis bilden.
Autor: eProfi (Gast)
Datum:

Schon mal dran gedacht, den Stromimpuls durch einen R in Reihe zum
Taster oder zum C zu verringern?
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Jo O. schrieb:
> dann fällt die Spannung am uC von 5V auf 5V*(100nF/330nF) = 1.5V ab.

Peinlich, peinlich.
Ich bin zu blöd die Spannung am Kondensator richtig zu berechnen.
Und keiner sagt was.
Die Spannung fällt natürlich auf : 5V*(100nF/330nF+100nF) = 1.16V ab.


eProfi schrieb:
> Schon mal dran gedacht, den Stromimpuls durch einen R in Reihe zum
> Taster oder zum C zu verringern?

Es gibt viele Möglichkeiten das Problem zu beheben. Bei deinem Vorschlag
muss man aber nachrechnen welche Spannung bei betätigtem und nicht
betätigtem Schalter am Eingang liegt. Und das hängt dann auch noch vom
Eingangswiderstand des uC ab.

Mann kann auch einfach den Kondensator über den Schalter legen. Das
dürfte alle Probleme beseitigen.
Einwände dagegen?
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Ich selber hatte den Kondensator damals einfach rausgeschmissen. Das ist
nach meiner Meinung in diesem Fall das vernünftigste. Dann muss man
softwareseitig nur damit rechnen, dass der Schalter prellen kann. Die
Logik bleibt so, dass die für das Board geschriebenen Programme die
Eingänge richtig interpretieren.
Autor: Gunther Janek (boerser)
Datum:
Angehängte Dateien:

Hallo zusammen. Schön, dass ich nach 2 Monaten Fehlersuche auf diesen
Thread gestoßen bin.
Meine Idee war auch, entweder C7 zu vergrößern oder die
Entprell-Kondensatoren zu entfernen. Interessanterweise hängt sich der
Controller nicht auf, wenn man ihn lediglich mit 2 MHz betreibt, also
DIV8 bei den Fuses. Auf der anderen Seite klingt es logisch, dass ein
Controller bei 16 MHz mehr Energie verbraucht und deshalb anfälliger auf
den Spannungseinbruch reagiert.
Am Anfang des Threads wurde nach einem Oszillogramm gefragt. Auch wenn
das Thema nicht mehr ganz aktuell ist, hab ich mal eines angehängt. Bei
all meinen Messungen betrug der Einbruch ca. 0,4V. Meiner Meinung nach
müsste das innerhalb der Toleranz liegen, was der µC (in meinem Fall
ATmega644) verträgt. Aber möglicherweise gibt es da auch statistische
Ausreißer. Schließlich steigt das Ding nicht bei jedem Tastendruck aus.
Meine erste Idee war der Schaltregler gewesen. Denn die Art, wie sich
die Spannung wieder einschwingt, deutet auf einen Regelkreis hin. Mein
Fehler. Das zeigt ja gerade, dass der Regler schonmal funktioniert,
nicht wahr?
Ich nehme an, das Entfernen der Entprell-Cs dürfte der sinnvollste Weg
sein. Weil weiter oben auch das Entfernen von R7, R8 und R11
vorgeschlagen wurde: Die brauche ich doch als Pulldowns, oder? Mir
erschließt sich der Hintergrund dieses Vorschlags nicht.
Autor: Werner B. (werner-b)
Datum:

Bitte nicht die Hälfte weglassen. Da steht nicht dass

> ... das Entfernen von R7, R8 und R11
> vorgeschlagen wurde ...

 sondern

> ... Taster anstelle der Widerstände.
> R7 R8 R11 C17 C18 C19 ersatzlos entfernen.

Ich habe jetzt den Schaltplan nicht im Kopf (täte warscheinlich auch weh
besonders das aufmachen ;-), aber der Erfolg sollte sein, dass die
Taster active-low betrieben werden.
Autor: Klaus2 (Gast)
Datum:

Hallo,

kann man die PullUps auch durch Auftrennen der Leiterbahn entfernen?
Oder wie?

Klaus.
Autor: Timo S. (kaffeetas)
Datum:
Angehängte Dateien:

Hallo zusammen,

anbei ein Foto von meinem Umbau auf active-low.
Die beiden 10kOhm Widerstände sind die Pullups für I2C Leitungen, diese
müßen dann von "unten" an 5V gehängt werden.

Grüße
 Timo
Autor: Aufpasser (Gast)
Datum:

> C17..19=220nF
Wer hat es mal mit weniger Kapazität versucht?
So 1 bis höchstens 10nF.
Autor: Xian (Gast)
Datum:

Ja! Hab ich!

Und jetzt mal eine Lösung ohne Leiterbahnen auftrennen oder
Programmänderungen (Entprellung, Pull-Up oder Ähnliches):

Die Widerstände gegen 100k austauschen, die Kondensatoren gegen 100n.

Bei mir haben sich damit alle Probleme erledigt. Die Zeitkonstante (R*C)
bleibt halbwegs konstant & damit die Entprellfunktion gewährleistet.

Mal ne Frage an die erfahrenen Praktiker: Sind 47mu nicht ein wenig
Wenig für den Stützelko von so ner Platine, insbesondere wenn noch das
Addon-Board dranhängt?
Autor: sBronco (Gast)
Datum:

Ich hab auch diese beiden Boards v2.01 und addon, bei mir bekommen beide
Saft vom Netzteil, haben ja auch beide nen 7805
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Es ist und bleibt Pfusch, Taster gehören ohne Zusatzbeschaltung zwischen
Portpin und GND, die Entprellung übernimmt ein Stück Programmcode.
Autor: Martin (Gast)
Datum:

... die Entprellung übernimmt ein Stück Programmcode ...

Woher kommt diese Weisheit?
Autor: Peter Dannegger (peda)
Datum:

Martin schrieb:
> ... die Entprellung übernimmt ein Stück Programmcode ...
>
> Woher kommt diese Weisheit?

Weil es am sinnvollsten ist.

Man muß nur einmal eine Entprellroutine entwickeln und bekommt fürderhin
alle gewünschten Ereignisse auf dem Silbertablett serviert (drücken, ist
gedrückt, loslassen, ist losgelassen), ohne Nebeneffekte.

Diese Entprellroutine wird dann nur eingefügt und man muß niemals wieder
darüber nachdenken, wie man denn nun die Tasten auswertet, ohne den
Programmablauf zu behindern bzw. ohne Tastenereignisse zu verlieren.

Eine Entprellroutine spart also massig Entwicklungszeit bei jedem neuen
Projekt. Sie spart auch etwas Material, aber das ist nur ein kleiner
Nebeneffekt.


Man sieht hier täglich Beispiele, wie sich Leute regelrecht abquälen,
nur weil sie keine effiziente Entprellroutine verwenden wollen.


Peter
Autor: Xian (Gast)
Datum:

Kluchscheißender Kluchscheißer schieb

> Es ist und bleibt Pfusch, Taster gehören ohne Zusatzbeschaltung zwischen
> Portpin und GND, die Entprellung übernimmt ein Stück Programmcode.

Jain! Wenn Du Rechenleistung/Speicher/Timer über hast: Ja.

Es steht aber nicht ohne Grund im Artikel
http://www.mikrocontroller.net/articles/Entprellung :

" Softwareentprellung

... Dabei ist zu beachten, dass zusätzliche Rechenleistung und je nach
Umsetzung auch Hardwareressourcen benötigt werden (z. B. Timer)."

Dem stehen Bauteilkosten < 10ct gegenüber...

Alle Beginner, die nach einer einfachen Lösung des hier beschriebenen
Problems umsehen, seien daher auf mein Posting hingewiesen.

@ alle Erfahrenen: Mich würde interessiern wie groß der Stützelko eines
vom 7805 versorgten Atmel8/16/32 mit ein wenig Peripherie
(LEDs/Display/Tasten,...) typischerweise sein sollte?
Und wenn man eine Hardware-Entprellung vorzieht, welche Werte für die
Kondensatoren/Widerstände/Zeitkonstanten sinnvoll sind? 100n und 100k =
10ms erscheinen mir recht sinnvoll. Eure Meinung?
Autor: MarioT (Gast)
Datum:

Xian schrieb:
> ... Dabei ist zu beachten, dass zusätzliche Rechenleistung und je nach
> Umsetzung auch Hardwareressourcen benötigt werden (z. B. Timer)."
>
> Dem stehen Bauteilkosten < 10ct gegenüber...

Bin voll Deiner Meinung.

Xian schrieb:
> Und wenn man eine Hardware-Entprellung vorzieht, welche Werte für die
> Kondensatoren/Widerstände/Zeitkonstanten sinnvoll sind? 100n und 100k =
> 10ms erscheinen mir recht sinnvoll. Eure Meinung?

Man darf es aber nicht so anklemmen wie im Pollin-Board, das ergibt
einen Kurzschluß.
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Xian schrieb:
> Kluchscheißender Kluchscheißer schieb
>
>> Es ist und bleibt Pfusch, Taster gehören ohne Zusatzbeschaltung zwischen
>> Portpin und GND, die Entprellung übernimmt ein Stück Programmcode.

Ja, das schrieb ich, und dazu stehe ich auch.

>
> Jain! Wenn Du Rechenleistung/Speicher/Timer über hast: Ja.

Nööö, wieso?

Die Entprellung kostet alle 20 ms (alle 20000 Takte bei 1 MHz) 20 Takte
Rechenleistung (in ASM), das sind gerade mal 0,1%. Das merkt das
Hauptprogramm überhaupt nicht. Im Gegenteil, denn die Entprellung hat ja
bereits die Flanken erkannt und separat zur Verfpgung gestellt
(Silbertablett eben).
Kommt Autorepeat oder anderweitige kurz/lang-Erkennung dazu, dann werden
es ein paar Takte mehr, die verbrauchte Rechenzeit liegt aber immer noch
weit unter 0,5%.
Kommt eine Hochsprache zum Einsatz, oder werden die Variablen aus
anderen Gründen im SRAM gehalten, dann kommen noch ein paar Takte für
das Holen und Zurückschaffen der Variablen hinzu, es bleibt weiterhin
unter 0,5% Prozessorlast.
Nur in reinem Bascom wird es eng, da Bascom ja alle Register sichert,
wenn zur ISR verzweigt wird, was unnötig Stack und Rechenzeit
verschwendet. Aber auch da gibt es eine effiziente Lösung, die auf RN
veröffentlicht ist.

Wenn Du diese <0,5% Rechenleistung nicht über hast, dann hast Du etwas
Anderes grundlegend falsch gemacht.

Im Gegenteil, der Einsatz von PeDas Entprellalgorithmus spart jede Menge
Code beim Auswerten der Tastendrücke im Hauptprogramm, spart also mehr
Speicher als er selbst kostet (Silbertablett halt).

>
> Es steht aber nicht ohne Grund im Artikel
> http://www.mikrocontroller.net/articles/Entprellung :
>
> " Softwareentprellung
>
> ... Dabei ist zu beachten, dass zusätzliche Rechenleistung und je nach
> Umsetzung auch Hardwareressourcen benötigt werden (z. B. Timer)."

Leute, die sich vor der Verwendung dieser Entprellung drücken, meiden
meist auch den Timer-Interrupt. Ich behaupte einfach mal kackfrech, dass
sie die Vorzüge dieser Art Programmierung mangels Wissen noch nicht
erkannt haben. Die AVRs haben Timer, es gibt kein Geld zurück, wenn man
sie meidet. Ein Timer kann oft mehrere Dinge quasi gleichzeitig managen,
die Entprellung lässt sich meist von einem sowiso benötigten Timer
nebenher erledigen.

>
> Dem stehen Bauteilkosten < 10ct gegenüber...
>
> Alle Beginner, die nach einer einfachen Lösung des hier beschriebenen
> Problems umsehen, seien daher auf mein Posting hingewiesen.

Die einfache und sorgenfreie Lösung ist nunmal die Entprellung im
Timer-Interrupt.

>
> @ alle Erfahrenen: Mich würde interessiern wie groß der Stützelko eines
> vom 7805 versorgten Atmel8/16/32 mit ein wenig Peripherie
> (LEDs/Display/Tasten,...) typischerweise sein sollte?

Da reichen normalerweise bereits die 100nF-Kerkos an den
IC-Stromversorgungspins. Denn Elkos haben (ohne Not) hinter dem 78xx
nichts zu suchen, da sie den Regler stören. Der einzige Fall, bei dem
ich einen kleinen Elko hinter dem 78L05 dulde, ist ein DCC-Lokdecoder,
und das auch nur, um kurze Unterbrechungen der Stromversorgung (Kontakt
Gleis-Räder) zu überbrücken.

> Und wenn man eine Hardware-Entprellung vorzieht, welche Werte für die
> Kondensatoren/Widerstände/Zeitkonstanten sinnvoll sind? 100n und 100k =
> 10ms erscheinen mir recht sinnvoll. Eure Meinung?
Autor: Xian (Gast)
Datum:

Ich will hier keinem erfahrenen Entwickler widersprechen, auch wenn der
Name geradezu herausfordert. ;) Aber anscheinend habe ich das eine oder
andere falsch verstanden; bitte daher um ein Wort der Erklärung:

Kluchscheißender Kluchscheißer schrieb:

> Nööö, wieso?
>
> Die Entprellung kostet alle 20 ms (alle 20000 Takte bei 1 MHz) 20 Takte
> Rechenleistung (in ASM), das sind gerade mal 0,1%.

Das ist die reine Rechenleistung. Bei einfachen Mikrocontrollern können
die Interrupts sich doch nicht gegenseitig unterbrechen (, da keine
Prioritäten vorhanden...), oder? Wenn jeder Tastendruck einen solchen
auslöst, stehen für die Dauer der Auswertung keine Interrupts mehr zur
Verfügung, oder? Sind dann zeitkritische Auswertungen/Messungen noch
möglich?

> Wenn Du diese <0,5% Rechenleistung nicht über hast, dann hast Du etwas
> Anderes grundlegend falsch gemacht.

... oder was nicht richtig verstanden. s.o. Die Hardwarelösung erfordert
ein einziges weiteres Bauteil, wenn man den internen Pull-X verwendet.
Und man kann sich dann sicher sein, dass die Taste länger als ein Zeit Y
gedrückt wurde, je nach Zeitkonstante Z.
Ich bin mir durchaus der Eleganz und Flexibilität von SW-Lösungen
bewusst. Solche einfache analogen Tiefpassfilter sieht man aber durchaus
öfters. Die werden lange nicht immer in SW realisiert. Warum?
Und wenn es so wenig eine Rolle spielt, warum ist der genannte Artikel
hier sooo geschrieben?

> Im Gegenteil, der Einsatz von PeDas Entprellalgorithmus spart jede Menge
> Code beim Auswerten der Tastendrücke im Hauptprogramm, spart also mehr
> Speicher als er selbst kostet (Silbertablett halt).

Das finde ich interessant! Wie ist das gemeint? Wenn ich mehr als nur
die Auswertung des Tastendrucks haben will, die Dauer oder Ähnliches,
kann ichs noch nachvollziehen. Aber falls nicht, muss ich mit der
HW-Lösung nur den entsprechenden Port auslesen, oder ich lasse einen
Interrupt auslösen und kann mir jedes Mal sicher sein, dass die Taste
tatsächlich gedrückt wurde. Wie soll ich dem gegenüber noch
Code/Rechenleistung einsparen können?

> Leute, die sich vor der Verwendung dieser Entprellung drücken, meiden
> meist auch den Timer-Interrupt. Ich behaupte einfach mal kackfrech, dass
> sie die Vorzüge dieser Art Programmierung mangels Wissen noch nicht
> erkannt haben.

Verwende Timer und kenne Vorzüge. Kann mich aber auch in die Haut eines
Anfängers reinversetzen, der nur den Status einer Taste auswerten will,
ohne darüber zu promovieren. (Sorry wegen der Zynik. ;))

> Da reichen normalerweise bereits die 100nF-Kerkos an den
> IC-Stromversorgungspins. Denn Elkos haben (ohne Not) hinter dem 78xx
> nichts zu suchen, da sie den Regler stören.

??? Höre ich das erste Mal. Dachte immer, der unterstützt den Regler.
Verwende meistens eine Elko und einen FoKo oder KerKo. Woher du haben?
Sollte das Board von Pollin ohne Elko besser laufen?
Autor: Falk Brunner (falk)
Datum:

@  Xian (Gast)

>Ich will hier keinem erfahrenen Entwickler widersprechen,

Warum tust du es dann?

>Das ist die reine Rechenleistung. Bei einfachen Mikrocontrollern können
>die Interrupts sich doch nicht gegenseitig unterbrechen (, da keine
>Prioritäten vorhanden...), oder?

Eher oder, siehe Interrupt. Der8051 hat Prioritäten, der AVR nicht.
Aber selbst ohne Prioritäten ist das Null Problemo.

> Wenn jeder Tastendruck einen solchen
>auslöst, stehen für die Dauer der Auswertung keine Interrupts mehr zur
>Verfügung, oder?

Theoretisch ja. Praktisch sind das ein paar Mikrosekunden, die in keinem
Programm eine Rolle spielen. Ausserdem werden Tasten meist periodisch in
einem Timer Interrupt eingelesen und entprellt, das ist
deterministisch.

> Sind dann zeitkritische Auswertungen/Messungen noch möglich?

Wenns WIRKLICH zeitkritisch ist, macht man keine Tasenabfrage. Aber
soooo zeitkritisch sind nicht mal 1% der Programme.

>... oder was nicht richtig verstanden. s.o.

Eben.

>Die Hardwarelösung erfordert
>ein einziges weiteres Bauteil, wenn man den internen Pull-X verwendet.

Nö, man braucht für einen SOLIDE Lösung noch einen weiteren Widerstand,
damit der Taster den Kondensator nicht ungebremst kurzschließt. Siehe
Schmitt Trigger.

>bewusst. Solche einfache analogen Tiefpassfilter sieht man aber durchaus
>öfters. Die werden lange nicht immer in SW realisiert. Warum?

Kann man so allgemein nicht beantworten.

>Und wenn es so wenig eine Rolle spielt, warum ist der genannte Artikel
>hier sooo geschrieben?

>Verwende Timer und kenne Vorzüge. Kann mich aber auch in die Haut eines
>Anfängers reinversetzen, der nur den Status einer Taste auswerten will,
>ohne darüber zu promovieren. (Sorry wegen der Zynik. ;))

Dann wird er wie Millionen andere vor ihm Lehrgeld zahlen müssen.

>> Da reichen normalerweise bereits die 100nF-Kerkos an den
>> IC-Stromversorgungspins. Denn Elkos haben (ohne Not) hinter dem 78xx
>> nichts zu suchen, da sie den Regler stören.

Das ist schlicht Unsinn. Siehe den brandneuen Artikel Stromversorgung
für FPGAs.

>??? Höre ich das erste Mal. Dachte immer, der unterstützt den Regler.

Ist auch so. Nur leider gibt es immer wieder Fälle, wo es Leute was
falsch gemacht haben und daraus falsche Schlüsse ziehe und
verallgemeinern.

MfG
Falk
Autor: Xian (Gast)
Datum:

@Falk Brunner
>>Ich will hier keinem erfahrenen Entwickler widersprechen,
>
> Warum tust du es dann?

Weil ich das Eine oder Andere nicht verstehe, anders kenne oder anders
beurteile (z.B. 7805 & Elko). Foren sind dafür da, nachzufragen, oder?

Entschuldige bitte, dass ich nicht allen Postern auf Anhieb vertraue und
Lob preise. Weiß ja nicht, ob mans mit einem Entwickler, einem
Berufschullehrer, einem Bastler, einem HW-Hacker oder einem Troll zu tun
habe. Jeder wird eine andere Sicht auf ein Problem haben. Und das muss
nicht mit seiner Intelligenz oder Erfahrung zusammen hängen. Vielmehr
können unterschiedliche Anwendungsfelder unterschiedliche Anforderungen
und daher verschiedene (richtige) Antworten auf ein und die gleiche
Frage haben.

> Aber selbst ohne Prioritäten ist das Null Problemo.
...
> Theoretisch ja. Praktisch sind das ein paar Mikrosekunden, die in keinem
> Programm eine Rolle spielen.
...
> Aber
> soooo zeitkritisch sind nicht mal 1% der Programme.

Ich liebe pauschale Aussagen... Die heizen eine Diskussion so richtig
schön an.

Was ist denn zum Beispiel mit Encoder-Auswertung,
Geschwindigkeitsmessungen oder Ähnlichem für Regelungen? Dafür sind
Mikrocontroller doch ganz gut geeignet, oder? Und eine Art UI für
Parameteränderungen o.Ä. will man dann vielleicht trotzdem!

>>Die Hardwarelösung erfordert
>>ein einziges weiteres Bauteil, wenn man den internen Pull-X verwendet.

> Nö, man braucht für einen SOLIDE Lösung noch einen weiteren Widerstand,
> damit der Taster den Kondensator nicht ungebremst kurzschließt.

Tut der wirklich not? Ich will ja eine einfache, funktionierende
Lösung und nicht DIN-zertifizierte Elektronik, um sie zu verkaufen.

>>Solche einfache analogen Tiefpassfilter sieht man aber durchaus
>>öfters. Die werden lange nicht immer in SW realisiert. Warum?
>
> Kann man so allgemein nicht beantworten.

Aha!

Wdh:
>>Und wenn es so wenig eine Rolle spielt, warum ist der genannte Artikel
>>hier sooo geschrieben?

> Dann wird er wie Millionen andere vor ihm Lehrgeld zahlen müssen.

Was genau soll denn passieren? Ein paar Erläuterungen helfen manchmal
bei solchen Aussagen Nachfragen zu vermeiden.

Mein ursprüngliches Posting bezog sich auf das Problem bei dem Pollin
Board. Man muss zwei Bauteile austauschen oder gleich anders einsetzen.
Nichts durchkratzen oder ähnliches müssen. Dann funktioniert das Board.
Problem gelöst. Viele Anfänger suchen eine solch einfache Lösung. Wenn
später etwas eigenes, zeitunkritisches aufgebaut wird, kann man ja per
SW entprellen.
Ein erfahrener Entwickler wird sich auch sicher kein Pollin Board
kaufen.
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Xian schrieb:
> ...
> Mein ursprüngliches Posting bezog sich auf das Problem bei dem Pollin
> Board.

Das ist schlichtweg eine Fehlkonstruktion.

Gut, das ist jetzt stark übertrieben, aber optimal ist es keinesfalls.
Ich vermute, es wurde von den Azubis im Rahmen der Ausbildung
entwickelt, so wie die anderen Bausätze auch, die alle nicht zu Ende
gedacht wurden.

Wer das Board in Verbindung mit einem älteren Rechner (mit echten
COM-Schnittstellen) als Ponyporog-Programmer nutzt, ist damit gut
bedient. Als Experimentierboard ist es aber ziemlich ungeeignet, weil
vieles unnötig kompliziert gemacht wird (Tastenbeschaltung,
Stiftleistenbelegung, usw.). Man gewöhnt sich damit an, uneffizient zu
programmieren. Als reine Testplatine ist ein Stück Lochrasterplatine mit
IC-Sockel und ein paar Stift- oder Buchsenleisten bedeutend besser
geeignet.

Nochmal zur Entprellung, denn ich denke, dass Du da etwas missverstanden
hast:

Es geht darum,
- im Abstand von 5 bis 30 ms eine Routine aufzurufen, die
- den Port einliest (alle 8 Tasten auf einmal),
- mit dem Zustand der "letzten Runde" vergleicht (8 Bit breit für
  8 Taster gleichzeitig),
- bei Unterschieden für jedes Bit separat einen 2-Bit-Prellzähler
  hochzählt,
- bei Überlauf des Prellzählers (für jedes Bit separat) den neuen
  Portzustand übernimmt,
- bei der Flanke von unbetätigt nach betätigt für jede Taste separat
  einen Merker setzt, der dem Hauptprogramm mitteilt, dass ein neuer
  Tastendruck erfolgte,
- dazu (für 8 Tasten gemeinsam!) nur 4 Register und weniger als 20
  Takte Rechenzeit alle rund 20 ms benötigt.

Der Timer kann nebenher andere Dinge tun. Wird z.B. ein Takt von 1 ms
gebraucht, um Millisekunden für eine Stopuhr zu zählen, so zählt man
eine Hilfsvariable hoch, verANDet sie mit 15 und verzweigt bei 0 zur
Entprellroutine. Diese wird dann alle 16 ms aufgerufen. Will man
Hundertstelsekunden zählen (Timer-Int. alle 10 ms), dann kann man die
Entprellung in jeder Runde oder jeder zweiten Runde aufrufen.

Dabei wird der Port, an dem die Taster hängen, regelmäßig abgefragt (und
verglichen), egal ob ein (oder mehrere) Taster betätigt ist/sind oder
nicht. Ein Tastendruck löst also keinen zusätzlichen Interrupt aus und
blockiert an keiner Stelle den Programmablauf. Irgendwo im Hauptprogramm
fragt man dann die Tastendruckmerker ab, erledigt bei gesetztem Merker
den zugehörigen Job und löscht dabei diesen Merker (denn der Job ist ja
getan). Einfacher geht es nun wirklich nicht.
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Xian schrieb:
> Solche einfache analogen Tiefpassfilter sieht man aber durchaus
> öfters. Die werden lange nicht immer in SW realisiert. Warum?

Sowas hab ich vorher noch nie gesehen. Ganz ehrlich!
Und wenn ich sowas gesehen hätte, dann wäre es keine Tiefpassfilter
gewesen.
Von dem was da geroutet ist kann man ja nicht mal ein vernünftiges tau
angeben.
Beim Drücken des Schalters macht macht das Dings einfach nur einen
kurzen Kurzschluss auf der Versorgungsspannung. Ein bisschen schieben an
den Bauteilwerten ändert an diesem Verhalten nichts.(Ich wiederhole das,
obwohl es hier bestimmt jetzt schon 20 mal in diesem Thread drinsteht.)

Wenn du das "Solche" weggelassen hättest, hätte ich das Zitat von dir
aber sofort unterschrieben.

Man kann man nämlich kein Signal vernünftig digitalisieren in dem
Frequenzanteile auftauchen die eine höhere Frequenz haben als die halbe
Abtastfrequenz: http://de.wikipedia.org/wiki/Abtasttheorem.
Wenn man sowas macht, dann sollte man sich sehr genau überlegen was das
für Folgen haben kann.

Wenn der Taster nicht direkt auf dem Board wäre, sondern über eine
längere Leitung angeschlossen wäre, und damit höherfrequente Störungen
auf die Leitung eingestreut werden könnten, dann ist eine reine
SW-Lösung nicht mehr möglich. Dann muss die Bandbreite vor der
Digitalisierung zusätzlich begrenzt werden.

mein Fazit:
Ein Tiefpassfilter an dieser Stelle wäre schon in Ordnung, ist aber
leider auf dem Pollinboard nicht geroutet.
Reine SW-Lösungen führen auch oft zu Fehlern, weil das Shannontheorem
leicht vergessen werden kann. (Und von vielen, auch professionellen,
Entwicklern einfach ignoriert wird)

Richtig wäre:
Bandbreite mit einem analogen Tiefpassfilter entsprechend der
Abtastfrequenz reduzieren, dann den Rest in SW machen.
Autor: Falk Brunner (falk)
Datum:

@  Xian (Gast)

>Entschuldige bitte, dass ich nicht allen Postern auf Anhieb vertraue und
>Lob preise. Weiß ja nicht, ob mans mit einem Entwickler, einem
>Berufschullehrer, einem Bastler, einem HW-Hacker oder einem Troll zu tun
>habe.

War ein kleiner Test. Hast bestanden ;-)

>Ich liebe pauschale Aussagen... Die heizen eine Diskussion so richtig
>schön an.

Wieso pauschal? Man hat dir mehrfach vorgerechnet, das die Entprellung
nur Bruchteile an Rechenleistung schluckt. Was willst du mehr?

>Was ist denn zum Beispiel mit Encoder-Auswertung,
>Geschwindigkeitsmessungen oder Ähnlichem für Regelungen?

Was soll damit sein?

> Dafür sind
>Mikrocontroller doch ganz gut geeignet, oder?

Ja und?

> Und eine Art UI für
>Parameteränderungen o.Ä. will man dann vielleicht trotzdem!

UI? User Interface?
Ja, das ist oft benötigt. Aber nochmal, die Entprellung in Software
fällt immer mit ab.

>Tut der wirklich not? Ich will ja eine einfache, funktionierende
>Lösung und nicht DIN-zertifizierte Elektronik, um sie zu verkaufen.

Jaja, erst alles in Frage stellen und dann doch Bastelmurks produzieren.
Du weist nicht was du willst. Und du verrenst dich in eine Sackgasse.
Dann nimm deine Schaltung und nutze sie. Ende.

>Was genau soll denn passieren? Ein paar Erläuterungen helfen manchmal
>bei solchen Aussagen Nachfragen zu vermeiden.

>Nichts durchkratzen oder ähnliches müssen. Dann funktioniert das Board.
>Problem gelöst. Viele Anfänger suchen eine solch einfache Lösung. Wenn
>später etwas eigenes, zeitunkritisches aufgebaut wird, kann man ja per
>SW entprellen.

Was ist denn bitte schön bei dir zeitkritisch? Gerade Anfänger machen
gar nichts zeitkritisches, die lassen eine LED mit 16 MHz CPU-Takt
blinken.

Ausserdem reden wir über des Kaisers neue Kleider. Die einfache Lösung
wurde mehrfach präsentiert, funktioniert.

MfG
Falk
Autor: Falk Brunner (falk)
Datum:

@  Jo O. (brause1)

>Reine SW-Lösungen führen auch oft zu Fehlern, weil das Shannontheorem
>leicht vergessen werden kann. (Und von vielen, auch professionellen,
>Entwicklern einfach ignoriert wird)

Abtasttheorem für Tasten? Jetzt wird's philosophisch! ;-)

MfG
Falk
Autor: Jo O. (Firma: Moderatoren Schulung) (brause1)
Datum:

Falk Brunner schrieb:
> Abtasttheorem für Tasten? Jetzt wird's philosophisch! ;-)

Die Frage war, warum man analoge Tiefpassfilter öfter sieht. Darauf
bezog sich die Antwort.

Hast recht, dass man sich bei nem Taster direkt auf der Platine
wahrscheinlich nicht drum zu scheren braucht. Da gibts halt keine hohen
Frequenzanteile, die zu Fehlauslösungen führen können. Dann brauch man
natürlich auch nicht zu filtern.

Andererseits hatte ich schon mehrfach den Fall, dass bei abgesetzen
Schaltern und Tastern genau dieser Fehler zu Fehlauslösungen geführt
hat.

Eine Entwicklungsschmiede z.B. hat es geschafft den seit Jahren
problemlos funktioniereneden Analogfilter an dieser Stelle zu sparen.
Die waren ganz stolz, dass jetzt alles parametrierbar im uC
untergebracht wäre. Und billiger wäre die Platine jetzt auch. Die haben
sogar die EMV Test bestanden. Leider waren die Kunden nicht so
überzeugt, da öfter mal Fehlauslösungen auftraten.

Mann muss sich halt im Klaren darüber sein, dass reine SW Lösungen nur
Scheiben aus dem Signal auswerten, und dass man solche Lösungen fast
immer mit bestimmen Störsignalen überrumpeln kann. Und das tritt in der
Praxis häufiger auf, als ich es für möglich gehalten hätte. In einer EMV
verseuchten Umgebung ist es oft nur eine Frage der Zeit, bis es mal zu
einer Fehlauslösung kommt. Die Fehlersuche ist dann fast unmöglich.
Autor: Xian (Gast)
Datum:

Also, um Missverständnisse auszuräumen:
1. Ich stelle nicht die Eleganz und Flexibilität einer SW-Lösung in
Frage.
2. Mir ist klar wie das Programm funktionieren sollte.
3. Es ging mir nur um die Antwort auf die Frage: Wie krieg ich das
Pollin-Board zum Laufen. Nicht ob das Layout gut gelöst ist oder nicht.
Und Tatsächlich kommen keine Fehler mehr bei meiner Lösung. Elegant oder
nicht: ist so.
4. Mir ist auch klar, dass durch das Fehlen von dem Widerstand zur
Versorgung beim Hochziehen keine Filterwirkung vorhanden ist. Aber
nochmal: Es funktioniert so. Meinetwegen für dich Bastelmurks. Ich
meinte eher KISS (Keep it Simple & Small)...
5. @Falk: Die von mir zitierten Aussagen von Dir sind mAn pauschal.

Meine noch offenen Fragen:
1. Mir ist trotz der ganzen bestimmt nett gemeinten Beiträge nicht klar,
was passieren soll. Nochmal deutlich gefragt: *Wo ist der Nachteil einer
HW-Entprellung?* Warum nicht bei Schaltungen verwenden? Warum
Bastelmurks (also wenn Versorgungsanschluss über Widerstand realisiert
wird.)
2. Ein RC-Glied ist doch ein Tiefpass, oder?
3. Wenn man Encoder auswerten will: Da kommen die Flanken. d.h. die
Interrupts evtl. mit zig 100kHz rein. Die Interrupts sollen nicht durch
das Ausführen eines Timer-Interrupts verpasst werden. Wie kann man das
Problem anders lösen? Lösungvorschläge (Ohne
Prioritäten/CPLDs/FPGAs/Zusatzchips (Nur wegen Tastern diese zu
verwenden halte ist mAn überflüssig.))?

Danke für sachliche Antworten!
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Oberer Absatz:
Zu 3.
Das Pollin-Board ist betreffs Tasterbeschaltung Pfusch
(Fehlkonstruktion). Die beste Lösung ist einfach, es zu meiden. Sieh es
einfach als Fehlkauf, oder ändere die Beschaltung (Taster zwischen
Portpin und GND) und nutze die internen PullUps.

Unterer Absatz:
Zu 1.
Sie ist bei kurzen Leitungen zum Taster einfach nicht nötig. Bei
längeren Leitungen benutze ich auch einen externen (gegenüber dem
internen niederohmigeren) Pullup-Widerstand und in verseuchter Umgebung
auch ein RC-Glied (niederohmiger R und kleiner C in Reihe) parallel zum
Taster. Bei Tastern auf dem Board ist das aber nicht nötig.

Zu 2.
Man kann es auch als Integrierglied sehen, kommt halt auf den Kontext
an.

Zu 3.
Von Encodern war bisher keine Rede. Man muss auch den Anwendungsfall
unterscheiden. Positionsbestimmung von Antrieben stellen oft so hohe
Anforderungen, dass ein kleiner AVR damit überfordert ist.
Handbetätigte Drehgeber lassen sich gut im Timer-Interrupt von etwa 1 ms
Intervall abfragen. Dazu wird aus dem aktuellen und vorhergehenden
Zustand ein 4-Bit-Index gebildet, über den der Inkrement-Wert (0, +1,
-1) aus einem Array gelesen wird und zum Zähler addiert wird. Je nach
Beschaffenheit des Drehgebers kann die LUT (das Array) unterschiedlich
ausfallen.
Autor: Mitleser (Gast)
Datum:

Xian schrieb:
> 2. Ein RC-Glied ist doch ein Tiefpass, oder?

definitiv : NEIN!

- Ein Tiefpass kann aus einem R und und einem C aufgebaut sein, muss
aber nicht

- Je nach Verdrahtung und Signalfluss kann ein RC-Glied auch ein
Hochpass sein oder ein Tiefpass oder ein Diffentiator oder ein
Integrator oder einfach nur ein R und ein C oder was weiß ich ...

- Ein RC-Glied kann auch ein Murxpass sein, wie auf dem Pollinboard.
Autor: Xian (Gast)
Datum:

Danke Kluchscheißender Kluchscheißer.

Verstehe ich das richtig: Eine Entprellung  (SW oder HW) kann ganz
entfallen?

Integrierglied nur für Strom, oder? Für Spannung PT1 (oder: Verzögerung
1.Ord.)!? Reihenschaltung ist tatächlich wesentlich eleganter, richtig.

Von Encodern habe ich weiter oben bereits gesprochen. Wirklich nix für
mu-Controller? Doch CPLD oder Chip? Dachte eigentlich, dass sollte
funzen.

& Pollin-Board nix? Alternativen für Einsteiger, die <50€ kosten?
Nochmal: nicht schön, aber es funktioniert doch.
Bei 20€ kann man auch nicht sooo viel erwarten. Ich kenne einige
versierte Entwickler, die damit eingestiegen sind (... vielleicht sind
sie deswegen so versiert! ;)).
Wer wenig/nicht löten, sondern primär programmieren kann/will und
einfache Einsteiger-HW sucht, ist damit mAn gut bedient, Taster hin oder
her.
Wer mehr will baut eh früher oder weniger selbst was auf.

Grüße
Xian
Autor: Falk Brunner (falk)
Datum:

@  Xian (Gast)

>Von Encodern habe ich weiter oben bereits gesprochen. Wirklich nix für
>mu-Controller? Doch CPLD oder Chip? Dachte eigentlich, dass sollte
>funzen.

Siehe Drehgeber

>Nochmal: nicht schön, aber es funktioniert doch.

Ja, wenn man den Bug beseitigt.

>Bei 20€ kann man auch nicht sooo viel erwarten.

Aber nicht so einen elementaren Fehler!

MfG
Falk
Autor: Mitleser (Gast)
Datum:

Xian schrieb:
> Verstehe ich das richtig: Eine Entprellung  (SW oder HW) kann ganz
> entfallen?

All das hier hängt doch von der Anwendung ab. Natürlich kann es
Anwendungen geben, bei denen nicht gefiltert oder entprellt werden muss.
Wenn du z.B. 2 Tasten an den Eingängen hast, die eine schaltet eine
Funktion (Beleuchtung) ein und die andere schaltet sie wieder aus, dann
kommst du ohne Filter aus.
Wenn der Tastendruck eine Lampe für 3 minuten einschalten soll, dann
brauchst du auch nicht zu entprellen.
Du musst dir halt überlegen, dass ein Schalter prellen kann und dass
Störungen auf den Leitungen liegen können.
Wenn das für deine Application keine Rolle spielt, dann brauchst du es
auch nicht zu machen.

Die RC Kombination auf dem Pollinboard, 330nf und 33k, lädt den
Kondensator unverzögert (--> Kutzschluss) auf und verlängert nach öffnen
des Tasters das Siganl etwas, da der Kondensator über denn 33k wieder
entladen wird --> tau =11ms. Damit sieht der Eingang dann das Prellen
des Schalters nicht.
Leider sieht der uc gar nix, weil ihn der anfängliche Kurzschluss längs
in den Reset gejagt hat.

Der Satz: "Es funktioniert so." Klingt zwar doll, ist er aber nicht. Ich
bin mir sicher, dass der Entwickler und die Tester des Boards bei Pollin
auch sowas ähnliches gedacht und gesagt haben.
Ich bin mir sogar sicher, dass bei denen der Fehler auch nicht
aufgetreten ist, dann hätten sie den nämlich abgestellt. Leider sind
solche Fehler nicht unbedingt reproduzierbar. und je nach Netzteil und
Temperatur und Tagezeit und Beleuchtung und Luftfeuchtigkeit und
Wechselkurs des Euro tritt so ein Fehler mal zutage und mal nicht.
Autor: Peter Dannegger (peda)
Datum:

Jo O. schrieb:
> Eine Entwicklungsschmiede z.B. hat es geschafft den seit Jahren
> problemlos funktioniereneden Analogfilter an dieser Stelle zu sparen.
> Die waren ganz stolz, dass jetzt alles parametrierbar im uC
> untergebracht wäre. Und billiger wäre die Platine jetzt auch. Die haben
> sogar die EMV Test bestanden. Leider waren die Kunden nicht so
> überzeugt, da öfter mal Fehlauslösungen auftraten.

Dann hat der Softwareentwickler aber seine Hausaufgaben nicht gemacht.

Leider gibt es viele SW-Entprellungen, die den Namen nicht verdienen.
Entprellen wird oft nicht als richtige Aufgaben wahrgenommen und dann
auch nicht richtig implementiert.

Ich hab auch lange Zeit nur ne 2-fach Abtastung programmiert und dann
kamen noch vereinzelt Preller vor.
Das Problem ist, bei fabrikneuen Tasten merkt man den Fehler noch nicht.
Erst mit Alterung der Bauteile fällt es auf.

Nach der Umstellung auf 4-fach Abtastung habe ich nie wieder Preller
gehabt.
Eine 4-fach Abtastung scheint mir das Optimum zu sein. Die Erweiterung
auf 8-fach Abtastung wäre aber leicht möglich.


SW-Entprellen ist kein Hexenwerk. Aber man muß sich einmal damit
beschäftigen.


Peter
Autor: Xian (Gast)
Datum:

Mitleser schrieb:
> Der Satz: "Es funktioniert so." Klingt zwar doll, ist er aber nicht.

Sorry die unpräzise Aussage. Es funktioniert mit dem Umbau auf 100n und
100k bei mir. Hatte anfänglich das gleiche Problem.
Autor: Gerhard K. (mikros)
Datum:

Sorry dass ich mich hier kurz reinhänge:

Kluchscheißender Kluchscheißer schrieb:
> Nur in reinem Bascom wird es eng, da Bascom ja alle Register sichert,
> wenn zur ISR verzweigt wird, was unnötig Stack und Rechenzeit
> verschwendet. Aber auch da gibt es eine effiziente Lösung, die auf RN
> veröffentlicht ist.

Hast Du vielleicht einen Link, finde da nichts.(Wahrscheinlich zu blöd
zum Suchen)

Danke trotzdem

MfG
Mikros
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Xian schrieb:
> Mitleser schrieb:
>> Der Satz: "Es funktioniert so." Klingt zwar doll, ist er aber nicht.
>
> Sorry die unpräzise Aussage. Es funktioniert mit dem Umbau auf 100n und
> 100k bei mir. Hatte anfänglich das gleiche Problem.

Die Pollin-Beschaltung ist und bleibt auch bei anderer Dimensionierung
Pfusch, da sie Spikes auf der Versorgungsspannung verursacht, die unter
ungünstigen Bedingungen zum Reset oder Programmabsturz führen können.

Wenn Du unbedingt mit RC-Glied arbeiten willst, dann ändere die
Schaltung. Sinnvolle Beschaltungen der Taster wurden oben bereits zur
Genüge genannt.

Wenn Du unbedingt mit dieser Schrott-Beschaltung leben möchtest, so tu
es, ich muss mich ja nicht nach Dir richten. Aber verbreite hier bitte
nicht die Mär, dass damit alles in Ordnung wäre, denn das wäre unfair
gegenüber anderen Anfängern und Pollin-Board-Käufern.

Und ja, ich hatte mir das Board auch gekauft, eigentlich mit dem
Hintergrund, bei Fragen zu diesem Board helfen zu können. Ich war dann
recht froh, dass ein Bekannter, der selbst nicht programmiert, dem ich
deshalb gelegentlich AVR-Software schreibe, einen billigen Programmer
für seinen etwas betagten Bastel-PC suchte. Somit wurden auf dem Board
nur die IC-Sockel, Quarz-Sockel und die zum Programmieren erforderliche
Hardware bestückt. Die Peripherie, also Taster, LEDs, Piepser und die
Jumper dazu wurden gar nicht erst bestückt. Das Board wird als reiner
billiger Ponyprog-Programmer genutzt.
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Gerhard K. schrieb:
> Sorry dass ich mich hier kurz reinhänge:
>
> Kluchscheißender Kluchscheißer schrieb:
>> Nur in reinem Bascom wird es eng, da Bascom ja alle Register sichert,
>> wenn zur ISR verzweigt wird, was unnötig Stack und Rechenzeit
>> verschwendet. Aber auch da gibt es eine effiziente Lösung, die auf RN
>> veröffentlicht ist.
>
> Hast Du vielleicht einen Link, finde da nichts.(Wahrscheinlich zu blöd
> zum Suchen)

Na dann suche ich mal........... Fertig Mais-Teer....
Beitrag "Re: BASCOM: Taste lang oder kurz gedrückt?"

>
> Danke trotzdem
>
> MfG
> Mikros
Autor: Gerhard K. (mikros)
Datum:

Hallo!

Danke schön!

Hab im Artikelbereich gesucht!

MfG
Mikros

Edit: Doch zu blöd !
Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Gerhard K. schrieb:
>
> Edit: Doch zu blöd !

Achwas, was meinst Du, wie oft ich was nicht finde....
Autor: Thomas O. (kosmos)
Datum:

Hallo ich rolle das ganze nochmals kurz auf, da mein Kumpel sich dieses
Board bestellt hat und schon mit dem löten angefangen hat.

1. Wie groß sind die Widerstände R7-R9 ich habe bisher mit 10 kOhm
Pulldown gute Erfahrungen gemacht 5V/10kOhm=0,5mA Dauerbelastung der
Spannungsversorgung pro Schalter. Da im Artikel 100kOhm empfohlen
werden.
2. Oder soll der Beschriebene Spannungseinbruch daher kommen das beim
Drücken des Tasters der Kondensator die Spannungsversorgung kurzfristig
belastet bis er voll ist.
3. Wie groß sind die C17-C19
Autor: Hannes Lux (hannes)
Datum:

Thomas O. schrieb:
> Hallo ich rolle das ganze nochmals kurz auf, da mein Kumpel sich dieses
> Board bestellt hat und schon mit dem löten angefangen hat.
>
> 1. Wie groß sind die Widerstände R7-R9

Siehe Bestückungsplan in der Anleitung, welche bei Pollin zum Download
bereit liegt.

> ich habe bisher mit 10 kOhm
> Pulldown gute Erfahrungen gemacht

Es hat sich allgemein eingebürgert, Taster nach GND zu schalten. Da
braucht es keine Pull-Down, sondern Pull-Up. Diese sind bereits im AVR
drin. Sie müssen nur "verstärkt" werden, wenn die Leitungen zu den
Tastern zu lang sind (Einkoppeln von Störungen) oder wenndie Software
nicht ordentlich entprellt.

> 5V/10kOhm=0,5mA Dauerbelastung der
> Spannungsversorgung pro Schalter. Da im Artikel 100kOhm empfohlen
> werden.
> 2. Oder soll der Beschriebene Spannungseinbruch daher kommen das beim
> Drücken des Tasters der Kondensator die Spannungsversorgung kurzfristig
> belastet bis er voll ist.

Genau.

> 3. Wie groß sind die C17-C19

Siehe Stückliste in der Bedienungsanleitung.

...
Autor: Trollig (Gast)
Datum:

Wie lange kann man eigentlich über einen falsch geschalteten Kondensator
diskutieren.

Die einfache Lösung steht hier:

eProfi schrieb:
> Schon mal dran gedacht, den Stromimpuls durch einen R in Reihe zum
> Taster oder zum C zu verringern?Beitrag melden | Bearbeiten | Löschen |

Aber jeder wie er möchte...
Autor: oldmax (Gast)
Datum:

Hi
Warum holt ihr so einen alten Beitrag aus dem Keller ? Viele Probleme
mit dem Pollin-Board sind doch längst zigmal abgehandelt. Wer ein wenig
nachdenkt, lässt die Finger eh von den Tastern auf dem Board und baut
sich eine gescheite Testplatine oder nutzt für Experimente Steckbretter.
Die 2 Taster sind doch schon nach 5 Minuten langweilig....
Gruß oldmax
Autor: Thomas O. (kosmos)
Datum:
Angehängte Dateien:

Ich habe das ganze mal am Oszi nachgestellt statt der 33 kOhm Pulldowns
habe ich aber 39 kOhm genommen weil ich keine 33er da hatte. Als
Kondensator habe ich mal einen gängigen 100nF Kerko genommen die jeder
in der Hosentasche haben sollte.

So wie das auf dem Bild aber aussieht sind das doch Folienkondensatoren,
sowohl an den Tastern also auch an den einzelnen ICs.
Autor: Hannes Lux (hannes)
Datum:

Thomas O. schrieb:
> Ich habe das ganze mal am Oszi nachgestellt statt der 33 kOhm Pulldowns
> habe ich aber 39 kOhm genommen weil ich keine 33er da hatte. Als
> Kondensator habe ich mal einen gängigen 100nF Kerko genommen die jeder
> in der Hosentasche haben sollte.
>
> So wie das auf dem Bild aber aussieht sind das doch Folienkondensatoren,
> sowohl an den Tastern also auch an den einzelnen ICs.

Ach Thomas, was soll der Quatsch. Es lohnt sich nicht, diesen Murks zu
verschlimmbessern.

Taster werden nach GND geschaltet, es wird der AVR-interne PullUp
aktiviert und eine vernünftige Software-Entprellung (nach Peter
Dannegger) programmiert, und schon ist die Welt in Ordnung.

Es ist sooooo einfach, aber die Leute bei Pollin haben's (noch) nicht
begriffen und viele Käufer fallen drauf rein, wollen sich nicht
eingestehen, dass sie Murks gekauft haben. Allein die industrielle
Produktion der Platine mit Durchkontaktierungen, Lötstopplack und
Bestückungsdruck garantiert noch kein Spitzenproduckt.

...
Autor: Thomas O. (kosmos)
Datum:

@Hannes Lux, das kann ja jeder machen wie er will. Ich für meinen Teil
verwende seit jeher Pulldowns die sind auf der Platine und man sieht
sie, man weiß mit einem Blick was da los ist auch ohne den Quelltext
geöffnet zu haben.

Ich habe ja auch nichts gegen eine Softwareentprellung wenn Sie
gebraucht wird. Aber nach meinen Messungen prellen diese Mikroschalter
halt nicht bzw. so kurz das Sie mit einer sehr kurzen
Softwareentprellung zurechtkommen.

Ich selber habe dieses Bord auch gar nicht. Ein Kumpel von mir hat es
sich bestellt und ich bin im Forum darüber gestolpert das es da Probleme
mit einsackender Spannung bei Tastendruck gibt und es ihm mitgeteilt.
Nun das einfachste ist einfach den Kondensator wegzulassen und keine
Klimmzüge auf dem Board zu unternehmen.
Autor: Peter Dannegger (peda)
Datum:

Thomas O. schrieb:
> Ich für meinen Teil
> verwende seit jeher Pulldowns

Kann jeder machen wie er will.
Ich nehme immer die internen Pullups, schon weil die sich beim 8051
nicht abschalten ließen. Und beim AVR hab ich das dann bequemer Weise
übernommen.

Thomas O. schrieb:
> Ich habe ja auch nichts gegen eine Softwareentprellung wenn Sie
> gebraucht wird.

Ich nehme sie immer, da sie das Programmieren deutlich bequemer macht
(Flankenerkennung, Störunterdrückung, Komfortfunktionen).


Thomas O. schrieb:
> Aber nach meinen Messungen prellen diese Mikroschalter
> halt nicht bzw. so kurz das Sie mit einer sehr kurzen
> Softwareentprellung zurechtkommen.

Nun, das Gerät soll aber auch nach 2 Jahren noch funktionieren, wenn auf
den Kontakten Staub und Oxydschichten liegen und die Federspannung
nachgelassen hat.


Peter
Autor: Frank P. (mauz)
Datum:

Thomas O. schrieb:
> Nun das einfachste ist einfach den Kondensator wegzulassen und keine
> Klimmzüge auf dem Board zu unternehmen.
Genau, C17-19 einfach nicht einlöten, funktioniert und das Testprogramm
muss auch nicht angepasst werden. Entprellroutinen sollten auch damit
klarkommen, wenn gegen Vcc geschalten wird, Pedas tut es, wenn ich nicht
irre. Alles andere ist unnötiger Aufwand, für die kurze Lernphase und
die kleine Tests, für die man das Board braucht.
frank

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net