FACULTAD DE INGENIERA
CARRERA DE INGENIERIA ELECTRONICA
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.
PLD
ELEVADOR DE
TENSIN (VPP)
HABILITADOR
VPP
PWM
uC
Figura 3.2 Estructura interna del circuito de interfaz de grabacin entre uC y PLD (Fuente:
Elaboracin propia).
CONVERTIDOR
CC-CC
Figura 3.5 zona de saturacin (izquierda) y corte (derecha) del circuito elevador de tensin
(fuente: elaboracin propia).
Figura 3.6 regulador paralelo con diodo zener (fuente: elaboracin propia).
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.
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.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
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-
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
Tabla 3.2 Funcin de los pines en estado de programacin (fuente: elaboracin propia).
Figura 3.12 Toma de medidas para el dimensionamiento de la placa (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).
11
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
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.
14
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
1
1
45
89
..
..
..
..
3609
3653
3697
..
..
..
..
..
..
..
5677
5721
5765
0
1
2
..
..
..
..
82
83
84
..
..
..
..
..
..
..
129
130
131
0
0
44
88
..
..
..
..
3608
3652
3696
..
..
..
..
..
..
..
5676
5720
5764
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.
16
columna 44
S1
5809
S0
5810
..
..
..
..
S1
5825
S0
5826
S1
5827
S0
5808
S1
5811
..
..
..
..
S0
5824
S1
5827
S0
5826
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.
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
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
19
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).
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).
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)
%w(DIR_COL)(DATOS)
%w32001000000011
%b
BORRAR GAL
%b
%t
%t
%v
%v
%f(DIR_COL)
%f30
%m(DUTY)
%m65
%p(BIT)
%p1 (activar)
%e(BIT)
%le(BIT)
%le1 (LED ON
encendido)
%lp(BIT)
0x02=STX
0x03=ETX
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).
23
MSB LSB
F0
F1
F2
44
88
45
89
46
F3
MSB
D1
D2
D3
D4
D5
90
47
91
40
84
40
41
85
41
42
86
42
43
87
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
00
D1
D2
D3
D4
D5
44
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)
F1
b0
b1
b78 b79
00
D1
D2
D3
D4
D5
58
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)
D1
D2
D3
D4
D5
61
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
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.
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.
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).
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).
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).
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
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).
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).
30
ACTIVAR 12V
BAJAR P/
COM_GAL=010000B
BAJAR DIN
Pulso de reloj
Pulso negativo de
STR
i=0 a 19
Pulso de reloj
DESACTIVAR 12V
BREAK
Figura 4.13 diagrama de flujo que describen la lectura CFGs de la GAL (fuente: elaboracin
propia).
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).
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).
32
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.
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.
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
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.
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.
35
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).
36
APENDICE A
PLANOS DESCRIPTIVOS GRABADOR ETN-AI VER 1.0
Los siguientes planos describen al grabador ETN-AI ver. 1.0
37
38
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).
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).
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
43