Hy, ich programmiere zwar nicht zum ersten mal AVR´s aber ich mache
gerade mein erstes ernsthaftes Projekt mit einem AtTiny48 und habe das
erste mal Sleep benutzt. Das funktioniert ja alles recht gut, auch mit
schlafenlegen und Stromsparen.
Doch: Ich komme einfach nicht unter 17uA Stromverbrauch.
Bin seit einer Woche am lesen, Googln und ausprobieren doch er geht
nicht runter. Heute hab ich einen 2ten, gebrauchten, Tiny in Dip-Gehäuse
mit dem selben Programm ausprobiert um auf nummer sicher zu gehen, und
siehe da, 450 uA Stromverbrauch. Es ist zum Mäuse melken.
Habe meines Wissens alles abgeschaltet ausser die PCINT Eingänge zum
aufwachen. Da sind die Pullups an und die Eingänge hängen in der Luft
bis jemand den Taster drückt(gegen Masse). Habs auch schon andersrum
ausprobiert (gegen VCC), ohne Erfolg.
Kann es sein das ich mit Dip-Gehäuse nicht auf die >0,1uA bei 1,8V komme
wie es im DatenBlatt steht? Müsste nach meinen Überlegungen egal sein
welches Gehäuse. Mich irritiert auch die enorme Schwankung zwischen 2
Tinys die aus der gleichen Verpackung und vom gleichen Shop kommen.
Häng mal ein Bisschen Code an damit man sich ein Bild machen kann.
Vielen Dank erstmals fürs lesen und eventuell Helfen!
Interessant wäre eventuell auch wie dein Schaltplan aussieht. Du kannst
durchaus allein schon durch Pull-Ups an nem FET oder ähnlichem einen
gewissen Strom "verbrauchen".
@ friedrich werdnik (friz)
> Sleepmode.PNG> Sleepmode1.PNG> 20 KB, 15 Downloads
Schon mal was von Netiquette gehört? Und Bildformaten? Warum
posten andere Leute einfach den Quelltext als Textdatei im Anhang?
>Doch: Ich komme einfach nicht unter 17uA Stromverbrauch.
In welchem Modus?
>siehe da, 450 uA Stromverbrauch. Es ist zum Mäuse melken.
Wenn deine DIPs eingeschaltet sind und damit die Pins auf GND ziehen,
fließt über den internen Pull-Up eine Strom, ist ja logisch.
Lösung. An den Pins, die LOW sind, die Pull Ups abschalten.
PORTD &= PIND;
Die Pull-Ups ganz auszuschalten ist schlecht, denn dann floaten deine
Eingänge!
>Kann es sein das ich mit Dip-Gehäuse nicht auf die >0,1uA bei 1,8V komme>wie es im DatenBlatt steht?
Nein, daran liegt es nicht.
>Müsste nach meinen Überlegungen egal sein>welches Gehäuse.
Ist es auch.
>Häng mal ein Bisschen Code an damit man sich ein Bild machen kann.
Ein BILD ist hier aber nicht das Mittel der Wahl.
Sorry, ich bekomm die Fotos nicht raus.
Falls die jemand löschen kann, dann bitte ich darum.
Ich wollte die FuseBits gleich mitPosten. War nicht bös gemeint.
Bei den DIL_Schaltern sind die Pullups aus, nur an den Tasten sind sie
an um aufwachen zu können.
Falk Brunner schrieb:> PORTD &= PIND;
??
Hallo
ich habe ein ähnliches Problem gehabt. Der Stromverbrauch war im
Spleepmode wesentlich höher als angegeben.
Das Problem war der Brownout Detector. Brownout in den Fuses abschalten
und der Stromverbrauch sollte unter die Messgrenze fallen, außer man hat
Highend Messgeräte.
Manfred H. schrieb:> ich habe ein ähnliches Problem gehabt. Der Stromverbrauch war im> Spleepmode wesentlich höher als angegeben.> Das Problem war der Brownout Detector. Brownout in den Fuses abschalten
Der Brownout-Detektor hat tatsächlich einen signifikanten
Energieverbrauch. Trotzdem ist es nicht unbedingt das Klügste, ihn
einfach über die Fuses abzuschalten. Die Leute, die das tun, sind dann
auch die, die sich darüber aufregen, daß plötzlich "unerkärlicherweise"
Teile des EEPROM oder Flash mit Müll gefüllt sind.
Nunja, bei Mega48 gibt's keine andere Möglichkeit, aber es gibt ja auch
einen Haufen modernere Megas. Und die bieten die Möglichkeit, den
Detektor nur im Sleepmodus lahmzulegen. Das ist sehr viel besser, denn
bei laufendem Takt bleibt dessen Schutzfunktion erhalten und bei
stehendem Takt (wenn der Detektor sowieso nutzlos ist) spart man eben
Strom.
@ friedrich werdnik (friz)
>Bei den DIL_Schaltern sind die Pullups aus,
Was falsch ist.
>> PORTD &= PIND;>??
Damit schaltet man nur die Pull-Ups aus, die vom DIP-Schalter auf LOW
gezogen werden! Die restlichen Pins, die NICHT auf LOW gezogen werden
müssen aktive Pull-Ups behalten!
Für Assemblerleute
in r16, pind
in r17, portd
or r17, r16
out portd, r17
Dank erstmal für die Anregungen.
BrownOut ist deaktiviert über FUSE´s und habe ich schon mit Software
deaktiviet was aber keinen unterschied brachte. Ich hab das auch über
die Simulation im AtmelStudio kontrolliert, ob er auch deaktiviert war.
ADC und AC habe ich deaktiviert (sofern ich das richtig gemacht habe):
friedrich werdnik schrieb:> ldi r16, (0<<aden)> sts adcsra, r16 //ADC ausschaltenfriedrich werdnik schrieb:> ldi r16, (1<<acd)> out acsr, r16 //Analog Comperator ausschalten
@Falk:
Den Ansatz werde ich mal probiern sobald die neuen Tiny´s da sind.
Die neuen werde ich mit Handschuhen und isolierter Pinzette einsetzen um
auf nummer sicher zu gehen. Die schwankungen zwischen den Beiden Tiny´s
(450uA vs.17uA bei gleichen Fuse und Programm) kommen mir komisch vor .
Hab da anscheinend irgendwas kaputt gemacht.
@ friedrich werdnik (friz)
>Die neuen werde ich mit Handschuhen und isolierter Pinzette einsetzen um>auf nummer sicher zu gehen.
Nicht nötig. Vermeide aber ESD-Quellen wie Acrylpullover etc.
>Die schwankungen zwischen den Beiden Tiny´s>(450uA vs.17uA bei gleichen Fuse und Programm) kommen mir komisch vor .>Hab da anscheinend irgendwas kaputt gemacht.
Nein, das kann auch einfach ein offener IO-Pin sein, der einmal zufällig
nahe 0V oder VCC "schwebt" oder auch nahe VCC/2 und damit ordentlich
Querstrom im AVR erzeugt.
Es ist vollbracht!
Heute habe ich 2 neue Tiny´s bekommen.
Diese brauchen jetzt auch weniger als 1uA.
Die beiden Alten brauchen mit dem gleichen Programm noch immer 17 bzw.
380uA. Dürfte bei denen echt was kaputt gemacht haben.
Alle Pins sind jetzt Ausgänge auf Masse, ausser den Tasten, diese haben
Pullups .
Vielen Dank nochmal an alle die sich mit meinem Problem beschäftigt
haben.
Ps.: Hat ein wenig länger gedauert bis es geklappt hat. Musste im
Atmelstudio 6.0 ein neues Projekt mit neuem Namen anlegen und den
Quelltext hineinkopieren, erst dann hat es die Änderungen übernommen.
Komisch, is aber so. Das musste ich schon öfter machen. Weiss vieleicht
jemand woran das liegen könnte?
Hab eine Verknüpfung mit dem Ordner wo die Projekte angelegt werden am
Desktop liegen, denke aber nicht das stören sollte.