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
Sinnvoller. R7 R8 R11 C19 C17 C18 entfernen und die Taster gegen Masse schalten.
>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.
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
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?
Siehe oben. Alles andere ist Mist. http://www.mikrocontroller.net/articles/Pollin_ATMEL_Evaluations-Board
Das heißt die Widerstände raus und eine Brücke rein? Und wie genau schalte ich die Taster gegen Masse?
Keine Brücke sondern Taster anstelle der Widerstände. R7 R8 R11 C17 C18 C19 ersatzlos entfernen.
Will man die vorhandenen Taster dabei weiter verwenden, muss man an drei Stellen Leiterbahnen auftrennen, jeweils den linken oberen Tastenpin von Vcc trennen:
1 | Leiterbahn zu diesem Pin abtrennen |
2 | | |
3 | V |
4 | X----O |
5 | | | |
6 | | | |
7 | O----O |
8 | TasterX |
Die abgetrennten Pins mit Drahtbrücken an Masse legen.
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.
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
Ah ok alles klar. Nein doch nicht bitte nochmal langsam und verständlich.
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
>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!
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".
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
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
@Peter: das ist wohl sehr unwahrscheinlich. C17..19=220nF R7..11=33kOhm
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
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.
Das hat doch nichts mit der Geschwindigkeit des Drückens zu tun...
deswegen ist da auch ein :) und hättest du den Satz zu Ende gelesen oder verstanden wüsstest du was gemeint ist!
Hallo nochmal, ich würde das Board gerne betreiben nur was muss ich nun alles dazu ändenr damit es funktioniert?
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?
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
Wie oft denn noch? C17..19 abknipsen, dann läufts! Peter
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?
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
> 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.
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.
Schon mal dran gedacht, den Stromimpuls durch einen R in Reihe zum Taster oder zum C zu verringern?
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?
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.
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.
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.
Hallo, kann man die PullUps auch durch Auftrennen der Leiterbahn entfernen? Oder wie? Klaus.
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
> C17..19=220nF
Wer hat es mal mit weniger Kapazität versucht?
So 1 bis höchstens 10nF.
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?
Ich hab auch diese beiden Boards v2.01 und addon, bei mir bekommen beide Saft vom Netzteil, haben ja auch beide nen 7805
Es ist und bleibt Pfusch, Taster gehören ohne Zusatzbeschaltung zwischen Portpin und GND, die Entprellung übernimmt ein Stück Programmcode.
... die Entprellung übernimmt ein Stück Programmcode ... Woher kommt diese Weisheit?
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
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?
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ß.
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?
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?
@ 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
@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.
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.
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.
@ 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
@ 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
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.
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!
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.
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.
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
@ 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
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.
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
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.
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
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.
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
Hallo! Danke schön! Hab im Artikelbereich gesucht! MfG Mikros Edit: Doch zu blöd !
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
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. ...
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...
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
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.
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. ...
@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.
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.