Grabador GAL22V10

April 28, 2017 | Author: Ariel Anza | Category: N/A
Share Embed Donate


Short Description

Descripción: diseño de un grabador para el PLD GAL22V10...

Description

UNIVERSIDAD MAYOR DE SAN ANDRES FACULTAD DE INGENIERA CARRERA DE INGENIERIA ELECTRONICA

GRABADOR USB PARA DISPOSITIVO DE LOGICA PROGRAMABLE GAL22V10 ARIEL AUGUSTO ANZA MORALES GESTION 2015

ARIEL AUGUSTO ANZA MORALES

1

1 HARDWARE 1.1 ESTRUCTURA DEL GRABADOR DE PLD GAL22V10 Inicialmente se planteó el desarrollo de un grabador para el SPLD GAL22V10. Lo que implica el uso de una interfaz entre la PC y el grabador, siendo este último compuesto por un microcontrolador que posea la capacidad de comunicación USB y una interfaz con el PLD figura 3.1. Este último debe contar con la electrónica necesaria para habilitar el estado de programación del PLD.

GRABADOR CIRCUITO INTERFAZ DE GRABACION

PLD GAL22V10

uC microcontrolador

INTERFAZ USB

Figura 3.1 diagrama principal del grabador ETN-AI (Fuente: Elaboración propia).

Una vez que el microcontrolador establezca la comunicación con la PC, para el proceso de grabación, se debe contar con la respectiva interfaz de grabación del PLD. El diagrama de bloques de dicho circuito se muestra en la figura 3.2 el circuito debe contar con un elevador de tensión que incremente el voltaje de alimentación USB a los valores requeridos por el PLD. Un circuito que habilite dicho voltaje y las respectivas líneas de control y comunicación que dispone el PLD para la habilitación de su estado de programación.

CIRCUITO INTERFAZ DE GRABACION VPP

PLD

ELEVADOR DE TENSIÓN (VPP) HABILITADOR VPP

PWM

uC

LINEA DE COMUNICACIÓN Y CONTROL

Figura 3.2 Estructura interna del circuito de interfaz de grabación entre uC y PLD (Fuente: Elaboración propia).

ARIEL AUGUSTO ANZA MORALES

2

1.2 CIRCUITO ELEVADOR DE TENSION El circuito elevador de tensión dispone de un convertidor cc-cc y una etapa de regulación como se aprecia en la figura 3.3.

ELEVADOR DE TENSION (VPP) REGULADOR DE TENSION

CONVERTIDOR CC-CC

Figura 3.3 Elevador de tensión VPP (fuente: elaboración propia).

1.3 CONVERTIDOR CC-CC Este tipo de convertidor, también denominado como boost o step-up figura 3.4, es utilizado cuando se desea un aumento de la tensión de salida (VDD) con relación a la tensión de alimentación (entrada VCC). La conmutación constante entre la zona de saturación y corte del transistor de Q1 (BC548) hace que la bobina L1 (680 uH) se cargue y posteriormente se descargue sobre el capacitor C1 (4.7 uF). La polaridad de la tensión de salida es la misma que la de entrada. El ruido generado a la entrada es bajo debido a que la inductancia L1 está directamente conectada a la tensión de alimentación manteniendo así la variación de corriente de entrada.

Figura 3.4 Circuito elevador de tensión (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

3

EL transistor Q1 trabaja en zona de corte y saturación, haciendo que la bobina L1 conduzca una corriente IL figura 3.5a en zona de saturación, que es conducida hacia el capacitor C1 para cargarlo, cuando el transistor Q1 se pone en zona de corte figura 3.5b.

Figura 3.5 zona de saturación (izquierda) y corte (derecha) del circuito elevador de tensión (fuente: elaboración propia).

1.4 CIRCUITO REGULADOR DE TENSIÓN Como el circuito de elevador de tensión (figura 3.4) puede proporcionar una tensión con moderado nivel de ruido y rizado, se opta por acoplar un el circuito de regulación paralelo con diodo zener D3 (1N4742) de 12V figura 3.6. Que es el valor de tensión requerido (VPP) para habilitar el estado de programación en el l PLD.

Figura 3.6 regulador paralelo con diodo zener (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

4

1.5 CIRCUITO HABILITACIÓN VPP Este circuito está compuesto de un par de transistores complementarios Q2 (BC548) y Q3 (BC558) figura 3.7, que cumplen la función de conectar o desconectar la salida VPP del circuito regulador hacia el pin de control EDIT_GAL del PLD.

Figura 3.7 Circuito habilitador voltaje de programación VPP (fuente: elaboración propia).

La etapa final del circuito se muestra en la figura 3.8 donde se puede apreciar que el circuito elevador de tensión requiere de dos líneas de control PWM y EDIT_GAL_EN.

Figura 3.8 Circuito generador tensión de programación (fuente: elaboración propia).

El circuito contempla el uso del modulador PWM1 del PIC18F2550 para el circuito elevador de tensión y una salida digital EDIT_GAL_EN para la habilitación de VPP hacia el pin de programación de la GAL (EDIT_GAL). ARIEL AUGUSTO ANZA MORALES

5

En la figura 3.9 se dispuso una entrada opcional de tensión externa VCC_EXT y una derivación de tensión VADC mediante un divisor de tensión paralelo al diodo zener, que hará la función de realimentación para lectura ADC hacia el microcontrolador, esto último para el control de la salida del circuito regulador. Las modificaciones adicionales se muestran en la figura 3.9 el jumper JMP1 habilita la salida VPP del regulador o la entrada VCC_EXT mientras que el jumper JMP2 habilita el divisor de tensión para VADC o el diodo zener D3 de regulación.

Figura 3.9 Circuito elevador de tensión expandido (fuente: elaboración propia).

1.6 INTERFAZ GRABADOR-PC La interfaz del grabador con la PC se realiza mediante el uso del microcontrolador PIC18F2550, en cuya arquitectura se cuenta con un módulo USB para la comunicación mediante este bus.

Figura 3.10 Microcontrolador PIC18F2550 con conexión USB (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

6

La descripción de los pines del PLD (tabla 3.1) para el proceso grabación y funcionamiento normal. Son las mismas asignaciones que muestra en la figura 3.10 del lado del microcontrolador y en la figura 3.11 del lado del PLD.

1 2 3 4 5 6 7 8 9 10 11 12

GRABACIÓN VCC EDIT P/¬V COM0 COM1 COM2 COM3 COM4 COM5 SCLK DIN DOUT GND ¬STR

24 23 22 21 20 19 18 17 16 15 14 13

1 2 3 4 5 6 7 8 9 10 11 12

FUNCIONAMIENTO IO/CLK VCC I1 IO0 I2 IO1 I3 IO2 I4 IO3 I5 IO4 I6 IO5 I7 IO6 I8 IO7 I9 IO8 I10 IO9 GND I11

24 23 22 21 20 19 18 17 16 15 14 13

Tabla 3.1 Descripción pines GAL22V10 en estados de grabación y funcionamiento (fuente: elaboración propia).

Figura 3.11 Disposición de pines grabador ETN-AI lado del PLD (fuente: elaboración propia).

En la figura 3.11 se aprecia el LED1 que cumple la función de señalización, indicando que el grabador ha sido correctamente inicializado y se encuentra en estado de encendido (LED-

ARIEL AUGUSTO ANZA MORALES

7

ON), similar función cumple el LED2 que indica que el estado de grabación del PLD está en ejecución (LED-PROG). Los paquetes resistencias RP1 y RP2 de 1KΩ que se muestran en la figura 3.11 derivan a tierra los pines del PLD para evitar valores lógicos erróneos en el proceso de grabación. La descripción de la función que cumplen los pines del PLD en estado de grabación se muestra en la tabla 3.2 EDIT P/¬V COM[0:5] SCLK DIN DOUT ¬STR

12V (VPP) para colocar el PLD en estado de grabación 0=estado de lectura; 1=estado de escritura Direccionamiento de línea de fusibles Clock serial Dato de entrada serial Dato de salida serial Entrada pulso de grabación

Tabla 3.2 Función de los pines en estado de programación (fuente: elaboración propia).

1.7 DISEÑO PCB DEL GRABADOR ETN-AI Una vez realizado el diseño esquemático del circuito de grabación, se puede migrar el mismo hacia su diseño en PCB, mediante el software PROTEUS 8 cuyo modulo ISIS está orientado al diseño esquemático de circuitos. Su módulo ARES tiene el fin del desarrollo de PCB´s de los circuitos diseñados en el módulo ISIS. Siendo esta una gran ventaja a la hora del diseño de circuitos electrónicos que contemplen la parte de simulación e implementación en tarjeta de circuito impreso. Las figuras 3.12 a la 3.16 muestran el proceso de diseño PCB del grabador ETN-AI.

Figura 3.12 Toma de medidas para el dimensionamiento de la placa (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

8

Figura 3.13 Dimensionamiento y localización de los componentes (fuente: elaboración propia).

Figura 3.14 Asignación de reglas de conectividad de componentes (fuente: elaboración propia).

Figura 3.15 Inicio de conexión de componentes en placa (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

9

Figura 3.16 Conexión de componentes en el grabador finalizado (fuente: elaboración propia).

1.8 MONTAJE DEL GRABADOR ETN-AI Desde la figura 3.17 hasta figura 3.28 se muestra el procedimiento que se siguió para el montaje final del grabador ETN-AI para el PLD GAL22V10.

Figura 3.17 Corte de placa base (fuente: elaboración propia).

Figura 3.18 impresión del negativo a ser transferido (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

10

Figura 3.19 Transferencia del diseño a la placa base (fuente: elaboración propia).

Figura 3.20 Ataque químico para la revelación de las pistas (fuente: elaboración propia).

Figura 3.21 Perforado de placa (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

11

Figura 3.22 Transferencia de diseño de componentes (fuente: elaboración propia).

Figura 3.23 Componentes y placa finalizada para soldadura (fuente: elaboración propia).

Figura 3.24 Corte de caja para el montaje de la placa (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

12

Figura 3.25 placa inferior finalizada (fuente: elaboración propia).

Figura 3.26 placa superior finalizada (fuente: elaboración propia).

Figura 3.27 Ensamblado del grabador ETN-AI (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

13

2 FIRMWARE 2.1 DISEÑO DE CIRCUITOS DIGITALES ASISTIDO POR COMPUTADORA Para que sea útil, la lógica programable debe permitir combinar componentes tanto hardware como software en una misma unidad funcional. Todos los fabricantes de dispositivos SPLD, CPLD y FPGA proporcionan soporte software para cada dispositivo hardware. Estos paquetes de software se encuentran dentro una categoría de software que se conoce con el nombre de CAD (Computer Aided Design, Diseño Asistido por Computadora). Especificación formal -Diagrama de bloque -Tabla de verdad -Funciona lógicas -Circuito

ARCHIVO FUENTE DESCRIPCIÓN UTILIZANDO HDL

COMPILACION

MAL EDICION DE ARCHIVO FUENTE

SIMULACION

BIEN

ARCHIVO JEDEC

PC

GRABADOR

Figura 4.1 Procedimiento para diseño de circuitos digitales asistido por computadora (fuente: elaboración propia).

Los CADs propuestos para el diseño de circuitos digitales en el PLD GAL22V10 son: WINCULP ® del empresa ATMEL y Warp® Release 6.3 de CYPRESS, este último posibilita la descripción de los circuitos digitales en lenguaje VHDL, que es el lenguaje de descripción de hardware que se está implementando en la cátedra de sistemas digitales.

ARIEL AUGUSTO ANZA MORALES

14

2.2 DESCRIPCIÓN FUSIBLES GAL22V10 En el proceso de grabación de los fusibles de un PLD, se requiere conocer la distribución de los mismos, tal como se muestra en la figura 4.2.

Figura 4.2 Diagrama lógico/Mapa de fusibles JEDEC de una GAL22V10 (fuente: Datasheet GAL22V10). ARIEL AUGUSTO ANZA MORALES

15

Como se puede apreciar en la figura anterior, la distribución de los fusibles está conformada en una arreglo matricial cuyas filas corresponden a las conexiones a compuertas AND y columnas son la totalidad de entradas y salidas tanto la entrada directa como la negada. Las columnas del mapa de fusibles, contempla la existencia de:    

12 entradas directas. 12 entradas negadas. 10 entradas (macroceldas) de realimentación directas. 10 entradas (macroceldas) de realimentación negadas.

2 2 46 90 ….. ….. ….. ….. 3610 3654 3698 ….. ….. ….. ….. ….. ….. ….. 5678 5722 5766

COLUMNAS DE INTERCONEXION ….. 41 42 43 44 ….. 41 42 43 5808 ….. 85 86 87 5809 ….. 129 130 131 5810 ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. 5825 ….. ….. ….. ….. 5826 ….. 3649 3650 3651 5827 ….. 3693 3694 3695 5828 ….. 3737 3738 3739 5829 ….. ….. ….. ….. 5830 ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. 5889 ….. ….. ….. ….. 5890 ….. ….. ….. ….. 5891 ….. ….. ….. ….. XXXX ….. 5717 5718 5719 XXXX ….. 5761 5762 5763 XXXX ….. 5805 5806 5807 XXXX

58 b0 b1 b2 ….. b3 b4 ….. ….. ….. ….. b77 ….. b78 b79 0 0 ….. 0 0 0

PES (80 BITS)

1 1 45 89 ….. ….. ….. ….. 3609 3653 3697 ….. ….. ….. ….. ….. ….. ….. 5677 5721 5765

CFG (20 BITS , 10 MACROCELDAS)

0 1 2 ….. ….. ….. ….. 82 83 84 ….. ….. ….. ….. ….. ….. ….. 129 130 131

0 0 44 88 ….. ….. ….. ….. 3608 3652 3696 ….. ….. ….. ….. ….. ….. ….. 5676 5720 5764

UES (64 BITS, 8 BYTES)

FILAS DE MATRIZ AND (0 A 131) 132 ANDS

Dando un total de 44 columnas dentro del arreglo matricial de la figura 4.2. Ahora, si bien la distribución de los fusibles se aprecia como matricial, su direccionamiento es lineal, tal como se muestra en la tabla 4.1. En el cual se puede apreciar que contamos con 132 filas por 44 columnas danto un total de 5808 fusibles enumerados de 0 a 5807.

Tabla 4.1 Direccionamiento fusibles GAL22V10 (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

16

En la tabla de direccionamiento anterior se debe notar, que si bien el valor total de columnas (calculadas en 44 y enumeradas de 0 a 43) se ha incluido las columnas 44 y 58. Los campos añadidos se describen a continuación: CFG (Configuration Fuses Gate, Fusibles de Configuración de Compuertas) fusibles comprendidos entra las direcciones 5808 y 5827 contenidos en la columna 44, que son un total de 20 fusibles que corresponden a la configuración de las 10 macroceldas de salida. Se debe tomar en consideración que el orden de las direcciones descritos para los CFGs se encuentran en orden invertido en el archivo .jed que es generado en el procesos de compilación del archivo fuente HDL. Es decir el orden de las direcciones es: S0 5808

columna 44

S1 5809

S0 5810

….. …..

….. …..

S1 5825

S0 5826

S1 5827

Tabla 4.2 Direccionamiento CFGs GAL22V10 (fuente: elaboración propia).

Y el orden de programación/asignación hacia las macroceldas es: S1 5809

S0 5808

S1 5811

….. …..

….. …..

S0 5824

S1 5827

S0 5826

Tabla 4.3 Asignación CFGs macroceldas GAL22V10 (fuente: elaboración propia).

UES (User Electronic Signature Fuses, Fusibles de Firma Electrónica de Usuario) fusibles comprendidos entre las direcciones 5828 y 5891 correspondientes a la columna 44, que son un total de 64 bits u 8 bytes, que corresponden a un total de 8 caracteres ascii que el usuario puede grabar para firmar su diseño en el dispositivo.

Tabla 4.4 Descripción UES GAL22V10 (fuente: datasheet GAL22V10).

PES (Programmers Electronic Signature, Firma Electrónica del Programador) Si bien estos campos no son fusibles propiamente dichos, sus valores b[0:79] descritos a continuación corresponden a la descripción del dispositivo, tampoco no corresponden a una dirección de fusible, sino a la columna 58 dentro del campo de fusibles. -b[0:7] (B0) Número de programaciones realizadas. -b[8:11] (B1) Algoritmo de programación, depende del tipo del GAL. -b12 Bit de bajo voltaje ARIEL AUGUSTO ANZA MORALES

17

0=5V GAL normal. 1=3.3V GAL de bajo voltaje. -b15 Master bit: Bit de autorización de usuario. -b[16:23] (B2) Byte de descripción de tipo de GAL. Por Ejemplo: 0x00 = 16v8, 0x20 = 20v8, 0x48=22v10, 0x50=18v10, etc. -b[24:31] (B3) Byte de proveedor. Por ejemplo: 0xA1=Lattice, 0x8F=National Instrument, 0x20=STMicrosystem. -b[32:33] indefinidos. -b[34:36] Duración del pulso de borrado: 10, 25, 50, 100, 200, 400, 800 mseg si B1=0x05. 50mseg, 100mseg, para 22v10, 18v10. -b[34:40] Duración del pulso de programación: 1,2,5,10,20,30,40,50,60,….,100,200 mseg. -b[41:45] valor de VPP (programación/borrado): 5/5,5/6/6,5/7/7,5/…/20/20,5V. -b[46:50] valor de VPP (lectura): 5/5,5/6/6,5/7/7,5/…/20/20,5V aunque por lo general es 12V. -b[56:63] suma de verificación. -b[64:79] indefinidos. El conocimiento de estos parámetros es fundamental a la hora de diseñar el firmware del grabador para la GAL22V10 como ser la organización, tensión de programación, duración del pulso de grabación, más adelante se describen los distintos protocolos tanto de lectura como de escritura de los distintos fusibles.

2.3 DESCRIPCION ARCHIVO JEDEC El formato de los archivos JEDEC (Joint Electron Device Engineering Council) que describen la distribución del estado de los fusibles que deben ser activados y desactivados, para que el dispositivo funcione según la descripción realizada mediante el archivo fuente en lenguaje HDL. La figura 4.3 describe los distintos campos que proporcionan la información necesaria para grabar el PLD GAL22V10. Al ser un estándar, los archivos con extensión .jed (archivos JEDEC) son generados a partir de cualquier archivo HDL compilado por el IDE respectivo. Y en consecuencia no existe la necesidad de diferenciar que entorno de desarrollo generó el archivo JEDEC.

ARIEL AUGUSTO ANZA MORALES

18

Los archivos .jed generados por WINCULP ® del empresa ATMEL y Warp® Release 6.3 de CYPRESS siguen el estándar del formato mostrado en la siguiente figura.

DATOS DESCRIPTIVOS

N° DE PINES N° FUSIBLES F. SEGURIDAD LOGICA FUS. LINEA FUS.

MAPA DE FUSIBLES

CHECKSUM

Figura 4.3 Descripción archivo JEDEC (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

19

2.4 DIAGRAMA FIRMWARE GRABADOR ETN-AI En la figura 4.4 se muestra el diagrama de flujo que describe el firmware desarrollado para el grabador ETN-AI. RESET

ACONDICIONAMIENTO PARAMETROS INICIALES

LEER COLUMNA DE FUSIBLES EN DIRECCION

ESCRIBIR COLUMNA DE FUSIBLES EN DIRECCION

BORRAR FUSIBLES Y BUFFER DE FUSES

si

si

si

LEER COLUMNA?

si

COMANDO?

no

STX?

no

si

ESCRIBIR COLUMNA?

INICIO DE LINEA?

no

si

BORRAR FUSES?

RECIBIR DIRECCION FUSES no

no BORRADO DE FUSIBLES, BUFFER, CFG Y PES

si

RECIBIR RANGO DE FUSIBLES EN BUFFER

BORRADO COMPLETO?

no no ETX?

LEER FUSIBLES CONFIGURACION MACROCELDAS

si

LEER CFG? BORRADO DE PLD

no MODULO PWM ELEVADOR DE TENSON

si

PROCESO DE GRABACION

ACTIVAR PWM?

VERIFICACION no

INCREMENTO DECREMENTO VPP

si

MODULAR PWM?

no ACTIVAR SALIDA VPP HACIA PLD

si

si

GRABACION EXITOSA

CHECKSUM OK?

no

MENSAJE DE ERROR

HABILITAR VPP? no

1

2

Figura 4.4 (a) Diagrama de flujo Firmware GRABADOR ETN-AI (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

20

1

2

LEER BUFFER DE FUSES A GRABAR

si

LEER BUFFER?

no

ACTIVAR SEÑALIZACION?

no

si ACTIVAR O DESACTIVAR LED ON

si

LED ON?

no ACTIVAR O DESACTIVAR LED PROG

si

LED PROG?

no

Figura 4.4 (b) Diagrama de flujo Firmware GRABADOR ETN-AI (fuente: elaboración propia).

El firmware del dispositivo contempla en primera instancia el reconocimiento de comandos que se ejecutan para: -Lectura de columnas dentro del arreglo matricial de fusibles. Las columnas contemplas los fusibles propiamente dichos como CFG, UES y PES. -Escritura de columnas dentro del arreglo matricial de fusibles de la GAL. En este caso solo se pueden escribir los fusibles propiamente dichos como CFG y UES. -Borrado de fusibles del arreglo lógico programable. -Borrado completo tanto de arreglo lógico programable como CFG, UES. -Lectura de los fusibles de configuración de las macroceldas. -Calibración del voltaje de programación y edición (VPP) -Activación del circuito que habilita el voltaje de programación (VPP) para colocar al PLD en estado de edición o programación. -Lectura del buffer interno para verificación del checksum. -Activar leds que indican estado de encendido y estado de programación.

ARIEL AUGUSTO ANZA MORALES

21

En segunda instancia se contempla el desarrollo de los procesos de grabación, que hace uso de los comandos anteriormente descritos, el uso de comandos genéricos resulta útil cuando el programador se conecte al software desarrollado para tal fin. La siguiente tabla 4.5, muestra los comandos en formato ascii, genéricos que se consideran para el desarrollo del firmware: COMANDO

SIGNIFICADO

EJEMPLO

%r(DIR_COL)

LEER FUSIBLES DE COLUMNA DIR_COL (ENTRE 0 %r41 Y 43) INCLUIDOS 44 (CFG, UES) Y 58 (PES)

%w(DIR_COL)(DATOS)

ESCRIBIR FUSIBLES DE COLUMNA DIR_COL Y VALOR DE FUSES (132 DATOS)

%w320010000…00011

%b

BORRAR GAL

%b

%t

BORRADO COMPLETO INCLUIDO PES

%t

%v

LEER FUSIBLES DEL CFG (CONFIGURACION DEL LAS 10 MACROCELDAS 20 BITS)

%v

%f(DIR_COL)

LEER COLUMNA DE FUSIBLES EN BUFFER

%f30

%m(DUTY)

SET DE CICLO UTIL (DUTY ENTRE 0 Y 100%) DEL PWM EN CCP1

%m65

%p(BIT)

ACTIVA(BIT=1) O DESACTIVAR (BIT=0) PWM EN CCP1

%p1 (activar)

%e(BIT)

ACTIVAR(BIT=1) O DESACTIVAR (BIT=0) VCC=12V %e0 (desactivar)

%le(BIT)

ACTIVAR(BIT=1) O DESACTIVAR (BIT=0) LED SEÑALIZACION ENCENDIDO

%le1 (LED ON encendido)

%lp(BIT)

ACTIVAR(BIT=1) O DESACTIVAR (BIT=0) LED SEÑALIZACION PROGRAMACION

%lp0 (LED PROG apagado)

0x02=STX

VALOR HEXADECIMAL DE INICIO DE ARCHIVO (PARA INICIAR GRABACION)

0x03=ETX

VALOR HEXADECIMAL DE FIN DE ARCHIVO (PARA FINALIZAR GRABACION)

L

VALOR ASCII PARA RECEPCION DE 6 ASCII DE DIRECCION DE COLUMNA

C

VALOR ASCCI QUE SEÑALIZA FINALIZACIÓN DE LINEAS DE FUSIBLES E INICIO DEL CHEKSUM Tabla 4.5 Comandos desarrollados para el Firmware (fuente: elaboración propia)

ARIEL AUGUSTO ANZA MORALES

22

La flexibilidad del firmware radica en la modificación del o los comandos que se requieran, añadiendo o retirando comandos dentro del bucle while del código C que corresponde al diagrama de flujo de la figura 4.4 y se aprecia entre las líneas 53 y 370 del código mostrado en la figura 4.5. A continuación se muestra en la figura 4.5 parte del código que contempla los comandos que conforman en el firmware, cuya descripción detallada se realiza más adelante.

Figura 4.5 Parte del código que conforma el firmware del GRABADOR ETN-AI (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

23

2.5 ALGORITMO PARA GRABACIÓN DEL PLD GAL22V10 El algoritmo para la grabación de una GAL22V10 requiere el conocimiento tanto de la arquitectura interna del mismo como de los protocolos de borrado, verificación, acceso, etcétera. Considerando las distintas señales que contemplan los mismos. Antes de describir los protocolos que conforman el conjunto de funciones de lectura/escritura de la GAL, es menester conocer las tramas de datos que conforman el conjunto de datos a ser enviados y/o recibidos por parte de la GAL. COM_GAL=0 (FUSES) TRAMA DE 138 BITS LSB

MSB LSB

TRAMA DE GRABACION POR COLUMNAS

MAPA DE BITS POR COLUMNA 132 BITS

DIRECCION DE COLUMNA 6 BITS

F0

F1

F2

0

44

88

132 …. 5762 5763 5764

1

45

89

2

46

3

F3

….

MSB

F129 F130 F131 D0

D1

D2

D3

D4

D5

0

0

0

0

0

0

0

133 …. 5763 5764 5765

1

0

0

0

0

0

1

90

134 …. 5764 5765 5766

0

1

0

0

0

0

2

47

91

135 …. 5765 5766 5767

1

1

0

0

0

0

3

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

….

40

84

128 172 …. 5802 5803 5804

0

0

0

1

0

1

40

41

85

129 173 …. 5803 5804 5805

1

0

0

1

0

1

41

42

86

130 174 …. 5804 5805 5806

0

1

0

1

0

1

42

43

87

131 175 …. 5805 5806 5807

1

1

0

1

0

1

43

Tabla 4.6 Las 44 tramas de 132 fusibles por columna (fuente: elaboración propia).

La tabla 4.6 muestra el total de las 44 tramas conformadas tanto por el estado de los 132 fusibles y la dirección 6 bits (un total de 138 bits por trama) de cada una de las 44 columnas que conforman el arreglo de fusibles de la GAL. Debe notarse que el orden de los bits que direccionan la columna D[5:0] están en orden creciente dentro de la trama. COM_GAL=0 (UES) UES (8 BYTES = 64 BITS) F0

F1



TRAMA DE 138 BITS 0 (68 BITS) DIRECCION (6 BITS)

F62 F63 F64 …. F131 D0

5828 5829 …. 5890 5891

0

0…0

0

0

D1

D2

D3

D4

D5

0

1

1

0

1

44

Tabla 4.7 trama para lectura/escritura de UES (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

24

Al igual que las tramas de fusibles del array, la trama de la firma electrónica del usuario (UES) tabla 4.7 se conforma de los 132 bits, de los cuales 64 bits (8 Bytes) corresponden al UES y los restantes 68 son indefinidos, añadidos a los 6 bits de dirección que corresponde a la columna 44 (columna no contemplada en el array). COM_GAL=0 (PES) TRAMA DE 138 BITS 0 (52 BITS) DIRECCION (6 BITS)

PES (80 BITS) F0

F1



F78 F79 F80 …. F131 D0

b0

b1

….

b78 b79

0

0…0

0

0

D1

D2

D3

D4

D5

1

0

1

1

1

58

Tabla 4.8 trama para lectura de PES (fuente: elaboración propia).

La tabla 4.8 corresponde a la lectura de los fusibles PES, que corresponde a la dirección de la columna 58, conformada por 80 bits descriptivos, 52 bits nulos y los 6 bis de dirección. COM_GAL=0 (SEGURITY) TRAMA DE 138 BITS 0 (132 BITS) F0

F1



0

0

….

DIRECCION (6 BITS)

F78 F79 F80 …. F131 D0 0

0

0

….

0

1

D1

D2

D3

D4

D5

0

1

1

1

1

61

Tabla 4.9 trama de fusibles de seguridad (fuente: elaboración propia).

La trama de fusibles de seguridad especifica valores de nulos en los 132 bits y corresponde a la dirección 61 del array, tabla 4.9. COM_GAL=16 (CFG) TRAMA DE 20 BITS CFG (20 BITS) F0

F1

F2

F3

…. F17 F18 F19

5809 5808 5811 5810 …. 5825 5827 5826

NOTAR QUE LOS BITS DEL CFG ESTAN INVERTIDOS

Tabla 4.10 trama para lectura de CFG (fuente: elaboración propia).

En la tabla 4.10 se contempla la trama de lectura de los 20 bits correspondientes a los bits S1 Y S0 de configuración de las 10 macroceldas. Se debe considerar que para la escritura de los mencionados bits, estos son incluidos en las tramas de fusibles de la tabla 4.5 con la dirección de columna 44. Los bits S1 y S0 deben ser invertidos a partir del archivo JEDEC que los generó.

ARIEL AUGUSTO ANZA MORALES

25

COM_GAL=61 (CLEAR) TRAMA DE 0 BITS COM_GAL=57 (CLEAR ALL) TRAMA DE 0 BITS Tabla 4.11 trama borrado de fusibles (fuente: elaboración propia).

Finalmente se describe la trama para el borrado y borrado completo de la GAL (tabla 4.11), notar que no contempla ninguna serie de datos, sino un valor lógico cero. En los siguientes acápites se describen tanto las señales como los diagramas de flujo que se diseñaron para la descripción de los mismos.

2.6 PROTOCOLO DE LECTURA DE FUSIBLES GAL22V10 Antes de la descripción de los diagramas de tiempo que corresponde a la comunicación que establece el microcontrolador para la lectura de la GAL, se debe recordar la definición que toman cada uno de los pines al momento de establecer su estado de edición (lectura o grabación) figura 4.6.

VPP/EDIT (IN) P/¬V

(IN)

COM0 (IN) COM1 (IN) COM2 (IN) COM3 (IN) COM4 (IN) COM5 (IN) SCLK

(IN)

DIN

(IN)

DOUT (OUT) ¬STR

(IN)

Figura 4.6 descripción de pines GAL en estado de edición (fuente: elaboración propia).

En la tabla 3.2 se describe la función de cada uno de pines de la figura 4.6. Los protocoles que se describen a continuación fueron extraídos del grabador GALblast v1.6 de la pagina web http://www.armony.com/~rstevew/Public/Pgmrs/GAL/_ClikMe1st.htm ARIEL AUGUSTO ANZA MORALES

26

READ GAL

ACTIVAR 12V

OBTENER DIRECCION DE COLUMNA

BAJAR P/Ṽ

COM_GAL=000000B

i=0 a 5

Enviar bit de dirección Pulso de reloj

Pulso negativo de STR

i=0 a 138 Leer bit de fusible [0:132] Leer bit de dirección [0:6] Pulso de reloj DESACTIVAR 12V BREAK

Figura 4.7 diagrama de flujo para lectura de fusibles GAL22V10 (fuente: elaboración propia).

En la figura 4.7 se describe el diagrama de flujo para la lectura de fusibles de la GAL22V10 y la figura 4.8 describe dicho proceso como diagrama de tiempos que se describe a continuación. Para el estado de lectura de fusibles se debe establecer P/¬V a 0, estableciendo el patrón 000000b en COM[5:0], bit puesto 0 o a 1 que requieren los 6 bits de dirección en DIN, tomar SCLK por un tiempo corto (1-10uS) a 0 y de vuelta a 1 y transferir el siguiente bit hasta que se transfieren todos los bits de la dirección de columna (línea de trama). Llevar ¬STB por un corto tiempo a 0 y otra vez hasta 1, leer el pin de DOUT, llevar SCLK a 0 y de vuelta a 1 y leer el siguiente bit hasta que se leen todos los bits de esta línea (138 en total).

ARIEL AUGUSTO ANZA MORALES

27

VCC EDIT P/¬V COM[5:0]

000000b=0d

DIN

Dirección[0:5]

SCLK

138 Clocks 10us

¬STR 100us

DOUT

FUSES[0:131]

DIR[0:5]

Figura 4.8 diagrama de tiempo para lectura de fusibles GAL22V10 (fuente: elaboración propia).

2.7 PROTOCOLO DE ESCRITURA DE FUSIBLES GAL22V10 La figura 4.9 muestra el diagrama de tiempos que describe el estado de escritura del PLD. WRITE GAL

ACTIVAR 12V

OBTENER DIRECCION DE COLUMNA

SUBIR P/Ṽ

COM_GAL=000000B

i=0 a 131 Escribir bit de fusible [0:131] Pulso de reloj

i=0 a 5

Enviar bit de dirección Pulso de reloj

Pulso de grabación

BAJAR P/Ṽ ACTIVAR 12V BREAK

Figura 4.9 diagrama de flujo para escritura de fusibles GAL22V10 (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

28

La figura 4.10 describe el proceso de escritura de fusibles mediantes un diagrama de tiempos. En tal diagrama se debe establecer P/¬V a 1, configurar el modo deseado en COM[5:0] 00000b en este caso, establecer el bit de DIN (correspondiente al primer fusible de la columna), llevar SCLK por un corto tiempo para 1 y de vuelta a 0 (pulso de reloj), y transferir el siguiente bit hasta que todos los bits de esta columna han sido transferido (132 fusibles), del mismo modo transferir los 6 bits correspondientes a la dirección de la columna. Establecer DIN a 0 y llevar ¬STB a 0 y esperar a que el tiempo de pulso de programación antes de tomar de nuevo a 1 lógico. Restaurar P/¬V a 0 al final de la operación. VCC VPP/ EDIT

P/¬V COM[5:0]

000000b=0d

DIN

FUSES[0:131]

SCLK

DIR[0:5]

138 pulsos 10us

¬STR 40ms

Figura 4.10 diagrama de tiempo para escritura de fusibles GAL22V10 (fuente: elaboración propia).

2.8 PROTOCOLO DE BORRADO TOTAL/PARCIAL DE FUSIBLES GAL22V10 Para el proceso de borrado parcial y total de fusibles descritos en la figura 4.11 como diagrama de flujo y en la figura 4.12 como diagrama de tiempos. Primeramente se debe establecer P/¬V a 1, luego establecer COM[5:0] a 61 (111101 en binario natural) para el borrado de fusibles o establecer COM[5:0] a 58 (111010 en binario natural) para borrado total de fusibles, CFGs y PES. Colocar el bit de DIN a 0, llevar SCLK a 1 y de vuelta a 0 (pulso de reloj), llevar ¬STB a 0 y esperar a que el tiempo de pulso de borrado (100ms) antes de tomar de nuevo a 1 lógico. Restaurar P/¬V a 0 al final de la operación.

ARIEL AUGUSTO ANZA MORALES

29

BORRAR GAL

ACTIVAR 12V

OBTENER DIRECCION DE COLUMNA

SUBIR P/Ṽ

COM_GAL=111101B

BAJAR DIN

Pulso de reloj

Pulso de borrado

BAJAR P/Ṽ DESACTIVAR 12V

BREAK

Figura 4.11 diagrama de flujo para borrando parcial/total de fusibles GAL22V10 (fuente: elaboración propia). VCC VPP/ EDIT

P/¬V COM[5:0]

111101b=61d(parcial);111010b=58d (total)

DIN SCLK 10us

¬STR 100ms

Figura 4.12 diagrama de tiempo borrando parcial/total de fusibles GAL22V10 (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

30

2.9 PROTOCOLO DE LECTURA CFGs Para el proceso lectura de los fusibles de configuración de compuertas (CFGs) se debe colocar P/¬V a 0, establecer COM[5:0] a 16, colocar el bit de DIN a 0, llevar SCLK a 1 y de vuelta a 0 (pulso de reloj), llevar ¬STB a 0 y esperar a que el tiempo de pulso de lectura (100ms) antes de tomar de nuevo a 1 lógico. Leer el pin DOUT y pulso de reloj, se completa la operación después de obtener los 20 bits del CFG. Todo este procedimiento se describe en la figura 4.13 como diagrama de flujo y como diagrama de tiempos en la figura 4.14. READ CFG

ACTIVAR 12V

BAJAR P/Ṽ

COM_GAL=010000B

BAJAR DIN

Pulso de reloj

Pulso negativo de STR

i=0 a 19

Leer bit de CFG [0:19]

Pulso de reloj DESACTIVAR 12V BREAK

Figura 4.13 diagrama de flujo que describen la lectura CFGs de la GAL (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

31

VCC VPP/ EDIT

P/¬V COM[5:0]

010000b=16d

DIN SCLK

20 pulsos 10us

¬STR 100us

DOUT

CFG[0:19]

Figura 4.14 diagramas de tiempos que describen la lectura CFGs de la GAL (fuente: elaboración propia).

2.10 PROTOCOLO DE ESCRITURA CFGs El diagrama de flujo que corresponde a la escritura de los CFGs, es el mismo que se describe en la figura 4.9. VCC VPP/ EDIT

P/¬V COM[5:0] DIN SCLK

010000b=16d CFG[0:19] 20 pulsos

¬STR 40ms

Figura 4.15 diagramas de tiempos que describen la escritura de CFGs de la GAL (fuente: elaboración propia).

Para el proceso escritura de los fusibles de configuración de compuertas se debe colocar P/¬V a 1, establecer COM[5:0] a 16, transferir todos los bits Establecer DIN a 0 y llevar ¬STB a 0 y esperar a que el tiempo de pulso de programación (40ms) antes de tomar de nuevo a 1 lógico. Restaurar P/¬V a 0 al final de la operación. Ver figura 4.15. El código correspondiente a los protocolos descritos anteriormente se lista en los apéndices de este documento. Nota.- el firmware considerado para el grabador es también implementada en el entrenador, con la salvedad que es añadido el procedimiento para activar de CE_Q (ver figura 3.45 y 3.46) que a su vez activa el CE (figura 3.45) de los 3 buffers (figura 3.30) triestado que separa al PLD de los dispositivos de entrada y salida. ARIEL AUGUSTO ANZA MORALES

32

2.11 COMUNICACIÓN PC/GRABADOR Se optó por la comunicación USB para la transferencia de datos entre el microcontrolador y la PC. Para tal efecto se debe recalcar que el microcontrolador PIC18F2550 posee un módulo USB en su arquitectura interna. Dicho módulo dispone de los siguientes protocolos de transferencia:    

CDC (Communications Devices Class). HID (Dispositivo de Interfaz Humana, mouses,keypad,etc). BULK TRANSFERS USB (comunicación bidireccional masiva). MSD USB (Mass storage Device, memorias, HD, etc).

De los protocolos de transferencia mencionados, se optó por el uso del método CDC que corresponde a la emulación de una comunicación por puerto serial, es decir que se genera un puente de software que hace de intermediario entre el bus USB convirtiéndolo en un puerto serial virtual. Tal elección se da principalmente porque la mayoría de los softwares proporcionan un módulo de comunicación serial incorporado entre sus herramientas.

2.12 IMPLEMENTACIÓN DEL FIRMWARE El uso del protocolo CDC para la comunicación PC/GRABADOR proporciona una gran ventaja a la hora de depurar el sistema, pues la lista de comandos de la tabla 4.5 debieron ser probados antes de lograr el diseño final del software que reside en el sistema operativo. Lográndolo con el uso de una terminal serial, como ser la Hyperteminal de Windows. Los siguientes gráficos muestran los pasos que siguieron para la generación del firmware para el grabador del entrenador ETN-AI. Inicialmente se ejecuta el programa PIC C Compiler ® de la empresa CCS (Custom Computer Services) figura 4.16.

Figura 4.16 Ejecución del IDE para la implementación del Firmware (fuente: elaboración propia).

Se procede a la ejecución del asistente para creación de proyectos (figuras 4.17 y 4.18), que es parte de IDE, para facilitar la configuración inicial del proyecto.

ARIEL AUGUSTO ANZA MORALES

33

Figura 4.17 Asistente para creación del proyecto (fuente: PIC C Compiler ®).

Figura 4.18 Asistente para creación del proyecto (fuente: PIC C Compiler ®).

Las configuraciones iniciales más destacables son el valor del cristal, PLL, dispositivo, etc. El código fuente se muestra en el apéndice respectivo, sin embargo este no es el último paso descriptivo de la generación del firmware, se debe generar una PIV y PID para que el sistema operativo reconozca al grabador como dispositivo de conexión por el método CDC (emulación de puerto serial). Para tal efecto se dispuso del programa v3.1INF_Enumeration_uC_PIC-USB.exe cuya ayuda se muestra en la figura 4.19 ARIEL AUGUSTO ANZA MORALES

34

Figura 4.19 Información del software v3.1-INF_Enumeration_uC_PIC-USB (fuente: Pedro-

Palitroquez [email protected]) Tal software genera tanto el VID (VENDOR ID), PID (PRODUCT ID), Descripción, Fabricante, etc. Se debe notar que en la figura 4.20 se muestran dichos parámetros, de los cuales los más destacables son tipo de transferencia (CDC-RS232) y la generación de la librería usb_desc_cdc.h que es incorporado en el código del firmware.

Figura 4.20 ejecución v3.1-INF_Enumeration_uC_PIC-USB (fuente: Pedro- PalitroqueZ

[email protected]). La nota que se destaca en la figura 4.20 determina el uso por defecto de los valores de VID=04D8 Y PID=000B son proporcionados por MICROCHIP para aplicación de investigación y/o desarrollos sin fines de lucro. Siendo estos valores los que son usados por defecto. Una vez creados y guardados los archivos respectivos mchpcdc.inf y usb_desc_cdc.h se procede a compilar el firmware y grabarlo en el microcontrolador.

ARIEL AUGUSTO ANZA MORALES

35

Al conectar por primera vez el PIC WINDOWS detectará “HARDWARE NUEVO ENCONTRADO”, dará error al no encontrar los drivers en WINDOWS/system32, se le debe dar la ruta donde guardamos el archivo *.INF que fue generado por el software v3.1INF_Enumeration_uC_PIC-USB.

Figura 4.21 Grabador ETN-AI reconocido como puerto serial en el administrador de dispositivos (fuente: elaboración propia).

Con esto se finalizó el proceso de comunicación el grabador con la PC, faltando solamente el Software que gestione todo el proceso de grabación, incluido el uso de los comandos que se crearon para la depuración del grabador (tabla 4.5).

ARIEL AUGUSTO ANZA MORALES

36

APENDICE A PLANOS DESCRIPTIVOS GRABADOR ETN-AI VER 1.0 Los siguientes planos describen al grabador ETN-AI ver. 1.0

ARIEL AUGUSTO ANZA MORALES

37

ARIEL AUGUSTO ANZA MORALES

38

ARIEL AUGUSTO ANZA MORALES

39

Figura D.1 grabador ETN-AI placa inferior vista de componentes (fuente: elaboración propia).

Figura D.2 PCB grabador ETN-AI placa inferior (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

40

Figura D.3 grabador ETN-AI placa superior vista de componentes (fuente: elaboración propia).

Figura D.4 PCB grabador ETN-AI placa superior (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

41

Figura D.5 grabador ETN-AI placa inferior vista de diseño (fuente: elaboración propia).

Figura D.6 grabador ETN-AI superior vista de diseño (fuente: elaboración propia). ARIEL AUGUSTO ANZA MORALES

42

Figura D.8 (fuente: elaboración propia).

Figura D.8 (fuente: elaboración propia).

ARIEL AUGUSTO ANZA MORALES

43

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF