Paso 4: Fusible de selección para el ATTiny 2313A
La primera tarea de la programación consiste en establecer los bits de fusibles que proporcionan las características de la MCU como la fuente de reloj divisor del reloj. En el principio de proyectos más, tendrá que decidir sobre la conveniencia de utilizar la fuente de reloj interno o utilizar un cristal externo con los dos condensadores de 22pf. El oscilador interno, reduce el número de piezas pero proporciona sincronización pobre exactitud de 3% - 10% ya calibrado en fábrica para aplicaciones de baja precisión de sincronización; sin embargo, el oscilador interno puede ser calibrado a 1% como se describe en Atmel aplicación Nota #AVR053 [16,17]. El oscilador interno no generalmente sería conveniente para los puertos serie USART. Para Blinky y la cuerda, el reloj no necesita ser exacta pero queremos que el número de piezas mínimo. Así que vamos a utilizar el reloj interno de 8MHz.
Completar los pasos anteriores, conecte la batería al prototipo a bordo del experimentador y conectar el programador y el cable del adaptador para el USB (si no ya todo conectado). Las ' Herramientas > Programación del dispositivo ' diálogo debe estar abierto. En el menú del lado izquierdo, seleccione la ficha de fusible.
Cuidado con lo que haces!! Pueden matar a algunos ajustes del fusible (es decir, ladrillo) el MCU. A veces el fusible reseteable por construcción o compra de programadores de alto voltaje (12V) como se explica en Inicio #5. Compruebe o desmarque los elementos fusible según la siguiente lista y luego cierre el cuadro de diálogo programación de dispositivo. Guarde y cierre la solución. Nota: La solución completa se pueden guardar haciendo clic en el icono con varios discos en la barra de herramientas o bien utilice Archivo > guardar todo.
Tabla 1: Configuración de fusibles y funciones
Nombre de fusible | Estado | Descripción |
SELFPRGEN | SIN VERIFICACIÓN DE | Similar a SPM – ¡ no tocar! |
DWEN | SIN VERIFICACIÓN DE | Depuración de alambre permiten – no toque! Permite que la interfaz del DebugWire utiliza el pin de Reset y reemplaza la interfaz SPI. Un JTAG simplificado. |
EESAVE | SIN VERIFICACIÓN DE | EEProm guardar: Impide que la EEProm borrado durante un evento de borrado MCU. |
SPIEN | COMPROBADO | Interfaz de programación serial activar – no toque! Esto debe estar habilitado para poder utilizar el programador de Atmel (o compatible). Desmarque y el MCU no será programable! |
WDTON | SIN VERIFICACIÓN DE | Temporizador de reloj perro: un temporizador independiente para desbloquear el MCU, en el caso de la MCU deja de funcionar correctamente. El temporizador del WD cuenta cero y reiniciar el MCU a menos que el temporizador del WD se restablece primero por el programa. |
BODLEVEL | CON DISCAPACIDAD | Brown a nivel de detección: El MCU controla la tensión de alimentación y entra en modo reset para evitar la operación impredecible cuando la tensión de alimentación cae por debajo del valor indicado. Para la operación de 5V, se utilizaría el 4V3 = 4.3 voltios |
RSTDSBL | SIN VERIFICACIÓN DE | RESET desactivar – ¡ no tocar! Si está habilitado, el pin de reset ya no restablecerá el MCU. El programador debe ser capaz de usar el pin de reset; por lo tanto si está habilitado, no puede programarse el MCU! |
CKDIV8 | SIN VERIFICACIÓN DE | Reloj de dividir por 8: la tarifa de reloj se reduce por un factor de 8. |
CKOUT
SIN VERIFICACIÓN DE
Reloj hacia fuera: Envía la señal de reloj a pin 6 en el ATTiny 2313A MCU
SUT_CKSEL
INTRCOSC_8MHz_
14CK_0MS
Configuración del temporizador y reloj selección (a.k.a CKSEL)
La fuente de reloj será el oscilador interno a 8MHz. El MCU demora a partir de 14 ciclos de reloj y 0 milisegundos en orden para la fuente de reloj estabilizar.
Algunas notas sobre fusibles:
Configure sus fusibles como se indica en la tabla 1 ya que han probado estos valores. Problemas con elegir la configuración incorrecta de CKSEL y CKDIV8 son los resuelto por la cuerda pero que no está construido todavía. El SUT_CKSEL ofrece una variedad de fuentes de reloj pero los detalles de cada uno pueden variar de uno al siguiente tipo de MCU. Generalmente, Atmel microcontroladores soportan cuatro categorías de fuentes de reloj [18,19].
Oscilador externo: Un cristal con dos condensadores de 22pF. Este es el reloj más preciso. El cristal será denotado a menudo por XAL, XTAL o X. Los cristales para Atmel AVR microcontroladores gama generalmente hasta 20MHz.
Reloj externo: Un módulo que produce la señal de reloj. Generalmente contiene un cristal junto con otros componentes para la regulación de precisión.
Interior RC (a.k.a., oscilador interno): utiliza un resistor y condensador incluidos en el MCU para sincronización. Mientras que el RC interno representa la configuración posible más simple que no requiere de partes externas, tiene precisión de calibrado en la fábrica pobre de 3 a 10%.
RC externo: Utiliza un condensador externo de sincronización.
El fusible ATTiny 2313A SUT_CKSEL tiene opciones por
INTRCOSC xMHz
La INTRCOSC se refiere al reloj RC interno suministrado por Atmel y el x en xMHz se puede seleccionar como 4 o 8 (etc). Vamos a utilizar la configuración de 8MHz.
EXTXOSC xMHz-yMHz
La EXTXOSC se refiere a un oscilador de cristal (a.k.a., oscilador externo) y debe seleccionar el rango xMHz-yMHz que incluye la frecuencia del cristal real en el circuito. La velocidad de Atmel MCU puede ser de 20MHz, pero la velocidad máxima depende de la tensión aplicada a la MCU, consulte las especificaciones en la primera página o dos del manual [1].
EXTCLK
La opción EXTCLK se refiere a un módulo de reloj confeccionado conveniente para producir un reloj para el Atmel MCU. El módulo tendría que tienen frecuencia y voltaje de salida compatibles.
Algunas opciones tienen sufijo opciones tales como 14CK_64MS. Estos se refieren al número de ciclos y milisegundos retardo de reloj hasta que el procesador comienza en orden para la fuente de reloj estabilizar. Mayoría de los asesores sugiere usar la demora más larga posible, aunque algunas parecen interferir con la ejecución del programa.
Como se mencionó, la tasa de reloj máximas utilizables para una MCU depende de la fuente de voltaje aplicada entre Vcc y tierr (pines 20 y 10, respectivamente de ATTiny2313A). La primera página del manual del usuario [1] eso MCU muestra la lista de categoría de velocidad:
Tabla 2: Grados de velocidad
0 – 4 MHz @ 1.8-5.5V
0 – 10 MHz @ 2.7-5.5V
0 – 20 MHz @ 4.5-5.5V
La línea de vida, por ejemplo en el inicio del #5, usa tres pilas AA que pueden tener tensión total 3 a 4.9. Las especificaciones muestran que el ATTiny2313A puede operar hasta 10MHz para este rango de voltaje. Así, ya que vamos a mantener la tensión en el rango de 2.7-5.5V y planea usar el oscilador interno, seleccione el valor de 'INTRCOSC_8MHz' para el fusible SUT_CLKSEL. En previsión de la construcción de la línea de vida, elegir la entrada con el sufijo de 14CK_0MS. Finalizada la cuerda salvavidas, las varias otras opciones del reloj para un MCU de repuesto pueden ser juzgadas sin preocuparse por hacer eso MCU nonprogrammable.
Otros microcontroladores de Atmel tiene otras opciones de SUT_CKSEL. Por ejemplo, ofrece el ATMega328 (popular para Arduino)
EXTCLK-módulo de reloj externo:
Un módulo que produce la señal de reloj. Generalmente contiene un cristal junto con otros componentes para la regulación de precisión.
INTRCOSC – oscilador interno RC
Utiliza un resistor y condensador incluidos en el MCU para sincronización – exactitud pobre.
EXTLOFXTAL-cristal exterior baja frecuencia
El MCU puede utilizar un cristal de reloj funcionando a 32,768 kHz.
EXTFSXTAL – apogeo exterior cristal
El circuito cristalino produce la oscilación de voltaje máxima amplitud para la fuente de voltaje aplica de MCU. Este modo puede utilizarse para alimentar otros componentes que requieran el reloj pero requiere más energía que el modo EXTXOSC.
EXTXOSC: oscilador de cristal externo
El EXTXOSC utiliza la energía mínima y representa el modo preferido de operación.
Sobre el fusible BODLEVEL, mayoría microcontroladores Atmel como la ATTiny2313A tienen marrón a detección (el chip entrará en modo de reinicio cuando el voltaje cae por debajo de un nivel). Normalmente, para la operación de 5V, el BODLEVEL sería 4v3 = 4.3V para impedir que el MCU actuando erráticamente cuando el voltaje cae por debajo de 4.3V. En particular, observe las especificaciones de la ATTiny2313A en el manual [1]. Mira los voltajes de funcionamiento (consulte la tabla 2 anterior). Se ejecutará el oscilador interno 8MHz. El chip puede funcionar a ese ritmo para cualquier voltaje entre 2,7 y 5.5V. Para la línea de vida, nuestras baterías AA 3 producirá mínimo voltaje de 3V (esencialmente muerto) a aproximadamente 4.9V (nuevo). No necesitamos el BODLEVEL.