¿Por qué los Arduinos se envían con cristal de 16MHz en lugar de 20MHz?

31

¿Por qué las placas Arduino se envían con cristal de 16MHz en lugar de 20MHz? Se especifican para operar a 20MHz, después de todo.

Supongo que hay algunas ventajas de correr más lentamente (menor consumo de energía, mayor vida útil), pero debo estar perdiendo algo.

    
pregunta JellicleCat

3 respuestas

28

Compraría la respuesta en el Foro de Arduino:

  

El ATmega8 Arduino original funcionó a 16MHz, que fue el más calificado   Velocidad de reloj para la cpu ATmega8 utilizada. Cuando "actualizado" a ATmega168   (con una velocidad máxima de cpu de 20MHz), el reloj se dejó en 16MHz (probablemente)   Porque los diseñadores pensaron que más personas / código tendrían.   Problemas de compatibilidad con versiones anteriores con una nueva velocidad de reloj que beneficiaría   Del 25% extra de rendimiento de la CPU. Yo ciertamente creo que eran   derecho ...

    
respondido por el vicatcu
5

En realidad, una de las mejores razones que he escuchado es que el UART puede igualar perfectamente las velocidades de 1 Mbit y 2 Mbit cuando se ejecuta a 16 MHz, pero no cuando se ejecuta a 20 MHz. Hay una serie de dispositivos que tienen entradas UART de 1 y 2 Mbit, como la línea Dynamixel de servos de robot.

    
respondido por el Jon Watte
5

Un tercer punto es que el oscilador de cristal de baja potencia de ATmega168 y ATmega328 no funciona por encima de 16 MHz. Entonces, si tiene un cristal de 20 MHz conectado a los pines XTAL, tiene que usar el Oscilador de Cristal de Swing Completo, que consumirá más energía (o no usará ningún cristal).

    
respondido por el Pascal Rosin

Lea otras preguntas en las etiquetas