Hallo, bei einem Bastelprojekt mit einem Atmega, auf dem ein zeitunkritisches Programm läuft, stelle ich mir die Frage, ob es für den Energieverbrauch des Atmega einen Unterschied macht, ob ich die CLKDIV8-Fuse setze oder nicht. Der Atmega läuft mit internen 8MHz. Wenn man die CLKDIV8-Fuse nicht setzt, läuft der Controller mit einem Takt von 8MHz, setzt man die CLKDIV8-Fuse, läuft der Controller intern mit 1MHz Takt, richtig? 1MHz Taktfrequenz hätte gegenüber 8MHz Taktfrequenz den Vorteil, dass der Controller weniger Strom zieht - oder? Außerdem müsste der Controller dann auch mit einer niedrigeren Versorgungsspannung auskommen - nehme ich an? Oder gilt das nur bei einem externen 1MHz-Takt?
richiM schrieb: > Wenn man die CLKDIV8-Fuse nicht > setzt, Default ist 1MHz interner Takt Das gilt für (fast) alle ATMega richiM schrieb: > 1MHz ... weniger Strom zieht Ja, höchstvermutlich richiM schrieb: > Außerdem müsste der Controller dann auch mit einer niedrigeren > Versorgungsspannung auskommen - nehme ich an? Oder gilt das nur bei > einem externen 1MHz-Takt? Was steht dazu im Datenblatt? wird da zwischen extern und intern unterschieden?
Danke für die Antwort! Ulrich F. schrieb: >> Wenn man die CLKDIV8-Fuse nicht >> setzt, > Default ist 1MHz interner Takt Stimmt, hatte ich verwechselt! Ulrich F. schrieb: > richiM schrieb: >> Außerdem müsste der Controller dann auch mit einer niedrigeren >> Versorgungsspannung auskommen - nehme ich an? Oder gilt das nur bei >> einem externen 1MHz-Takt? > Was steht dazu im Datenblatt? > wird da zwischen extern und intern unterschieden? So, wie ich das sehe, nein. Also läuft ein Atmega mit internem Takt (oder externem Takt) von 1MHz stromsparender und auch mit einer niedrigeren Versorgungsspannung als bei internen (oder externen) 8MHz. Das klingt doch gut! :-)
Das spart sogar eine ganze Menge. Der Core zieht mit 8 MHz genau 8 mal so viel Strom wie mit 1 MHz. Die Gesamtstromaufnahme ist nicht so linear, da es intern noch jede Menge Module hat, die von diesem Takt nicht betroffen sind. Im Grunde brauchst du aber nur noch ca. 25% der Energie. Wenn es dir darum geht, so wenig wie möglich an Energie zu verbrauchen, kannst du den internen Resonator auch komplett still legen und vom Watchdog-Oszillator leben. Der läuft nur mit (je nach Modell) 132kHz und braucht so gut wie gar kein Strom mehr. Praxisbeispiel mit ATtiny13A: 128kHz + DIV8 + PRTIM0 + PRADC + ACD = 10.9uA im ACTIVE MODE(!) Gibt genug Anwendungen, die mit 32kHz auskommen.
:
Bearbeitet durch User
Bei vielen AVRs hat man noch den 128 kHz Takt vom Watchdog zur Auswahl. Der ist noch etwas sparsamer, aber auch weniger genau. Dafür muss man aber die Fuses verstellen und ggf. den ISP Takt reduzieren. Die Umschaltung 1 MHz / 8 MHz kann man auch noch in Software zur Laufzeit verändern. Die Div8 Fuse setzt nur den Startwert (i.A: auf 1 MHz) so dass der µC auch mit niedriger Spannung laufen kann. Wenn man in Wartezeiten den µC in einen sleep mode versetzt kann man noch einiges mehr an Strom sparen. Dann macht es ggf. auch wenig aus ob der µC mit 1 oder 8 MHz läuft.
Christian S. schrieb: > Das spart sogar eine ganze Menge. Der Core zieht mit 8 MHz genau 8 mal > so viel Strom wie mit 1 MHz. Die Gesamtstromaufnahme ist nicht so > linear, da es intern noch jede Menge Module hat, die von diesem Takt > nicht betroffen sind. Im Grunde brauchst du aber nur noch ca. 25% der > Energie. Ganz so einfach ist die Sache aber nicht. Denn ein mit 8Mhz getakteter Mega, arbeitet auch seine Befehle 8 mal so schnell ab, wie ein mit 1Mhz getaktere. D.h. er braucht zwar 8 mal so viel Strom, ist aber auch 8 mal so schnell mit seiner Arbeit fertig und kann sich wieder schlafen legen :-)
Theoretisch sind niedrigere Taktfrequenzen für den Stromverbrauch immer besser, da die Verluste in den internen Kapazitäten bei niedrigeren Taktfrequenzen geringer sind. In der Praxis ist der Effekt durch andere Effekte überlagert. Beispielsweise kannst du bei einer hohen Taktfrequenz und bei gleicher Aufgabe schneller zurück in den Sleep-Modus. In der Praxis musst du daher messen, was wirklich besser ist (schnelle oder langsame Taktfrequenz). Dabei merkst du dann, dass das Messen an der Grasnarbe (sehr niedrige Ströme, besonders im Sleep-Modus) eine Sache für sich ist, und das die am Controller angeschlossene Peripherie auch ungewollt das ein oder andere Elektron bewegt.
Karl H. schrieb: > Christian S. schrieb: >> Das spart sogar eine ganze Menge. Der Core zieht mit 8 MHz genau 8 mal >> so viel Strom wie mit 1 MHz. Die Gesamtstromaufnahme ist nicht so >> linear, da es intern noch jede Menge Module hat, die von diesem Takt >> nicht betroffen sind. Im Grunde brauchst du aber nur noch ca. 25% der >> Energie. > > Ganz so einfach ist die Sache aber nicht. > Denn ein mit 8Mhz getakteter Mega, arbeitet auch seine Befehle 8 mal so > schnell ab, wie ein mit 1Mhz getaktere. D.h. er braucht zwar 8 mal so > viel Strom, ist aber auch 8 mal so schnell mit seiner Arbeit fertig und > kann sich wieder schlafen legen :-) Stimmt zwar, aber bei Batteriebetrieb ist es für die Chemie besser, wenn wenig Strom gezogen wird. Im Endeffekt halten die Batterien so länger. Ausserdem gibt es auch immer wieder Programme, die mit delays ohne Sleep arbeiten, und da spart es auch Energie.
Christian S. schrieb: > Praxisbeispiel mit ATtiny13A: > 128kHz + DIV8 + PRTIM0 + PRADC + ACD = 10.9uA im ACTIVE MODE(!) > Gibt genug Anwendungen, die mit 32kHz auskommen. Ah, klingt interessant! Leute, ich danke euch für die vielen aufschlussreichen Antworten!!!
Ups, verrechnet. 128/8 ist immernoch 16 kHz :) Naja, um Sensoren auszulesen und mal ein FET zu schalten reichts dicke. Das DIV8 ist aber auch nur eine Faulheit, weil es einfacher ist, eine Fuse zu setzen als den CLKPR Register zu ändern. Wenn man die 32kHz braucht, setzt man CLKPR einfach auf 2. Auch lustig: CLKPR auf 8 setzen und sich mit 500Hz Takt begnügen. Der Upload des Programms dauert dann halt n bissl länger ;)
:
Bearbeitet durch User
Christian S. schrieb: > Auch lustig: CLKPR auf 8 setzen und sich mit 500Hz Takt begnügen. Der > Upload des Programms dauert dann halt n bissl länger ;) Die Kontroller werden wie ihre Anwender ja auch älter und können nicht mehr so schnell wie früher, als das Hertz/Kreislaufsystem noch 16MHz abkonnte. Das sind dann sozusagen Schalt-Greise. MfG Paul
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.