Paso 3: ¿Cómo programar los fusibles?
Antes de comenzar, tenemos que mirar los bits del fusible del Atmega8 y valor inicial de ellos. Desde im haciendo de este instructable de móvil, hice una tabla que contiene los detalles necesarios. He creado usando google app android de hoja. No pude encontrar una manera de convertir a los cuadros. Así que aquí estoy publicar el enlace.Bits del fusible del Atmega 8 (el uno im usando en este tutorial)
https://docs.Google.com/Spreadsheets/d/1haE2Sprdsa-NgKYsOQlwI99WHfGqCItJutG4h-MnOus/Edit?USP=docslist_api
Ahora pasemos a los detalles de cómo programar los bits del fusible en su AVR dependiendo del programador particular que utiliza. Al principio debemos consultar el manual del programador de los detalles. Por ejemplo, si está usando un STK600 con AVR Studio, la ventana de STK600 dispone de una ficha con la etiqueta de fusibles, donde establece los bits diferentes y donde se puede programar, verificar o leer los bits del fusible.
(Estoy usando un Atmega 8 para mi ejemplo. Sobre todo utilizar Atmega 8 ya que es barato y contiene memoria suficiente para la mayoría de mis proyectos).
Mayoría de las personas tiene confusión con respecto a este tema. Para decirlo muy simplemente, hay sólo dos tipos de fusibles, fusible de alta (hfuse) y bajo fusible (LFusible), algunos microcontroladores tienen un byte de fusible adicional conocido como fusible extendido (efuse).
Viene la parte más confusa. El estado no programado de un poco de fusible es lógica alta o 1, programación cualquier fusible poco va a cambiar su nivel a lógica bajo o 0.
"Una excepción sólo tener en cuenta es - el fusible bits relacionadas para arrancar cargador no son accesibles desde el software, pero estos se pueden acceder en modo de programación usando /serial paralelo herramienta de programación."
Como se describe en el cuadro anterior, se muestra el fusible junto con su valor y el número de bits. Algunas funciones de los fusibles mencionados son:-
(Yo usé un Atmega 8 hoja de datos para el diagrama que he publicado).
Byte alto de fusible (hfuse)
1) primer bit es BOOTRST que es sin programar por defecto (1). Si este bit está programada (0) luego después de haber encendido o dispositivo restablecerla inicia programa de ejecución de la sección de memoria del gestor de arranque. Simplemente, si se utiliza un Bootloader para flash MCU, este bit debe estar habilitada. Si simplemente cargar el firmware mediante programador ISP, deje este bit sin tocar.
BOOTSZ0 y BOOTSZ1 también son importantes si se utiliza el gestor de arranque. Estos bits permite seleccionar el tamaño de sección cargador de arranque.
2) bit siguiente es EESAVE. Si este fusible está programado (por escrito 0) memoria EEPROM permanece intacta durante el procedimiento de borrar Chip. A veces este fusible puede ser útil. Por ejemplo si guarda algunos datos importantes en la memoria EEPROM como calibración valores y necesita actualizar el programa sin perder datos, luego programe este bit. Pero si desea siempre tener chip limpio después de borrar, y deja sin tocar este bit (valor 1).
3) bit WDTON se utiliza para establecer inicialmente el temporizador de vigilancia. Si usted este programa su temporizador de vigilancia tendrá que estar siempre encendido y mantener reajuste chip periódicamente si ningún cuidado especial. Si no hay necesidad de vigilancia, luego dejarlo unprogammed.
4) SPIEN bit se utiliza para desactivar el modo de programación serie ISP. Realmente no es posible desactivar este bit de modo serial. Tiene que hacerse a través de programación de alto voltaje.
5) situación mismo es poco RSTDSBL. Se utiliza para deshabilitar la funcionalidad de restablecimiento que convierte RESET pin en a I/O. En general no es recomendable. Y no se puede desactivar cuando el dispositivo está programado en modo ISP.
6) CKOPT bit se utiliza para seleccionar opciones del oscilador.
Fusibles baja (LFusible)
Permite mira byte bajo de fusibles.
1) un grupo de cuatro bits similares CKSEL0 a CKSEL3 que se utilizan para seleccionar opciones de sincronización. Por defecto que fusible CKSEL0 a CKSEL3 están establecidas para seleccionar el oscilador interno 8MHz RC. Pero sabemos que AVRs pueden registrados en las más diversas maneras:
* Calibrar el oscilador interno RC (por defecto 8MHz)
* Oscilador RC externo
* Exterior cristal o resonador de cristal de
* Cristal de baja frecuencia externo
* Fuente de la señal de reloj externo
He explicado sobre el SUT (Inicio tiempo) en el siguiente paso.
Escribo sobre cómo calcular estos valores en nuestro propio, más adelante en este instructable.
2) BODEN o marrón un poco de habilitar detección permite marrón a detección. Brown out detección generalmente está desactivado (1). Programación este bit bajo la enanbles de (0) marrón a detección. La razón de esta característica es que cuando la tensión de alimentación es inferior a la tensión requerida por el microcontrolador, empieza a comportarse erráticamente. Se puede iniciar el borrado de su memoria o pueden ejecutar secciones al azar de su flash. Para evitar esto, se ha proporcionado marrón característica de detección. Una vez la fuente de voltaje se hace más bajo que el nivel DBO, el chip se cambiará de forma segura. Cuando la tensión de alimentación otra vez vuelve a la normalidad, el chip comienza de nuevo.
BODLEVEL - con este bit podemos fijar el Brown Out detección nivel. Por ejemplo - si el microcontrolador funciona a 3,3 voltios, podemos fijar el Brown Out detección nivel 2,7 voltios, por lo que si la tensión de alimentación se convierte en inferior a esto entonces el microcontrolador cerrará con seguridad.
Una característica interesante tener en cuenta aquí es, otros Microcontroladores AVR como Atmega 32 tienen algunos fusibles diferentes como en el byte alto fusible tienen OCDEN y JTAGEN y en Atmega 328p allí DWEN etc..
Pido disculpas por las imágenes de baja calidad porque estoy haciendo este instructable desde mi android.