Forum: Mikrocontroller und Digitale Elektronik AVR: Taktquelle per Software umschalten


von Heini (Gast)


Lesenswert?

Hi,

kann man eigentlich bei einem ATmega88 (168, 328) die Taktquelle per 
Software umschalten? Also z.B. mit dem internen Oszillator starten und 
dann auf den externen Quarz umschalten?

von Falk B. (falk)


Lesenswert?

Leider nein.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die "kleinen" USB-AVRs können das (AT90USB162, ATmega*U2/U4), sowie
alle Xmegas.

Ansonsten bliebe noch die Variante, den RC-Oszillator gegen einen
32-kHz-Takt an Timer 2 als Referenz zu justieren.

von Heini (Gast)


Lesenswert?

Das mit dem Justieren scheitert aber leider daran, dass ich nicht bis 20 
MHz justieren kann. :( Und die brauche ich.

von Max (Gast)


Lesenswert?

Was versprichst du dir davon ?
Zum Stromsparen macht man sleeps und dreht nicht irgendwie am Takt rum 
(der darf sich auch nur um 1% pro Takt ändern verschluckt sich die CPU 
weil die intern den Takt iwie mehrphasig nutzt (read, modify, write) so 
kommt der AVR auch auf die ziemlich sportlichen 1MIPS/MHz )

von Heini (Gast)


Lesenswert?

Hauptsächlich sinnvoll wäre es, um defekte Quarze leicht zu erkennen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Heini schrieb:
> Das mit dem Justieren scheitert aber leider daran, dass ich nicht bis 20
> MHz justieren kann.

Beim ATmega88 nicht, da ist bei ca. 13 MHz das Ende der Fahnenstange
des RC-Oszillators erreicht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Einige AVRs können allerdings den SysClk Prescaler im Betrieb umschalten 
- wenn das helfen würde. Die 48/88/168/328 bieten das allerdings nicht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Matthias Sch. schrieb:
> Die 48/88/168/328 bieten das allerdings nicht.

Doch, natürlich haben die das.

von n.n. (Gast)


Lesenswert?

Hallo,

könnte man nicht einen Attiny oder vergleichbares nehmen, und diesen 
dann zum gesteurten umfusen eines atmegas nutzen?
sinn macht es nicht viel, aber möglich wäre es. per software ist das auf 
jeden fall nicht.
alternativ: per ttl signal einen takt an den µc geben, das geht. wenn 
man dann noch einen vom atmega selber verstellbaren frequenzteiler 
ansteuern kann, könnte man etwas mehr über software die frequenz ändern.

von Heini (Gast)


Lesenswert?

Ne, das ist zu viel Aufwand. Es ging erstmal nur darum, den Quarz auf 
Funktion testen zu können. Wenn der uC tot ist oder der Quarz kann man 
das ja erstmal nicht auseinanderhalten. Wenn die Software erst 
umschalten müsste, ginge das. Habe mich leider schon ein paar Mal damit 
herumschlagen müssen.
Das "Justieren" mit einem externen Uhrenquarz hätte noch den Vorteil 
einer integrierten RTC (die ich sonst extern haben müsste). Zusätzlich 
zum o.g. Feature. Aber leider komme ich ja, wie gesagt, nicht auf die 
nötige Taktfrequenz. Tja, schade schade!

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Heini schrieb:
> Aber leider komme ich ja, wie gesagt, nicht auf die
> nötige Taktfrequenz. Tja, schade schade!

Das ginge zum Beispiel mit einem ATtiny85, der lässt sich intern mit 16 
MHz takten. Per Kalibrierung kommt man dann locker auf über 20 MHz. Beim 
ATmega88 geht das nicht, aber vielleicht gibts andere AVR, die das 
können?

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.