Why do Arduino boards ship w/ 16MHz crystal instead of 20MHz? They are spec'ed for operating at 20MHz, after all.
I guess there are a few advantages to running more slowly (lower power consumption, longer life), but I must be missing something.
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.
Sign up to join this communityWhy do Arduino boards ship w/ 16MHz crystal instead of 20MHz? They are spec'ed for operating at 20MHz, after all.
I guess there are a few advantages to running more slowly (lower power consumption, longer life), but I must be missing something.
I'd buy into the answer on the Arduino Forum:
The original ATmega8 Arduino ran at 16MHz, which was the top rated clock speed for the ATmega8 cpu used. When "upgraded" to ATmega168 (with a 20MHz top cpu speed), the clock was left at 16MHz (probably) because the designers thought that more people/code would have backward compatibility issues with a new clock rate than would benefit from the extra 25% cpu performance. I certainly think they were right...
Actually, one of the best reasons I've heard is that the UART can perfectly match 1 Mbit and 2 Mbit rates when running at 16 MHz, but not when running at 20 MHz. There are a number of devices that have 1 and 2 Mbit UART inputs, such as the Dynamixel line of robot servos.
A third point is that the Low Power Crystal Oscillator of the ATmega168 and ATmega328 is not working above 16 MHz. So if you have a 20 MHz crystal connected to the XTAL pins, you have to use the Full Swing Crystal Oscillator which will consume more power (or use no crystal at all).