Forum: Mikrocontroller und Digitale Elektronik Arduino-IDE: Tiny84 schlafen legen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von svensson (Gast)


Lesenswert?

Moin,

ich versuche einen Tiny84 möglichst tief schlafen zu legen, irreversibel 
bis zum nächsten Start (das ist so gewollt).
1
#include <avr/sleep.h>
2
...
3
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
4
  sleep_enable();
5
  sleep_bod_disable();
6
  while(1) sleep_cpu();

Wenn ich das so mache, dann verbraucht der MC immer noch knapp 5mA, was 
viel zu viel sein dürfte.

Irgendwie schein da etwas nicht richtig zu funktionieren? Was mache ich 
falsch?

von Timmo H. (masterfx)


Lesenswert?

svensson schrieb:
> Wenn ich das so mache, dann verbraucht der MC immer noch knapp 5mA, was
> viel zu viel sein dürfte.
Was für einen Spannungsregler verwendest du? Ein Spannungsregler hat 
nämlich auch einen minimalen Ruhestrom (Quiescent current). Wenn man 
sich den MCP1703 anguckt hat der nur 2 µA während ein LM1117 z.B. 5mA 
hat.

von Einer K. (Gast)


Lesenswert?

svensson schrieb:
> dann verbraucht der MC immer noch knapp 5mA, was
> viel zu viel sein dürfte.
Ja!
Sehe ich auch so.

svensson schrieb:
> Was mache ich falsch?

Da sind noch irgendwelche Interrupts aktiv und feuern dauernd.
?!?

von svensson (Gast)


Lesenswert?

einen L7805.

Okay, das war es wohl. Wenn ich jedoch den MC aus der Fassung nehme, 
dann hat der Rest der Schaltung einen Verbrauch von 4,63mA. Die 370µA 
entfallen dann wohl auf den Tiny.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

svensson schrieb:
> einen L7805.
>
> Okay, das war es wohl. Wenn ich jedoch den MC aus der Fassung nehme,
> dann hat der Rest der Schaltung einen Verbrauch von 4,63mA. Die 370µA
> entfallen dann wohl auf den Tiny.

Dann schläft der aber nicht, das braucht der wenn er aktiv ist.

von svensson (Gast)


Lesenswert?

Evtl. geht da auch etwas durch den 10k Pullup von Reset auf +5V ?

von Timmo H. (masterfx)


Lesenswert?

svensson schrieb:
> Evtl. geht da auch etwas durch den 10k Pullup von Reset auf +5V ?
Nein, da fließt außer einem minimalen Leckstrom nichts. Reset ist ja ein 
Input. Da fließt nur Strom wenn du den Reset auf GND ziehst

: Bearbeitet durch User
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

svensson schrieb:
> Evtl. geht da auch etwas durch den 10k Pullup von Reset auf +5V ?

Nein, nicht annähernd in der Größenordnung.

von svensson (Gast)


Angehängte Dateien:

Lesenswert?

Das ist die gleiche Schaltung, in der es mir den Tantalelko zerrissen 
hat.

Habe noch einmal gemessen:
MC aktiv ca. 11mA (LED an).
MC im sleep_mode 4,998mA.
MC entfernt 4,634mA.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Dann schläft er aber nicht richtig!

Was braucht er denn in Aktiv wenn du die LED mal rausnimmst?

Wobei ich jetzt mal nicht Fragen wie welches Level haben die nicht 
verbunden Pins, warum kein Tiny 13/25/45/85, warum trotz Linearregler 
versuchen mit der Software Energie zu sparen, etc. stelle.

: Bearbeitet durch User
von Timmo H. (masterfx)


Lesenswert?

Wenn du wirklich Strom sparen willst solltest du bei allen nicht 
beschalteten pins den pullup aktivieren (nicht floaten lassen). Den adc 
auch deaktivieren wenn nicht schon getan. Und natürlich einen anderen 
Spannungsregler verwenden

: Bearbeitet durch User
von svensson (Gast)


Lesenswert?

> Was braucht er denn in Aktiv wenn du die LED mal rausnimmst?

8,2mA.

> welches Level haben die nicht verbunden Pins

frei in der Luft schwebend...

> warum kein Tiny 13/25/45/85

Dafür gibt es in der Tat keinen wirklichen Grund, außer daß ich den 
Tiny84 einmal ausprobieren wollte.

> warum trotz Linearregler versuchen mit der Software Energie zu sparen

Weil ich nicht vom Fach bin und diesen Typ halt kannte, der sich mit dem 
TO-220 Gehäuse auch noch gut verlöten läßt.
Die Idee mit dem Sleepmodus kam mir erst später. In der Tat ist es für 
diese Anwendung völlig egal, ob der noch 5mA verbraucht oder nicht. Ich 
dachte jedoch, ich probiere es einmal mit dem power_down.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Ok, setz mal bei allen ungenutzten Pins die Pullups und mess dann 
nochmal. Irgendwelche Pinchange/Int0 Interrupts hast du nicht aktiviert, 
oder den Watchdog?

von Gerhard O. (gerhard_)


Lesenswert?

Falls es hilft: Vor ein paar Jahren experimentierte ich mit dem 
Schlafbetrieb mit einem modifizierten nackten Pro-Mini ohne 
Spannungsregler und Power-LED und einer eigenen Bord mit dem 1284P. Im 
Schlafbetrieb bei 3.3V verbrauchten beide uC rund 300nA. Programmiert 
war alles mit dem Arduino IDE.

von svensson (Gast)


Lesenswert?

> adc
Ist abgeschaltet.

> Irgendwelche Pinchange/Int0 Interrupts hast du nicht aktiviert, oder den 
Watchdog?

Ich habe nichts aktiviert, aber vielleicht die IDE?

Alle PINs sind jetzt auf Input mit Pullup.

Ergebnis: 4,992mA

Also, gleiches Resultat wie vorher im Rahmen der Meßungenauigkeit.

von Manfred (Gast)


Lesenswert?

Gerhard O. schrieb:
> Vor ein paar Jahren experimentierte ich mit dem
> Schlafbetrieb mit einem modifizierten nackten Pro-Mini ohne
> Spannungsregler und Power-LED und einer eigenen Bord mit dem 1284P. Im
> Schlafbetrieb bei 3.3V verbrauchten beide uC rund 300nA. Programmiert
> war alles mit dem Arduino IDE.

Hast Du die 'Schlafroutine' für Arduino noch greifbar?

Ich bekomme beim ProMini 328@16MHz um 5µA bei laufendem Watchdog. Das 
reicht mir locker hin, liegt unter der Selbstentaldung der speisenden 
Akkus - dennoch würde mich interessieren, wie Du den Faktor 10 niedriger 
hin bekommst.

von Gerhard O. (gerhard_)


Lesenswert?

Manfred schrieb:
> Gerhard O. schrieb:
>> Vor ein paar Jahren experimentierte ich mit dem
>> Schlafbetrieb mit einem modifizierten nackten Pro-Mini ohne
>> Spannungsregler und Power-LED und einer eigenen Bord mit dem 1284P. Im
>> Schlafbetrieb bei 3.3V verbrauchten beide uC rund 300nA. Programmiert
>> war alles mit dem Arduino IDE.
>
> Hast Du die 'Schlafroutine' für Arduino noch greifbar?
>
> Ich bekomme beim ProMini 328@16MHz um 5µA bei laufendem Watchdog. Das
> reicht mir locker hin, liegt unter der Selbstentaldung der speisenden
> Akkus - dennoch würde mich interessieren, wie Du den Faktor 10 niedriger
> hin bekommst.

Werde mal nachschauen wenn ich den PC anhabe. Wenn der WD aktiviert ist, 
dann brauchte der auch ein paar uA. Bei mir war der WD allerdings 
abgeschaltet. Das macht natürlich den Unterschied aus.

von svensson (Gast)


Lesenswert?

Interessanterweise ist das auch noch von der Versorgungsspannung 
abhängig.

Ab ca. 8V aufwärts pendelt sich der Verbrauch bei den 4,99mA ein.

Bei 5V liegt er nur noch bei 2,66mA.

von Manfred (Gast)


Lesenswert?

svensson schrieb:
> Ab ca. 8V aufwärts pendelt sich der Verbrauch bei den 4,99mA ein.
> Bei 5V liegt er nur noch bei 2,66mA.

Elektronik erfordert, dass man logisch strukturiert an die Technik 
herangeht.

Wenn ich den Strom eines µC wissen will, messe ich in dessen 
Versorgungsleitung und nicht irgendwo in der Schaltung.

Gröber formuliert: Deine Beschreibungen sind unsinnig.

von S. Landolt (Gast)


Lesenswert?

Das Datenblatt des ATtiny84 ist doch eindeutig:
"Power-Down Mode: 0.1 μA @ 1.8V".
Und das Diagramm unter 'Power-down Supply Current vs. VCC (Watchdog 
Timer Disabled)' zeigt eine ziemlich flache Kurve bezüglich Vcc, bleibt 
unter 0.15 uA bei Zimmertemperatur.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Manfred schrieb:
>> Ich bekomme beim ProMini 328@16MHz um 5µA bei laufendem Watchdog. Das
>> reicht mir locker hin, liegt unter der Selbstentaldung der speisenden
>> Akkus - dennoch würde mich interessieren, wie Du den Faktor 10 niedriger
>> hin bekommst.
>
> Werde mal nachschauen wenn ich den PC anhabe. Wenn der WD aktiviert ist,
> dann brauchte der auch ein paar uA. Bei mir war der WD allerdings
> abgeschaltet. Das macht natürlich den Unterschied aus.

Der WD braucht irgendwo um die 5uA (3-7uA abhängig von Vcc), kommt also 
sehr gut mit dem gemessen Wert hin.

von Peter D. (peda)


Lesenswert?

Tim T. schrieb:
> Ok, setz mal bei allen ungenutzten Pins die Pullups und mess dann
> nochmal.

Ist nicht nötig, die Eingangsstufen werden im Powerdown abgeschaltet.
Allerdings ist der Analog-Komparator default aktiv und muß abgeschaltet 
werden.

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

Muster

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Tim T. schrieb:
>> Ok, setz mal bei allen ungenutzten Pins die Pullups und mess dann
>> nochmal.
>
> Ist nicht nötig, die Eingangsstufen werden im Powerdown abgeschaltet.
> Allerdings ist der Analog-Komparator default aktiv und muß abgeschaltet
> werden.

Stimmt, im powerdown sind die Inputbuffer ja für alle Pins aus die nicht 
zum aufwecken genutzt werden, aber sollte der Analog Komparator nicht 
auch im Powerdown automatisch angeschaltet werden? Schon klar wenn man 
ACBG setzt bleibt die Bandgap Ref im PD aktiv, aber das ist ja nicht der 
Normalfall.

von Peter D. (peda)


Lesenswert?

Tim T. schrieb:
> aber sollte der Analog Komparator nicht
> auch im Powerdown automatisch angeschaltet werden?

Stimmt, er wird abgeschaltet.
Nur das ACBG muß manuell abgeschaltet werden, falls benutzt.

von svensson (Gast)


Lesenswert?

Danke für den Code.

Damit sinkt bei mir der Stromverbrauch um 0,2mA auf 4,798mA.

von S. Landolt (Gast)


Lesenswert?

> auf 4,798mA

Dann die Hardware nochmals genauer ins Auge fassen, bei meinem 
ATtiny84A-PU (1127) kann ich die Stromaufnahme nicht mehr messen, liegt 
also unter 0.02 uA.

von S. Landolt (Gast)


Lesenswert?

PS:
... bei 5.0 V und 13 °C.

von Timmo H. (masterfx)


Lesenswert?

Wieso versuchst du verbissen ein paar uA zu sparen wenn du immer noch 
den Spannungsregler mit 5mA Eigenbedarf nimmst?
Oder miss zumindest den Strom hinter dem Spannungsregler, alleine schon 
wegen der Messungenauigkeit in dem Bereich

: Bearbeitet durch User
von svensson (Gast)


Lesenswert?

Beim nächsten Exemplar werde ich dann einen anderen Spannungsregler 
verwenden.

von S. Landolt (Gast)


Lesenswert?

Falls bedrahtete Bauteile bevorzugt, so kann man statt des eingangs 
empfohlenen MCP1703 den MCP1702 nehmen (Anschlussreihenfolge beachten!), 
vorausgesetzt, Vin bleibt unter 13 V; beide sind mit 2 uA spezifiziert.

von svensson (Gast)


Lesenswert?

Danke für den Tip.

Normalerweise würde mir der MCP1702 als TO-92 gut gefallen, aber in 
diesem Fall ist Vin 19V.

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]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.