sleep modus - zu hoher Strom

OP #2902937
Lesenswert?

Hallo Männers und Frauen,

ich hab meinem Funkboard das "Sleepen" beigebracht.
Die Stromaufnahme ist aber zu hoch!

Habe alle für mich erkennbaren Einstellungen getätigt, welche den
Sleepstrom beeinflussen.
Trotzdem ist der Strom im Powerdown-Mode 2mA hoch.

Das C-Programm hab ich angehängt. Sieht hier jemand vllt etwas was
fehlt, bzw fehlerhaft ist????
Ich habe im Moment keine Idee mehr!
für andere Controller wird empfohlen den Debugwire zu deaktivieren.
Diese Option finde ich aber nicht für den Atmega8

Mein Board ist beschränkt auf das wesentlichste:
Atmega8, RFM12, Taster an INT1, 10k an !RESET und Tasterentprellung mit
100k und 100nF gegen GND.
Die einzigen beiden Wiederstände haben dann eine Stromaufnahmen von
(3V/10000 Ohm) + (3V/100000 Ohm) = 0,00033 A

Aufgeweckt wird der Atmega mittels Taster an INT1

KEIN Quartz, keine LED

Stromversorgung erfolgt mittels 2 AAA Batterien, also 3 Volt bzw zum
Strommessen aus dem Labornetzteil.

Danke
mfg
Angehängte Dateien:
OP #2902971
Lesenswert?

katastrophenheinz schrieb:
> Hi
> Schon mal nachgemessen, wer ist der Stromfresser ist? RFM12 oder uC ?

Ah super einwand!! ne hab ich noch nicht...  bin davon ausgegangen, das 
mein
rfm_of() das dingen complettt auschaltet, aber die 2 mA laß ioch auch 
schon im RFM datenblatt. Das gilt zu überprüfen.

Uwe schrieb:
> Alle Pullups enablen oder Alle nichbenutzten Eingänge auf Ausgang
> setzen.

Dann sind ja alle Ausgänge auch auf HIGH... irgendwie paradox, dass das 
hilft strom zu sparen^^
Gast #2902982
Lesenswert?

Christian Peskov schrieb:
>> Alle Pullups enablen oder Alle nichbenutzten Eingänge auf Ausgang
>> setzen.
>
> Dann sind ja alle Ausgänge auch auf HIGH... irgendwie paradox, dass das
> hilft strom zu sparen^^

Nein, weil die Ausgänge frei liegen. Wo soll der Strom den hin fließen?
Anders ist es, wenn ein Eingang frei liegt, dann ist da eine 
Eingangsstufe, deren Halbbrücke aus MOSFETS nicht "weiß", was anliegt, 
so dass beide Transistoren ein wenig leiten, was irre Strom frisst.
Wenn da ein Pullup ist, liegt ein klares Potential vor und die 
Transistoren sind sich einig: Einer leitet, einer sperrt. -> Es fließt 
kein Strom.
#2903027
Lesenswert?

Moin,
habe mehr oder weniger die gleiche Anordnung. ATTiny84, RFM12.
Wie programmierst du ? Ich programmiere mit dem Dragon. Das bedeutet 
auch, dass er vor dem flashen DebugWire einschaltet.
Und das führt auch zu erhöhtem Stromverbrauch. Wenn man also fertig ist 
mit debuggen usw., mit AVR-Studio DebugWire wieder abschalten.
(Meine Schaltung verbraucht dann wenige Mikro-Amp.)

siehe hier:
Beitrag "Zu hoher Stromverbrauch im Sleep-Mode (Gefunden)"

Gruß
Andree
OP #2903028
Lesenswert?

Philipp K. schrieb:
> Nein, weil die Ausgänge frei liegen. Wo soll der Strom den hin fließen?

Ich hatte mir vorstellen können, dass intern auch für den Augang 
irgendwelche "stufen" sind, welche dann intern einen stromfluss 
verursachen aber ok. Jetzt weiß ich wie es sich gehört.

habe gerade mal den Tip mit den Ports versucht umzusetzten und 
anschließend, hatte ich eine vielfach größeren Strom als zuvor fast 40 
mA. und das programm scheint aquch nciht mehr korrekt zu laufen...
Da muss ich doch was falsch gemacht haben!
habe in die main einfach folgendes hinzugefügt:

int main(int args, char * argv[] )
{

  //alle Pins Pullup high und als ausgang
  PORTB = 0xff;
  PORTC = 0xff;
  PORTD = 0xff;

  DDRB = 0xff;
  DDRC = 0xff;
  DDRD = 0xff;

//dann wie gehabt:

  init_usart();
  init_spi();
  init_port();
  init_rfm();

  client_statup();
....
...
OP #2903046
Lesenswert?

Andree S, schrieb:
> Moin,
> habe mehr oder weniger die gleiche Anordnung. ATTiny84, RFM12.
> Wie programmierst du ? Ich programmiere mit dem Dragon. Das bedeutet
> auch, dass er vor dem flashen DebugWire einschaltet.
> Und das führt auch zu erhöhtem Stromverbrauch. Wenn man also fertig ist
> mit debuggen usw., mit AVR-Studio DebugWire wieder abschalten.
> (Meine Schaltung verbraucht dann wenige Mikro-Amp.)
>
> siehe hier:
> Beitrag "Zu hoher Stromverbrauch im Sleep-Mode (Gefunden)"
>
> Gruß
> Andree

hi danke... also das mit dem Debugwire ausschaltenhab ich auch gefunden, 
aber im Studio ist der Menueintrag grau/nicht anwählbar :-/

wie bekommt ich das deaktiviert?
#2903146
Lesenswert?

Der AVRISP mkII ist, soweit ich weiß, ein reiner Programmer. Dann hast 
du DebugWire auch garnicht eingeschaltet .... ?
Muss da aber jetzt passen.
Mein Hinweis galt für den Einsatz des AVR Dragon und der Nutzung von 
DebugWire (d.h. der "Verbiegung" des Reset-Pins für das DW-Protokoll).
A.
Gast #2903403
Lesenswert?

Christian Peskov schrieb:
> habe gerade mal den Tip mit den Ports versucht umzusetzten und
> anschließend, hatte ich eine vielfach größeren Strom als zuvor fast 40
> mA.
Das ist zu viel. Miss mal alle Pins aus Kurzschluss gegen GND.
Vielleicht machst Du auch ein Bild von Deinem Aufbau, damit man die 
Kurzschluss-Wahrscheinlichkeit abschätzen kann? ;-)

Thomas Eckmann hat Recht, dass unbenutzte Pins Eingänge bleiben können, 
wenn man den Pullup aktiviert, aber letztlich sollten sie als Ausgänge 
auch keinen Strom ziehen. Nur führt die Aussage "In den Sleepmodes 
POWER_DOWN und POWER_SAVE werden die meisten Ports sowieso abgeschaltet" 
ohne die Einschränkung "als Eingang" möglicherweise zu Verwirrung. Die 
Funktion als Ausgang bleibt erhalten.

> und das programm scheint aquch nciht mehr korrekt zu laufen...
> Da muss ich doch was falsch gemacht haben!
Könnte vielleicht auch an kurzgeschlossenen Pins liegen, s.o.

> habe in die main einfach folgendes hinzugefügt:
>
> int main(int args, char * argv[] )
> {
>
>   //alle Pins Pullup high und als ausgang
>   PORTB = 0xff;
>   PORTC = 0xff;
>   PORTD = 0xff;
>
>   DDRB = 0xff;
>   DDRC = 0xff;
>   DDRD = 0xff;
>

Ich würde schon selektiv nur die Pins entsprechend behandeln, die auch 
frei sind. PC7, PB6 und PB7 existieren z.B. gar nicht und PC6 würde ich 
in Ruhe lassen.
Und wie erwähnt, DDRX = .. kannst Du weglassen.
OP #2903475
Lesenswert?

danke allen.

danke philipp! hatte mir manches von deinem TEILWEISE gedacht.
aber du hast es sehr veständlich und überschaubar beschrieben! *thumbs 
up*

also das rfm dingen will ich da wirklich nciht ablöten, da warte ich 
vllt noch auf die nun bestellten platinen.
Die Kurzschlussmessung also den Widerstand zwischen den Leiterbahnen, 
werde ich aber vllt heute noch versuchen.

danke noch mal.. wenn ich infos habe, werde ich berichten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren