Hi,
ich versuche gerade, auf einer Platine die schlimmsten Stromverbraucher
zu lokalisieren, da letztlich alles von einer LiIon-Zelle laufen soll.
Der ATMega32U4 @3.3V soll letztlich in power down versetzt werden und
~1µA ziehen.
Es befanden sich eine 3.6V Zenerdiode und ein LM3940 LDO zusammen mit
einer Baugruppe, welche über einen FET abgeschaltet werden kann, auf der
Platine. Diese sind nun herausgelötet bzw. deaktiviert, dennoch fließen
über 4mA. Bevor ich weiter Leiterbahnen auftrenne, dachte ich, ich frag
mal:
1 | int main (void)
|
2 | {
|
3 | cli();
|
4 | wdt_disable();
|
5 |
|
6 | power_adc_disable();
|
7 | power_usart0_disable();
|
8 | power_spi_disable();
|
9 | power_twi_disable();
|
10 | power_timer0_disable();
|
11 | power_timer1_disable();
|
12 | power_timer2_disable();
|
13 | power_timer3_disable();
|
14 | power_usart0_disable();
|
15 | power_usart1_disable();
|
16 | power_usb_disable(); // turn off USB transceiver
|
17 | USBCON |= (1 << FRZCLK); // Freeze the USB Clock
|
18 | PLLCSR &= ~(1 << PLLE); // Disable the USB Clock (PPL)
|
19 | USBCON &= ~(1 << USBE); // Disable the USB
|
20 |
|
21 |
|
22 | /*Der AVR-GCC enthält leider das Macro sleep_mode(), welches sehr
|
23 | gefährlich ist, da es in den meisten Fällen unerwünschte Nebeneffekte
|
24 | hat.
|
25 | Diese Macro greift nämlich nicht atomar auf das MCUCR zu, was in
|
26 | größeren Programmen Probleme geben kann und wird.
|
27 | Außerdem folgt das SLEEP nicht direkt auf das SEI einer vorhergehenden
|
28 | atomaren Operation zum Aktivieren des Aufwachinterrupts.
|
29 | Deshalb sollte man auf dieses Macro unbedingt verzichten!*/
|
30 |
|
31 |
|
32 | set_sleep_profile(SLEEP_MODE_PWR_DOWN);
|
33 |
|
34 | sleep_enable();
|
35 | sei();
|
36 | sleep_cpu();
|
37 |
|
38 | return 0;
|
39 | }
|
fuses (siehe http://www.engbedded.com/fusecalc/):
avrdude.exe -c usbtiny -p m32u4 -U lfuse:w:0xed:m -U hfuse:w:0xd9:m -U
efuse:w:0xff:m
(BOD deaktiviert)
Habe ich etwas übersehen, gibt es einen bug in den Bibliotheken ?
Ich nutze Atmel Studio 6 mit:
Installed Packages: AVRGCC - 3.4.1.95
AVR Toolchain 8 Bit
Version: 3.4.1.830 - GCC 4.6.2
Ich hoff ihr könnt mir da weiterhelfen. Der Systemtakt ist jedenfalls
aus, das habe ich als erstes auf dem Oszi angeschaut.