Professional Documents
Culture Documents
A lo que llama ATMEL como fusibles o fuses son aquellas localidades a las que se puede acceder
para determinar ciertas caractersticas del microcontrolador, p.e:
Proteger el cdigo
Habilitar el WatchDog
Habilitar el modo de programacin
Habilitar si se va ha trabajar con cristal externo, oscilador, etc.
Antes de comenzar es preciso especificar los dos fusibles que existen Hfuse y Lfuse (High Fuse y
Low Fuse). Los cuales encontramos en las hojas de datos de cada dispositivo. En la seccin
Memory Programmin, hay dos tablas que especifican los bits de Hfuse y Lfuse, que pueden
variar entre un dispositivo y otro.
Algunos Softwares no piden el valor de Hfuse y Lfuse, en lugar de ello piden directamente el valor
de cada bit por lo que se muestran aqu los valores.
Nota: Un CERO indica que el bit esta habilitado, un UNO indica que el bit esta deshabilitado (lgica
inversa), para las casillas el CERO es y el UNO es . Y las tablas mostradas tienen los valores de
fbrica de cada dispositivo.
Los bits destacados en amarillo no es recomendable alterarlos y mas adelante se explica porque.
Para el caso del ATMEGA48,
ATMEGA88 y ATMEGA138
Bit
LowFuse
No
HighFuse
CHKDIV8
RSTDISBL
BODLEVEL
RSTDISBL/S85xxC
CKOUT
DWEN
BODEN
WDTON
SUT1
SPIEN
SUT1
SPIEN
SUT0
WDTON
SUT0
CKOPT
CKSEL3
EESAVE
CKSEL3
EESAVE
CKSEL2
BODLEVEL2
CKSEL2
BOOTSZ1
CKSEL1
BODLEVEL1
CKSEL1
BOOTSZ0
CKSEL0
BODLEVEL0
CKSEL0
BOOTRST
HFuse=0xDF
LFuse=0x62
HFuse=0xD9
LFuse=0xE1
Ntese que algunos bits de cada tabla varan, a continuacin se explican todos los bits en general
para las dos tablas. Las tablas para otro componente de la familia AVR se encuentran en sus hojas
de datos.
Pgina 1
Pgina 2
Siempre es importante modificar el BODLEVEL al voltaje que mas convenga y sobretodo cuando
se este utilizando la EEPROM interna.
En la siguiente tabla se muestran los valores para modificar los bits de BODLEVEL.
BODLEVEL 2:0 Fuses
111
110
101
100
011
010
001
000
Min VBOT
Typ VBOT
1.7
2.5
4.1
1.8
2.7
4.3
Max VBOT
Units
BOD Disabled
2.0
2.9
4.5
Reserved
De la tabla anterior vemos que si estamos trabajando con 5V, nos conviene poner los valores de
los bits as: BODLEVEL2=1, BODLEVEL1=0, BODLEVEL0=0. Esto significa que habr un RESET cuando
el voltaje caiga por debajo de los 4.3V.
Los bits BOOTSZ1=0 y BOOTSZ0=0 (solo para el ATMEGA8, ATMEGA8515 y ATMEGA8535),
seleccionan el tamao del BOOTLOADER, de la siguiente tabla.
BOOT
SZ1
BOOT
SZ0
Boot
Size
128
Words
256
Words
512
Words
1024
Words
Pages
4
8
16
32
Applic.
Flash
Section
0x0000xF7F
0x0000xEFF
0x0000xDFF
0x0000xBFF
Boot Loader
Flash
Section
End
Applic.
Section
0xF80-0xFFF
0xF7F
0xF80
0xF00-0xFFF
0xEFF
0xF00
0xE00-0xFFF
0xDFF
0xE00
0xC00-0xFFF
0xBFF
0xC00
Los valores de fbrica para estos bits son los que determinan el Boot Size ms grande, en la ltima
columna se muestra la direccin del RESET en caso de que BOOTRST estuviera activado.
Con esta tabla finaliza la programacin de los bits de Hfuse.
Pgina 3
CKSEL3..0
1111 1010
1001
External RC Oscillator
1000 0101
0100 0001
External Clock
0000
Pgina 4
De la tabla anterior se obtiene que para utilizar un cristal oscilador el valor de CKSEL3:0 debe ser
de 1111 1010, el ms apropiado lo encontramos en otra tabla.
CKOPT
CKSEL3:1
Frecuency Range
(MHz)
101
0.4 0.9
110
0.9 3.0
12 22
111
3.0 8.0
12 22
101,110,111
1.0 16.0
12 22
El ltimo valor de la tabla es el que muestra en rango mas amplio de frecuencia para trabajar con
cristal oscilador, adems nos da el valor de CKOPT de Hfuse. Ahora este dato nos ofrece tres
posibles valores para CKSEL3:1. Solo falta el valor de CKSEL0, STU1 y STU0, estos valores estn en
la siguiente tabla.
CKSEL0 STU1:0
Additional Delay
from Reset
(VCC = 5.0V)
00
258 CK
4.1 ms
01
258 CK
65 ms
10
1K CK
11
1K CK
4.1 ms
00
1K Ck
65 ms
01
16K CK
10
16K CK
4.1 ms
11
16K CK
65 ms
Recommended Usage
Ceramic resonator, fast rising power
Ceramic resonator, slowly rising
power
Ceramic resonator, BOD enabled
Ceramic resonator, fast rising power
Ceramic resonator, slowly rising
power
Crystal Oscillator, BOD enabled
Crystal Oscillator, fast rising power
Crystal Oscillator, slowly rising
power
Finalmente los tres ltimos valores de la tabla nos indican el valor de CKSEL0 y STU1:0,
dependiendo si tenemos el BOD habilitado o si queremos un Fast Rising Power o Slow Rising
Power.
Pgina 5
Ejemplo: Supongamos que tenemos una aplicacin en donde se utilizara un ATMEGA8535, con un
cristal externo de 16MHZ, con una fuente que tarda en alcanzar los 5V, y no nos interesa lo que
este almacenado en la memoria EEPROM.
HFuse
S8535C
WDTON
SPIEN
CKOPT
EESAVE
BOOTSZ1
BOOTSZ0
BOOTRST
C9
LFuse
BODLEVEL
BODEN
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
CKSEL0
FD
Ejemplo: Supongamos que tenemos una aplicacin en donde se utilizara un ATMEGA48, con un
cristal externo de 16MHZ sin divisin interna, queremos activar el RESET por bajo voltaje, no nos
interesa lo que este almacenado en la memoria EEPROM y no necesitamos sacar la seal de reloj
para sincronizar con otro dispositivo.
HFuse
RSTDISBL
DWEN
SPIEN
WDTON
EESAVE
BODLEVEL2
BODLEVEL1
BODLEVEL0
C9
LFuse
CKDIV8
CKOUT
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
CKSEL0
DD
Pgina 6