* Pepe
Sagitrón Jornadas MMIV / 4-FLASH / 1 de 24
© 2002 Microchip Technology Incorporated. All Rights Reserved.
FLASH y MICROCHIP
• Microchip ha estado suministrando memorias
EEPROM durante muchos años.
– Actualmente se fabrican mas de 1 millón de piezas diarias.
– La difusión se realiza en fábricas propias.
• Microchip es un líder de microcontroladores
de 8 bits en OTP (EPROM).
• Microchip suministra microcontroladores con
memoria FLASH desde 1993 (PIC16C84).
Sagitrón Jornadas MMIV / 4-FLASH / 2
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Porqué FLASH
• Diseño más flexible y amigable.
• Menor coste de dispositivos de desarrollo.
• Desarrollo con dispositivos de producción
incluyendo encapsulados SMD reusables.
• Menores tiempos de borrado.
• Depuración sobre el circuito de aplicación.
• Menor inventario.
• Grabación y reprogramación en circuito.
• Autoverificación, ajuste y calibración.
• Códigos de identificación y serialización.
• Reducción de costes de actualización.
Sagitrón Jornadas MMIV / 4-FLASH / 3
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Tecnología de memoria no volátil
• La memoria EEPROM actual es de 4ª generación.
– La célula tiene 2 transistores FLOTOX Fowler-Nordheim
Tunneling para borrado y escritura.
– Se fabrica con tecnología CMOS de 0,9 µm y 0,7 µm.
– 80Å de grosor del óxido del tunel dieléctrico.
• La 5ª generación utiliza una célula con un único
transistor canal-P.
–
–
–
–
–
Más pequeña que la FLOTOX.
Menor tensión de programación.
Mayor fiabilidad.
Se fabrica con tecnología CMOS de 0,5 µm.
80Å de grosor del tunel como anteriormente.
Sagitrón Jornadas MMIV / 4-FLASH / 4
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16C77
PIC16F77
SSP
0.5µm
Sagitrón Jornadas MMIV / 4-FLASH / 5
0.9µm
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F877
PIC16F877A
0.5µm
0.7µm
Sagitrón Jornadas MMIV / 4-FLASH / 6
© 2002 Microchip Technology Incorporated. All Rights Reserved.
La nueva célula FLASH
• Un único transistor por celda.
• Area similar al de la célula ROM.
• Permite el diseño de microcontroladores con
tamaños de memoria entre 1K y 128K Bytes.
• Proceso compatible con EEPROM de datos.
• La tecnología de 0.5 µm minimiza el area utilizada
con la consiguiente reducción de costes de
producción.
• Posibilidad de reducción de escala para futuros
procesos.
Sagitrón Jornadas MMIV / 4-FLASH / 7
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Programación
• Célula no volátil de
4ª generación.
– Tecnología de 0.7 µm
– Programación por palabras
– 8 ms por ciclo.
Tec
0.9
0.7
0.5
0.5
0.5
0.5
0.5
Device
PIC16C77
PIC16F877
PIC16F77
PIC16F877A
PIC18F452
PIC18F872
PIC18FXXX
Bl. Borrado
- - - - 1 Palabra
Completo
1 Palabra
64 Bytes
64 Bytes
64 Bytes
Sagitrón Jornadas MMIV / 4-FLASH / 8
• Célula no volátil de
5ª generación.
– Tecnología de 0.5 µm.
– Programación por bloques.
– 1ms / 2ms por ciclo.
Prog. Exter.
~2ms/ 1 Pal.
8ms/ 1 Pal.
1ms/ 2 Pal.
1ms/ 8 Pal.
1ms/16 Pal.
1ms/2x64 B.
1ms/2x64xMod.
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Prog. Inter.
- - - - 8ms/1 Pal.
- - - - 2ms/1 Pal.
2ms/8 Bytes
2ms/8 Bytes
2ms/8 Bytes
Comparación OTP, FLASH, EFLASH
OTP
FLASH
Enhanced
FLASH
Tensión de
funcionamiento
2.5-5.5
2.0-5.5
2.0-5.5
Datos EEPROM
No
No
Si
Tensión de
programación
12.5-13.5 Externo 12.5-13.5 Externo
5 V Vdd
5 V Vdd
Entire
Vdd Range
Método de
programación
ICSP
ICSP
ICSP
Auto
programación
No
No
Si
Depuracíón ICD
No
No
Si
100 us
1 ms
1 ms
-----
--100 Programa
100K Datos
1K Programa
Pulso de
programación
Ciclos E/W
Sagitrón Jornadas MMIV / 4-FLASH / 9
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Modos de programación de EFLASH
 Modo “High Voltage ICSPTM ”.
–
–
–
–
Se alimenta VDD con 5 voltios.
La tensión de programación (13V) se aplica al pin MCLR/VPP.
Los pines RB6 y RB7 se utilizan para CLK y DATA.
El procedimiento es similar al de muchos otros PICmicro®.
 Modo “Low Voltage ICSPTM ”.
– Se aplican 5V a los pines VDD y MCLR/VPP.
– Se utiliza el pin RB3/PGM para entrar en modo programación.
– Los pines RB6 y RB7 se utilizan para CLK y DATA.
 Modo “Self Program”.
– La ejecución de la aplicación, bajo las condiciones de operación
(2.0V to 5.5 V), permite grabar en la memoria de programa un
nuevo contenido.
Sagitrón Jornadas MMIV / 4-FLASH / 10
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Modo “High Voltage ICSPTM ” . . .
•
•
•
•
•
Inicialmente VDD y MCLR/VPP estarán a 0 Vcc.
Se alimenta poniendo +5 Vcc en VDD.
Se sube MCLR/VPP a la tensión de programación +13Vcc.
EL PIC entra en el modo “High Voltage ICSPTM”.
Los pines RB6 y RB7 se utilizan como reloj y datos para los
comandos de programación serie.
• Se pueden realizar todas las operaciones de programación y
configuración.
• Sólamente en este modo es posible programar el bit LVP a
‘0’. En este caso el pin RB3/PGM estará disponible como una
entrada/salida normal.
• El modo “High Voltage ICSPTM” se puede utilizar siempre,
independientemente del estado del bit LVP.
Sagitrón Jornadas MMIV / 4-FLASH / 11
© 2002 Microchip Technology Incorporated. All Rights Reserved.
. . . Modo “High Voltage ICSPTM ”
PIC16F87X
RB6
CLK
RB7
DATA
+5V
5V
VDD
VDD
13V
VPP
VSS
MCLR
Modo HV ICSP™
Sagitrón Jornadas MMIV / 4-FLASH / 12
© 2002 Microchip Technology Incorporated. All Rights Reserved.
Modo “Self Program”
• La ejecución normal de la aplicación permite:
– Leer el contenido de la memoria de programa.
– Escribir palabras siempre que esté habilitada la escritura.
• Aplicaciones:
–
–
–
–
–
Reprogramación remota de secciones de la aplicación.
Revisiones de código y actualización de versiones.
Programas de test y ajuste en línea de producción.
Verificación de integridad del programa (Checksums).
Almacenamiento de datos, parámetros y constantes de
calibración en memoria de programa (14/16-bits).
• Librerías:
– Downloader Tech. Brief: TB025.
– Memory Checksum Tech. Brief: TB026.
– Bootloader Application Note: AN732
Sagitrón Jornadas MMIV / 4-FLASH / 13
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X EEPROM & FLASH . . .
• EEADR (0x10D)
– Contiene la dirección de los datos en EEPROM.
– Contiene los 8 LSbs de la dirección de la memoria de
programa FLASH.
• EEADRH (0x10F)
– Se usa exclusivamente para contener los 5 MSbs de la
dirección de la memoria de programa FLASH.
• EEDATA (0x10C)
– Contiene el byte de datos desde/hacia la EEPROM.
– Contiene los 8 LSbs de datos desde/hacia la memoria de
programa FLASH.
• EEDATH (0x10E)
– Contiene los 6 MSbs de datos desde/hacia la memoria de
programa FLASH.
Sagitrón Jornadas MMIV / 4-FLASH / 14
© 2002 Microchip Technology Incorporated. All Rights Reserved.
. . . PIC16F87X EEPROM & FLASH
• EECON1 (0x18C)
– Es el registro de los indicadores y permisos.
• EECON2 (0x18D)
– Es un registro inexistente, se lee siempre 0´s.
– Se utiliza exclusivamente para la secuencia del comando
de escritura (escribiendo primero 0x55 y luego 0xAA).
• Grabación
– El proceso es completamente automático.
– Se utiliza el oscilador interno RC como reloj motor de la
secuencia.
– El éxito de la operación no está garantizado, por lo que es
imperativa la verificación mediante un ciclo de lectura.
Sagitrón Jornadas MMIV / 4-FLASH / 15
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X EEPROM & FLASH
Diagrama
S. F. R.
EEADRH
EEADR
8
13
FLASH Program
Memory
8K X 14
14
8
EEDATH EEDATA
EECON1
EECON2
Sagitrón Jornadas MMIV / 4-FLASH / 16
© 2002 Microchip Technology Incorporated. All Rights Reserved.
256 X 8
Data
EEPROM
Memory
PIC16F87X Lectura EEPROM
• Se escribe la dirección que se desea leer en el
registro EEADR.
• Se borra (0) el bit EEPGD (EECON1<7>) para
seleccionar la memoria de datos EEPROM.
• Se pone (1) el bit RD (EECON1<0>).
• El dato estará disponible en el registro EEDATA
en la siguiente instrucción.
Sagitrón Jornadas MMIV / 4-FLASH / 17
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X Programa para
lectura EEPROM
.
.
BSF
BCF
MOVF
MOVWF
STATUS,RP1
STATUS,RP0
ADDRESS,W
EEADR
Sagitrón Jornadas MMIV / 4-FLASH / 18
BSF
BCF
BSF
BCF
MOVF
MOVWF
© 2002 Microchip Technology Incorporated. All Rights Reserved.
STATUS,RP0
EECON1,EEPGD
EECON1,RD
STATUS,RP0
EEDATA,W
VALUE
PIC16F87X Escritura EEPROM
• Escribir la dirección en EEADR.
• Escribir el dato deseado en EEDATA.
• Se borra (0) el bit EEPGD (EECON1<7>) para seleccionar la
memoria de datos EEPROM.
• El bit WREN (EECON1<2>) debe de estar a 1.
• Deshabilitar todas las interrupciones.
• Escribir 0x55 seguido de 0xAA en EECON2.
• Poner el bit WR (EECON1<1>) a 1.
• Se borra (0) el bit WREN para impedir escrituras espúreas.
• Se pueden rehabilitar las interrupciones.
• Cuando el proceso automático de grabación termine, lo
indicará borrando el bit WR (EECON<1>) y poniendo el bit
EEIF a 1.
Sagitrón Jornadas MMIV / 4-FLASH / 19
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X Programa para
escritura EEPROM
.
.
BSF
BCF
MOVF
MOVWF
MOVF
MOVWF
STATUS,RP1
STATUS,RP0
ADDRESS,W
EEADR
VALUE,W
EEDATA
Sagitrón Jornadas MMIV / 4-FLASH / 20
BSF
BCF
BSF
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BSF
BCF
© 2002 Microchip Technology Incorporated. All Rights Reserved.
STATUS,RP0
EECON1,EEPGD
EECON1,WREN
INTCON,GIE
0x55
EECON2
0xAA
EECON2
EECON1,WR
INTCON,GIE
EECON1,WREN
PIC16F87X Lectura FLASH
• Escribir los 8 LSbs de la dirección deseada en
EEADR.
• Escribir los 5 MSbs de la dirección deseada en
EEADRH.
• Se pone (1) el bit EEPGD (EECON1<7>) para
acceder a la memoria de programa FLASH.
• Se pone (1) el bit RD (EECON1<0>).
• Las dos instrucciones siguientes deberán ser
NOPs.
• Los 14 bit estarán disponibles en los registros
EEDATH:EEDATA trás los dos NOPs.
Sagitrón Jornadas MMIV / 4-FLASH / 21
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X Programa para
lectura FLASH
.
.
BSF
BCF
MOVF
MOVWF
MOVF
MOVWF
STATUS,RP1
STATUS,RP0
ADDR_H,W
EEADRH
ADDR_L,W
EEADR
Sagitrón Jornadas MMIV / 4-FLASH / 22
BSF
BSF
BSF
NOP
NOP
BCF
MOVF
MOVWF
MOVF
MOVWF
© 2002 Microchip Technology Incorporated. All Rights Reserved.
STATUS,RP0
EECON1,EEPGD
EECON1,RD
STATUS,RP0
EEDATA,W
DATA_L
EEDATH,W
DATA_H
PIC16F87X Escritura FLASH
• Escribir la dirección deseada en EEADRH:EEADR.
• Escribir los datos en EEDATAH:EEDATA.
• Se pone (1) el bit EEPGD (EECON1<7>) para acceder a la
memoria de programa FLASH.
• El bit WREN (EECON1<2>) debe de estar a 1.
• Deshabilitar todas las interrupciones.
• Escribir 0x55 seguido de 0xAA en EECON2.
• Poner el bit WR (EECON1<1>) a 1.
• Las dos instrucciones siguientes deberán ser NOPs.
• La CPU entra en HALT mientras se graba la memoria FLASH.
El oscilador principal continuará oscilando y los periféricos
funcionarán de forma autónoma.
• Cuando la grabación termine, se reanudará la ejecución del
programa con la siguiente instrucción trás los dos NOPs.
Sagitrón Jornadas MMIV / 4-FLASH / 23
© 2002 Microchip Technology Incorporated. All Rights Reserved.
PIC16F87X Programa para
escritura FLASH
.
.
BSF
BCF
MOVF
MOVWF
MOVF
MOVWF
MOVF
MOVWF
MOVF
MOVWF
STATUS,RP1
STATUS,RP0
ADDR_H,W
EEADRH
ADDR_L,W
EEADR
DATA_H,W
EEDATH
DATA_L,W
EEDATA
Sagitrón Jornadas MMIV / 4-FLASH / 24
BSF
BSF
BSF
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
NOP
NOP
BSF
BCF
© 2002 Microchip Technology Incorporated. All Rights Reserved.
STATUS,RP0
EECON1,EEPGD
EECON1,WREN
INTCON,GIE
0x55
EECON2
0xAA
EECON2
EECON1,WR
INTCON,GIE
EECON1,WREN
Descargar

PICmicro FLASH - digsys.upc.edu