Paso 6: Resumen.
El paso anterior puede parecer confusa y fuera de orden, pero este paso le dará una imagen clara de todo el proceso.¿Así que realmente queremos hacerlo?
Contamos con un microcontrolador (aquí Atmega 8). Funciona en la frecuencia de defecto se entrega con. Queremos ejecutarlo en cristal externo de 16Mhz.
¿Qué hacer exactamente? Sólo ver y cambiar los valores de bit de fusible. No debemos olvidar que 1 significa no programada y 0 programado.
Ahora, el chip está sentado con su configuración predeterminada fusible bytes.
¿En primer lugar tenemos que decidir, cómo ejecutar el microcontrolador? Por simplicidad, permite tomar que sólo tenemos tres opciones externas cristal, resonador externo u oscilador interno.
Nos dimos cuenta que cristal oscilador es un sourceand de mantenimiento de tiempo confiable no importa gastar un poco de dos condensadores de 22pf. Nuestra elección está claro ahora, que queremos ejecutar el chip avr con un cristal externo.
¿Pero donde consigo las opciones para hacer la opción de oscilador de cristal externo?
Las opciones están disponibles en CKSEL3 a CKSEL0 en el byte bajo fusible.
Miró hacia arriba de la tabla en la hoja de datos del microcontrolador y descubrió que hay un resonador de cermaic llamado opción u oscilador de crytal. Sin duda queremos, así que tomamos nota de los valores de bit de CKSEL3-CKSEL0 asociado.
Hmm, pero allí es una gama de valores para, 1111-1010. ¿Que uno tome específicamente? ¿Y cómo especificar la frecuencia del oscilador del cristal? Obviamente hay muchas frecuencias disponibles para cristales, queremos ejecutar sólo en 16Mhz.
Para esto, buscamos en otra mesa, que contiene la frecuencia y el intervalo recomendado de capacitores para ser utilizado con ellos.
En esta tabla, se encuentra que 16Mhz es mayor que 1 Mhz por lo que elegimos esa opción. El valor que se asoció con CKOPT para nuestra elección es 0 y junto con eso, elegimos 111 para los valores de CKSEL3-CKSEL1.
Ahora estamos seguros de que estamos corriendo el chip avr con una lámpara externa de 16Mhz.
Acabo de leer un instructivo sobre el bits del fusible y habló de algunas cosas de tiempo que la lámpara necesita para calentar y empezar a dar señales de relaible de inicio.
¿Cómo la encontramos?
Encontramos otra vez en una mesa en el mismo instructivo. Esta tabla contiene ahora CKSEL0 valor y valor SUT1 y SUT0. Elegimos la opción de arranque en vez de 65 milisegundos y así nuestros valores de bit correspondiente son CKSEL0 -1, SUT1 - 1, SUT0 - 1.
Así completamos con éxito eligiendo el conjunto de fusibles baja bytes.
Inicialmente el valor de byte de fusible alta fue-
RSTDISBL-1 DE 7)
6) WDTON - 1
SPIEN 5)-0
CKOPT 4) -1
EESAVE 3) -1
2) BOOTSZ1-0
1) BOOTSZ0-0
BOOTRST 0) -1
Ahora tenemos que cambiar al-
7) RSTDISBL -1
6) WDTON -1
SPIEN 5)-0
CKOPT 4)-0
EESAVE 3) -1
2) BOOTSZ1-0
1) BOOTSZ0-0
BOOTRST 0) -1
Es binario en 11001001 o C9 en hexadecimal. Estamos solamente cambiando la CKOPT de 1 a 0, dejando a otros intactos.
Ahora bien, para el byte bajo fusible, inicialmente fue-
BODLEVEL 7) -1
6) BODEN -1
SUT1 5) -1
4) SUT0-0
3) CKSEL3-0
2) CKSEL2-0
1) CKSEL1-0
CKSEL0 0) -1
Estamos cambiando a-
BODLEVEL 7) -1
6) BODEN -1
SUT1 5) -1
4) SUT0 -1
3) CKSEL3 -1
2) CKSEL2 -1
1) CKSEL1 -1
CKSEL0 0) -1
Es 11111111 en binario o FF en hexadecimal.
Ahora ya hemos terminado haciendo evrything, sólo tenemos que quemar estos nuevos ajustes en el microcontrolador.
Utilizando sintaxis de avrdude, debe-
AVRDUDE - c usbasp -p m8 - U lfuse:w:0b11111111:m - U hfuse:w:0b11001001:m
Pero es mejor escribir esto en hexadecimal, como-
AVRDUDE - c usbasp -p m8 - U lfuse:w:0xff:m - U hfuse:w:0xC9:m
El valor predeterminado valores de oscilador interno de 1Mhz Atmega8 fue-
AVRDUDE -p atmega8 - c usbasp - U lfuse:w:0xE1:m - U hfuse:w:0xD9:m
Finalmente, el procedimiento total termina aquí. Aunque esto no explica completamente sobre fusibles y cómo programarlos, esto sin duda da una idea aproximada para principiantes en qué son los fusibles y cómo deben ser manejados.
DIY-ción feliz :)