14 Fusibles Programables

38
[email protected] 1 BITS DE SEGURIDAD PARA LAS MEMORIAS Y BITS DE LOS FUSIBLES DE CONFIGURACIÓN DEL MICROCONTROLADOR Elaborado por: Ing. Jaime E. Velarde

description

Descripción de los bits programables de seguridad y de los fusibles en el ATmega16 y el ATmega164P

Transcript of 14 Fusibles Programables

Page 1: 14 Fusibles Programables

[email protected] 1

BITS DE SEGURIDAD PARA

LAS MEMORIAS Y BITS DE LOS

FUSIBLES DE

CONFIGURACIÓN DEL

MICROCONTROLADOR

Elaborado por: Ing. Jaime E. Velarde

Page 2: 14 Fusibles Programables

[email protected] 2

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

Page 3: 14 Fusibles Programables

[email protected] 3

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)

Page 4: 14 Fusibles Programables

[email protected] 4

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

Page 5: 14 Fusibles Programables

[email protected] 5

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

Page 6: 14 Fusibles Programables

[email protected] 6

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

Page 7: 14 Fusibles Programables

[email protected] 7

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

Page 8: 14 Fusibles Programables

[email protected] 8

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

Page 9: 14 Fusibles Programables

[email protected] 9

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)

Page 10: 14 Fusibles Programables

[email protected] 10

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

Page 11: 14 Fusibles Programables

[email protected] 11

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)

Page 12: 14 Fusibles Programables

[email protected] 12

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

Page 13: 14 Fusibles Programables

[email protected] 13

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)

Page 14: 14 Fusibles Programables

[email protected] 14

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

Page 15: 14 Fusibles Programables

[email protected] 15

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

Page 16: 14 Fusibles Programables

[email protected] 16

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

Page 17: 14 Fusibles Programables

[email protected] 17

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

Page 18: 14 Fusibles Programables

[email protected] 18

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)

Page 19: 14 Fusibles Programables

[email protected] 19

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

Page 20: 14 Fusibles Programables

[email protected] 20

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

Page 21: 14 Fusibles Programables

[email protected] 21

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

Page 22: 14 Fusibles Programables

[email protected] 22

GENERADOR EXTERNO

• CON TODOS LOS FUSIBLES CKSELPROGRAMADOS, EL DISPOSITIVO NECESITA UN GENERADOR EXTERNO CONECTADO A XTAL1

• EL RANGO ES DE 0 Y 20 MHz

Page 23: 14 Fusibles Programables

[email protected] 23

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

Page 24: 14 Fusibles Programables

[email protected] 24

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

Page 25: 14 Fusibles Programables

[email protected] 25

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

Page 26: 14 Fusibles Programables

[email protected] 26

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

Page 27: 14 Fusibles Programables

[email protected] 27

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

Page 28: 14 Fusibles Programables

[email protected] 28

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

Page 29: 14 Fusibles Programables

[email protected] 29

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

Page 30: 14 Fusibles Programables

[email protected] 30

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

Page 31: 14 Fusibles Programables

[email protected] 31

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

Page 32: 14 Fusibles Programables

[email protected] 32

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

Page 33: 14 Fusibles Programables

[email protected] 33

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

Page 34: 14 Fusibles Programables

[email protected] 34

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

Page 35: 14 Fusibles Programables

[email protected] 35

DESHABILITAR EL JTAG EN EL

PROGISP

Page 36: 14 Fusibles Programables

[email protected] 36

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

Page 37: 14 Fusibles Programables

[email protected] 37

HABILITAR PARA CRISTALES DE

PLENO FUNCIONAMIENTO

Page 38: 14 Fusibles Programables

[email protected] 38

PARA NO CAMBIAR LA

CONFIGURACIÓN