Arduino Clock Speed

Is there a particular reason why the documentation for the ATMega and places like sparkfun only use specific frequencies like 4Mhz, 12Mhz, and 16Mhz? Couldn't an ATMega328 run at 22.45825830284Mhz or 65.13574984231Khz (I really mean any random clock rate) if you desoldered the clock generator and replaced it with something that could generate your preferred clock? And also (this is from my overclocking knowledge) physically, why does a processor take more voltage or whatever to operate at higher clocks?

The data sheet for each specific processor chip will give it's electrical specification, which includes their maximum clock frequency (20mhz is the published max spec for the 328 chip). It will also give a chart or graph of how much slower the clock should be reduced if you supply less then the max rated voltage. Speed and power consumption of the chip is proportional. Digital logic consumes more power when they are switching (in transition) then when they are at a steady high or low, so faster switching speed means a higher percentage of the time is spend in transition Vs steady state, thus more current drawn as one clocks a processor faster.

The reasons sellers all use 16mhz (or 8 mhz) for their Arduino or Arduino 'clone' boards is because the Arduino IDE core software assumes those speeds and one would have to modify the libraries if they wanted to use other then the standard Arduino clock speeds. But the processor hardware chip doesn't care, it can be clocked at any rate up to it's rated maximum.

Lefty

In addition to retrolefty, there are alot of things that derive from the clocksource. For example, if you want to use a specific baudrate on a serial port there are some clock frequencies to avoid to keep the baudrate error small. As far as i understand from the data sheet the same applies to the timers/counters.

Jeroen

And you also have to recompile the bootloader for the higher crystal speed or you cant upload sketches direct