• No se han encontrado resultados

Grabador GAL22V10

N/A
N/A
Protected

Academic year: 2021

Share "Grabador GAL22V10"

Copied!
43
0
0

Texto completo

(1)

ARIEL AUGUSTO ANZA MORALES 1

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

(2)

ARIEL AUGUSTO ANZA MORALES 2

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

uC

microcontrolador PLD

GAL22V10 INTERFAZ USB

CIRCUITO INTERFAZ DE

GRABACION

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

uC ELEVADOR DE

TENSIÓN (VPP)

HABILITADOR VPP

LINEA DE COMUNICACIÓN Y CONTROL PWM VPP

PLD

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

(3)

ARIEL AUGUSTO ANZA MORALES 3

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)

CONVERTIDOR

CC-CC

REGULADOR

DE TENSION

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.

(4)

ARIEL AUGUSTO ANZA MORALES 4 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.

(5)

ARIEL AUGUSTO ANZA MORALES 5

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).

(6)

ARIEL AUGUSTO ANZA MORALES 6 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.

(7)

ARIEL AUGUSTO ANZA MORALES 7 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.

GRABACIÓN FUNCIONAMIENTO 1 - VCC 24 1 IO/CLK VCC 24 2 EDIT - 23 2 I1 IO0 23 3 P/¬V - 22 3 I2 IO1 22 4 COM0 - 21 4 I3 IO2 21 5 COM1 - 20 5 I4 IO3 20 6 COM2 - 19 6 I5 IO4 19 7 COM3 - 18 7 I6 IO5 18 8 COM4 - 17 8 I7 IO6 17 9 COM5 - 16 9 I8 IO7 16 10 SCLK - 15 10 I9 IO8 15

11 DIN DOUT 14 11 I10 IO9 14

12 GND ¬STR 13 12 GND I11 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

(8)

(LED-ARIEL AUGUSTO ANZA MORALES 8 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 12V (VPP) para colocar el PLD en estado de grabación P/¬V 0=estado de lectura; 1=estado de escritura

COM[0:5] Direccionamiento de línea de fusibles SCLK Clock serial

DIN Dato de entrada serial DOUT Dato de salida serial

¬STR 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.

(9)

ARIEL AUGUSTO ANZA MORALES 9 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).

(10)

ARIEL AUGUSTO ANZA MORALES 10 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).

(11)

ARIEL AUGUSTO ANZA MORALES 11 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).

(12)

ARIEL AUGUSTO ANZA MORALES 12 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).

(13)

ARIEL AUGUSTO ANZA MORALES 13 Figura 3.25 placa inferior finalizada (fuente: elaboración propia).

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

(14)

ARIEL AUGUSTO ANZA MORALES 14

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 MAL EDICION DE ARCHIVO FUENTE ARCHIVO JEDEC SIMULACION COMPILACION GRABADOR PC ARCHIVO FUENTE DESCRIPCIÓN UTILIZANDO HDL BIEN

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.

(15)

ARIEL AUGUSTO ANZA MORALES 15

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).

(16)

ARIEL AUGUSTO ANZA MORALES 16 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.

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.

COLUMNAS DE INTERCONEXION 0 1 2 ….. 41 42 43 44 58 FI LAS D E M AT RIZ AN D (0 A 1 3 1 ) 1 3 2 AN D S 0 0 1 2 ….. 41 42 43 5808 CFG (2 0 BITS , 1 0 M AC R OCEL D AS ) b0 P ES ( 8 0 BITS) 1 44 45 46 ….. 85 86 87 5809 b1 2 88 89 90 ….. 129 130 131 5810 b2 ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. b3 ….. ….. ….. ….. ….. ….. ….. ….. 5825 b4 ….. ….. ….. ….. ….. ….. ….. ….. 5826 ….. 82 3608 3609 3610 ….. 3649 3650 3651 5827 ….. 83 3652 3653 3654 ….. 3693 3694 3695 5828 UES ( 6 4 BITS, 8 BY TE S) ….. 84 3696 3697 3698 ….. 3737 3738 3739 5829 ….. ….. ….. ….. ….. ….. ….. ….. ….. 5830 b77 ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. ….. b78 ….. ….. ….. ….. ….. ….. ….. ….. 5889 b79 ….. ….. ….. ….. ….. ….. ….. ….. 5890 0 ….. ….. ….. ….. ….. ….. ….. ….. 5891 0 ….. ….. ….. ….. ….. ….. ….. ….. XXXX ….. 129 5676 5677 5678 ….. 5717 5718 5719 XXXX 0 130 5720 5721 5722 ….. 5761 5762 5763 XXXX 0 131 5764 5765 5766 ….. 5805 5806 5807 XXXX 0

(17)

ARIEL AUGUSTO ANZA MORALES 17 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 S1 S0 ….. ….. S1 S0 S1

columna 44 5808 5809 5810 ….. ….. 5825 5826 5827 Tabla 4.2 Direccionamiento CFGs GAL22V10 (fuente: elaboración propia).

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

S1 S0 S1 ….. ….. S0 S1 S0

5809 5808 5811 ….. ….. 5824 5827 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

(18)

ARIEL AUGUSTO ANZA MORALES 18 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.

(19)

ARIEL AUGUSTO ANZA MORALES 19 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.

N° DE PINES N° FUSIBLES F. SEGURIDAD LOGICA FUS. CHECKSUM LINEA FUS. MAPA DE FUSIBLES DATOS DESCRIPTIVOS

(20)

ARIEL AUGUSTO ANZA MORALES 20

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 COMANDO? LEER COLUMNA? si ESCRIBIR COLUMNA? no BORRAR FUSES? no BORRADO COMPLETO? no LEER CFG? no ACTIVAR PWM? no MODULAR PWM? HABILITAR VPP? no STX? no INICIO DE LINEA? RECIBIR DIRECCION FUSES si RECIBIR RANGO DE FUSIBLES EN BUFFER no ETX? BORRADO DE PLD no si PROCESO DE GRABACION VERIFICACION CHECKSUM OK? GRABACION EXITOSA MENSAJE DE ERROR no si no LEER COLUMNA DE FUSIBLES EN DIRECCION si ESCRIBIR COLUMNA DE FUSIBLES EN DIRECCION si BORRAR FUSIBLES Y BUFFER DE FUSES si BORRADO DE FUSIBLES, BUFFER, CFG Y PES si LEER FUSIBLES CONFIGURACION MACROCELDAS si MODULO PWM ELEVADOR DE TENSON si INCREMENTO DECREMENTO VPP si ACTIVAR SALIDA VPP HACIA PLD si 2 no 1

(21)

ARIEL AUGUSTO ANZA MORALES 21 LEER BUFFER? ACTIVAR SEÑALIZACION? no LEER BUFFER DE FUSES A GRABAR si LED ON? si LED PROG? no ACTIVAR O DESACTIVAR LED ON si ACTIVAR O DESACTIVAR LED PROG si 2 1 no 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.

(22)

ARIEL AUGUSTO ANZA MORALES 22 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 Y 43) INCLUIDOS 44 (CFG, UES) Y 58 (PES) %r41 %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

(23)

ARIEL AUGUSTO ANZA MORALES 23 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).

(24)

ARIEL AUGUSTO ANZA MORALES 24

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.

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.

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

LSB MSB LSB MSB F0 F1 F2 F3 …. F129 F130 F131 D0 D1 D2 D3 D4 D5 0 44 88 132 …. 5762 5763 5764 0 0 0 0 0 0 0 1 45 89 133 …. 5763 5764 5765 1 0 0 0 0 0 1 2 46 90 134 …. 5764 5765 5766 0 1 0 0 0 0 2 3 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 TR A M A D E G R A B A C IO N P O R C O LU M N A S COM_GAL=0 (FUSES)

MAPA DE BITS POR COLUMNA 132 BITS DIRECCION DE COLUMNA 6 BITS

TRAMA DE 138 BITS

F0 F1 F62 F63 F64 …. F131 D0 D1 D2 D3 D4 D5

5828 5829 …. 5890 5891 0 0…0 0 0 0 1 1 0 1 44

COM_GAL=0 (UES)

UES (8 BYTES = 64 BITS) 0 (68 BITS) DIRECCION (6 BITS)

(25)

ARIEL AUGUSTO ANZA MORALES 25 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).

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.

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.

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ó.

F0 F1 F78 F79 F80 …. F131 D0 D1 D2 D3 D4 D5

b0 b1 …. b78 b79 0 0…0 0 0 1 0 1 1 1 58

COM_GAL=0 (PES)

0 (52 BITS) DIRECCION (6 BITS)

TRAMA DE 138 BITS PES (80 BITS) F0 F1 F78 F79 F80 …. F131 D0 D1 D2 D3 D4 D5 0 0 …. 0 0 0 …. 0 1 0 1 1 1 1 61 COM_GAL=0 (SEGURITY) TRAMA DE 138 BITS DIRECCION (6 BITS) 0 (132 BITS) F0 F1 F2 F3 …. F17 F18 F19 5809 5808 5811 5810 …. 5825 5827 5826 COM_GAL=16 (CFG)

NOTAR QUE LOS BITS DEL CFG ESTAN INVERTIDOS CFG (20 BITS)

(26)

ARIEL AUGUSTO ANZA MORALES 26 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

COM_GAL=61 (CLEAR)

COM_GAL=57 (CLEAR ALL)

TRAMA DE 0 BITS TRAMA DE 0 BITS

(27)

ARIEL AUGUSTO ANZA MORALES 27 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).

(28)

ARIEL AUGUSTO ANZA MORALES 28 VCC EDIT P/¬V COM[5:0] DIN SCLK ¬STR DOUT 000000b=0d Dirección[0:5] FUSES[0:131] DIR[0:5] 138 Clocks 10us 100us

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 5 Enviar bit de dirección Pulso de reloj i=0 a 131 Escribir bit de fusible

[0:131] Pulso de reloj ACTIVAR 12V BREAK Pulso de grabación BAJAR P/Ṽ

(29)

ARIEL AUGUSTO ANZA MORALES 29 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] DIN SCLK ¬STR 000000b=0d DIR[0:5] 138 pulsos 10us FUSES[0:131] 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.

(30)

ARIEL AUGUSTO ANZA MORALES 30 BORRAR GAL ACTIVAR 12V OBTENER DIRECCION DE COLUMNA SUBIR P/Ṽ COM_GAL=111101B BAJAR DIN Pulso de reloj DESACTIVAR 12V BREAK Pulso de borrado BAJAR P/Ṽ

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] DIN SCLK ¬STR 111101b=61d(parcial);111010b=58d (total) 10us 100ms

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

(31)

ARIEL AUGUSTO ANZA MORALES 31

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).

(32)

ARIEL AUGUSTO ANZA MORALES 32 VCC VPP/ EDIT P/¬V COM[5:0] DIN SCLK ¬STR DOUT 010000b=16d CFG[0:19] 20 pulsos 10us 100us

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 ¬STR 010000b=16d 20 pulsos 40ms CFG[0:19]

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.

(33)

ARIEL AUGUSTO ANZA MORALES 33

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.

(34)

ARIEL AUGUSTO ANZA MORALES 34 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.1-INF_Enumeration_uC_PIC-USB.exe cuya ayuda se muestra en la figura 4.19

(35)

ARIEL AUGUSTO ANZA MORALES 35 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.

(36)

ARIEL AUGUSTO ANZA MORALES 36 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.1-INF_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).

(37)

ARIEL AUGUSTO ANZA MORALES 37

APENDICE A

PLANOS DESCRIPTIVOS GRABADOR ETN-AI VER 1.0

(38)
(39)
(40)

ARIEL AUGUSTO ANZA MORALES 40 Figura D.1 grabador ETN-AI placa inferior vista de componentes (fuente: elaboración

propia).

(41)

ARIEL AUGUSTO ANZA MORALES 41 Figura D.3 grabador ETN-AI placa superior vista de componentes (fuente: elaboración

propia).

(42)

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

(43)

ARIEL AUGUSTO ANZA MORALES 43 Figura D.8 (fuente: elaboración propia).

Referencias

Documento similar

utilized in practice [11], in the mobile network domain, the vast majority of AI/ML applications (e.g., routing, load balancing, and resource allocation) use much more complex AI

software de diseño mecánico solidworks. La figura 5, muestra los elementos virtuales modelados, ya con esta piezas se procedió a realizar el ensamble.. Ensamble de turbina. La

Se ha establecido la configuraci´ on 14 (Figura 4.7), d´ onde la parte superior del modelo representa al MC o root y la parte inferior del modelo representa al SC. Para esta situaci´

El primero de ellos fue obra del grabador Nicolo Nelli: en la escena central contemplamos al emperador Carlos V con la corona imperial sobre sus sienes, sentado en su

Desglosarno del taller. pertenecient es al arte de, ,.. 37 Ya habían pasado por su taller discípulos como su hermano Juan Antonio. Fernando Selma y José Gómez Navia. Ln

personas que han participado en la entrevista propuesta. Fuente: Elaboración

Tal argumentación basada en criterios de espacialidad, como puede apre- ciarse en la reproducción de la pieza que ofrecemos, carece por completo de sentido, ya que el

Figura3: Aporte en kilogramos de CO 2 equivalentes, por parte de la institución de educación media superior y superior objeto de estudio; Fuente: Elaboración propia, con base