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.