QUARK PRO
UN CARGADOR DE PICs SIN FUENTE

En el artículo anterior presentamos las "bases" de un nuevo cargador de PICs que se conecta al puerto serie de una computadora y que no requiere fuente de alimentación para su funcionamiento. En esta nota le mostramos cómo funciona y qué inconvenientes pueden tener con este circuito.

INTRODUCCION

Todo el problema de un programador por el puerto serie sin fuente consiste en generar 5V y 14V regulados partiendo de las señales de puerto serie que son pulsos de +12 y –12V. Desde el punto de vista teórico el problema tiene solución y muchas empresas han presentado soluciones a los largo de los últimos años. Muchas veces a la hora de diseñar se debe analizar lo que existe en el mercado y mejorarlo o reducir su costo. Ningún diseño comienza desde cero, siempre hay algo en que basarse y sería tonto desconocer este hecho. En nuestro caso tomamos como base un circuito basado en una red de diodos rectificadores y zener que trabajan junto con un transistor NPN de señal. Todos componentes muy baratos y fáciles de conseguir.

En cuanto a la disposición mecánica es donde comienzan las mayores innovaciones. La mayoría de los usuarios va a trabajar con los PIC clásicos que son el PIC 16F84, el PIC 16F84A y el PIC16C84 y solo requerirían el zócalo de 18 patas. En este caso nos podríamos evitar los zócalos de 28 patas y los zócalos de 40 patas que requieren los dispositivos mas grandes. Pero nuestro programador perdería flexibilidad. Lo mejor es colocar solo un conector sobre la plaqueta y trabajar con todos los prolongadores que el usuario necesite. El dispositivo primario está provisto de un conector y una manguera para un zócalo de 18 patas pero el usuario tiene la información necesaria para realizar otras mangueras de ampliación para 8 patas, 28 y 40. Al mismo tiempo este sistema permite programar in situ si se toma la precaución de desconectar la propia fuente del dispositivo.

Físicamente, la plaqueta del programador se monta directamente sobre la salida del puerto serie y sobre ella se monta la manguera con el zócalo provisto u otro construido por el usuario que puede tener una extensión del orden del metro.

Por alguna razón que el autor desconoce los programadores siempre tienen una costosas plaquetas de fibra de vidrio que no tienen ninguna razón de existir. Simplemente son para dar sensación de profesionalidad.

El autor considera que la profesionalidad se debe observar en otras cosas y las placas de fibra de vidrio se deben utilizar para UHF, para tensiones elevadas y para otros usos especiales; los programadores se pueden armar sobre una placa fenólica sin ningún deterioro de la calidad.

Por último un buen programador debe ser algo más que un dispositivo que programa. Debe ser un dispositivo que tenga facilidades para su reparación. En efecto un programador es en el fondo un circuito de interfaz entre la PC y su PIC. Y como todo apéndice externo siempre existe la posibilidad de falla por fugas o ingreso de tensiones externas.

El autor considera que la economía no debe influir en las capacidades de autoevaluación de funcionamiento, sobre todo si el software incluye una sección de control del funcionamiento bien detallada (y en castellano).

Muchos lectores nos escribieron alabando al famoso NOPPP simplemente porque era el único programador de plaza que tenía una rutina de reparación para que los usuarios lo repararan o lo arrancaran con un simple téster. El QUARKPRO no requiere ni siquiera el téster porque posee un juego de leds que nos indican su correcto funcionamiento cuando se está cargando un programa o con una rutina especial de prueba.

 
LAS SEÑALES DE PROGRAMACION
Este tema fue tratado hace un par de años cuando explicábamos como funcionaba un programador NOPPP, pero lo volvemos a tratar aquí dada su importancia para entender cómo funciona nuestro nuevo programador. El PIC, como una memoria, tiene una pata que predispone el dispositivo para leer o para escribir.

Si la pata 4 del PIC llamada MCLR negado (MASTER CLEAR, literalmente borrado maestro) está a un potencial comprendido entre 13 y 14 V el PIC está preparado para escribir los datos que provienen de la PC. Si la pata 4 está por debajo de 6V el dispositivo está previsto para ser leído.

Por supuesto que los datos a leer o escribir se introducen u obtienen por otra pata del PIC que es la 13 llamada RB7 (pata de input/ouput 7 del puerto B). Como el lector sabe, para que un dato pueda ser leído o escrito además de estar presente en la pata de entrada/salida es necesario cambiar el estado de la pata 12 del mismo (llamada RB6) que opera como clock. Es decir que un dato en una pata puede no cambiar por un buen rato pero si la pata 12 cambia de estado el PIC considera que debe leer/grabar un dato en ese preciso instante.

Otra cosa a entender es cómo hace el PIC para grabar/leer una dada posición de memoria. En otros dispositivos el acceso a las diferentes posiciones de memoria se consigue por una pata diferente a aquella por la cual se introduce el dato o el clock; inclusive existen dispositivos con memoria que tienen varias patas dedicadas al acceso (acceso por puerto paralelo). Un PIC se lee/escribe accediendo a las diferentes posiciones de memoria por la misma pata por la que se obtienen/ingresan los datos (la pata 13 o RB7). La señal está dividida en dos partes. La primer parte tiene codificada la posición de memoria a la que se desea acceder (direccionamiento) y luego que esa posición está accesible, allí se escriben o leen los datos. El clock que se coloca en la pata 12 sirve para indicar en qué momento se debe transferir la información al interior del PIC.

En la figura 1 mostramos las formas de señal indicadas por Microchip para leer o grabar un PIC.

Observe el oscilograma de data de la zona de los tres oscilogramas superiores que corresponden a la lectura/escritura de datos con un dado posicionamiento. El lector observará que dentro del comando existe una primer sección de 6 bits que indican la posición de memoria a ser leída/escrita y luego la línea de datos permanece en estado de alta impedancia por un intervalo de tiempo que depende de la operación (durante ese tiempo el clock está apagado). Por último ingresan/egresan los datos. En la parte inferior se puede observar otro posicionamiento y otros datos.

Las conexiones de fuente y las señales deben ser aplicadas según una secuencia predeterminada que debe respetarse invariablemente.

Los nombres de las señales se aclaran en la figura 2.

  • A) El primer paso es colocar el PIC en el zócalo del programador con señales y fuentes a potencial de masa.

  • B) Levantar la tensión de fuente VDD a un potencial de 5 V ± 0,2 V por la pata 14 (VDD).

  • C) Levantar la tensión de fuente VPP a un potencial de 13 V ± 0,3 V por la pata 4 (MCLR NEGADO).

  • D) Esperar en esas condiciones un tiempo superior a 1 mS.

  • E) Posicionar el primer dato en la pata 13 (RB7) con un potencial alto (mayor a 4 V) o bajo (menor a 1 V).

  • F) Cuando la pata 12 (RB6) pase a un estado bajo, inferior a 1 V, el dato se carga en la memoria.

  • G) Continuar cargando los datos con el mismo criterio a un ritmo tal que el dato esté presente por lo menos durante 100 nS.

  • H) Cuando todos los datos fueron cargados se debe esperar 1 segundo.

  • I) Desconectar la fuente de 13 V.

  • J) Desconectar la fuente de 5 V.

  • K) Retirar el micro grabado.

Observe que hay un tiempo entre el momento en que MCLR NEGADO sale de la condición de reset hasta que aparece el primer dato o el primer pulso de clock. También hay un tiempo mínimo para la permanencia de un dato en la entrada (la representación usada para un dato significa que el mismo puede ser alto o bajo dependiendo del bit que se esté grabando). Lo que no hay es un tiempo máximo pero evidentemente cuando mayor es este tiempo más lenta será la carga del programa.

 
CIRCUITO DEL PROGRAMADOR
En la figura 3 se puede observar el circuito del programador propuesto cuyo archivo de workbench es el progra01.msm. Observe que solo se utilizan 3 transistores, 4 diodos 1N4148, dos diodos zeners y un conector de 5 patas. Más sencillo y económico imposible; y recuerde que luego de grabarlo el PIC se comporta en forma exactamente igual que si está grabado en el programador más caro.

Para analizar este circuito lo mejor es separarlo en dos grandes bloques.

El bloque de fuente y el bloque operativo. El bloque de fuente es el más complejo y se puede observar aislado en la figura 4 se puede bajar de Internet, desde la página de contenidos especiales, con la clave dato185 y el nombre PROG02.

Observe que para probarlo solo se debe conectar un generador de onda cuadrada de 24V de amplitud pico a pico y 10kHz entre la pata 3 y la pata 7 del puerto serie. El funcionamiento puede analizar observando los caminos de circulación de corriente cuando la pata 3 es positiva y luego cuando es negativa.

Cuando la pata 3 es negativa, la 7 es positiva y circula corriente por el diodo D1, el capacitor C2, masa del PIC, el diodo D6 y la pata 8. En este caso el capacitor C2 se carga paulatinamente hasta que llega a tener una tensión igual a la del zener D3, momento en que la tensión se mantiene constante en 5V. Con esta polaridad el capacitor C1 también adquiere una carga debida a la conducción en directa del diodo D4. Esta tensión se puede calcular como la tensión VDD (aproximadamente 5V o exactamente los 5,1V del tener D3) menos la barrera en directa (0,6V) del zener D4.

Cuando la pata 3 es positiva la circulación de corriente se establece por el transistor Q2 en una forma curiosa, en efecto, cuando no hay carga en el emisor (consumo del PIC por MCLR) este transistor funciona utilizando su juntura de base colector simplemente como si fuera un diodo. Por este diodo circula una corriente que carga al capacitor C1 en su camino hasta masa desde donde se cierra sobre el generador por el diodo D2. La carga de C1 puede alcanzar una tensión igual a la suma de las tensiones de ambos zenners es decir 13,3V.

Al correr el Workbench sobre este circuito observamos que las tensiones obtenidas están muy cerca de las calculadas.

El mismo Workbench nos permite comprobar la veracidad de la teoría simplemente eliminando primero la conexión de emisor del transistor para comprobar que no hay circulación de corriente por allí. Posteriormente se puede desconectar el diodo D2 para evitar la circulación de corriente cuando la pata 2 es negativa verificando que la tensión de 5,1 V prácticamente no varía, en tanto que la de 13,3 V cae a aproximadamente 4,6V. Por último eliminando el diodo D1 se puede observar que la tensión sobre el capacitor C1 llega hasta 13,3 V pero lo hace más lentamente que en el circuito completo.

Por último desconectar el colector de Q2 es equivalente a la desconexión de D2.

¿Quién limita la corriente que circula
por los dos diodos zeners en un semiciclo o por el diodo de 5,1V en el otro?

La corriente es limitada por la propia PC ya que las patas de salida de la misma tiene una limitación de corriente que puede considerarse cercana a los 50 mA (depende de la PC considerada). Nuestro programador consume muy poca energía por lo que puede suponerse que en su funcionamiento normal estaremos muy lejos del límite propuesto por la PC.

¿Existe algún modo de prueba sencillo
si es que no obtengo buenos resultados con mi programador?
Sí existe y es casi el único modo de probar el circuito; si Ud. tiene un buen osciloscopio y pretende utilizarlo levantando oscilogramas con respecto a la masa del PIC le aviso que es muy probable que solo logre que se cuelgue su máquina cuando le pida a su Icprog que cargue un programa. En efecto, la masa del osciloscopio va a estar desconectada de la masa de la PC y la más mínima fuga por el transformador de alimentación del osciloscopio ingresa por las patas de puerto serie interaccionando con la PC que no sabe que dispositivo tiene colgado en su puerto serie y que está enviando señales alternas de 50Hz. Por lo tanto, no mida con ningún instrumento que deba conectarse a la red de canalización.

Solo use equipos alimentados a batería como por ejemplo el téster digital.

En cuanto a que utilizar como señales equivalentes a las del puerto serie, nosotros consideramos que lo mejor es utilizar una fuente regulada de CC de 0 a 30V (en su defecto alcanza con un simple transformador de 220 a 24V un diodo y un electrolítico).

Predisponga su fuente aproximadamente en 24V y conecte dos resistores de 47 Ohms en serie con la misma como se observa en la figura 5. Conecte el negativo de la fuente a la pata 3 y observe que la tensión sobre el zener D3 sea de 5,1V y sobre el zener D4 de 4,6V.

Esto implica que el led 1 rojo se encenderá con brillo normal. Conecte el positivo de la fuente a la pata 3 y mida la tensión sobre el zener D3 que será de 5,1V y sobre el tener D4 que será de 8,2V. Confirme que sobre MCLR negado tenga una tensión continua de 13,2V aproximadamente en esta segunda condición.

La reparación, en caso de que no se cumplan alguna de las pruebas es muy obvia. Como se trata de verificar circuitos cerrados por diodos, basta con medir con un téster sobre los diodos que deben estar cerrados al aplicar la fuente de 24 V. Si se observa una tensión diferente a 0,6 V aproximadamente, es porque ese diodo está en malas condiciones. Evidente cuando se verifican los zeners la tensión medida debe ser la correspondiente al zener.

Existe una falla muy peligrosa que puede pasar desapercibida hasta que se quema un PIC. Nos referimos al diodo D6 levantado.

Si este diodo se encuentra levantado el circuito provee las dos tensiones correctamente sobre los electrolíticos C1 y C2 pero la pata MCLR del PIC recibe todo el potencial negativo de la entrada 3 que como sabemos es de –12V. La existencia del diodo no solo mejora la corriente de carga de las fuentes sino que protege la entrada MCLR que solo recibirá un mínimo potencial negativo igual a la barrera del diodo (-600 mV). Por eso recomendamos realizar las pruebas con fuente y verificar la tensión sobre la pata MCLR sin colocar un PIC en el circuito.

El autor realizó pruebas reales con el diodo D6 levantado y el resultado fue que 2 de 5 PICs se quemaron luego de varias cargas. Los otros 3 siguen gozando de buena salud.

 
LA SECCION OPERATIVA
Si bien se pueden utilizar señales generadas especialmente para producir las tensiones VDD y MCLR, el dispositivo utiliza las misma señales de datos para generar las fuentes.

Por esa razón la misma señal que alimenta a los diodos D1 y D2 se utiliza como clock en RB6.

RB7 es la entrada o salida de datos y la conexión entre la PC y el PIC se realiza a través del transistor Q1.

Por la pata 4 del puerto se opera el cierre o la apertura de dicho transistor.

El funcionamiento de la carga o descarga del PIC y por ende de la forma de las señales, depende del seteo que se halla realizado en el software. La mayor variante ocurre cuando se predispone el software para que controle la carga dato por dato o cuando se lo predispone para que revise todo el programa grabado al final de la carga.

Si se predispone el software para que vaya verificando a medida que carga, la secuencia de señales es la siguiente: se baja la tensión de la pata 4 para que Q1 se cierre. Se coloca la pata 3 en alta para aplicar MCLR. Se presenta el dato de la posición de memoria 0000 en la pata 8 que pasa inmediatamente a RB7. Se levanta la pata 4 para que no entren datos espurios. Se baja la pata 3 para que el sistema quede predispuesto para la lectura. Se baja la pata 4 para leer los datos a medida que se aplica el clock. Una vez cargado y verificado la posición de memoria 0000 se realiza el mismo proceso con la 0001 y así sucesivamente hasta cargar y verificar todo el programa.

Si el software se predispuso para verificar solo al final de la carga, el proceso es similar pero en lugar de realizarse paso a paso se realiza la verificación solo después de cargar todos los datos.

 
CONCLUSIONES
En este artículo le explicamos como funcionan las dos secciones del programador. Por un lado la sección de fuentes y por otro la sección operativa encargada de cargar el PIC. Se observa que prácticamente la sección de fuente es todo el dispositivo, apenas se dedica un transistor y dos resitores a la sección operativa. El trabajo lo realiza en realidad el programa Icprog ya que nuestro dispositivo solo realiza la función de cerrar o abrir el transistor Q1 que opera como llave.

Aclaramos que el funcionamiento de este programador es algo inestable porque requiere de ciertas precauciones al usar la tensión de la computadora.

En el próximo número explicaremos el funcionamiento de otro programador de PICs, más completo que éste y de desempeño muy superior pero que lleva fuente de alimentación externa (lo que no es problema para los amantes de la electrónica).

Aclaramos una vez más que estamos exponiendo la explicación de varios cargadores porque nos hemos encontrado con lectores que se sienten estafados por la gran cantidad de prototipos que están en venta en casas especializadas de procedencia dudosa, muy poco apoyo técnico y que en muchas ocasiones ni siquiera funcionan.

 
Autor: Ing. Alberto H. Picerno - picernoa@fullzero.com.ar
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
FIGURA 5
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
 
 
 
PROMOCIONES