Forum: Mikrocontroller und Digitale Elektronik ExternerInterrupt + Sleep + PullUp


von Christian (Gast)


Lesenswert?

Hallo Leute,

ich beschäftige mich relativ neu mit dem Thema µC und wollte nun mal ein 
kleines Programm schreiben welches nach der Betätigung eines 
Mikroschalters unter anderem eine LED für eine gewisse Zeit einschaltet. 
Also eigentlich nix wildes.
Da das ganze über Batterie gespeist werden soll macht es natürlich Sinn 
den µC (es handelt sich um einen ATtiny 85) wenn er nicht gebraucht wird 
in den Sleep zu schicken. Auch dies ist wohl kein Problem.
Bei dem Eingang PB4 welchen ich dazu nutzen möchte muss ich ja den 
internen PullUp einschalten (oder nicht ?)
Ich habe aber irgendwo gelesen dass die internen PullUps der Eingänge 
schon recht viel Strom verbrauchen, daher sollte man im Sleep Betrieb 
die auch so weit möglich abschalten. Dies kann ich für den Eingang 
welchen ich als Interrupt nehmen will ja nicht machen. Daher meine Frage 
wie viel Strom zieht denn der interne PullUp ?
Nach meinem Verständnis kann der ja so oder so nur Strom ziehen wenn der 
Mikroschalter betätigt ist, also der Eingan auf Low liegt. Liegt der 
Eingang auf High kann ja eigentlich annähernd kein Strom fließen, sonst 
wäre der Eingang ja auf Grund des Spannungsabfalls am PullUp quasi nicht 
mehr High.

Was also ist der richtige Weg das ganze möglichst Stromsparend mit nem 
externen Interrupt über den Mikroschalter zu realisieren ?

Gruß

Christian

: Gesperrt durch Moderator
von Thomas E. (thomase)


Lesenswert?

Christian schrieb:
> Was also ist der richtige Weg das ganze möglichst Stromsparend mit nem
> externen Interrupt über den Mikroschalter zu realisieren ?

Das mit dem Pullup siehst du genau richtig. Das, was du irgendwo gelesen 
hast, ist Unsinn.

Was man nicht machen darf, ist die Eingänge einfach offen lassen.

mfg.

: Bearbeitet durch User
von Chris K. (christopher_k25)


Lesenswert?

Hi,

Pull-Up macht auf jeden Fall Sinn. Laut Datenblatt haben die beim Attiny 
mindestens 20kOhm, heißt bei 5V frisst der während du den Taster dann 
drückst (Den musst du dann natürlich gegen GND schalten) I=U/R höchstens 
0,25mA.. Aber halt nur während du eben den Taster drückst.

Außerdem Lässt sich der Attiny per Interrupt aufwecken; wie sich das mit 
dem Pin-Level verhält weiß ich allerdings nicht. Evtl. brauchst du dann 
nen externen Pull-down und schaltest gegen VCC.

Im Sleep Mode zieht der Chip unter einem uA. So würde ich die Sache 
angehen. Datenblatt wälzen, Tutorials ansehen und dann findest du schon 
raus wie das läuft. Learning by doing


Grüße

Chrissi

von m.n. (Gast)


Lesenswert?

Christian schrieb:
> Da das ganze über Batterie gespeist werden soll macht es natürlich Sinn
> den µC (es handelt sich um einen ATtiny 85) wenn er nicht gebraucht wird
> in den Sleep zu schicken. Auch dies ist wohl kein Problem.
> Bei dem Eingang PB4 welchen ich dazu nutzen möchte muss ich ja den
> internen PullUp einschalten (oder nicht ?)

Eine Schaltung mit ext. Pullup-Widerstand kann dann sinnvoll sein, falls 
der Taster auch blockieren kann, bzw. im Schlafmodus aktiv bleibt.
Beitrag "Re: EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."

von LostInMusic (Gast)


Lesenswert?

>Eine Schaltung mit ext. Pullup-Widerstand kann dann sinnvoll sein [...]

Hm. Ich frag mich gerade, was denn ein externer Pullup-Widerstand 
prinzipiell anders machen soll als ein interner? Oder begründet sich 
Deine oben zitierte Aussage nur in der Tatsache, dass der Wert des 
internen Pullups eine eher vage Größe ist, wohingegen jener eines 
externen beliebig gewählt werden kann und diesen dann auch (z. B. als 
Metallfilmwiderstand) mit hoher Genauigkeit besitzt?

Oder gibt es einen weiteren Grund, den ich nicht sehe?

von Thomas E. (thomase)


Lesenswert?

LostInMusic schrieb:
> Oder gibt es einen weiteren Grund, den ich nicht sehe?

Besonders hohe Genauigkeit benötigt ein Pullup nicht. Ob der 0,1% oder 
10% abweicht, ist vollkommen egal. Entscheidend ist, dass man extern 
einen wesentlich kleineren Widerstand auswählen kann, was die 
Störempfindlichkeit herabsetzt. Ob das nun besonders hohe Qualität oder 
Paranoia ist, mag jeder selbst entscheiden.

mfg.

von LostInMusic (Gast)


Lesenswert?

>Entscheidend ist, dass man extern einen wesentlich kleineren Widerstand
>auswählen kann, was die Störempfindlichkeit herabsetzt.

Also in der Schaltung, die in dem oben von "m.n." verlinkten Thread
"Re: EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."
vorgestellt wird, benutzt der Autor einen 2M2-Widerstand als Pullup. 
Oder besser gesagt zwei 2M2-Widerstände, die einen Spannungsteiler 
bilden. Diese Widerstände sind also deutlich größer, also hochohmiger 
als die internen Pullups beim AVR. Hat der Autor dieser Schaltung damit 
dann die Störempfindlichkeit heraufgesetzt? Welchen Sinn ergibt das?

von Peter D. (peda)


Lesenswert?

Wenn es Dich stört, daß durch den Pullup Strom fließt, wenn sich jemand 
auf die Taste setzt, dann kannst Du bei Dauerdruck den Pullup abschalten 
und per Watchdog-Interrupt z.B. alle 1s nachsehen, ob der immer noch 
draufsitzt.

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


Lesenswert?

LostInMusic schrieb:
> Hat der Autor dieser Schaltung damit
> dann die Störempfindlichkeit heraufgesetzt? Welchen Sinn ergibt das?

Ja, der Eingang ist deutlich störempfindlicher. Ich kann mir die 
Schaltung nur so erklären, das der Autor den ohnehin sehr geringen 
Leckstrom des Eingangs ( typ. < 0,05µA, max. 1µA lt. Datenblatt) noch 
weiter herabsetzen möchte.
Der Preis für den noch etwas geringeren Leckstrom würde ich nicht zahlen 
wollen, denn der so beschaltete Eingang ist natürlich sehr 
störempfindlich.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

LostInMusic schrieb:
> Oder besser gesagt zwei 2M2-Widerstände, die einen Spannungsteiler
> bilden.

Es geht nicht um einen Spannungsteiler! Der eigentliche 
Pullup-Widerstand ist R3; R2 und C1 bilden einen Tiefpass, der Störungen 
sehr stark filtert.

> Diese Widerstände sind also deutlich größer, also hochohmiger
> als die internen Pullups beim AVR. Hat der Autor dieser Schaltung damit
> dann die Störempfindlichkeit heraufgesetzt?

Kleine Widerstände senken die Störempfindlichkeit, sofern die Störung 
selbst recht hochohmig bleibt. Insofern sind kleine Widerstände im 
Allgemeinen nicht verkehrt. Aber:

> Welchen Sinn ergibt das?

In der gezeigten Schaltung sorgt R2 mit seinen 2M2 dafür, daß die 
Störung immer hochohmig eingekoppelt wird; der für Störimpulse recht 
niederohmige C1 bildet hält diese in Verbindung mit R2 wirksam vom 
µC-Eingang fern.
Die Stromaufnahme ist selbst bei geschlossenem Kontakt sehr gering.

Bei den anderen Schaltungen liegt vor dem Eingang ein Tiefpass mit 10k 
und 100nF, der unabhängig vom verwendeten Pullup-Widerstand Störungen 
sehr stark unterdrückt. Da ist der verwendete Widerstand zweitrangig 
(einmal intern ca. 30-50k und einmal weiter unten extern 1M).

Matthias Sch. schrieb:
> denn der so beschaltete Eingang ist natürlich sehr
> störempfindlich.

Was ist denn daran 'natürlich'? Hast Du schon mal Schaltungen für 
Batteriebetrieb gebaut?

von Thomas E. (thomase)


Lesenswert?

LostInMusic schrieb:
> Also in der Schaltung, die in dem oben von "m.n." verlinkten Thread
> "Re: EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."

Diese Schaltung weicht vom Mainstream ab und wurde hier schon äusserst 
kontrovers diskutiert.
Ich hoffe, ich habe mich diplomatisch genug ausgedrückt. Ohne irgend 
jemandem zu nahe zu treten.

mfg.

von m.n. (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> LostInMusic schrieb:
>> Also in der Schaltung, die in dem oben von "m.n." verlinkten Thread
>> "Re: EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."
>
> Diese Schaltung weicht vom Mainstream ab und wurde hier schon äusserst
> kontrovers diskutiert.
> Ich hoffe, ich habe mich diplomatisch genug ausgedrückt. Ohne irgend
> jemandem zu nahe zu treten.

Das hast Du gut formuliert ;-)
Vor genau 30 Jahren hatte ich eine Schaltung veröffentlicht, bei der ein 
µC neben einer reziproken Frequenzmessung auch noch das 7-Segment 
LED-Display per Multiplex angesteuert hatte.

Prompt kam ein wüst schimpfender Leserbrief, dessen Autor meinte, die 
7-Segmentansteuerung habe man gefälligst mit einem fertigen ICM7208 
durchzuführen. Ich war eigentlich froh, diesen nicht mehr verwenden zu 
müssen, da beim Einschalten immer Müll angezeigt wurde.
Ferner wäre es meine Pflicht gewesen, einen 8051 statt eines 6511 zu 
verwenden. War das ein dummer Hund!

Ein anderer meckerte 'rum, daß man ja garkeine Torzeit einstellen könne 
und wollte deshalb die Rechnung nicht bezahlen. Noch ein dummer Hund!

"War ich, kenn ich, weiß ich schon" ;-)

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


Lesenswert?

m.n. schrieb:
> Was ist denn daran 'natürlich'? Hast Du schon mal Schaltungen für
> Batteriebetrieb gebaut?

Oh ja, dutzende. Und es ist einfach Physik. Komm mit dem Finger in die 
Nähe des 10nF und die Schaltung erkennt Blödsinn. Siehe auch die 
Diskussion da im Thread. Da der Taster auch gleich daneben ist, passiert 
das von ganz alleine, ebenso führt ein winziger Leckstrom an den 
Tasterleitungen auch zur Fehlschaltung. Lass ein wenig Feuchtigkeit an 
den 10nF, usw.
Und das Taster ohne Mindeststrom mit der Zeit unzuverlässig werden, 
weisst du mittlerweile. Ich nehme mal an, das du der M.N. bist, der die 
Schaltung da vorstellt. In den letzten anderthalb Jahren hast du 
vermutlich gemerkt, das die Schaltung nicht der Weisheit letzer Schluss 
ist.

Thomas Eckmann schrieb:
> Diese Schaltung weicht vom Mainstream ab und wurde hier schon äusserst
> kontrovers diskutiert.
Mit Recht. Das ist wirklich eine merkwürdige Schaltung. Und das wars.

von Joachim B. (jar)


Lesenswert?

Christian schrieb:
> Was also ist der richtige Weg das ganze möglichst Stromsparend mit nem
> externen Interrupt über den Mikroschalter zu realisieren ?

einen pulldown zu nehmen und den Taster nach + zu schalten optimal am 
PINCHANGE Interrupt.

von Thomas E. (thomase)


Lesenswert?

Joachim B. schrieb:
> optimal am PINCHANGE Interrupt.

Dem ist das vollkommen egal, in welche Richtung er wackelt.

mfg.

von Joachim B. (jar)


Lesenswert?

Thomas Eckmann schrieb:
> Dem ist das vollkommen egal, in welche Richtung er wackelt.

weiss ich nur die /INT wollen nach unten und brauchen pullups, die PCINT 
kann man wählen.

von m.n. (Gast)


Lesenswert?

Joachim B. schrieb:
> Thomas Eckmann schrieb:
>> Dem ist das vollkommen egal, in welche Richtung er wackelt.
>
> weiss ich nur die /INT wollen nach unten und brauchen pullups, die PCINT
> kann man wählen.

/INT-Eingänge brauchen in der Regel negative Pegel bzw. Flanken. AVRs 
haben allerdings INT-Eingänge, die wie die PCINT-Eingänge beide Flanken 
erkennen können und zudem noch einen statischen '0'-Pegel. Das wird im 
Register MCUCR konfiguriert.
Daher ist es egal, ob pullup oder pulldown.

Christian schrieb:
> Was also ist der richtige Weg das ganze möglichst Stromsparend mit nem
> externen Interrupt über den Mikroschalter zu realisieren ?

Ich hoffe, Du hast die Schaltung mittlerweile fertig aufgebaut und 
freust Dich, daß Alles wunschgemäß funktioniert.

von Peter D. (peda)


Lesenswert?

Joachim B. schrieb:
> einen pulldown zu nehmen und den Taster nach + zu schalten

Warum?

Ich schalte Kontakte immer gegen GND.
Störungen (elektrostatische Entladungen) gegen GND sind im allgemeinen 
harmloser, als sie auf die VCC aufzumodulieren.
Und bei Montagefehlern wird nicht die VCC kurzgeschlossen.

: Bearbeitet durch User
Beitrag #5176768 wurde von einem Moderator gelöscht.
Beitrag #5176796 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.