Stromverbrauch Attiny85

OP #4828946
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin gerade etwas verwirrt und hoffe, dass Ihr für Aufklärung sorgen 
könnt.

Bevor ich jetzt ins Detail gehe; vielleicht könnt Ihr sofort sagen "Ja, 
das ist möglich", oder "Nein, das ist unmöglich".

Kann ein Attiny85 in einer Grundschaltung, in der er nur per ISP mit 
einem Programmierboard (5V) verbunden ist, und einem Programm, welches 
nichts macht (

int main(void)
{
    /* Replace with your application code */
    while (1)
    {
    }
}

)

einen Stromverbrauch von ~3mA haben?

Achso, was ich noch erwähnen sollte: der µC läuft mit internem 
Oszillator auf 1MHz.

Das posten eines Schaltplans spare ich mir jetzt erstmal, wenn Ihr den 
aber benötigt, bekommt Ihr ihn natürlich.
OP #4828966
Lesenswert?
• ▲
▼
Thordy schrieb:
> 
http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
>
> PDF Seite 162

Okay, wenn ich das richtig verstehe, dürfte er nicht soviel verbrauchen.
Hast Du eine Idee, warum das so sein könnte?

holger schrieb:
>>und einem Programm, welches nichts macht
>
> Das Programm macht aber was. Eine leere while(1) Schleife
> bedeutet nicht das der Prozessor nichts tut. Er führt die
> Schleife aus.

Okay, stimmt. Aber rechtfertigt das den hohen Stromverbrauch?
#4828976
Lesenswert?
• ▲
▼
Sascha M. schrieb:
> einen Stromverbrauch von ~3mA haben?

Da mußt du schon etwas konkreter werden. Mit einem Programm, was nichts 
macht, kannst du den Controller in den Powerdown Mode legen und dein 
Stromverbrauch geht nochmals um mind. Faktor 1000 zurück.

Da ein Controller den Hauptteil seines Controllerlebens meistens damit 
fristet, auf irgendwas zu warten, kann man ihn während dieser 
Wartezeiten in den Sleep versetzen. Damit kommt es nicht darauf an, 
wieviel Strom er im Maximum verbraucht, sondern wie oft und wie lange. 
Der sich daraus ergebende Durchschnittsverbrauch liegt häufig deutlich 
unter den von dir angesetzten 3mA.
OP #4828989
Lesenswert?
• ▲
▼
Also, selbst im IDLE-Mode sind es noch immer 2,5 mA.

Peripherie habe ich, soweit ich das verstanden habe jetzt mal 
abgeschaltet.
Mein Code sieht jetzt folgendermaßen aus:

int main(void)
{

  ADCSRA &= ~(1 << ADEN);

  PRR |= (1 << PRADC) | (1 << PRUSI);

  ACSR |= (1 << ACD);

  set_sleep_mode(SLEEP_MODE_IDLE);
  sleep_mode();

  /* Replace with your application code */
  while (1)
  {

  }
}

und es schwankt immer noch um 2,5 mA.

Setze ich ihn in Power-Down, sind es 0 mA, was sicherlich richtig ist.
OP #4828995
Lesenswert?
• ▲
▼
Also es geht mir jetzt hier nicht darum, eine stromsparende Anwendung zu 
schreiben. Ich wollte sehen, wieviel der AVR bei meinem Programm so 
frisst und wollte dazu einen Test machen, was er verbraucht, wenn er bis 
auf die leere Schleife gar nichts macht.
Daher bin ich jetzt erwas überrascht, dass es so viel ist.
OP #4829026
Lesenswert?
• ▲
▼
Peter D. schrieb:
> Mal die Pullups einschalten, damit die Eingänge nicht floaten.

Ei guck an. Habe den Code erweitert um

  PORTB |= (1 << PORTB0);
  PORTB |= (1 << PORTB1);
  PORTB |= (1 << PORTB2);
  PORTB |= (1 << PORTB3);
  PORTB |= (1 << PORTB4);
  PORTB |= (1 << PORTB5);

und schon sind es nur noch 542 uA :)

Vielen Dank Peter!
Und natürlich auch an die anderen für Eure Denkanstösse :)
OP #4829036
Lesenswert?
• ▲
▼
Das war übrigens dann auch der Grund, warum der Stromverbrauch nicht 
stabil war sondern immer gesprungen ist.

Jetzt pendelt der sich super ein :)

Peripherie aus und Idle: 542 µA
Peripherie aus und Active: 1,19 mA
Peripherie ein und Idle: 630 µA
Peripherie ein und Active: 1,27 mA

Alles bei 1 MHz int. Oszi. und 5V Spannung.

Das ist das, was ich mir so vorgestellt habe :)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.