Forum: Mikrocontroller und Digitale Elektronik Atmega Geschwindigkeit zur Laufzeit verändern


von Sam .. (sam1994)


Lesenswert?

Ist es möglich den AVR während dem Betrieb anders zu takten?

Indem der Avr einen Transistor schaltet der einen anderen Oszillator 
dranhängt? Oder vielleicht sogar mit einem Quarz (Da müsste ein Bein ja 
schon reichen)? Geht so was? Es geht darum: Wenn das Gerät mitgenommen 
wird, soll es wenig Strom verbrauchen (niedriger Takt), wenn es am 
USB-Port steckt muss der Avr aber schnell sein um die USB Schnittstelle 
zu realisisieren.

von Peter (Gast)


Lesenswert?

Samuel K. schrieb:
> Ist es möglich den AVR während dem Betrieb anders zu takten?

es gibt einige Typen da kann man intern den Vorteiler festlegen. Aber im 
Sleep modus verbraucht so ein Atmel ja nicht wirklich viel strom, ist 
das etwas noch zu viel?

von Karl H. (kbuchegg)


Lesenswert?

Samuel K. schrieb:
> Ist es möglich den AVR während dem Betrieb anders zu takten?
>
> Indem der Avr einen Transistor schaltet der einen anderen Oszillator
> dranhängt? Oder vielleicht sogar mit einem Quarz (Da müsste ein Bein ja
> schon reichen)? Geht so was? Es geht darum: Wenn das Gerät mitgenommen
> wird, soll es wenig Strom verbrauchen (niedriger Takt), wenn es am
> USB-Port steckt muss der Avr aber schnell sein um die USB Schnittstelle
> zu realisisieren.

Wenn das Programm so realisiert ist, dass es bei Batteriebetrieb den µC 
in Wartephasen 'schlafen legt', dann verbraucht der µC so wenig Strom, 
dass die Selbstentladung der Batterie/Akkus höher liegen dürfte. Und bei 
Bedarf hat man dann trotzdem wieder die volle Rechenleistung zur 
Verfügung.

von Sam .. (sam1994)


Lesenswert?

Dann braucht der schnelle µC doch Impulsartig Strom. Entlädt das den 
Akku nicht schneller, als ein langsamer µC?

achso, die Selbstentladung ist größer als der impulsartige strom?

von Peter (Gast)


Lesenswert?

Samuel K. schrieb:
> Dann braucht der schnelle µC doch Impulsartig Strom. Entlädt das den
> Akku nicht schneller, als ein langsamer µC?

weist du überhaupt über welche ströme es bei so einem µC geht? Jeder 
Takt belasten den Akku impulsmäßig. Es es wurde schon vor langer Zeit 
ein bautteil namens Kondensator erfunden.

von Stefan O. (avrstefan)


Lesenswert?

Karl heinz Buchegger schrieb:
> Wenn das Programm so realisiert ist, dass es bei Batteriebetrieb den µC
> in Wartephasen 'schlafen legt', dann verbraucht der µC so wenig Strom,
> dass die Selbstentladung der Batterie/Akkus höher liegen dürfte. Und bei
> Bedarf hat man dann trotzdem wieder die volle Rechenleistung zur
> Verfügung.

Das stimmt und ist eine sehr schöne Möglichkeit das zu realisieren. 
Hatte mein derzeitiges portables Projekt auch mit einem Atmega begonnen, 
verbrauchte damals glaub ich wesentlich!!! weniger als 1 mA.
Bin aber dann aus anderen Gründen (Rechengeschwindigkeit) auf einen 
AVR32 umgestiegen, dieser ist dynamisch taktbar. -> Jedoch wenn beide im 
sleep sind hat keiner einen echten vorteil [Also umsteigen nicht nötig!]

Verbessert mich wenn ich falsch liege aber die XMega können doch auch 
dynamisch getaktet werden.

Aber selbst wenn du den Takt verstellen kannst ist das grundlegende 
Vorgehen immer das Gleiche. Nicht verwendete Perepherie abschalten (Wenn 
diese auf eine ersichtlich längere Zeit nicht benötigt wird! Oder 
garnicht verwendet!), und den Prozessor in einen Sleep modus schicken.

1: Sleep
2: Wakeup
3: Irgendwas erledigen
4: wieder Schritt 1

von fingus (Gast)


Lesenswert?

Da solltest Du Dich mal bei bei den PICs umsehen. Da gibt es sehr viele 
Typen, bei denen man den internen Oszillator in weiten Grenzen verändern 
kann (teils von 31 kHz bis 32 MHz). Such mal bei 
http://www.microchip.com/productselector/MCUProductSelector.html oder 
http://www.microchip.com/en_US/family/8bit/ (links sind die product 
tables und dann links oben der parametric search) oder Du suchst nach 
dem Suchbegriff "nanowatt"

von fingus (Gast)


Lesenswert?

Ergänzung: da geht teilweise schon bei ganz einfachen Produkten wie dem 
8-Beiner 12F683

von Klaus W. (mfgkw)


Lesenswert?

Ich meine mich zu entsinnen, neulich in einem Datenblatt eines
AVR (tiny13?) gelesen zu haben, daß sich der Takt von einem
clock zum nächsten nur um ein paar Prozent ändern darf.
Ein schlagartigers Umschalten auf einen anderen Takt wäre
damit nicht machbar.

von Klaus W. (mfgkw)


Lesenswert?

PS: Bei attiny13 unter "System Clock and Clock Options":
1
When applying an external clock, it is required to avoid sudden changes in the applied clock fre-
2
quency to ensure stable operation of the MCU. A variation in frequency of more than 2% from
3
one clock cycle to the next can lead to unpredictable behavior. It is required to ensure that the
4
MCU is kept in Reset during such changes in the clock frequency.

von Sam .. (sam1994)


Lesenswert?

danke euch allen. Die Sleeps werde ich aufjedenfall nutzen. Ich muss mal 
schauen, ob ich die USB Lib mit dem Rest in einen Controller packe. 
Sonst nimm ich einfach einen 2. Attiny.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Du einen Uhrenquarz an die TOSC-Pins eines dafür ausgelegten AVRs 
legst, kannst Du den internen R/C-Oszillator damit kalibrieren. Somit 
hast Du einen 4Mhz...14Mhz Generator, der jederzeit umstellbar ist. Dazu 
kannst Du noch den internen Prescaler zur Laufzeit verändern. Das 
Clock-System des XMega ist dagegen natürlich purer Luxus, aber auch 
nicht schlecht ;-).

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
Noch kein Account? Hier anmelden.