You are on page 1of 9

GPIC USB - PROGRAMADOR PIC POR PUERTO USB

Esquema electrnico del programador.


En esta primera parte del programador PIC por puerto USB se realiza una descripcin del esquema
electrnico.

Figura 1: Circuito electrnico del programador USB


Descripcin del circuito electrnico
El esquema de la figura 1 corresponde al programador de microcontroladores Pic por puerto Usb,
su diseo es simple y sencillo. Lo podemos dividir en tres bloques fundamentales bien definidos:

Figura 2 : Bloques del programador Usb

Bloque 1: Microcontrolador
El primero y ms importante est constituido por el microcontrolador 18F2550 (IC2), es el
encargado de la comunicacin por el puerto USB con la PC por intermedio de la interfaz de
programacin, establece la transferencia de datos con los microcontroladores soportados y activa
las tensiones de VDD y VPP.

Figura 3 : Circuito del Pic 18F2550

Los pines 15 y 16 (RC4 - RC5) del puerto C del Pic conectan con la ficha correspondiente para la
transmisin y recepcin de los datos va USB. Los pines 2 y 3 (RA0 - RA1) del puerto A se destinan
como interfaz de comunicacin del protocolo ICSP entre el programador y los microcontroladores
soportados por ste, a travs del conector ICSP (terminales 1 y 2, figura 1). Los datos por el pin 2
son bidireccionales, sincronizados por una seal de reloj con salida por el pin 3.
Los pines 23, 24 y 25 (RB2 - RB3 - RB4) del puerto B los utilizamos para el control de la tensin
VPP de programacin. Segn el estado de estas salidas obtenemos diferentes tensiones en la
salida VPP del conector ICSP (terminal 3, figura 1).
El pin 26 (RB5) del Pic lo utilizamos como una salida para controlar los estados de la tensin VDD.
Continuamos con los pines 11, 12 y 13 (RC0 - RC1 - RC2) del puerto C, son utilizados como
salidas para los leds de visualizacin del funcionamiento del programador.
Comenzando con el led denominado "VDD", este se encender con el suministro de esta tensin.
Tenemos tres estados posibles, segn la configuracin establecida desde la interfaz de usuario en
la PC:
A- Slo se suministra tensin VDD a los microcontroladores soportados durante los procesos de
lectura, grabacin, verificacin y borrado.
B- Suministro de tensin constante, para poder alimentar a los circuitos durante las pruebas (slo
circuitos con bajo consumo)
C- No se suministra tensin VDD hacia los microcontroladores soportados, una fuente externa
debe proveer la alimentacin.
El led denominado VPP, se enciende durante el suministro de dicha tensin durante todos los
procesos. Desde la interfaz de programacin en la PC podemos configurar el suministro de esta
tensin de dos formas:
A- Slo se suministra tensin VPP a los microcontroladores soportados durante todos los
procesos.
B- Suministro de tensin MCLR post-procesos, para "arrancar" al microcontrolador sin tener que
desconectar la ficha ICSP.
Por ltimo el led denominado USB, se enciende cuando se establece la comunicacin con el puerto
USB y es reconocido el programador. Volviendo sobre el Pic 18F2550, ste debe ser grabado en
un principio para su funcionamiento. El programa para este microcontrolador podemos dividirlo en
dos partes: un programa residente en un block de memoria del Pic, comnmente llamado
bootloader, encargado de "chequear" la existencia del Firmware correspondiente al conectar el
programador al puerto USB. En caso de no encontrarse, el led denominado USB comenzar una
secuencia de encendido en forma intermitente. En caso contrario, el firmware tomar el control y el
led quedar encendido en forma continua.
La gran ventaja de utilizar este sistema se debe a que slo una vez debemos programar el
microcontrolador 18F2550, en lo sucesivo los cambios y actualizaciones del firmware se podrn
realizar directamente desde la interfaz de usuario en la PC.
Para finalizar este bloque, el pin 17 (RC6) del puerto C, lo utilizamos para generar una seal que,

junto con el buzzer BZ1 emite unos "beeps" cada vez que pulsamos los botones de comando para
lectura, grabacin, verificacin y borrado desde la interfaz de programacin. Es opcional su
implementacin y puede ser activado o desactivado desde la misma interfaz.
Bloque 2: Conversor DC - DC
En un comienzo me plante qu diseo usar para el conversor de tensin, si implementarlo de
forma totalmente independiente o utilizar el Pic para esta tarea generando un pwm por software,
ms los componentes externos necesarios. Me decid por la primera opcin por varios motivos: el
circuito integrado utilizado MC34093, es un conversor especializado para esta funcin, de muy bajo
costo, ampliamente difundido, que figura en las listas de componentes de casi todos los comercios
de electrnica. Es autnomo, no depende del firmware grabado en el 18F2550, quiero decir con
esto que podemos chequear su funcionamiento y la tensin de salida del conversor (en las
pruebas) sin necesidad de tener el Pic en la placa del programador ya que no depende de ste.
Adems nos permite, si fuera necesario, regular la tensin de salida con slo variar el valor de una
resistencia: R3 o R4.
El valor del choque L1 no es crtico, puede estar comprendido entre 220 uH y 680 uH sin ningn
tipo de inconveniente.
El circuito se alimenta con 5 volt suministrados por el puerto USB y a la salida de TP2 obtenemos
una tensin continua de aproximadamente 14 - 14.5 volt necesarios para alimentar el bloque 3
(figura 2).

Figura 4 - Circuito del conversor DC DC


Las resistencias R3, R4 junto con R5 forman un divisor resistivo conectado al pin 5 del MC34093,
este lazo de realimentacin estabiliza la tensin de salida ya que es comparada con una tensin de
referencia interna, como podemos observar en la figura 5. En la salida del integrado pin 1,
obtenemos una onda variable en ancho de pulso (pwm) en relacin al consumo exigido luego de la
rectificacin, lgicamente dentro de unos lmites.
Los estados de conmutacin On Off en el pin 1 del MC34093 junto con L1 producen la elevacin de
la tensin, el diodo D1 y los capacitares C3, C4 se encargan de la rectificacin. El capacitor C2
establece la frecuencia del oscilador interno.

Figura 5 - Diagrama interno


del MC34063
Bloque 3: Tensiones VPP y VDD
Podra haber utilizado un solo transistor para tratar la tensin de programacin VPP, pero
estaramos bastante limitados. La idea era tener una salida Vpp nica y ms flexible, que
proporcionara la tensin normal de programacin, la opcin de una tensin MCLR post
programacin y por ltimo que ya estuviera pensada para los microcontroladores que trabajan con
3.3 volts que sern incorporados en el futuro. Esto lo poda obtener utilizando un amplificador
operacional, precisamente el CA3140 con entradas mosfet y salida bipolar, que trabaja bien con
alimentacin de simple va, pero lo ms importante en cuanto a la eleccin es que est preparado
para obtener una tensin de salida diferente independientemente a la tensin suministrada sobre el
pin 7.

Figura 6 - Circuito que controla las


tensiones VPP y VDD
Con un diodo Zener sobre el pin 8 (STROBE) se consigue de forma simple y prctica modificar el
valor de la tensin de salida por el pin 6. En la figura 7 podemos ver la informacin que brinda el
fabricante del CA3140 para adaptar la salida a niveles compatibles TTL independientemente de la
tensin V+ en el pin 7.

Figura 7
En el programador he adaptado el circuito para manejar las tensiones de 3.3 volts para esta gama
de Pics que se irn incorporando en prximas actualizaciones. Est conformada, como podemos
observar en la figura 6, por el Zener Z1 conectado al pin 8 del CA3140 en serie con el transistor
NPN Q2 que trabaja como llave electrnica On-Off, de acuerdo a los niveles alto o bajo en la base.

Con un nivel bajo sobre la base de este transistor el circuito est desconectado, por lo tanto la
tensin VPP ser la normal de 12.30 / 13 volts; por otro lado, con un nivel alto proporcionado por
RB4 del 18F2550 a travs de R13 el circuito se conecta, la tensin VPP en este caso ser de 3.3
volts. De esta forma queda totalmente automatizado el suministro de VPP de acuerdo a los
dispositivos seleccionados desde la interfaz de usuario en la PC.
Por el momento no es necesario implementar Z1, Q2 y R13, ya que es la primera versin base del
programador y dicha gama de dispositivos an no estn incorporados. En este caso el pin 8 debe
quedar sin conexin. Como pueden ver, la electrnica del programador ya est pensada para
soportar de forma prctica a estos microcontroladores a medida que sean agregados.
Continuando con esta etapa, las entradas inversora y no inversora del amplificador operacional se
conectan con RB3 y RB2 del microcontrolador; de acuerdo a los niveles detectados por las
entradas del CA3140 la salida de ste conmutar entre un estado prximo a masa (0.3 volts) y
Vpp, al finalizar proveer una tensin adecuada al caso, si se eligi la opcin "suministrar MCLR"
desde la interfaz de programacin. Todas las seales para la activacin de las tensiones estn
sincronizadas desde el firmware del microcontrolador Pic.
Las resistencias R9 y R10 conectadas a masa evitan que queden al "aire" las entradas del
operacional en caso que el microcontrolador 18F2550 no est presente en su zcalo, de lo
contrario tendramos un estado de indeterminacin a la salida. El capacitor C10 limita la banda
pasante del operacional, es obligatorio junto con R11 y R12.
El pin 7 del CA3140 recibe la tensin de alimentacin para su funcionamiento, proporcionada por el
conversor Dc-Dc. El pin 4 se conecta a masa.
La tensin mxima en la salida del operacional pin 6 es aproximadamente 2 volts menor a la
tensin de alimentacin sobre el pin 7 (en caso que no se encuentre activado Q2, Z1).
Para finalizar la descripcin y resumiendo, el terminal 3 del conector ICSP (figura 1) puede manejar
cuatro estados de VPP:
1- una tensin prxima a masa (0.3 volts).
2- una tensin Vpp de aproximadamente 12.30 - 13 volts.
3- una tensin post programacin MCLR.
4- una tensin Vpp baja de 3.3 volts.
Por ltimo el transistor Q1 se encarga del manejo de la tensin Vdd, se encuentra conectado con la
salida RB5 del microcontrolador. Un nivel alto en la base de Q1 lo mantiene bloqueado y un nivel
bajo lo coloca en estado de conduccin con salida por colector; el emisor de dicho transistor se
conecta a + 5 volts suministrados por el puerto USB.
Extensin 3.3 Volts VDD2
Opcionalmente podemos anexar una lnea auxiliar de 3.3 volts en el conector ICSP. Con un simple
circuito (figura 8) obtenemos una tensin de salida de 3.3 volts en el emisor de Q3, con las mismas
caractersticas de control que VDD. La entrada de tensin se produce por el colector de Q3,
conectado a VDD, colector de Q2.

Listado de componentes del programador USB


IC1 = MC34063
IC2 = PIC 18F2550
IC3 = CA 3140
Q1 = BC327
Q2 = BC547
Vpp - Vdd - Usb = leds 3 mm
D1 = 1N4148
R1 = 0.22 a 0.47 Ohms
R2 = 180 Ohms
R3 = R4 = 12k
R5 = 2.2K
R6 - R7 - R8 = 33 Ohms
R9 - R10 - R11= 10K
R12 = 33K
R13 - R14 - R15 - R21 - R22 = 4.7K
R16 - R17 - R18 = 470 Ohms
C1 - C4 = 100 uf x 16v electroltico
C2 = 390 pf
C3 - C5 = .1 uf (100n)
C6 = 10 UF x 16v electroltico
C7 - C8 = 15 pf
C9 = .47 uf (470n)
C10 = .001 uf (1n)
C11 = 1 uf x 16v electroltico
L1 = choque 330uH a 680uH
Xtal = cristal de 20 Mhz
Bz1 = (opcional) buzzer sin oscilador interno
F1 = requiere puente o picofusible

Conector USB
Conector ICSP