PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : avr übertakten?



Ford
10.08.2005, 22:55
mal ne blöde frage, kann ich nen avr controler übertakten oder macht der garzix wenn ich nen zu schnellen taktgeber hab?

Cybrix
10.08.2005, 23:18
was hast du denn vor das er so schnell arbeiten muss das würde ich gern ma wissen

SprinterSB
10.08.2005, 23:26
Mit ATMega8 hab ich keine Probleme an 18MHz (statt max. 16MHz)
Mit AT90S2313 hab ich keine Probleme mit 11.0592MHz (statt max 10)

Allerdings benutze ich nicht die ganze Hardware, nur I/O-Ports, Interrupts, Timer, UART.
Das andere hab ich noch nie getestet oder brauchs nicht bei so hohen Taktraten.

Die angegebnene Spezifikationen für VCC, Temperatur, Takt sind ja unabhängig voneinander. Wenn du VCC bei 5V hälst und die Chips nicht im Backofen betreibst, sollte der Takt einiges mehr verkraften.

Hab grad dem Mega8 einen 24MHz Quarz verbraten!
Soweit funktioniert fast alles (hab den Code nicht an den neuen Quarz angepasst). Jedenfalls geht der TWI-Master noch klaglos und die CPU läuft ganz normal.

::EDIT::

Hab auch mal die F_CPU angepasst. Download ging problemlos, aber der IR-Empfang funzt nicht mehr. (Da brauch ich Timer0 und müsste einen Wert von > 255 initialisieren). Ansonsten funzt alles.

toeoe
11.08.2005, 00:15
Wie ändert man eigentlich den Takt? Ich hab ja aufm Board nen Quarz mit 3,6864 MHz. Aber der Atmega8L läuft doch bis 16MHz, oder?
Brennen tu ich mit TwinAVR, da steht auch immer "AVR clock: 4000 KHz" Kann ich das einfach hochstellen und er ändert dann automatisch den Takt vom Atmega8L?

Gruß
Thomas

SprinterSB
11.08.2005, 00:45
Der Mega8L ist spezifiziert bis 8MHz.

Den Takt änderst du über die Beschaltung (anderer RC-Oszillator, Quarz, Keramik-Oszi, Taktgenerator) oder indem du via Fuses auf den internen RC-Oszi stellst.

Was die Angabe bei TwinAVR bedeutet weiß ich nicht.

Den Code muss ich deshalb ändern, weil Timerwerte von der Taktfrequenz abhängen. Wenn der Takt schneller geht, muss ich Timer mit anderen Werten initialisieren, damit sie nicht vorgehen.
Solche Sachen sollte man immer zentral halten, in einem Header, einer Definition oder im Makefile, damit man später im Code keine 'magischen Zahlen' drin hat, sondern nur noch die Quarzfrequenz reinsetzen muss.

Gruß, Georg-Johann
.

toeoe
11.08.2005, 01:08
Axo, von externen Quarz oder Oszillatoren hab ich noch keine Ahnung. Und an den Fuses verstell ich lieber erstma nichts. Bis jetzt reichen ja auch noch die 4 MHz :)

Danke für die Antwort und Gruß
Thomas

Ford
11.08.2005, 12:22
ok na dann bin ich wirklich beruhigt :) ... hab nämlich nur ein 4,1.... Mhz quarz
bei mir rumliegen gehabt, brauche aber 4 Mhz.

das dürfte dann ja wohl keine rolle spielen.

mfg Ford

Marco78
11.08.2005, 18:52
Die 4,1MHz werden den IC nicht töten. Aber wenn du z.B. mit RS232 arbeitest wirst du mit 4,1MHz anstelle von 4MHz wahrscheinlich nur eine Fehlerhafte übertragung bekommen.
Zumindest dann, wenn du im Listing 4MHz einträgst.
Wenn du einfach nur die I/O abfragen willst und was schalten willst und es nicht zeitabhänig ist oder eine Differenz der Wartezeiten keine Auswirkung hat kanst du auch 4,1MHz nehmen.
Am besten aber das Programm auch auf 4,1MHz einstellen.