¿Por qué los ATmega (por ejemplo, 328P o 644P) tienen CKDIV8
(o CLKPS = 0011
) programado de fábrica junto con un oscilador interno de 8 MHz por defecto?
De la documentación del 644P: 6.12.2 CLKPR - Registro de preescala de reloj , página 40:
El fusible CKDIV8 determina el valor inicial de los bits CLKPS. Si CKDIV8 está sin programar, los bits CLKPS se pondrán a cero a "0000". Si CKDIV8 está programado, los bits CLKPS se reinician a "0011", dando un factor de división de 8 en el arranque. Esta característica debe utilizarse si la fuente de reloj seleccionada tiene una frecuencia superior a la frecuencia máxima del dispositivo en las condiciones actuales de funcionamiento. [El software de aplicación debe asegurarse de que se elige un factor de división suficiente si la fuente de reloj seleccionada tiene una frecuencia superior a la frecuencia máxima del dispositivo en las condiciones actuales de funcionamiento. El dispositivo se entrega con el fusible CKDIV8 programado.
¿Es sólo una precaución para asegurar que el reloj de la CPU no supere, por ejemplo, un límite de 16 MHz cuando se configura la MCU para que funcione con un oscilador externo de frecuencia demasiado alta (y se olvida de cambiar CLKPS
en consecuencia). ¿O hay otras razones?