Sunteți pe pagina 1din 4

Fusibles ATmega16

Cuando los fusibles son programados, el valor ledo es "0". En el caso especfico del ATmega16,
existen dos bytes para los fusibles conocidos como el byte alto y byte bajo de los fusibles.

Parte alta de los fusibles (Fuse High Byte)

Nombre No. de Bit Descripcin Valor por defecto


OCDEN 7 Habilitacin OCD 1 (OCD deshabilitado)
JTAGEN 6 Habilitacin JTAG 0 (JTAG deshabilitado)
SPIEN 5 Habilitacin de programacin serial SPI 0 (prog. SPI habilitado)
CKOPT 4 Opciones del oscilador 1
EESAVE 3 Los datos en la memoria EEPROM son 1 (EEPROM no
preservados cuando se borra el chip preservado)
BOOTSZ1 2 Seleccin del tamao del Bootloader 0
BOOTSZ0 1 Seleccin del tamao del Bootloader 0
BOOTRST 0 Seleccin del vector de reset 1

Parte baja de los fusibles (Fuse Low Byte)

Nombre No. de Bit Descripcin Valor por defecto


BODLEVEL 7 Nivel de deteccin bajo voltaje alim. 1
BODEN 6 Habilitacin detector bajo voltaje alim. 1 (BOD deshabilitado)
SUT1 5 Seleccin de tiempo de arranque 1
SUT0 4 Seleccin de tiempo de arranque 0
CKSEL3 3 Seleccin fuente de reloj 0
CKSEL2 2 Seleccin fuente de reloj 0
CKSEL1 1 Seleccin fuente de reloj 0
CKSEL0 0 Seleccin fuente de reloj 1

Fusibles

OCDEN: Este fusible habilita o deshabilita la depuracin On-Chip del microcontrolador.

JTAGEN: Este fusible habilita o deshabilita la interfaz JTAG que se encuentra en el Puerto C del
ATmega16. Es importante que cuando no se vaya a usar esta interfaz se garantice que este
deshabilitada para que haya un funcionamiento normal del Puerto C.

SPIEN: Este fusible habilita o deshabilita la programacin serial SPI. Si se esta usando este modo
de programacin, no es posible cambiar este bit.

CKOPT: Este fusible selecciona entre dos modos de amplificador del oscilador. Cuando esta
programado el reloj es mas inmune al ruido y se pueden manejar un rango amplio de frecuencias,
aunque con un consumo mayor de portencia.

EESAVE: La habilitacin de este fusible genera que los datos en la memoria EEPROM no sean
borrados cuando se realice una operacin de borrado del microcontrolador.
BOOTSZ1:0: Estos fusibles establecen el tamao del Bootloader.

Direccin de
Tamao Seccin de Seccin del Reset
BOOTSZ1 BOOTSZ0 del Pginas Aplicacin en Bootloader en (Inicio de la
Boot la Flash la flash seccin
del Bootlader
128
1 1 2 $0000 -$1F7F $1F80 -$1FFF $1F80
words
256
1 0 4 $0000 -$1EFF $1F00 -$1FFF $1F00
words
512
0 1 8 $0000 -$1DFF $1E00 -$1FFF $1E00
words
1024
0 0 16 $0000 -$1BFF $1C00 -$1FFF $1C00
words

BOOTRST: Cuando este fusible es programado, el dispositivo salta a la direccin de reset


asignada con los fusibles BOOTSZ1:0. Si no es programado, iniciara en la posicin cero.

BODLEVEL: Este fusible es usado para seleccionar entre los dos niveles de voltaje en el cual el
microcontrolador se reinicia cuando la alimentacin esta por debajo del nivel seleccionado. Sino
esta programado este fusible, el nivel de voltaje es de 2.7V y si esta programado el nivel de voltaje
es de 4.0V.

BODEN: Este fusible habilita la proteccin por bajo voltaje. Si este fusible es programado, el
microcontrolador se reiniciar de acuerdo al nivel seleccionado con el fusible BODLEVEL.

SUT1:0: Estos fusibles seleccionan entre diferentes retardos para el funcionamiento inicial del
dispositivo. El valor seleccionado depende del reloj seleccionado.

CKSEL3:0: Estos fusibles permiten seleccionar entre diferentes fuentes de reloj para el dispositivo.

Fuente de reloj CKSEL3:0


Resonador de cristal/cermico externo 1111-1010
Crsital externo de baja frecuencia 1001
Oscilador externo RC 1000-0101
Oscilador interno RC calibrado 0100-0001
Reloj externo 0000

Al seleccionar el resonador de cristal/cermico externo se pueden seleccionar diferentes retardos


de inicio, de acuerdo al valor asignado a los fusibles SUT1:0. Cuando se trabaja con el oscilador
externo RC se pueden alcanzar frecuencias hasta los 12MHz con un circuito RC. Y finalmente,
cuando se trabaja con el oscilador interno RC se pueden obtener frecuencias de 1, 2, 4 y 8 MHz
con los fusibles en "0001", "0010", "0011" y "0100" respectivamente.
.
Descripcin: SBIS realiza un test de un simple bit del registro de I/O y salta la siguiente
instruccin si el bit est a set. Est operacin funciona en los 32 registros de I/O ms bajos,
direcciones 0-31.

Ejemplo:

waitset: SBIS $10,0 ; Saltar la siguiente instruccin si el bit 0 en el


; Puerto D est a set
RJMP waitset ; Bit no set
NOP ; Continuar (No hacer nada)

Descripcin: SBIC realiza un test de un simple bit del registro de I/O y salta la siguiente
instruccin si el bit est borrado. Est operacin funciona en los 32 registros de I/O ms bajos,
direcciones 0-31.

Ejemplo:

e2wait: SBIC $1C,1 ; Saltar prxima instruccin si EEWE est borrado


RJMP e2wait ; Escritura de EEPROM no terminada
NOP ; Continuar (No hacer nada)
Descripcin: RETI realiza un retorno desde una interrupcin. La direccin de retorno es
cargada desde la pila y el flag de interrupcin global est a set. El registro de estado no se
guarda automticamente al entrar en una rutina de interrupcin, y no se restaura al volver de
una rutina de la interrupcin. Debe ser manejado por el programa de la aplicacin. El puntero de
pila usa un esquema de pre-incremento durante el RETI.

I: 1, el flag I est a set

Ejemplo:

...
extint: PUSH r0 ; Guardar r0 en la pila
...
POP r0 ; Restaurar r0
RETI ; Retorno y habilitacin de interrupciones

Descripcin: RET realiza un retorno de subrutina. La direccin de retorno es cargada de la pila.


El Stack Pointer (puntero de pila) utiliza durante el RET un esquema de post-decremento.

Ejemplo:

CALL routine ; Llamada a subrutina


...
routine: PUSH r14 ; Guardar r14 en la pila
...
POP r14 ; Restaurar r14
RET ; Retorno de subrutina
La diferencia entre RET y RETI es que RETI no se guarda automticamente mientras el RET si.
MCUCR = MCU Control Register. MCU a su vez significa Micro Controller Unit.

Aunque probablemente de este registro solo vayamos a usar el bit PUD, es bueno conocerlo
ahora aprovechando que hace referencia a muchas de las caractersticas del
microcontrolador que se estudiaron en este captulo. Ampliaremos la funcionalidad del bit
PUD en el captulo de entrada y salida generales y los bits IVSEL junto con IVCE sern
mejor expuestos en el captulo de interrupciones.

Registro MCUCR
MCUCR JTD BODS BODSE PUD --- --- IVSEL IVCE

ADCSRA: Control y registro de estado A

TCCR0 sirven para seleccionar la fuente para el temporizador, el temporizador se utiliza como un
contador de impulsos y obtiene los pulsos desde una fuente externa al chip AVR.

El ADMUX se utiliza para la seleccin del canal, ajuste y


Referencia.

S-ar putea să vă placă și