Вы находитесь на странице: 1из 43

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 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 comunicacin USB y una interfaz con el PLD
figura 3.1. Este ltimo debe contar con la electrnica necesaria para habilitar el estado de
programacin del PLD.

GRABADOR
CIRCUITO
INTERFAZ DE
GRABACION

PLD
GAL22V10

uC
microcontrolador

INTERFAZ USB

Figura 3.1 diagrama principal del grabador ETN-AI (Fuente: Elaboracin propia).

Una vez que el microcontrolador establezca la comunicacin con la PC, para el proceso de
grabacin, se debe contar con la respectiva interfaz de grabacin del PLD. El diagrama de
bloques de dicho circuito se muestra en la figura 3.2 el circuito debe contar con un
elevador de tensin que incremente el voltaje de alimentacin USB a los valores
requeridos por el PLD. Un circuito que habilite dicho voltaje y las respectivas lneas de
control y comunicacin que dispone el PLD para la habilitacin de su estado de
programacin.

CIRCUITO INTERFAZ DE GRABACION


VPP

PLD

ELEVADOR DE
TENSIN (VPP)
HABILITADOR
VPP

PWM

uC

LINEA DE COMUNICACIN Y CONTROL

Figura 3.2 Estructura interna del circuito de interfaz de grabacin entre uC y PLD (Fuente:
Elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

1.2 CIRCUITO ELEVADOR DE TENSION


El circuito elevador de tensin dispone de un convertidor cc-cc y una etapa de regulacin
como se aprecia en la figura 3.3.

ELEVADOR DE TENSION (VPP)


REGULADOR
DE TENSION

CONVERTIDOR
CC-CC

Figura 3.3 Elevador de tensin VPP (fuente: elaboracin propia).

1.3 CONVERTIDOR CC-CC


Este tipo de convertidor, tambin denominado como boost o step-up figura 3.4, es utilizado
cuando se desea un aumento de la tensin de salida (VDD) con relacin a la tensin de
alimentacin (entrada VCC). La conmutacin constante entre la zona de saturacin 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 tensin 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 tensin de alimentacin manteniendo as la variacin de
corriente de entrada.

Figura 3.4 Circuito elevador de tensin (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

EL transistor Q1 trabaja en zona de corte y saturacin, haciendo que la bobina L1 conduzca


una corriente IL figura 3.5a en zona de saturacin, 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 saturacin (izquierda) y corte (derecha) del circuito elevador de tensin
(fuente: elaboracin propia).

1.4 CIRCUITO REGULADOR DE TENSIN


Como el circuito de elevador de tensin (figura 3.4) puede proporcionar una tensin con
moderado nivel de ruido y rizado, se opta por acoplar un el circuito de regulacin paralelo
con diodo zener D3 (1N4742) de 12V figura 3.6. Que es el valor de tensin requerido (VPP)
para habilitar el estado de programacin en el l PLD.

Figura 3.6 regulador paralelo con diodo zener (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

1.5 CIRCUITO HABILITACIN VPP


Este circuito est compuesto de un par de transistores complementarios Q2 (BC548) y Q3
(BC558) figura 3.7, que cumplen la funcin 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 programacin VPP (fuente: elaboracin propia).

La etapa final del circuito se muestra en la figura 3.8 donde se puede apreciar que el circuito
elevador de tensin requiere de dos lneas de control PWM y EDIT_GAL_EN.

Figura 3.8 Circuito generador tensin de programacin (fuente: elaboracin propia).

El circuito contempla el uso del modulador PWM1 del PIC18F2550 para el circuito elevador
de tensin y una salida digital EDIT_GAL_EN para la habilitacin de VPP hacia el pin de
programacin de la GAL (EDIT_GAL).
ARIEL AUGUSTO ANZA MORALES

En la figura 3.9 se dispuso una entrada opcional de tensin externa VCC_EXT y una
derivacin de tensin VADC mediante un divisor de tensin paralelo al diodo zener, que
har la funcin de realimentacin 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 tensin para VADC o el diodo
zener D3 de regulacin.

Figura 3.9 Circuito elevador de tensin expandido (fuente: elaboracin 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 mdulo USB para la comunicacin
mediante este bus.

Figura 3.10 Microcontrolador PIC18F2550 con conexin USB (fuente: elaboracin propia).
ARIEL AUGUSTO ANZA MORALES

La descripcin de los pines del PLD (tabla 3.1) para el proceso grabacin 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

GRABACIN
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 Descripcin pines GAL22V10 en estados de grabacin y funcionamiento (fuente:


elaboracin propia).

Figura 3.11 Disposicin de pines grabador ETN-AI lado del PLD (fuente: elaboracin propia).

En la figura 3.11 se aprecia el LED1 que cumple la funcin de sealizacin, indicando que el
grabador ha sido correctamente inicializado y se encuentra en estado de encendido (LED-

ARIEL AUGUSTO ANZA MORALES

ON), similar funcin cumple el LED2 que indica que el estado de grabacin del PLD est en
ejecucin (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 lgicos errneos en el proceso de grabacin.
La descripcin de la funcin que cumplen los pines del PLD en estado de grabacin 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 grabacin


0=estado de lectura; 1=estado de escritura
Direccionamiento de lnea de fusibles
Clock serial
Dato de entrada serial
Dato de salida serial
Entrada pulso de grabacin

Tabla 3.2 Funcin de los pines en estado de programacin (fuente: elaboracin propia).

1.7 DISEO PCB DEL GRABADOR ETN-AI


Una vez realizado el diseo esquemtico del circuito de grabacin, se puede migrar el
mismo hacia su diseo en PCB, mediante el software PROTEUS 8 cuyo modulo ISIS est
orientado al diseo esquemtico de circuitos. Su mdulo ARES tiene el fin del desarrollo de
PCBs de los circuitos diseados en el mdulo ISIS. Siendo esta una gran ventaja a la hora
del diseo de circuitos electrnicos que contemplen la parte de simulacin e
implementacin en tarjeta de circuito impreso. Las figuras 3.12 a la 3.16 muestran el
proceso de diseo PCB del grabador ETN-AI.

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

ARIEL AUGUSTO ANZA MORALES

Figura 3.13 Dimensionamiento y localizacin de los componentes (fuente: elaboracin propia).

Figura 3.14 Asignacin de reglas de conectividad de componentes (fuente: elaboracin propia).

Figura 3.15 Inicio de conexin de componentes en placa (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

Figura 3.16 Conexin de componentes en el grabador finalizado (fuente: elaboracin 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: elaboracin propia).

Figura 3.18 impresin del negativo a ser transferido (fuente: elaboracin propia).
ARIEL AUGUSTO ANZA MORALES

10

Figura 3.19 Transferencia del diseo a la placa base (fuente: elaboracin propia).

Figura 3.20 Ataque qumico para la revelacin de las pistas (fuente: elaboracin propia).

Figura 3.21 Perforado de placa (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

11

Figura 3.22 Transferencia de diseo de componentes (fuente: elaboracin propia).

Figura 3.23 Componentes y placa finalizada para soldadura (fuente: elaboracin propia).

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

12

Figura 3.25 placa inferior finalizada (fuente: elaboracin propia).

Figura 3.26 placa superior finalizada (fuente: elaboracin propia).

Figura 3.27 Ensamblado del grabador ETN-AI (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

13

2 FIRMWARE
2.1 DISEO DE CIRCUITOS DIGITALES ASISTIDO POR COMPUTADORA
Para que sea til, la lgica 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 categora de software que
se conoce con el nombre de CAD (Computer Aided Design, Diseo Asistido por
Computadora).
Especificacin formal
-Diagrama de bloque
-Tabla de verdad
-Funciona lgicas
-Circuito

ARCHIVO
FUENTE
DESCRIPCIN
UTILIZANDO HDL

COMPILACION

MAL
EDICION DE
ARCHIVO
FUENTE

SIMULACION

BIEN

ARCHIVO
JEDEC

PC

GRABADOR

Figura 4.1 Procedimiento para diseo de circuitos digitales asistido por computadora (fuente:
elaboracin propia).

Los CADs propuestos para el diseo de circuitos digitales en el PLD GAL22V10 son: WINCULP
del empresa ATMEL y Warp Release 6.3 de CYPRESS, este ltimo posibilita la descripcin
de los circuitos digitales en lenguaje VHDL, que es el lenguaje de descripcin de hardware
que se est implementando en la ctedra de sistemas digitales.

ARIEL AUGUSTO ANZA MORALES

14

2.2 DESCRIPCIN FUSIBLES GAL22V10


En el proceso de grabacin de los fusibles de un PLD, se requiere conocer la distribucin de
los mismos, tal como se muestra en la figura 4.2.

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

15

Como se puede apreciar en la figura anterior, la distribucin 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 realimentacin directas.
10 entradas (macroceldas) de realimentacin 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 distribucin 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: elaboracin 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 aadidos se describen a continuacin:
CFG (Configuration Fuses Gate, Fusibles de Configuracin 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 configuracin de las 10 macroceldas de salida. Se
debe tomar en consideracin 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
compilacin 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: elaboracin propia).

Y el orden de programacin/asignacin hacia las macroceldas es:


S1
5809

S0
5808

S1
5811

..
..

..
..

S0
5824

S1
5827

S0
5826

Tabla 4.3 Asignacin CFGs macroceldas GAL22V10 (fuente: elaboracin propia).

UES (User Electronic Signature Fuses, Fusibles de Firma Electrnica 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 diseo en el dispositivo.

Tabla 4.4 Descripcin UES GAL22V10 (fuente: datasheet GAL22V10).

PES (Programmers Electronic Signature, Firma Electrnica del Programador) Si bien estos
campos no son fusibles propiamente dichos, sus valores b[0:79] descritos a continuacin
corresponden a la descripcin del dispositivo, tampoco no corresponden a una direccin de
fusible, sino a la columna 58 dentro del campo de fusibles.
-b[0:7] (B0) Nmero de programaciones realizadas.
-b[8:11] (B1) Algoritmo de programacin, 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 autorizacin de usuario.
-b[16:23] (B2) Byte de descripcin 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] Duracin del pulso de borrado: 10, 25, 50, 100, 200, 400, 800 mseg si B1=0x05.
50mseg, 100mseg, para 22v10, 18v10.
-b[34:40] Duracin del pulso de programacin: 1,2,5,10,20,30,40,50,60,.,100,200 mseg.
-b[41:45] valor de VPP (programacin/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 verificacin.
-b[64:79] indefinidos.
El conocimiento de estos parmetros es fundamental a la hora de disear el firmware del
grabador para la GAL22V10 como ser la organizacin, tensin de programacin, duracin
del pulso de grabacin, ms 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 distribucin del estado de los fusibles que deben ser activados y desactivados, para que
el dispositivo funcione segn la descripcin realizada mediante el archivo fuente en
lenguaje HDL. La figura 4.3 describe los distintos campos que proporcionan la informacin
necesaria para grabar el PLD GAL22V10.
Al ser un estndar, los archivos con extensin .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 estndar 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 Descripcin archivo JEDEC (fuente: elaboracin 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

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

ARIEL AUGUSTO ANZA MORALES

20

LEER BUFFER
DE FUSES A
GRABAR

si

LEER
BUFFER?

no

ACTIVAR
SEALIZACION?

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: elaboracin 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 lgico programable.
-Borrado completo tanto de arreglo lgico programable como CFG, UES.
-Lectura de los fusibles de configuracin de las macroceldas.
-Calibracin del voltaje de programacin y edicin (VPP)
-Activacin del circuito que habilita el voltaje de programacin (VPP) para colocar al
PLD en estado de edicin o programacin.
-Lectura del buffer interno para verificacin del checksum.
-Activar leds que indican estado de encendido y estado de programacin.

ARIEL AUGUSTO ANZA MORALES

21

En segunda instancia se contempla el desarrollo de los procesos de grabacin, que hace uso
de los comandos anteriormente descritos, el uso de comandos genricos resulta til cuando
el programador se conecte al software desarrollado para tal fin.
La siguiente tabla 4.5, muestra los comandos en formato ascii, genricos 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)

%w32001000000011

%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


SEALIZACION ENCENDIDO

%le1 (LED ON
encendido)

%lp(BIT)

ACTIVAR(BIT=1) O DESACTIVAR (BIT=0) LED


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

VALOR ASCII PARA RECEPCION DE 6 ASCII DE


DIRECCION DE COLUMNA

VALOR ASCCI QUE SEALIZA FINALIZACIN DE


LINEAS DE FUSIBLES E INICIO DEL CHEKSUM
Tabla 4.5 Comandos desarrollados para el Firmware (fuente: elaboracin propia)

ARIEL AUGUSTO ANZA MORALES

22

La flexibilidad del firmware radica en la modificacin del o los comandos que se requieran,
aadiendo o retirando comandos dentro del bucle while del cdigo C que corresponde al
diagrama de flujo de la figura 4.4 y se aprecia entre las lneas 53 y 370 del cdigo mostrado
en la figura 4.5.
A continuacin se muestra en la figura 4.5 parte del cdigo que contempla los comandos
que conforman en el firmware, cuya descripcin detallada se realiza ms adelante.

Figura 4.5 Parte del cdigo que conforma el firmware del GRABADOR ETN-AI (fuente: elaboracin
propia).

ARIEL AUGUSTO ANZA MORALES

23

2.5 ALGORITMO PARA GRABACIN DEL PLD GAL22V10


El algoritmo para la grabacin de una GAL22V10 requiere el conocimiento tanto de la
arquitectura interna del mismo como de los protocolos de borrado, verificacin, acceso,
etctera. Considerando las distintas seales 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

44

88

132 . 5762 5763 5764

45

89

46

F3

MSB

F129 F130 F131 D0

D1

D2

D3

D4

D5

133 . 5763 5764 5765

90

134 . 5764 5765 5766

47

91

135 . 5765 5766 5767

40

84

128 172 . 5802 5803 5804

40

41

85

129 173 . 5803 5804 5805

41

42

86

130 174 . 5804 5805 5806

42

43

87

131 175 . 5805 5806 5807

43

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

La tabla 4.6 muestra el total de las 44 tramas conformadas tanto por el estado de los 132
fusibles y la direccin 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] estn 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

00

D1

D2

D3

D4

D5

44

Tabla 4.7 trama para lectura/escritura de UES (fuente: elaboracin propia).


ARIEL AUGUSTO ANZA MORALES

24

Al igual que las tramas de fusibles del array, la trama de la firma electrnica 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, aadidos a los 6 bits de direccin 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

00

D1

D2

D3

D4

D5

58

Tabla 4.8 trama para lectura de PES (fuente: elaboracin propia).

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

F1

DIRECCION (6 BITS)

F78 F79 F80 . F131 D0


0

D1

D2

D3

D4

D5

61

Tabla 4.9 trama de fusibles de seguridad (fuente: elaboracin propia).

La trama de fusibles de seguridad especifica valores de nulos en los 132 bits y corresponde
a la direccin 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: elaboracin propia).

En la tabla 4.10 se contempla la trama de lectura de los 20 bits correspondientes a los bits
S1 Y S0 de configuracin 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
direccin 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: elaboracin 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 lgico cero.
En los siguientes acpites se describen tanto las seales como los diagramas de flujo que se
disearon para la descripcin de los mismos.

2.6 PROTOCOLO DE LECTURA DE FUSIBLES GAL22V10


Antes de la descripcin de los diagramas de tiempo que corresponde a la comunicacin que
establece el microcontrolador para la lectura de la GAL, se debe recordar la definicin que
toman cada uno de los pines al momento de establecer su estado de edicin (lectura o
grabacin) 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 descripcin de pines GAL en estado de edicin (fuente: elaboracin propia).

En la tabla 3.2 se describe la funcin de cada uno de pines de la figura 4.6.


Los protocoles que se describen a continuacin fueron extrados 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
direccin
Pulso de reloj

Pulso negativo de
STR

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

Figura 4.7 diagrama de flujo para lectura de fusibles GAL22V10 (fuente: elaboracin 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
continuacin.
Para el estado de lectura de fusibles se debe establecer P/V a 0, estableciendo el patrn
000000b en COM[5:0], bit puesto 0 o a 1 que requieren los 6 bits de direccin 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 direccin de columna (lnea 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 lnea (138 en total).

ARIEL AUGUSTO ANZA MORALES

27

VCC
EDIT
P/V
COM[5:0]

000000b=0d

DIN

Direccin[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: elaboracin 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
direccin
Pulso de reloj

Pulso de grabacin

BAJAR P/
ACTIVAR 12V
BREAK

Figura 4.9 diagrama de flujo para escritura de fusibles GAL22V10 (fuente: elaboracin 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 direccin de la
columna. Establecer DIN a 0 y llevar STB a 0 y esperar a que el tiempo de pulso de
programacin antes de tomar de nuevo a 1 lgico. Restaurar P/V a 0 al final de la
operacin.
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: elaboracin 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 lgico. Restaurar P/V a 0 al final de la operacin.

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:
elaboracin 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: elaboracin
propia).

ARIEL AUGUSTO ANZA MORALES

30

2.9 PROTOCOLO DE LECTURA CFGs


Para el proceso lectura de los fusibles de configuracin 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 lgico. Leer el pin DOUT y pulso de reloj, se completa
la operacin despus 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: elaboracin
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: elaboracin
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:
elaboracin propia).

Para el proceso escritura de los fusibles de configuracin 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 programacin (40ms) antes de tomar de nuevo a
1 lgico. Restaurar P/V a 0 al final de la operacin. Ver figura 4.15.
El cdigo correspondiente a los protocolos descritos anteriormente se lista en los apndices
de este documento.
Nota.- el firmware considerado para el grabador es tambin implementada en el
entrenador, con la salvedad que es aadido 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 COMUNICACIN PC/GRABADOR


Se opt por la comunicacin USB para la transferencia de datos entre el microcontrolador
y la PC. Para tal efecto se debe recalcar que el microcontrolador PIC18F2550 posee un
mdulo USB en su arquitectura interna. Dicho mdulo dispone de los siguientes protocolos
de transferencia:

CDC (Communications Devices Class).


HID (Dispositivo de Interfaz Humana, mouses,keypad,etc).
BULK TRANSFERS USB (comunicacin bidireccional masiva).
MSD USB (Mass storage Device, memorias, HD, etc).

De los protocolos de transferencia mencionados, se opt por el uso del mtodo CDC que
corresponde a la emulacin de una comunicacin por puerto serial, es decir que se genera
un puente de software que hace de intermediario entre el bus USB convirtindolo en un
puerto serial virtual. Tal eleccin se da principalmente porque la mayora de los softwares
proporcionan un mdulo de comunicacin serial incorporado entre sus herramientas.

2.12 IMPLEMENTACIN DEL FIRMWARE


El uso del protocolo CDC para la comunicacin 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 diseo final del software que reside en el sistema operativo.
Logrndolo con el uso de una terminal serial, como ser la Hyperteminal de Windows.
Los siguientes grficos muestran los pasos que siguieron para la generacin 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 Ejecucin del IDE para la implementacin del Firmware (fuente: elaboracin propia).

Se procede a la ejecucin del asistente para creacin de proyectos (figuras 4.17 y 4.18), que
es parte de IDE, para facilitar la configuracin inicial del proyecto.

ARIEL AUGUSTO ANZA MORALES

33

Figura 4.17 Asistente para creacin del proyecto (fuente: PIC C Compiler ).

Figura 4.18 Asistente para creacin del proyecto (fuente: PIC C Compiler ).

Las configuraciones iniciales ms destacables son el valor del cristal, PLL, dispositivo, etc.
El cdigo fuente se muestra en el apndice respectivo, sin embargo este no es el ltimo
paso descriptivo de la generacin del firmware, se debe generar una PIV y PID para que el
sistema operativo reconozca al grabador como dispositivo de conexin por el mtodo CDC
(emulacin 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 Informacin del software v3.1-INF_Enumeration_uC_PIC-USB (fuente: Pedro-

Palitroquez palitroquez@gmail.com)
Tal software genera tanto el VID (VENDOR ID), PID (PRODUCT ID), Descripcin, Fabricante,
etc. Se debe notar que en la figura 4.20 se muestran dichos parmetros, de los cuales los
ms destacables son tipo de transferencia (CDC-RS232) y la generacin de la librera
usb_desc_cdc.h que es incorporado en el cdigo del firmware.

Figura 4.20 ejecucin v3.1-INF_Enumeration_uC_PIC-USB (fuente: Pedro- PalitroqueZ

palitroquez@gmail.com).
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 aplicacin de investigacin
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: elaboracin propia).

Con esto se finaliz el proceso de comunicacin el grabador con la PC, faltando solamente
el Software que gestione todo el proceso de grabacin, incluido el uso de los comandos que
se crearon para la depuracin 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: elaboracin
propia).

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

ARIEL AUGUSTO ANZA MORALES

40

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

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

ARIEL AUGUSTO ANZA MORALES

41

Figura D.5 grabador ETN-AI placa inferior vista de diseo (fuente: elaboracin propia).

Figura D.6 grabador ETN-AI superior vista de diseo (fuente: elaboracin propia).
ARIEL AUGUSTO ANZA MORALES

42

Figura D.8 (fuente: elaboracin propia).

Figura D.8 (fuente: elaboracin propia).

ARIEL AUGUSTO ANZA MORALES

43