ATmega - Overclocking (25MHz stabil, 29MHz etwas zickig)

dino03

Aktives Mitglied
27. Okt. 2008
6.760
20
38
Sprachen
  1. BascomAVR
  2. Assembler
Hallo zusammen,

ich hab mal ne Frage so in die Runde ...

Hat schon mal einer von euch die Rechenknechte übertaktet ?
Und wenn ja, wie weit ?
ATmega 8,16,32,8515,8535,128,... maximal 16MHz
ATmega 48,88,168,328,644,... maximal 20MHz

Wie weit kann man das treiben und schwingt der Oszillator
zB mit nem 25MHz Quarz noch sauber und zuverlässig an oder
braucht man da schon nen Quarzoszillator ?

Laufen die internen Strukturen noch fehlerfrei ? Werden die Befehle
noch fehlerfrei ausgeführt oder verschluckt er sich ?

Ich hab nämlich noch 25MHz-Quarze oder 33MHz-Oszillatoren rumfliegen.

Mal sehen wann ich da mal ein paar Tests starte ... ;)
Wenn, dann werde ich wohl nen ATmega48 übertakten.

Nur mal so aus Jux und Wissensdurst :D

- - - - - - - - - - - - - - - - - - - -
Ich hab mal ganz fix nen Testprogramm gebastelt (Teile aus meinem
Analyzer-Code).

Das Programm stellt des USART auf 1200Baud. Auf PortC wird PC0..5
auf Ausgang gestellt und mit LEDs versehen. In der Hauptschleife
wird bei jedem Durchlauf ein Zähler incrementiert und die Bits2..7 auf
PortC 0..5 ausgegeben. Auf dem USART werden die unteren 4Bit zum
Zeichen A addiert und das resultierende Zeichen auf dem USART
gesendet (also A..P). Da die Senderoutine mit polling arbeitet, wirkt
sie gleichzeitig als Verzögerungsroutine von 8,33ms. Bei 20MHz müßte
also auf PC5 die LED mit ca 0,5Hz blinken. Das Programm testet also
die Stack-Operationen, Ausgangsports und den USART. Mal sehen wie
weit man nen ATmega48 übertakten kann :D

Gruß
Dino
 
Ich hab mich auch mal gefragt wie weit es diese oder jene AVRs bringen, obwohl die AVRs für die Sachen, die ich ihnen zugedacht habe, immer ausreichend schnell waren. Für andere Sachen die mir hier und da einfallen sind sie dann aber meistens hoffnungslos zu Langsam, auf die Schnelle fiele mir auch keine Aufgabe ein bei der es sich lohnen würde AVRs zu übertakten.


Nach dem was man im Internet so liest(sieht) sind 25Mhz so ziemlich das Maximum:http://www.youtube.com/watch?v=3eMG316PKMA
 
Hallo zusammen,

erster Test erfolgreich ;)

ATmega48-20PU @24,576MHz -> läuft FEHLERFREI :D :D

- - - - - - - - - - - - - -

zweiter Test erfolgreich !! DAS GLAUBT IHR NIE !!!
:D :D 29MHz :D :D
LÄUFT !!!

Hier der Programmcode ...
Anhang anzeigen Overclock-m48.asm
und das ganze Projekt ...
Anhang anzeigen Overclock-m48.zip

Die Schaltung mit Quarz ...
P1020303.JPG
Die Terminalausgabe ...
P1020305.JPG

Gruß
Dino
 
Wahnsinn! Gratulation.:adore:
Auf die Art könnt ich zumindest den Geschwindigkeitsnachteil den ich mit C gegenüber Assembler habe wieder ausgleichen.:D
Man müsste nur noch testen ob die Peripherie auch noch richtig läuft. Über die P-Serien liest man beispielsweise dass der USART schon recht früh schlapp macht.
 
Hallo zusammen,

also 33MHz laufen nicht mehr :rolleyes: :D :D :D

- - - - - - - - - - - - - - -
ich hab nochmak den 29MHz reingesteckt und er läuft, naja , ...
etwas zickig :D

Also ich würde mal sagen: 25MHz ist absolut möglich und läuft auch stabil.
Grade nochmal getestet und der Oszillator startet sofort sauber und die
Übertragung vom USART ist auch sofort sauber da.

Was zu beweisen war !
Wie hieß das mit dem "quod erat demonstrandum" oder so ??
Bin kein Lateiner :D :D

Also die 33MHz werde ich wohl noch mal mit nem Quarz-Oszillator testen.
Könnte sein, das der interne Oszillator das nicht mehr ganz schafft. ...

Gruß
Dino
 
29Mhz! Wahnsinn! Villeicht zickt er nicht so wenn du ihn in flüssigem Stickstoff badest.:D
Ich frag mich wie schnell dann die Xmegas werden.:cool:
 
Hi Nomis,

29Mhz! Wahnsinn! Villeicht zickt er nicht so wenn du ihn in flüssigem Stickstoff badest.:D
Ich frag mich wie schnell dann die Xmegas werden.:cool:
Könnte man ja auch mal testen. Bis 50MHz ist nicht so weit hin :D

Bei 29MHz hat er nicht richtig sauber gestartet. Die LED hat zwar im richtigen
Rhytmus geblinkt (0,5Hz) aber der USART hat manchmal nur Grütze geliefert.
Nach nem Reset lief dann alles sauber. Also wenn es mal läuft, dann fehlerfrei.
Aber wenn es nicht sauber läuft, dann braucht man so 1-2 Resets bis er sich
fängt und saubere Zeichenkolonnen an der RS232 liefert.

Was mir noch einfällt, er ist bei den 5V noch nicht mal warm geworden. :D

Gruß
Dino
 
Hallo zusammen,

jetzt stehen noch die ATmega8 aus. Die kommen auch noch dran. :D
Oberste Grenze laut Datenblatt sind 16MHz. Mal sehen wie viel die
vertragen. Wenn man es von den anderen hochrechnet, dann sollten
die ungefähr 20MHz schaffen. Wenn die interne Chip-Struktur ähnlich
ist und nur mehr Reserve eingerechnet wurde könnten es aber auch
25MHz sein. Ich laß mich mal überraschen. Mal sehen wann ich da
Lust zu habe ... :D :D

Dafür muß ich das Test-Programm aber erst mal von den
Memory-Mapped-Registern des USART auf die IO-Mapped ändern.
Ist aber normalerweise recht flott gemacht.

Laßt euch also mal überraschen :D :D
Null-Null-Dino - Mit der Lizenz zum Chip-quälen :eek: :cool:

Gruß
Dino
 
Hi,

Oje, oje. Was habt Ihr vor - Spiele spielen? Ist doch kein PC. ;)
Die µC sind doch rasend schnell - wir reden hier über MIPS, nicht über Mega-Schaltzustände (0 oder 1) pro Sekunde. Riesen- TFT's mit 16.7 Millionen Farben ansteuern würde eh die Grenze eines µC sprengen - oder?

Der erste, "bezahlbare" RISC- Rechner für's Publikum Anfang der 80er sollte, glaube ich, so ca. DM7000 kosten. Heute - €1,65.:)


Grüsse,

Michael
 
Hallo Simon,

mit Spielen habe ich nie was am Hut gehabt.

Einzig für aufwendige Rechenoperationen wie der Division oder der seriellen Kommunikation zwischen den µC/ PC wäre ein Übertakten (=Baudrate) vielleicht in Erwägung zu ziehen. Eine Oberfläche für den PC brauche ich ja auch noch (da wartet mein GfA- Basic!!). Die Brechnungen in meinem Rennbahn- Projekt müssen ja fix laufen; ich will als Gimmick noch den Spritverbrauch simulieren. Aber soweit bin ich leider noch nicht.


Grüsse,

Michael
 
Hah!:dirol:
Ich hab gerade hab einen UC3B0256(ein AVR32) von 60 auf 96 Mhz getrieben ohne dass ich Fehler feststellen konnte(der USART lieferte noch mühelos ganze Zeichenketten). :dance3:
Na Dino, was sagst du nun dazu?:sarcastic:
Da hab ich dich überholt was?:D

EDIT:Ich brauchte mal wieder etwas zerstreung und hab mich nochmal mit den Taktfrequenzen gespielt. Also der UC3B läuft, obwohl nur für 60Mhz Freigegeben),tatsächlich auch mit 120Mhz, nur hört der USART schon bei den genannten 96Mhz auf zu funktionieren. Die GPIOS funktionieren aber auch bei 120Mhz einwandfrei.
Übrigens hab ich wieder recherchiert, die 16Mhz AVRs lassen sich manchmal auch höher takten als die, die für 20Mhz spezifiziert sind. Es gibt auch Leute die ihren ATMEGA32 mit 35Mhz betrieben haben.avrfreaks
Sogar 40 Mhz scheinen möglich zu sein:der richtige Link
 
Hi Nomis,

Hah!:dirol:
Ich hab gerade hab einen UC3B0256(ein AVR32) von 60 auf 96 Mhz getrieben ohne dass ich Fehler feststellen konnte(der USART lieferte noch mühelos ganze Zeichenketten). :dance3:
Na Dino, was sagst du nun dazu?:sarcastic:
Da hab ich dich überholt was?:D
Gratulation ! Zwei Wahnsinnige haben ein neues Hobby (AVRs zerblasen :D )
gute 150% ist schon nicht schlecht. Sind schon etwas mehr als meine 125%.

EDIT:Ich brauchte mal wieder etwas zerstreung und hab mich nochmal mit den Taktfrequenzen gespielt. Also der UC3B läuft, obwohl nur für 60Mhz Freigegeben),tatsächlich auch mit 120Mhz, nur hört der USART schon bei den genannten 96Mhz auf zu funktionieren. Die GPIOS funktionieren aber auch bei 120Mhz einwandfrei.
Die LEDs waren bei mir auch noch fehlerfrei am arbeiten. Also die IOs sind
ziemlich streßresistent :D Nur die USARTs steigen dann aus. Timer,...
hab ich bei den Frequenzen nicht getestet.

Übrigens hab ich wieder recherchiert, die 16Mhz AVRs lassen sich manchmal auch höher takten als die, die für 20Mhz spezifiziert sind. Es gibt auch Leute die ihren ATMEGA32 mit 35Mhz betrieben haben.avrfreaks
Sogar 40 Mhz scheinen möglich zu sein:http://8515.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=69416&postdays=0&postorder=asc&highlight=overclocking&start=20&sid=cf8739b6c052c43408e260ced2c7ff65
Dann muß ich wohl mal wieder etwas quälen ... Ich hab hier noch Oszillatoren
Also zwangsversorgung mit hohen Frequenzen :D

Gruß
Dino
 
Die LEDs waren bei mir auch noch fehlerfrei am arbeiten. Also die IOs sind
ziemlich streßresistent :D Nur die USARTs steigen dann aus. Timer,...
hab ich bei den Frequenzen nicht getestet.
Naja, ich hab für den USART den Treiber verwendet der beim AVR32Studio dabei war. Aus dem Datenblatt weiß ich aber dass ich den Systemtakt(bei den UC3 gibts mehrere, Bus CPU und einige andere Bausteine teilen sich aber einen) noch vor dem USART durch 8(glaub ich) dividieren kann. Wenn dieser Divisor von dem Treiber noch nicht genutzt wird, könnte ich es mal mit dem probieren.

Aber diese 40Mhz bzw. 48Mhz, wenn man in dem zweiten Link weiterliest, auf einem Mega 32 finde ich durchaus interessant. Ich denke gerade daran mir ein kleines Quarz-Sortiment zuzulegen.
 
Hallo,
Das ist ja ganz schön mit dem Übertakten, leider wird die Schwachstelle EEprom dabei übersehen. Dieses lässt sich, beim übertakten, nicht mehr sicher beschreiben.
Das habe ich gerade leider selber Erfahren müssen bei 100Stk.

Mega32 mit 12.288MHz, bei 3,3Volt.
10% davon hatten Lesefehler im EEprom.

Gruß
miparo
 
Hallo zusammen,
Mega32 mit 12.288MHz, bei 3,3Volt.
10% davon hatten Lesefehler im EEprom.

wenn man fosc oberhalb der Spezifikation betreibt, kann dies natürlich jedes Hardwaremodul betreffen. Ich kann mich noch an einige ATmega103 (Vorgänger von 128) erinnern, bei denen hatte der LPM-Befehl manchmal sproadisch falsche Werte aus dem Flash gelesen, wenn fosc über 8MHz war, obwohl der Mikrocontroller bis 16MHz bei 5V spezifiziert war, das war ein Bug im Mikrocontroller, und das hatte mich einige Zeit und Nerven gekostet :rolleyes: Bei komkerziellen Produkten sollte man den erlaubten Grenzwert nicht überschreiten, auch wenn es einmal funktioniert, es kann sich innerhalb einer Serie etwas am Mikrocontroller ändern, so dass bestimmte Module nicht mehr richtig oder sicher funktionieren. Die Umgebungstemperatur hat sicherlich auch einen Einfluß auf die Funktion.

Grüße,
Dirk
 
Hi Dirk,

Bei komerziellen Produkten sollte man den erlaubten Grenzwert nicht überschreiten, auch wenn es einmal funktioniert, es kann sich innerhalb einer Serie etwas am Mikrocontroller ändern, so dass bestimmte Module nicht mehr richtig oder sicher funktionieren. Die Umgebungstemperatur hat sicherlich auch einen Einfluß auf die Funktion.
da hast du sicher Recht.
Aber interessant ist es schon :D :D
Alles was verboten ist macht gerade dadurch ja Spaß :rolleyes: ...
und so lange keine Leute gefährdet werden oder wichtige Sachen zu
Bruch gehen oder größere finanzielle Schäden auftreten ist das alles
unter "sportlichem Ehrgeiz" anzusiedeln ;)

Gruß
Dino
 
Damals unsere ersten 8086, da waren wir auch froh, wenn die mit 8-12MHz liefen, statt der damals High Speed 4,7MHz.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)