Forum: Analoge Elektronik und Schaltungstechnik Pullup-Widerstand Stromverbrauch zu hoch


von Alex (alex2015)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich benötige nochmal euren Rat.

folgendes Ergebnis soll meine Schaltung am Ende liefern.
Ein Atmega 328P läuft im pwr down Modus (Verbrauch paar uA) an einem 
Li-Io Akku und wird beim Öffnen einer Tür durch einen externen Interrupt 
(Reed-Sensor) aus dem Tiefschlaf geweckt. (High Signal)

Problem:
Der Atmega verbraucht aktuell 4,4uA. Der notwendige Pullup Widerstand am 
digitalen Eingang R2 22k verbraucht im Zustand (Tür geschlossen) bei 
4,2V aber 0,19mA. Da die Tür (abgelegenes Gebäude) zu 99% aber 
geschlossen ist, wollte ich mal fragen, ob es sinnvoll ist den Hauptteil 
der verfügbaren Akku Kapazität am Pullup zu verheizen und ob es ggf. 
noch eine andere Möglichkeit gibt.

VG und vielen Dank im voraus.

von Fritz G. (fritz65)


Lesenswert?


von Olli Z. (z80freak)


Lesenswert?

Genau, der Reed-Kontakt sollte schließen wenn die Tür geöffnet wird. 
Ggf. mit einem Transistor die Polrität ändern.

: Bearbeitet durch User
von Oliver R. (orb)


Lesenswert?

Olli Z. schrieb:
> Ggf. mit einem Transistor die Polrität ändern.

Tolle Idee, das würde den Ruhestrom nur noch mehr erhöhen.

Reed-Kontakte gibt es als Umschalter, damit hat man auch einen Öffner.
Dann sollte man aber einen Pulldown hinzufügen, damit der Eingang nicht 
schwebt.

Welchen Grund hat der 10k in Reihe?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> und ob es ggf. noch eine andere Möglichkeit gibt.
Mach das Ganze um zwei Zehnerpotenzen hochohmiger. Dann sinkt der 
Energieverbrauch über dem Pullup um den Faktor 100.
Den Kondensator würde ich in dem Fall auf 220nF erhöhen.

Olli Z. schrieb:
> Ggf. mit einem Transistor die Polrität ändern.
Zeig mal mit einem Schaltplan, wie da was zu sparen sparen wäre.

Oliver R. schrieb:
> Welchen Grund hat der 10k in Reihe?
Tiefpass gegen Störungen.

: Bearbeitet durch Moderator
von Thomas B. (thombde)


Lesenswert?

Den R2 könnte man auch verdoppeln, also 47K, ausprobieren.
Wenn der Reedkontakt offen ist kann man sich aber leichter Störungen 
einfangen.
Bei sehr langen Leitungen kann das ein Problem werden.
Deswegen Abgeschirmte Leitungen verwenden.
Vielleicht ginge auch was mit CD4050 oder CD4049.
Die laufen bis 3V  UB.

von Rolf (rolf22)


Lesenswert?

Alex schrieb:
> Der Atmega verbraucht aktuell 4,4uA.

Läuft da vielleicht noch irgendwas (Brownout-Detektor, Watchdog, Strom 
an einen anderen Pin, ...)?

> ob es ggf. noch eine andere Möglichkeit gibt.

- Den Sensor wechseln oder ihn anders montieren, wie schon jemand gesagt 
hat
- Mit dem Sensor einen MOSFET schalten, der dann das Signal für den µP 
liefert
- Den Pullup vergrößern
- Die Taktfrequenz senken
-

von Rolf (rolf22)


Lesenswert?

Rolf schrieb:
> Die Taktfrequenz senken (um unter die 4,4 µA zu kommen)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Oliver R. schrieb:
> Reed-Kontakte gibt es als Umschalter, damit hat man auch einen Öffner.

Bei einem Umschalter kann der Reed-Kontakt direkt zwischen VCC und GND 
umschalten.

> Dann sollte man aber einen Pulldown hinzufügen, damit der Eingang nicht
> schwebt.

Wenn sichergestellt werden kann, dass der Reed-Umschalter immer 
angeschlossen ist, benötigt man für die paar Mikrosekunden Umschaltzeit 
keinen Pulldown.

Der weitere große Vorteil besteht darin, dass auch bei lange geöffneter 
Tür die Batterie nicht entladen wird.

> Welchen Grund hat der 10k in Reihe?

Er stellt mit dem 22 nF-Kondensator einen Tiefpass gegen Störungen und 
einen ziemlich gut ESD-Schutz dar.

von Schwierig (ruelps)


Lesenswert?

Wie schnell muß denn eine Änderung erkannt werden?

Wenn es nicht fast Echtzeit sein muß, kann man den ATMega auch in 
Intervallen aufwachen lassen, Pull up einschalten und Pin messen. Danach 
Pull up wieder aus und wieder schlafen legen bis zum nächsten Timer 
interrupt.

von Thomas B. (thombde)


Lesenswert?

Habe grade mal bei meiner alten Alarmanlage nachgeschaut.
Die läuft allerdings mit 12V.
Den R2 kannst Du auch locker auf 100K erhöhen.
Parallel zum Reed eine Zenerdiode und VDR.
Und dann mal den Ruhestrom messen.
Ich würde bei einem “Öffner“ bleiben.

von Alex (alex2015)


Lesenswert?

Hallo zusammen,

ich möchte euch schonmal für all die Rückinfos und Input bedanken.

Fritz G. schrieb:
> Türschalter mit bei geschlossenener Tür geöffnetem Kontakt verwenden:

Das hatte ich auch schon auf dem Schirm. Der aktuell verbaute 
Reedkontakt (offen bei offneren Tür) hat halt den Scharm, dass man 
relativ schnell weitere Türen bzw. Fenster per Schleife mit einbinden 
kann. Des weiteren kann man auch so schneller eine Unterbrechnung in der 
Leitung feststellen.

Lothar M. schrieb:
> Mach das Ganze um zwei Zehnerpotenzen hochohmiger. Dann sinkt der
> Energieverbrauch über dem Pullup um den Faktor 100.
> Den Kondensator würde ich in dem Fall auf 220nF erhöhen.

Wenn das funktioniert, klingt das für mich nach der besten Lösung.
Ich hatte nur die Befürchtung, dass beim Erhöhen des Pullup die 
Störanfälligkeit des Digitalen-Eingangs größer wird und es zu Fehlern 
kommt. Im Netz hatte ich oft von 10k Ohm gelesen, ich dachte mit den 22k 
bin ich da schon drüber. Aber wenn es mit 2,2MOhm auch funktioniert wäre 
das top.

Thomas B. schrieb:
> Deswegen Abgeschirmte Leitungen verwenden.
Werde ich berücksichtigen.

Rolf schrieb:
> Läuft da vielleicht noch irgendwas (Brownout-Detektor, Watchdog, Strom
> an einen anderen Pin, ...)?
Nicht benutzte Digitale-Eingänge habe ich auf LOW, ADC ist aus, BOD aus.
Und dann in den Sleep-Modus. Es kann aber auch gut sein, dass mein 
Voltcraft Multimeter den Wert im uA Bereich nicht mehr ordentlich 
abbildet

Rolf schrieb:
> Die Taktfrequenz senken (um unter die 4,4 µA zu kommen)
Ich habe mit Hilfe dieser Anleitung den Bootlader „Atmega328 on a 
breadboard (8 MHz internal clock)“ drauf gebrannt.
https://wolles-elektronikkiste.de/atmega328p-standalone-betreiben
Wie ich unter die 8Mhz komme weiß ich leider nicht.

Thomas B. schrieb:
> Parallel zum Reed eine Zenerdiode und VDR.
Alles klar, da muss ich mich aber erstmal belesen was die Funktion der 
beiden Bauteile ist.

VG und vielen Dank,
Alex

: Bearbeitet durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> Lothar M. schrieb:
>> Mach das Ganze um zwei Zehnerpotenzen hochohmiger. Dann sinkt der
>> Energieverbrauch über dem Pullup um den Faktor 100.
>> Den Kondensator würde ich in dem Fall auf 220nF erhöhen.
> Wenn das funktioniert, klingt das für mich nach der besten Lösung.
Es wird auch mit 2M2 funktionieren, der Leckstrom des Eingangs ist 
gering.

> Ich hatte nur die Befürchtung, dass beim Erhöhen des Pullup die
> Störanfälligkeit des Digitalen-Eingangs größer wird und es zu Fehlern
> kommt. Im Netz hatte ich oft von 10k Ohm gelesen, ich dachte mit den 22k
> bin ich da schon drüber. Aber wenn es mit 2,2MOhm auch funktioniert wäre
> das top.
Die Störsicherheit macht bei dir sowieso das RC-Glied mit 10k und dem 
Kondensator, bei dem ich wie gesagt noch ein paar nF drauflegen würde.

Was dieser Kondensator auch macht, ist übrigens eine "Zeitverzögerung", 
denn nach dem Öffnen des Reedkontakts müssen erst mal ein paar ms 
vergehen, bis der Kondensator über den 2M2 bis zur Schaltschwelle 
aufgeladen ist.

Alex schrieb:
> Wie ich unter die 8Mhz komme weiß ich leider nicht.
CLKDIV8 wäre der erste verzweifelte Schritt.
Besser wäre ein entsperechend langsamer interner Oszillator: der 328P 
hat einen 128kHz RC Oszillator, der ist super für Batterieanwwendungen. 
Dazu dann noch der CLKDIV8, dann wird die SW quasi im SinlgeStep 
ausgeführt... ;-)

: Bearbeitet durch Moderator
von Michael B. (laberkopp)


Lesenswert?

Alex schrieb:
> ob es ggf. noch eine andere Möglichkeit gibt.

Du legst den pull up nicht an VCC sondern einen Portpin.

Der ist nur Mikrosekunden wahrend der Auswertung high und sonst low.

Die Tur öffnet/schließt sich ja langsam genug, dass man nur jede Sekunde 
nachgucken muss.

Damit sinkt der mittlere Stromverbrauch auf 1/100000. Der C muss 
naturlich weg an deinem Eingang.

Du brauchst nicht msl einen extra PortPin, wenn du den eingebauten pull 
up des AVR nutzt. Du brauchst dann gar keine zusätzlichen externen 
Bauteile, nur den Reed der nach Masse schaltet.

Auch Reed-Kontakte haben einen Mindeststrom, goldbeschichteten reichen 
10uA also der interne pull up von 50-90k.

von Rainer W. (rawi)


Lesenswert?

Alex schrieb:
> Der notwendige Pullup Widerstand am
> digitalen Eingang R2 22k verbraucht im Zustand (Tür geschlossen) bei
> 4,2V aber 0,19mA.

Dann aktiviere den Pull-Up doch nur für kurze Zeit. Für den Akku kommt 
es nicht auf die mA, sondern auf die mAh an.

Olli Z. schrieb:
> Genau, der Reed-Kontakt sollte schließen wenn die Tür geöffnet wird.

Das kann nach hinten losgehen. Ein Kabelbruch kann nicht erkannt werden. 
Aus Sicht der Elektronik sieh bei einem n.o.-Kontakt ein Kabelbruch 
genauso aus, wie eine ordnungsgemäß geschlossene Tür.
Ob das relevant ist, hängt davon ab, was an dem Kontakt für eine 
Funktion hängt.

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Lothar M. schrieb:
> Alex schrieb:
>> Wie ich unter die 8Mhz komme weiß ich leider nicht.
> CLKDIV8 wäre der erste verzweifelte Schritt.
> Besser wäre ein entsperechend langsamer interner Oszillator: der 328P
> hat einen 128kHz RC Oszillator, der ist super für Batterieanwwendungen.
> Dazu dann noch der CLKDIV8, dann wird die SW quasi im SinlgeStep
> ausgeführt... ;-)

Geht noch um Faktor 256 langsamer, dank CLKPR.

von Roland E. (roland0815)


Lesenswert?

Alex schrieb:
> Hallo zusammen,
>
> ich benötige nochmal euren Rat.
>
> ...

Schalte den Pullup mit deinem Reed. An den Mega einen Pulldown im 
unteren MOhm-Bereich.

von Manfred P. (pruckelfred)


Lesenswert?

Alex schrieb:
> hat halt den Scharm, dass man

Auah!

Alex schrieb:
> Ich hatte nur die Befürchtung, dass beim Erhöhen des Pullup die
> Störanfälligkeit des Digitalen-Eingangs größer wird und es zu Fehlern
> kommt.

Du hast einen Mikrocontroller und dessen Software in Deiner Hand. Die 
Türe wird nicht im Bereich von Zehntelsekunden offen sein, sondern 
deutlich länger.

Also was: Der Impuls kommt, der µC fragt den Kontakt mit ein paar ms 
Verzögerung erneut ab und legt sich wieder hin - oder eben nicht.

Jetzt kommt mir gleich die Frage in den Kopf, was bei geöffneter Tür und 
später dessen Schließen passiert.

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


Lesenswert?

H. H. schrieb:
>> CLKDIV8 wäre der erste verzweifelte Schritt.
>> Besser wäre ein entsperechend langsamer interner Oszillator: der 328P
>> hat einen 128kHz RC Oszillator, der ist super für Batterieanwwendungen.
>> Dazu dann noch der CLKDIV8, dann wird die SW quasi im SinlgeStep
>> ausgeführt... ;-)
>
> Geht noch um Faktor 256 langsamer, dank CLKPR.

Ihr müsst dem TE dann aber schon sagen, daß ISP Programmierung dann 
extrem langsam läuft und dem Programmer möglich sein muss und das sich 
bei etwaigen seriellen Bootloadern die Baudrate drastisch niedrig wird. 
Schon einen auf WDCLK und CKDIV8 programmierten MC kannste nur mit max. 
4kHz ISP Frequenz proggen. Das kann nicht jeder.

von Manfred P. (pruckelfred)


Lesenswert?

Matthias S. schrieb:
>> Geht noch um Faktor 256 langsamer, dank CLKPR.
> Ihr müsst dem TE dann aber schon sagen, daß

... er gewisse kluge Kommentare ignorieren soll. Mit seinen 4,4µA im 
sleep kommt er klaglos hin, sein 'Problem' ist an anderer Stelle.

von Teo D. (teoderix)


Lesenswert?

Michael B. schrieb:
> Du legst den pull up nicht an VCC sondern einen Portpin.
>
> Der ist nur Mikrosekunden wahrend der Auswertung high und sonst low.
> ...
> Auch Reed-Kontakte haben einen Mindeststrom, goldbeschichteten reichen
> 10uA also der interne pull up von 50-90k.


Da hats ne kleine Misere... 0,0A beim Schalten.

Die 22nF(?) direkt an den Kontakt, ~1MOhm an VCC?!

von Otto K. (opto_pussy)


Lesenswert?

Teo D. schrieb:
> Die 22nF(?) direkt an den Kontakt, ~1MOhm an VCC?!

Dadurch dass der Kontakt sowieso 99% der Zeit geschlossen ist, braucht 
man den 22k Pull-Up Widerstand eigentlich in der langen Zeit nicht. Man 
braucht den 22k Pull-Up Widerstand nur in der kurzen Zeit, wo der 
Kontakt geöffnet ist.

Könnte man nicht mit einer intelligenten Transistorschaltung, in genau 
dem Moment wo der Kontakt geöffnet wird, den 22k Widerstand mit einem 
Transistor dazuschalten?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.