Forum: Mikrocontroller und Digitale Elektronik Verbrauch im Sleep senken


von Matthias G. (kloeppi)


Lesenswert?

Hallo,

der Attiny84 ist im DeepSleep und wacht per Interrupt auf, wenn einer 
von 2 GND Eingängen, von denen jeder mit PullUp auf 5V gezogen ist, 
geöffnet wird.
Da standardmässig die beiden Eingänge an GND geschlossen sind verbraucht 
die Schaltung im DeepSleep 275µA.

Nur zu Testzwecken um Fehler in der Schaltung auszuschliessen:
Ist nur ein Eingang offen sind es 137µA und wenn beide offen sind es nur 
noch 0.1µA - also Schaltung ist ok.

Obwohl die 275µA jetzt kein Problem darstellen wüsste ich gerne, ob ich 
den Verbrauch noch reduzieren kann ohne das Design zu ändern.

Erläuterung: die beiden Eingänge sind Handy-Magnetladekabel und wenn 
eines davon von der Schaltungsbuchse abgesteckt wird, schaltet die 
Schaltung je nach offenem Eingang in den Fast- oder Slowcharge Modus.

Danke für alle Antworten

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Matthias G. schrieb:

> Obwohl die 275µA jetzt kein Problem darstellen wüsste ich gerne, ob ich
> den Verbrauch noch reduzieren kann ohne das Design zu ändern.

Logisch: Größere Pullups verwenden. Offensichtlich fließt ja der größte 
Teil des Strombedarfs durch eben diese.

von Monk (Gast)


Lesenswert?

Ob S. schrieb:
> Logisch: Größere Pullups verwenden.

Und HF mit Kondensatoren blockieren.

Noch besser: Wechsler-Kontakte ohne Pull-Widerstand verwenden.

von Matthias G. (kloeppi)


Lesenswert?

Ob S. schrieb:
> Logisch: Größere Pullups verwenden. Offensichtlich fließt ja der größte
> Teil des Strombedarfs durch eben diese.
>>

Die PullUps ziehen doch nur den Eingang auf 5V der offen ist?
Und wenn offen sind es nur noch 137µA bzw. 0.1µA

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Monk schrieb:

> Und HF mit Kondensatoren blockieren.

Nicht unbedingt nötig. Kommt auf die Länge des Leiters zu den Kontakten 
an. Wenn die kurz genug ist und die Pullups groß genug sind, reichen die 
parasitären Kapazitäten bereits aus, um das in hinreichendem Maße 
leisten zu können.

Problem ist eher: man kann die Pullups nicht beliebig groß machen, weil 
ab so 1..10MOhm die parasitären Leitfähigkeiten Richtung GND immer 
stärker wirksam werden und mit den Pullups einen Spannungsteiler bilden, 
der die resultierende Spannung am Eingang immer näher an die 
Umschaltschwelle zieht. Oberhalb 10M Pullup ist deshalb kaum noch 
praktikabel, selbst wenn die Platine sorgfältig gefertigt wurde und nur 
in einer "home-Umgebung" mit einigermaßen stabilem Klima eingesetzt 
wird.

von Mark S. (voltwide)


Lesenswert?

Das sieht doch so aus als ob da einfach interne pullup-Widerstände an 
den kurzgeschlossenen Eingängen Strom ziehen. Die kann man per SW 
abschalten und durch was hochohmiges (z.B. 1MOhm) ersetzen.

von Monk (Gast)


Lesenswert?

Matthias G. schrieb:
> Die PullUps ziehen doch nur den Eingang auf 5V der offen ist?

Denkst du, die Widerstände verschwinden, wenn der Eingang auf GND 
gezogen wird? Das ist nicht der Fall.

von Matthias G. (kloeppi)


Lesenswert?

Danke für alle Antworten.
Mit jeweils 1MOhm Pullup bin ich bei 10,7µA.
Es gibt noch viel zu lernen ;-)

von Mark S. (voltwide)


Lesenswert?

Ja, Ohms Gesetz kennt keine Gnade!

von Monk (Gast)


Lesenswert?

Alternativ kannst du einen Timer benutzen, um den Mikrocontroller in 
regelmäßigen Intervallen aufzuwecken. Du kannst dann in den kurzen 
wachen Phasen die Pull-Ups einschalten, die Eingänge abfragen, dann die 
Pull-Ups wieder aus schalten.

von S. L. (sldt)


Lesenswert?

> ... regelmäßigen Intervallen aufzuwecken ...

Womit sich unter 8 uA erreichen lassen sollte - aber, wie der Schwabe 
sagt: "des macht de Kohl ned fett", verglichen mit den 10.7 uA.

von Matthias G. (kloeppi)


Lesenswert?

S. L. schrieb:
> Womit sich unter 8 uA erreichen lassen sollte - aber, wie der Schwabe
> sagt: "des macht de Kohl ned fett", verglichen mit den 10.7 uA.

Die 275uA machen den Kohl auch nicht fett - die Frage nach 
Verbrauchsteduzierung war nur interessehalber.
Wegen des Cents Stromkosten im Jahr schraube ich das Gehäuse jetzt nicht 
mehr auf ;-)

von Manfred P. (pruckelfred)


Lesenswert?

Matthias G. schrieb:
> der Attiny84 ist im DeepSleep und wacht per Interrupt auf, wenn einer
> von 2 GND Eingängen, von denen jeder mit PullUp auf 5V gezogen ist,
> geöffnet wird.

Die Logik lässt sich nicht umdrehen: Im Sleep sind die Eingänge high und 
werden zum Aktivieren nach GND gezogen?

von Falk B. (falk)


Lesenswert?

Matthias G. schrieb:
> Danke für alle Antworten.
> Mit jeweils 1MOhm Pullup bin ich bei 10,7µA.
> Es gibt noch viel zu lernen ;-)

Ja, vor allem daß du auf dem Holzweg bist. Ob exteren Pull-Ups 1k oder 
1M haben ist egal, denn die "Last" ist einen extrem hochohmiger 
CMOS-Eingang mit Leckströmen im sub uA Bereich. Dein Fehler liegt 
woanders, vermutlich bei einem Eingang mit intern aktiviertem Pull Up, 
der extern auf GNE gezogen wird. Man braucht an sich auch keine externen 
Pull Ups. Entweder die internen aktivieren, dann muss das IO-Pin offen 
bleiben oder das IO Pina uf Ausgang schalten. Dann ist auch eagl ob es 
auf LOW oder HIGH gesetzt wird, wenn da nix dran hängt.

Der ATtiny84 ist mit ca. 1uA bei 5V im Power Down Modus spezifiziert. 
Vermutlich hast du noch interen Module aktiv, welche Strom brauchen. 
Analogkomparator (der ist nach dem Reset immer aktiv), Brown out 
Detektor (per Fuses abschaltbar). Oder der Watchdog Oszillator.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Matthias G. schrieb:
> Die 275uA machen den Kohl auch nicht fett - die Frage nach
> Verbrauchsteduzierung war nur interessehalber.
> Wegen des Cents Stromkosten im Jahr schraube ich das Gehäuse jetzt nicht
> mehr auf ;-)

Ob das nur 1 Cent Stromkosten sind, hängt von der Anwendung ab. Wenn das 
eine abgesetzte Messstation ist, kann ein Batteriewechsel schnell mehr 
als das 10000-fache kosten.

von Matthias G. (kloeppi)


Lesenswert?

Im Sleep sind die Eingänge LOW und wenn ich ein Magnet-Ladekabel vom im 
Gehäuse verbauten Handy-Anschlussadapter abziehe um es am 
Anschlussadapter des Handys anzudocken geht der entsprechende Eingang 
über den PullUp auf HIGH.
Daraufhin schaltet ein monostabiles Relais die Stromversorgung-Masse für 
eine Alexa-Platine, ein als Master konfiguriertes HC05 wird für 5 sek 
eingeschaltet und ein bistabiles Relais in die dem verwendeten Kabel 
entsprechende Pos geschaltet.
Das Handy erkennt die Verbindung mit dem HC05, pingt solange die 
Alexa-Platine an bis erreichbar, schaltet die Platine auf ON (GND) und 
schleift diesen Kontakt zur Kontrolle in den uC und gleichzeitig über 
das bistabile Relais zum Slow- oder FastCharge.
Ist das Handy zu 80% geladen schaltet es die Alexa-Platine auf OFF, der 
uC registriert das, schaltet alles aus und geht wieder schlafen.
Ziehe ich das Ladekabel dann vom Handy ab und docke es wieder am Gehäuse 
an, wacht der uC zwar wieder auf, erkennt aber LOW am Eingang und geht 
sofort wieder schlafen.

von Norbert (der_norbert)


Lesenswert?

Falk B. schrieb:
> Ja, vor allem daß du auf dem Holzweg bist. Ob exteren Pull-Ups 1k oder
> 1M haben ist egal, denn die "Last" ist einen extrem hochohmiger
> CMOS-Eingang mit Leckströmen im sub uA Bereich.

Matthias G. schrieb:
> Da standardmässig die beiden Eingänge an GND geschlossen sind

Bei angenommenen 3.3V wären das dann schon einmal 6.6µA.

(Da muss man schon aktiv kühlen)

von Matthias G. (kloeppi)


Lesenswert?

Falk B. schrieb:
> ... Entweder die internen aktivieren, dann muss das IO-Pin offen
> bleiben ...
oder das IO Pina uf Ausgang schalten...

Die internen PullUps sind aktiviert, die IO-Pins sind INPUT_PULLUP und 
es liegt jeweils Masse an, also der Kontakt zu Masse ist geschlossen.
Nur so kann ich erkennen, wenn ein Ladekabel abgezogen wird.
Wenn beide Ladekabel abgezogen - also der Kontakt offen ist - sinkt der 
Verbrauch auf 0.1 uA

: Bearbeitet durch User
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.