Schönen Abend, mal ne Frage: Mein Mega644 braucht ca 1,3 mA mehr Strom wie er nacht dem Datenblatt eigentlich brauchen soll. Hab nen Quarz mit 3.68Mhz dran und 3.3V Versorgung. Wenn er aktiv ist braucht er etwa 3.2 mA, wenn er idle ist noch 1.6mA. Das ist in beiden Modi grob übern Daumen je 1,2 1,3 mA mehr wie er nach Datenblatt brauchen dürfte (ich schalte noch etwas interne Peripherie ab, UART, Timer zB) Gibts dafür ne Erklärung? Wieviel braucht so ein Quarz denn Strom? Finde in den Datenblättern nichts, also wohl nicht viel Gruß Stefan
>Gibts dafür ne Erklärung?
Dein Spannungsregler zieht den Rest?
holger schrieb: >>Gibts dafür ne Erklärung? > > Dein Spannungsregler zieht den Rest? ne, ich hab direkt den Strom gemessen wo in den Controller fließt Tom schrieb: > Weitere Beschaltung? Was sind schon zwo Milliampere :) Das soll ne Akkuanwendung werden und die 1.2mA verkürzen meine Laufzeit um den Faktor 4-5 :-( es hängt noch ein SerialFlash dran http://www.numonyx.com/Documents/Datasheets/M25P80.pdf aber der wurde 1. nicht angesprochen bei der Messung und würde auch weniger brauchen laut Datenblatt
A. K. schrieb: > Welche Peripherie ist eingeschaltet? Timer0, Timer1, USART0, SPI-Interface sind eingeschaltet USART1, ADC, TWI, TIMER2 sind ausgeschaltet
Stefan schrieb: > A. K. schrieb: >> Welche Peripherie ist eingeschaltet? > > Timer0, Timer1, USART0, SPI-Interface sind eingeschaltet > > USART1, ADC, TWI, TIMER2 sind ausgeschaltet Dann schalte die doch einfach mal alle aus und messe nochmal und nur den Stromverbrauch vom Microcontroller, also das Serial Flash nicht mitmessen, auch wenn es nicht angesprochen wird. Bist du sicher, daß du richtig misst? Manche Messgeräte sind gerade im unteren Bereich ungenau, falls du es in Serie misst. Mal mit einem Widerstand gegenprüfen.
ich schaltet mein Multimeter in Reihe, bin im Messbereich bis 20mA. Es würd noch einen Bereich bis 200µA geben, daher denke ich von der Genauigkeit sollte es schon gehen. OK, mache ich Meine Idee mit dem Quarz war Blödsinn oder? Also der braucht keinen "zusätzlichen" Strom
Stefan schrieb: > Timer0, Timer1, USART0, SPI-Interface sind eingeschaltet Beachte Tabelle 27-1. > USART1, ADC, TWI, TIMER2 sind ausgeschaltet Inaktiv oder per PRR?
A. K. schrieb: > Inaktiv oder per PRR? per PRR A. K. schrieb: > Beachte Tabelle 27-1. hm welche meinst du damit? Datenblatt vom Controller?
A. K. schrieb: > Low power oder full swing mode? öhm, das weis ich nicht. Sieht man das an den Fuses?
Eine Lowpower Batterieanwendung ist eine Entwicklung... man muss jede komponente bis ins Detail anschauen. Jeden spannungsregler, jeden spannungsteiler. Ich rate mal ... LM7805 ? LP2951 ? Ziehen alle viel zuviel.
nö, den hier http://ww1.microchip.com/downloads/en/DeviceDoc/21826b.pdf glaub der ist gut ich hab ja auch den Strom in der Leitung vom Spannungsreglerausgang zum VCC vom Controller gemessen
Stefan schrieb: >> Beachte Tabelle 27-1. > > hm welche meinst du damit? Datenblatt vom Controller? Nö, von deinem Kühlschrank.
Der ist leer.... könntest ja auch den Flash gemeint haben Die Tabelle wo du meinst finde ich nicht in meinem Datenblatt sag mal bitte die Seite
PS: Der interne Oszillator mit externem Quarz verbraucht sicherlich mehr Strom als ein extern zugeführter Takt, bei dem Atmel den Strom des externen Oszillators nicht mitrechnet. Wieviel das ausmacht weiss ich aber auch nicht.
> Die Tabelle wo du meinst finde ich nicht in meinem Datenblatt > sag mal bitte die Seite Wenn's die Table nicht gibt nützt auch die Seite nix. Siehe: 27.3 Supply Current of IO modules
Du schreibst, dass du den 644 verwendest. Das eben gepostete Datasheet ist vom 644P. Also welcher isses nu? Ist nicht ganz unwichtig, weil sich die technisch unterscheiden. PS: Einen 644PA gibts übrigens auch noch. ;-)
Update: also ich hab nun einen brandneuen AtMega644P-20AU verwendet. Ich hab ihn NICHT auf einer Platine, der liegt nur aufm Tisch und habe VCC und GND an ein Netzteil angeschlossen bei 2.7V braucht er 0.72mA bei 3.3V 0.92mA bei 4.0V 2.41mA bei 4.5V 5.37mA bei 5.0V 10.2mA Wie kann es das geben, ist die Prozessorreihe irgendwie in die Hose gegangen oder was könnte das sein?
Offene Pins neigen dazu, eine Spannung im Bereich von Vcc/2 aufzubauen, da kann plötzlich wesentlich mehr Strom fliessen. Du solltest den Prozessor schon in der Zielschaltung mit geladenem Programm vermessen, nur halt ohne die zusätzliche Peripherie. Oder halt alternativ alle Eingänge (entspricht im unprogrammierten Zustand allen Pins) auf Masse oder Vcc legen.
Stefan schrieb: > der liegt nur aufm Tisch und habe > VCC und GND an ein Netzteil angeschlossen Stefan schrieb: > Wie kann es das geben, ist die Prozessorreihe irgendwie in die Hose > gegangen oder was könnte das sein? Floatende I/O-Pins? Gruß Anja
mal nen zwischenwurf.... die avr sind schon net schelcht auch der verbrauch ist recht gut .... aber wenns dir hier um jedes 0,5mA geht da gibts bessere z.b. den msp430 usw. und jetzt noch viel spaß beim messen gruß Sven PS: "Wer misst misst Mist!"
Siehe Sleep Mode und Ultra low power. Schalt deinen AVR in den Power Down Mode, dann findet man die bösen Verbraucher. MFG Falk
danke, der Hinweis mit den floatenden Pins hat gut geholfen ich habe nun so viele Pins wie möglich auf Ground gelegt und es wurde merklich besser im Idle Mode braucht er nun 0.9mA bei 3.6864Mhz 3.3V das ist zwar noch immer ~0.2mA über dem max. laut Datenblatt aber viel besser als 1,8mA früher. Was noch ein Stromfresser war, war ein Elko (1µF) - der hat auch stetig 0.8mA gesaugt, hab das mal als Defekt abgestempelt (oder ist das normal bei Elkos?) Standby und PowerDown funktionieren einwandfrei Gruß
PS: Warum braucht der Controller mehr Strom wenn die PINs floaten?
Für 1 µF solltest du keinen Elko nehmen, bekommst du heute auch für weniger als 1 Cent als normalen Keramikkondensator, mit den entsprechenden Vorteilen gegenüber einem Elko: http://de.farnell.com/multicomp/mcca000530/mlcc-06035v-16v-1uf/dp/1759408 Gibt es mittlerweile sogar noch bis 10 µF relativ preiswert. Du hast aber auch einen 100 nF Keramikkondensator nahe der Versorgungsspannung und Masse direkt am Microcontroller angebracht? So ein sowieso nützlicher Abblockkondensator kann auch nochmal beim Stromverbrauch helfen. Hier gibt es eine Application Note dazu, die auch beschreibt, warum Elkos nicht so gut sind: http://www.intersil.com/data/an/an1325.pdf Und hier gibt es einen guten Artikel zum Thema nicht angeschlossene IO-Pins: http://electronicdesign.com/article/digital/save-power-by-managing-unused-cmos-i-o-pins21773.aspx Wie im Artikel steht: direkt nach Masse legen geht zwar, aber am besten die Pins nicht anschließen und für den AVR dann als Input schalten und den internen Pullup einschalten. Denn dann macht es nichts, wenn du per Software die versehentlich mal als Ausgang schaltest und da eine 1 drauf gibst, was zu hohem Stromverbrauch führt, wenn du die fest auf Masse liegen hast. Und auch wenn du es extern falsch anschliesst und an so einem Pin ein Signal anlegst, passiert nichts (außer daß durch die Umschaltströme dann doch wieder etwas mehr Strom fliesst). Ich vermute mal, die restlichen 0,2 mA könnten normale Schwankungen sein, oder weil die Testbedingung im Datenblatt mit einem externen Signalgenerator angegeben ist, statt einem Quarz. Oder das ist dann tatsächlich dein Messgerät. Hast du mal ausprobiert, z.B. einfach nur einen 2,2 k Widerstand oder so an 3,3 V und GND zu hängen und mit deinem Messgerät mal den Strom gemessen? Danach dann den Widerstand alleine messen und die Spannung, da das meist genauer als eine Strommessung im mA-Bereich ist.
@ Stefan (Gast) >ich habe nun so viele Pins wie möglich auf Ground gelegt und es wurde >merklich besser Das war nicht gefordert. Du sollst alle GND Pins anschliessen, ebenso alle VCC Pins und AVCC. Die IOs lässt man offen und aktiviert per Software die Pull-Ups. >im Idle Mode braucht er nun 0.9mA bei 3.6864Mhz 3.3V >das ist zwar noch immer ~0.2mA über dem max. laut Datenblatt aber viel Naja, kann ein Messfehler sein oder der noch aktive Analogkomparator, der ist nämlich nach dem Reset immer an. Ausschalten. >Was noch ein Stromfresser war, war ein Elko (1µF) - der hat auch stetig >0.8mA gesaugt, hab das mal als Defekt abgestempelt Kann man wohl sagen. > (oder ist das normal bei Elkos?) Nein, soviel zieht ein 1 uF Elko nicht. MFG Falk
Hmmm... Wenn es auf jedes uA ankommt, dann würde ich unbeschaltete Pinne zwar auf Input aber nicht mit dem internen PullUp auf 1 legen sondern mit externen 100k. Der interne PullUp hatte doch 'nur' irgendwas um 20k. Es gab mal eine AppNote von Atmel zu einem Battery optimized design. Aber ich finde sie nicht mehr... Gruß, Ulrich
Ulrich P. schrieb: > Wenn es auf jedes uA ankommt, dann würde ich unbeschaltete Pinne zwar > auf Input aber nicht mit dem internen PullUp auf 1 legen sondern mit > externen 100k. Der interne PullUp hatte doch 'nur' irgendwas um 20k. und was soll das ändern? Woher soll denn der Strom fließen. Du kannst sogar ein 0 Ohm PullUp verwenden ohne das mehr strom fließt.
Ulrich P. schrieb: > Wenn es auf jedes uA ankommt, dann würde ich unbeschaltete Pinne zwar > auf Input aber nicht mit dem internen PullUp auf 1 legen sondern mit > externen 100k. Der interne PullUp hatte doch 'nur' irgendwas um 20k. Es geht dabei nicht um die kaum messbar geringen Leckströme durch die MOSFET-Gates, sondern um den Querstrom (VCC=>FETs=>GND) durch das dadurch implementierte erste Stück CMOS-Logik am Pin. Dieser Querstrom ist am grössten, wenn sich die Gates im Bereich um VCC/2 bewegen, ein Zustand der sich bei offenem Pin gern einstellt. Zieh den Pin auf high oder low, und der Querstrom ist weg.
@ A. K. (prx) >geringen Gate-Leckströme gern einstellt. Zieh den Pin auf high oder low, >und der Querstrom ist weg. Sicher, das war aber gar nicht der Punkt. Es ging um die Aussage, dass ein interner Pull-Up angeblich schlechter ist als ein externer. Dem ist nicht so. MFG Falk
Falk Brunner schrieb: > Sicher, das war aber gar nicht der Punkt. Es ging um die Aussage, dass > ein interner Pull-Up angeblich schlechter ist als ein externer. Dem ist > nicht so. Klar, ich wollte damit nur einem mögliches Missverständnis vorbeugen, es hätte irgendwas mit den Gate-Leckströmen zu tun. Denn dann wäre der Widerstandswert u.U. relevant. NB: In den Powerdown-Modi werden zur Vermeidung der Querströme die Pins durch Analogschalter von der Logik abgetrennt und die Logik wird intern auf low gezogen.
Apropos Powerdown-Modi: Wenn man nach dem Stromverbrauch des Oszillators sucht, dann sollte man sich PowerDown und StandBy Modus mal ansehen. Der einzige Unterschied dazwischen ist nämlich der Oszillator. Wobei Atmel vermutlich vom "low power" Modus des Oszillators ausgeht.
Frank Buss schrieb: > Oder das ist dann > tatsächlich dein Messgerät. Hast du mal ausprobiert, z.B. einfach nur > einen 2,2 k Widerstand oder so an 3,3 V und GND zu hängen und mit deinem > Messgerät mal den Strom gemessen? Danach dann den Widerstand alleine > messen und die Spannung, da das meist genauer als eine Strommessung im > mA-Bereich ist. Den Tip würde ich beherzigen. Viele Multimeter haben einen hohe Bürdenspannung in unteren Strommessbereichen.
Ich war sicher, dass es eine entsprechende AppNote gab, in der das mit den externen Widerständen stand. Aber nach der Beschreibung der Port Pins ist es egal, ob interner oder externer PullUp. Danke, wieder was gelernt! In Fall Atmel AVR wäre es also egal, ob man den Pin per Software nach High oder Low zieht, Hauptsache er floatet nicht bei Vcc/2. Für andere Controller wäre sicherlich eine andere Konfiguration empfehlenswert, etwa Input + PullUp so empfiehlt es ST bei seinen STM32 Chips. Gruß, Ulrich
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.