14 fusibles programables
DESCRIPTION
Descripción de los bits programables de seguridad y de los fusibles en el ATmega16 y el ATmega164PTRANSCRIPT
BITS DE SEGURIDAD PARA
LAS MEMORIAS Y BITS DE LOS
FUSIBLES DE
CONFIGURACIÓN DEL
MICROCONTROLADOR
Elaborado por: Ing. Jaime E. Velarde
SEGURIDAD DE LAS MEMORIAS
FLASH Y EEPROM
• LOS ATmega164P POSEEN 6 BITS DE SEGURIDAD QUE PROTEGE A LAS MEMORIAS. SU CONFIGURACIÓN ES: SIN PROGRAMAR = 1 LÓGICO PROGRAMADOS = 0 LÓGICO
• VIENEN DESDE LA FÁBRICA SIN PROGRAMAR (TODOS EN 1 LÓGICO)
• TAMBIÉN QUEDAN SIN PROGRAMAR CUANDO SE ENVÍA EL COMANDO DE BORRAR AL CIRCUITO INTEGRADO
BYTE DE SEGURIDAD
BIT Nº DESCRIPCIÓNVALOR POR
DEFECTO
7 - 1 (sin programar)
6 - 1 (sin programar)
BLB12 5 BOOT LOCK BIT 1 (sin programar)
BLB11 4 BOOT LOCK BIT 1 (sin programar)
BLB02 3 BOOT LOCK BIT 1 (sin programar)
BLB01 2 BOOT LOCK BIT 1 (sin programar)
LB2 1 LOCK BIT 1 (sin programar)
LB1 0 LOCK BIT 1 (sin programar)
MODOS DE SEGURIDAD
MODO LB2 LB1 TIPO DE PROTECCIÓN
1 1 1Sin habilitar la protección de las
memorias FLASH y EEPROM
2 1 0
Deshabilita futuras programaciones de
la FLASH y la EEPROM, enforma
Paralela o Serial (SPI y JTAG). Los bits
de los Fusibles son asegurados en
ambos modos
3 0 0Igual al anterior y también se
deshabilita la verificación (lectura)
Los bits de los Fusibles se programan antes que los de Seguridad
SECCIONES DE LA FLASH
• LA MEMORIA DEL PROGRAMA SE DIVIDE EN DOS SECCIONES :
• LA PARTE BAJA PARA EL CÓDIGO DE LA APLICACIÓN, ESTÁ PROTEGIDA POR LOS BITS BLB01 y BL02
• LA PARTE ALTA PARA EL CÓDIGO DEL BOOT LOADER, ESTÁ PROTEGIDA POR LOS BITS BLB11 y BL12
SEGURIDAD DE LA
APLICACIÓNMODO BLB02 BLB01 TIPO DE PROTECCIÓN
1 1 1
Sin restricciones en las instrucciones
SPM o LPM, para el acceso a la sección
de la Aplicación
2 1 0SPM no está permitida para escribir en
la sección de la Aplicación
3 0 0 Igual a los Modos 2 y 4 juntos
4 0 1
LPM ejecutada en el Boot Loader, no
está permitida para leer desde la
sección de la Aplicación. Si un vector
de interrupción es puesto en la sección
del Boot Loader, la interrupción está
deshabilitada mientras se ejecuta
desde la sección de la Aplicación
SEGURIDAD DEL BOOT
LOADERMODO BLB12 BLB11 TIPO DE PROTECCIÓN
1 1 1
Sin restricciones en las instrucciones
SPM o LPM, para el acceso a la sección
del Boot Loader
2 1 0SPM no está permitida para escribir en
la sección del Boot Loader
3 0 0 Igual a los Modos 2 y 4 juntos
4 0 1
LPM ejecutada en la Aplicación, no
está permitida para leer desde la
sección del Boot Loader. Si un vector
de interrupción es puesto en la sección
de la Aplicación, la interrupción está
deshabilitada mientras se ejecuta
desde la sección del Boot Loader
FUSIBLES DE CONFIGURACIÓN
• LOS ATmega164P TIENEN 3 BYTES DE FUSIBLES PARA CONFIGURAR SU FUNCIONAMIENTO
• CUANDO ESTÁN EN “0” LÓGICO SIGNIFICA QUE ESTÁN PROGRAMADOS
• VIENEN PROGRAMADOS DE LA SIGUIENTE FORMA:
BYTE DESDE LA FÁBRICA
EXTENDIDO 111111111
ALTO 10011001
BAJO 01100010
BYTE EXTENDIDO
BIT Nº DESCRIPCIÓNVALOR POR
DEFECTO
7 - 1 (sin programar)
6 - 1 (sin programar)
5 - 1 (sin programar)
4 - 1 (sin programar)
3 - 1 (sin programar)
BODLEVEL2 2 Nivel de disparo de Brown-out 1 (sin programar)
BODLEVEL1 1 Nivel de disparo de Brown-out 1 (sin programar)
BODLEVEL0 0 Nivel de disparo de Brown-out 1 (sin programar)
DETECTOR DE BROWN-OUT
• LOS ATmega164P POSEE UN CIRCUITO PARA MONITOREAR EL NIVEL DE Vcc Y COMPARARLO CON UN VALOR FIJO (BROWN-OUT DETECTOR)
• LOS BITS BODLEVEL2..0 ESCOGEN EL NIVEL DE DISPARO SEGÚN LA SIGUIENTE TABLA:
BODLEVEL2..0 NIVEL DE DISPARO
111 DESHABILITADO
110 1.8V
101 2.7V
100 4.3V
BYTE ALTO
BIT Nº DESCRIPCIÓNVALOR POR
DEFECTO
OCDEN 7 Habilitación del OCD 1 (sin programar)
JTAGEN 6 Habilitación del JTAG 0 (programado)
SPIEN 5Habilitación de la programación y
descarga de datos serie (SPI)0 (programado)
WDON 4 Watchdog siempre encendido 1 (sin programar)
EESAVE 3Preserva a la EEPROM en el
Borrado del circuito integrado1 (sin programar)
BOOTSZ1 2 Selección del tamaño del BOOT 0 (programado)
BOOTSZ2 1 Selección del tamaño del BOOT 0 (programado)
BOOTRST 0 Selección del vector del Reset 1 (sin programar)
HABILITACIÓN DEL
INTERFACE JTAG
• OCDEN HABILITA EL SISTEMA DE DEPURACIÓN DENTRO DEL MISMO CIRCUITO INTEGRADO, MEDIANTE EL INTERFACE JTAG
• JTAGEN HABILITA LAS LÍNEAS DEL PÓRTICO DE ACCESO A PRUEBAS (TAP) CONSTITUIDO POR 4 LÍNEAS DEL PÓRTICO C (PC2 … PC5)
• ESTE INTERFACE TAMBIÉN PERMITE PROGRAMAR LAS MEMORIAS
HABILITACIÓN DE LA
PROGRAMACIÓN SPI
• SPIEN HABILITA EL SISTEMA DE PROGRAMACIÓN CON EL INTERFACE SERIAL A PERIFÉRICOS (SPI), MANTENIENDO EL RESET EN BAJO
• LAS LÍNEAS DEL SPI SON: MOSIENTRADA, MISO SALIDA Y SCK RELOJ DEL INTERFACE, QUE CORRESPONDEN A 3 LÍNEAS DEL PÓRTICO B (PB5, PB6 y PB7)
ENCENDIDO DEL WATCHDOG
• WDON HABILITA AL TEMPORIZADOR WATCHDOG, QUE GENERA AUTOMÁTICAMENTE EL RESETCUANDO SE HA DESBORDADO
• MEDIANTE EL REGISTRO DE CONTROL DEL WATCHDOG SE CONFIGURA AL TEMPORIZADOR PARA PRODUCIR EL RESET ENTRE 16 mseg Y 8 seg
PRESERVAR LA EEPROM
• EESAVE EVITA QUE LA EEPROMPIERDA LA INFORMACIÓN QUE TIENE ALMACENADA CUANDO SE EJECUTA EL COMANDO DE BORRADO DEL CIRCUITO INTEGRADO
• PERO CUANDO SE DESEA PROGRAMAR LA EEPROM JUNTO CON LA FLASH ESTE BIT DEBE ESTAR SIN PROGRAMAR
TAMAÑO DEL BOOT
BOOTSZ TAMAÑOPÁGI-
NAS
SECCIÓN DE LA
APLICACIÓN
SECCIÓN DEL
BOOT LOADER
11128
palabras2 0x0000 .. 0x1F7F 0x1F80 .. 0x1FFF
10256
palabras4 0x0000 .. 0x1EFF 0x1F00 .. 0x1FFF
01512
palabras8 0x0000 .. 0x1DFF 0x1E00 .. 0x1FFF
001024
palabras16 0x0000 .. 0x1BFF 0x1C00 .. 0x1FFF
SELECCIÓN DEL VECTOR DEL
RESET
• BOOTRST PERMITE ESCOGER QUE EL VECTOR DE RESET NO SE ENCUENTRE EN LA SECCIÓN DE LA APLICACIÓN SINO EN LA DEL BOOTLOADER
• LOS OTROS VECTORES DE INTERRUPCIÓN TAMBIÉN PUEDEN SER MOVIDOS DE LA SECCIÓN DE LA APLICACIÓN A LA DEL BOOT LOADERCON EL BIT IVSEL DEL REG. MCUCR
BYTE BAJO
BIT Nº DESCRIPCIÓNVALOR POR
DEFECTO
CKDIV 7 División del Reloj para 8 0 (programado)
CKOUT 6 Habilita la salida del Reloj 1 (sin programar)
SUT1 5 Selección del tiempo de arranque 1 (sin programar)
SUT0 4 Selección del tiempo de arranque 0 (programado)
CKSEL3 3 Selección de la fuente del Reloj 0 (programado)
CKSEL2 2 Selección de la fuente del Reloj 0 (programado)
CKSEL1 1 Selección de la fuente del Reloj 1 (sin programar)
CKSEL0 0 Selección de la fuente del Reloj 0 (programado)
DIVISIÓN PARA 8 DEL RELOJ
• CKDIV CUANDO ESTE BIT ESTÁ PROGRAMADO EL RELOJ DEL MICROCONTROLADOR ESTÁ DIVIDIDO PARA 8. CUANDO NO ESTÁ PROGRAMADO EL RELOJ ES EL QUE SE HA ESCOGIDO
• EL TIPO DE RELOJ CON EL QUE TRABAJA EL MICROCONTROLADORSE CONFIGURA CON LOS BITS CKSEL3…0
HABILITACIÓN DE LA SALIDA
DEL RELOJ
• CKOUT MEDIANTE ESTE BIT SE PERMITE LA SALIDA DEL RELOJ POR EL TERMINAL PB1
• CON ESTA OPCIÓN SE PUEDE UTILIZAR AL RELOJ DEL MICROCONTROLADOR PARA CONTROLAR OTROS CIRCUITOS EXTERNOS
OPCIONES DE SELECCIÓN DEL
RELOJCKSEL3 … 0 OPCIÓN
0000 Generador externo
0001 Reservado
0010 Oscilador RC interno calibrado
0011 Oscilador RC interno de 128 KHz
0100 – 0101 Oscilador a Cristal de baja frecuencia
0110 – 0111Oscilador a Cristal de pleno
funcionamiento
1000 … 1111 Oscilador a Cristal de baja potencia
GENERADOR EXTERNO
• CON TODOS LOS FUSIBLES CKSELPROGRAMADOS, EL DISPOSITIVO NECESITA UN GENERADOR EXTERNO CONECTADO A XTAL1
• EL RANGO ES DE 0 Y 20 MHz
TIEMPOS DE ARRANQUE CON
GENERADOR EXTERNO
SUT1..0
TIEMPO DE
ARRANQUE
DESDE POWER-
DOWN Y POWER-
SAVE
RETARDO
ADICIONAL
DESPUÉS
DEL RESET
(Vcc = 5V)
USO
RECOMENDADO
00 6 pulsos 14 pulsosCon detector de
Brown-out habilitado
01 6 pulsos14 pulsos +
4.1 ms
Fuente de subida
rápida
10 6 pulsos14 pulsos +
65 ms
Fuente de subida
lenta
11 Reservado
OSCILADOR RC INTERNO
• ES DE APROXIMADAMENTE 8 MHz, DEPENDE DEL VOLTAJE DE POLARIZACIÓN Y DE LA TEMPERATURA
• LOS TIEMPOS DE ARRANQUE SON IGUALES A LA OPCIÓN ANTERIOR
OSCILADOR INTERNO DE
128KHz
• ESTE OSCILADOR ES DE BAJA POTENCIA, NOMINALMENTE CON POLARIZACIÓN DE 3 V Y A UNA TEMPERATURA DE 25ºC
• LOS TIEMPOS DE ARRANQUE TAMBIÉN SON IGUALES A LAS OPCIONES ANTERIORES
• SE UTILIZA EN APLICACIONES DONDE NO SE NECESITA PRECISIÓN
CRISTAL EXTERNO
• XTAL1 y XTAL2 SON ENTRADA Y SALIDA DEL AMPLIFICADOR INVERSOR USADO COMO OSCILADOR INTERNO
• SE PUEDE USAR UN CRISTAL DE CUARZO O UN RESONADOR CERÁMICO
• EL VALOR DE C1 Y C2 DEPENDE DEL ELEMENTO USADO
CRISTALES DE BAJA
POTENCIA
• NO SE PUEDE PROPORCIONAR LA SEÑAL
A OTRAS ENTRADAS Y ES MUY
SUSCEPTIBLE AL RUIDO
CKSEL3..1 FRECUENCIA EN MHz CONDENSADORES EN pf
100 0.4 … 0.9 -
101 0.9 … 3.0 12 … 22
110 3.0 … 8.0 12 … 22
111 8.0 … 16.0 12 … 22
La primera opción no es usada con Cristales, sino con Resonadores Cerámicos
ARRANQUE CON CRISTALES
DE BAJA POTENCIA CKSEL0 = 0
SUT1..0
TIEMPO DE
ARRANQUE
DESDE POWER-
DOWN Y POWER-
SAVE
RETARDO
ADICIONAL
DESPUÉS
DEL RESET
(Vcc = 5V)
USO
RECOMENDADO
00 258 pulsos14 pulsos +
4.1 ms
Resonador y fuente
de subida rápida
01 258 pulsos14 pulsos +
65 ms
Resonador y fuente
de subida lenta
10 1000 pulsos 14 pulsosResonador y detector
BOD habilitado
11 1000 pulsos14 pulsos +
4.1 ms
Resonador y fuente
de subida rápida
ARRANQUE CON CRISTALES
DE BAJA POTENCIA CKSEL0 = 1
SUT1..0
TIEMPO DE
ARRANQUE
DESDE POWER-
DOWN Y POWER-
SAVE
RETARDO
ADICIONAL
DESPUÉS
DEL RESET
(Vcc = 5V)
USO
RECOMENDADO
00 1000 pulsos14 pulsos +
65 ms
Resonador y fuente
de subida lenta
01 16000 pulsos 14 pulsosCristal y BOD
habilitado
10 16000 pulsos14 pulsos +
4.1 ms
Cristal y fuente de
subida rápida
11 16000 pulsos14 pulsos +
65 ms
Cristal y fuente de
subida lenta
CRISTALES DE PLENO
FUNCIONAMIENTO
• PARA CIRCUITOS QUE NECESITAN
MANEJAR OTRAS ENTRADAS DE RELOJ
Y EN AMBIENTES RUIDOSOS
• OPERA CON POLARIZACIONES DE 2,7 A
5,5 VOLTIOS
• ARRANQUE IGUAL A LOS CRISTALES DE
BAJA POTENCIA
CKSEL3..1FRECUENCIA EN
MHz
CONDENSADORES
EN pf
011 0.4 … 20 12 … 22
CRISTALES DE BAJA
FRECUENCIA
• EL OSCILADOR SE OPTIMIZA AL UTILIZAR CRISTALES DE 32.768 KHz, CON LOS SE CONSTRUYEN LOS RELOJES DE PULSERA
• EL CIRCUITO ES IGUAL AL DE LOS DEMÁS CRISTALES
• SI LAS CARACTERÍSTICAS DEL CRISTAL INDICA QUE PROVEE UNA CARGA DE 8pF, NO SE NECESITA CONECTAR CONDENSADORES EXTERNOS
ARRANQUE CON CRISTALES DE
BAJA POTENCIA CKSEL0 = 0
SUT1..0
TIEMPO DE
ARRANQUE
DESDE POWER-
DOWN Y POWER-
SAVE
RETARDO
ADICIONAL
DESPUÉS
DEL RESET
(Vcc = 5V)
USO
RECOMENDADO
00 1000 pulsos 14 pulsosCristal y BOD
habilitado
01 1000 pulsos14 pulsos +
4.1 ms
Cristal y fuente de
subida rapida
10 1000 pulsos14 pulsos +
65 ms
Cristal y fuente de
subida lenta
11 Reservado
ARRANQUE CON CRISTALES DE
BAJA POTENCIA CKSEL0 = 1
SUT1..0
TIEMPO DE
ARRANQUE
DESDE POWER-
DOWN Y POWER-
SAVE
RETARDO
ADICIONAL
DESPUÉS
DEL RESET
(Vcc = 5V)
USO
RECOMENDADO
00 32000 pulsos 14 pulsosCristal y BOD
habilitado
01 32000 pulsos14 pulsos +
4.1 ms
Cristal y fuente de
subida rapida
10 32000 pulsos14 pulsos +
65 ms
Cristal y fuente de
subida lenta
11 Reservado
FUSIBLES PARA USAR EL
OSCILADOR INTERNO Y LA
PROGRAMACIÓN POR SPI
• LOS BITS EN ROJO ESTABLECEN 1 MHz COMO EL
OSCILADOR INTERNO, SON LOS VALORES QUE
VIENEN DE FÁBRICA
• EL BIT EN AZUL DESHABILITAN JTAG, SE DEBEN
CAMBIAR AL VALOR QUE VIENEN DE LA FÁBRICA
BYTE ATmega164P
EXTENDIDO 11111111
ALTO 11011001
BAJO 01100010
FUSIBLES PARA USAR UN
CRISTAL EXTERNO Y LA
PROGRAMACIÓN POR SPI
• LOS BITS EN ROJO SIRVEN PARA CRISTALES DE
HASTA 20 MHz. SE DEBEN CAMBIAR LOS VALORES
QUE VIENEN DE LA FÁBRICA
• EL BIT EN AZUL DESHABILITAN JTAG, SE DEBEN
CAMBIAR AL VALOR QUE VIENEN DE LA FÁBRICA
BYTE ATmega164P
EXTENDIDO 11111111
ALTO 11011001
BAJO 11100110