Forum: Mikrocontroller und Digitale Elektronik ATmega32u4 zieht zuviel im PowerDown


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 Horst M. (horst)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Jungs,

hab ich einfach Pech oder ist doch noch was zu machen?
Bin gerade dabei, einem ATmega32u4 (auf einem Pro Micro Breakout, 
3,3V-Version, 
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Boards/Pro_Micro_v13.pdf) 
das Stromschlucken auszutreiben.
Im PowerDown geht's runter auf ca. 15 uA, das ist zwar nicht schlecht, 
aber immer noch locker eine Größenordnung über dem typischen Verbrauch 
laut Datenblatt.
Ich habe alle LEDs runtergenommen, der Spannungsregler ist auch 
rausgeschnitten.
Alle Portpins sind unbeschaltet, es wird nur die Versorgungsspannung 
angelegt.
1
  .include "m32u4def.inc"
2
3
  .org 0
4
5
  ldi r16,0      ;alle Ports auf Input
6
  out DDRB,r16   ;könnte man sich nach Reset natürlich sparen...
7
  out DDRC,r16
8
  out DDRD,r16
9
  out DDRE,r16
10
  out DDRF,r16
11
12
  ldi r16,-1     ;PullUp an allen Ports aktivieren
13
  out PORTB,r16
14
  out PORTC,r16
15
  out PORTD,r16
16
  out PORTE,r16
17
  out PORTF,r16
18
  cbi PORTE,2    ;/HWB, liegt auf Masse
19
20
;alle Funktionseinheiten abschalten
21
  ldi r16,1<<PRTWI|1<<PRTIM0|1<<PRTIM1|1<<PRSPI|1<<PRADC
22
  sts (PRR0),r16
23
  ldi r16,1<<PRUSB|1<<PRTIM3|1<<PRUSART1
24
  sts (PRR1),r16
25
26
  ldi r16,1<<SM1|1<<SE  ;PowerDown-Modus
27
  out SMCR,r16
28
29
stop:
30
  sleep          ;ruhe sanft...
31
  rjmp stop

Das Ding wird über ISP programmiert (Programmer beim Strommessen 
abgezogen...), Taktquelle ist 8 MHz-Quarz, alle Fuses außer SPIEN sind 
nicht gesetzt.

Hab ich noch irgendwas auszuschalten vergessen?

PS: Wenn ich den Watchdog aktiviere, steigt der Stromfluß auf ca. 20 uA, 
die 4...5 uA mehr sind nach Datenblatt ziemlich plausibel.

von S. Landolt (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Vermutlich läuft die interne Referenz, zum Abschalten ACSR.ACD setzen.

von Horst M. (horst)


Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Vermutlich läuft die interne Referenz, zum Abschalten ACSR.ACD setzen.

Jawohl, das war's.
Kaum macht man's richtig, klappt's plötzlich.
0.2 uA im PowerDown (naja, was mein Schätzeisen so anzeigt...) - damit 
läßt sich was anfangen.

Herzlichen Dank!

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.