Configuración de fusibles tipo AVR para cristal externo de 12MHZ en Atmega 168

1

Tengo 2 microcontroladores (Atmega 168PA-PU) . Hasta ahora he ejecutado el siguiente programa en uno de ellos (por ejemplo, mc1). Ahora cuando ejecuto el mismo código en el otro da resultados erróneos. Alguien sugirió que los osciladores RC incorporados dan un error de +/- 10% en la frecuencia del sistema y eso es suficiente para desequilibrar el dispositivo. Así que he decidido usar un oscilador externo de 12 MHz y conectarlo a XTAL1 (pin 9) y XTAL2 (pin 10) con capacitores de 22pF (cerámica). Yo quemo mis programas con avrdude. ¿Cuál es la configuración de fusible adecuada que debo usar? La calculadora de fusibles AVR me confundió aún más.

    
pregunta Rambo partyush

1 respuesta

1

PD: soy un novato, así que estoy compartiendo lo que he aprendido. Si hay algún error, hágamelo saber para que en el futuro pueda corregirme.

Sí, tiene razón. El oscilador RC interno no es perfecto ... El reloj varía con la temperatura y el voltaje de la fuente de alimentación. Por lo tanto, es mejor usar un oscilador de cristal externo que no se desvíe con la temperatura y si Si quieres usar cristal de 12Mhz, deberías optar por la opción de cristal de giro completo.

Las fuentes de los relojes generalmente necesitan un poco de tiempo para calentarse y comenzar a darnos una señal confiable cuando el microcontrolador está encendido. Esto se llama el tiempo de puesta en marcha. Para jugar de forma segura, debes ir por el tiempo máximo de inicio para que el reloj tenga todo el tiempo que necesita para alcanzar la velocidad. De hecho, ¡el tiempo máximo de inicio es de solo unos milisegundos! Así que para estar seguro, debes ir por un tiempo de inicio de 16K CK y un retraso adicional de 65ms.

Si está utilizando avrdude, es más útil usar la calculadora de fusibles AVR para los comandos de avrdude y el enlace es: enlace . Cualquier argumento se genera en la calculadora de fusibles AVR que debe copiar y pegar después de este argumento (si está usando un dispositivo USBASP con De lo contrario, debe utilizar los comandos de acuerdo con su dispositivo) ...

avrdude -c usbasp -p m168 

por ejemplo para su caso puede usar este comando ...

avrdude -c usbasp -p m168 -U lfuse:w:0xf7:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m 

En caso de cualquier problema con el efuse, puede omitir eso y escribir solo

avrdude -c usbasp -p m168 -U lfuse:w:0xf7:m -U hfuse:w:0xdf:m

Puede encontrar este tutorial útil .. enlace y también vaya a la sección Reloj de su micro- Hoja de datos del controlador.

Hazme saber si hay más dudas.

    
respondido por el Subhankar Ganguly

Lea otras preguntas en las etiquetas