Go Down

Topic: Stupid question that lingers inside my mind (Read 661 times) previous topic - next topic


Well.. i dont know how i came to think about but it is somewhat sticking in my head.. i am quite sure that there is a massive mistake in my thinking - but what is the main problem on overclocking an Arduino with lets say a 32Mhz crystal instead of an 16Mhz - or even higher ones? I think timing is an issue, yes, but if that is deal with - wouldnt it be possible to have whatever Mhz Arduinos?


Jun 19, 2009, 07:15 pm Last Edit: Jun 19, 2009, 07:15 pm by retrolefty Reason: 1
Two issues.

First the microprocessor chip is only capable of a finite maximum clocking speed, this is specified in it's data sheet and is dependent on the voltage being supplied to the chip also. 20mhz is a typical max frequency I believe for '168 and '328 chips. While some 'overclocking' is possible it is never a good idea to operate outside the chips maximum specification.

Second, the Arduino IDE software uses built in functions for timing that assume the chip is operating with a 'standard' clock speed, typically 8mhz or 16mhz. While this can be changed it is not something standard or even recommended.



hm, ok... sounds much like i had in mind yet, what chokes if there is a too high clock speed? From what i believed to knwo the clock speed would control the speed of the internal parts of a mcu/cpu


I'm quite a beginner in electronics, but as transistors have certain switch on/off times and mpu are made of transistors to a great extent, the switching times of the internal parts should limit an mpu's speed, not?


Neat question...never thought of overclocking an AVR.

You can probably get away with 20.1 MHz, 20.2 MHz, etc. but at some point it'll just stop working, exhibit mysterious behavior, etc. etc.

Think of one possible case: it takes time to read a word from FLASH and send it to the CPU for interpreting as an instruction. That delay time ("access time") is constant, but if the CPU expects the data faster and faster, at some point it just won't get the data in time and will then execute the previous instruction again, or some of the bits will have arrived and others not, etc. and "mysterious behavior" ensues.


ok, now i understand.. i always thought transistors would response immediately to a new state and would not have a time between to states.. that about the flash memory i havent thought of.


I believe that Uzeboxes [Uzeboxen? Uzeboxi?] use overclocked AVR Mega644s at 28.636MHz, but I don't know if all the peripheral modules on the chip (such as USARTs) work at that speed.

#include <usual_caveats_about_overclocking.h>


You could probably find further discussion (in detail) about this topic on the avrfreaks forum.


Go Up