QUARK PIC BASIC - CARGADOR DE PICs DE 12, 18 Y 28 PATAS

Quienes leen Saber Electrónica y los que han asistido a los seminarios dictados por Quark sobre microcontroladores PIC saben que el NOPPP es el "cargador" que hemos seleccionado para realizar las primeras pruebas y propiciar el aprendizaje de esta disciplina. Muchas son las razones por las cuales se empleó este utilitario pero las más importantes son que es fácil de armar y de uso libre. En esta nota proponemos el armado de otro cargador que puede tildarse de "casi universal" por permitir la carga de PICs de 12, 18 y 28 patas además de memorias del tipo 24LCXX. Emplea pocos componentes y se maneja con programas de uso libre que pueden bajarse de Internet.

INTRODUCCION

Si Ud. conoce el NOPPP pensará que la nota del copete es una burla. No, es real aunque parezca mentira.

Pero tratemos de aclarar el significado de la nota. El NOPPP sólo utilizaba un zócalo para el PIC, dos diodos 1N4148, algunos resistores de 1/8 de Watt, un transistor BC548 y una fuente de 13 y 5 V.

¿Cómo se puede bajar el costo de este programador
que ya no tiene casi nada?

Simplemente utilizando las fuentes de la computadora que se utiliza para grabar el PIC.

Si el lector conoce de computadoras sabrá que el puerto paralelo de la PC tiene las dos fuentes clásicas de la PC que son de 5 y 12V. La de 5V tiene justo el valor buscado pero la de 13V no, lamentablemente nos falta 1V. El resto de las patas son el puerto de entrada/salida o terminales I/O con señales de pulsos de 5V.

Buscamos información al respecto y encontramos lo siguiente. Para el fabricante del PIC esa tensión llamada Vpp se especifica como de 12 a 14V; por esa razón es que en el diseño de un programador se elige un valor nominal de 13V que es justo el medio del rango indicado por el fabricante.

Pero una PC tiene también un puerto serie que puede ser utilizado para acoplar el programador. El puerto serie no tiene tensiones de fuente. Tiene patas que varían entre 12V a +12V. Si Ud. lo piensa tiene en realidad 24V disponibles y si se anima a dejar la masa levantada se puede encontrar alguna disposición que sirva para generar los deseados 5 y 13V.

¿Qué quiere decir Microchip con “usar una fuente de 12 a 14V”?
En principio y aún sin decir para qué sirve la fuente, podemos decir que nos está diciendo que cualquier valor interno a la gama resulta adecuado.

Y así ocurre con todas las experiencias realizadas por el autor.

Una prueba de 10 PICs de diferentes procedencias indicó que todos ellos fueron grabados perfectamente utilizando la fuente de la PC de 12V regulados. Mas aun el autor realizó pruebas de bajar esa tensión y recién se encontró con problemas en algunas unidades al trabajar a 11,5V. El problema, en todos los casos, fue que el PIC (del tipo regrabable) se borró parcialmente un par de días después de la carga. Los PIC del tipo no regrabable (por microfusibles) recién comienzan a tener problemas de grabación cerca de los 10V en donde la energía no alcanza para fundir los fusibles de la memoria.

Sin embargo, un buen programador debe tener una tensión de fuente de 13V bien en el centro de los requerimientos.

Resumiendo; existen por lo tanto tres opciones para la disposición de fuente. A) la clásica con fuente de alimentación regulada en donde ponemos el valor de tensión Vpp en el lugar en donde se nos ocurra. B) Una versión económica sin fuente por el puerto paralelo en donde admitimos que Vpp esté en el mínimo aceptable de 12V y C) Una versión económica por puerto serie en donde la masa del PIC está levantada de la masa de la computadora.

De las tres opciones nosotros nos inclinamos por la tercera. El único inconveniente es que la masa de la PC está levantada de la masa del PIC y eso puede traer problemas si Ud. desea hacer programación in situ.

Expliquemos qué queremos decir: Existen muchos tipos de programas. Algunos no requieren más que un par de pruebas para optimizar el funcionamiento de un micro, pero otros requieren un exhaustivo trabajo de programación y prueba. Por ejemplo el desarrollo de un programa para codificación y decodificación de señales de TV o para un titulador de video pueden requerir cientos de pruebas. En estos casos se trabaja con una placa especialmente diseñada en la cual las patas del micro destinadas a la programación aparecen sobre un conector. Esas patas se utilizan también para otras funciones propias del circuito; por eso el programador se encarga de puentear esa patas al dispositivo de programación o al dispositivo a diseñar con una llave mecánica o electrónica.

Para este uso tan particular la masa del PIC debe coincidir con la masa de la PC y con la masa del dispositivo a diseñar.

Nosotros suponemos que cuando se requiere programación “in situ” es porque uno se dedica profesionalmente a la programación y el diseño.

En esos casos seguramente ya se cuenta con un programador con fuentes reguladas. Nuestro programador está dedicado más a la enorme masa de estudiantes y simpatizantes de la electrónica que quieren realizar sus primeras armas en los dispositivos programados y que quieren gastar poco y tener todas las prestaciones posibles de su programador, pero que están dispuestos a conectar y desconectar el PIC del zócalo cada vez que sea necesario.

Pero la novedad no es solo la reducción de costo por el lado de la fuente, sino que nuestro programador tiene mayores prestaciones que el NOPPP.

¿Qué significa mayores prestaciones en un programador?
Una grabación es una grabación y punto; una vez que un micro está grabado no se puede reconocer con qué programador se grabó. En efecto esta es una verdad de Perogrullo y no soy yo quien lo discuta. Pero para que un programador grabe un micro éste debe estar reconocido por el software que lo controla. Si en la ventanita donde se elige el dispositivo a grabar no está incluido el micro que yo utilizo no lo puedo grabar salvo que se trate de un dispositivo homólogo (un reemplazo total y directo recomendado por el fabricante).

En efecto, los micros tienen grabados de fábrica un juego de datos que el programador lee para verificar que no se produzcan errores (los micros tienen pequeñas y grandes diferencias en sus set de instrucciones y si se usa el set equivocado se produce errores de funcionamiento).

El NOPPP tiene un número limitado de micros posibles de grabar; apenas 3 que son los reprogramables más comunes 16C83, 16C84 y 16F84. Y éstos son los que se utilizan cuando se proyecta o cuando se estudia. Pero si Ud. ya pasó a una etapa superior y tiene una pequeña fabriquita de algún dispositivo con PIC seguramente debe estar utilizando un PIC del tipo no regrabable por ejemplo el PIC16C621 o el PIC-16C621A que es la versión más sencilla sin ninguna sofisticación. Estos integrados tienen una memoria de microfusibles que solo se puede grabar una sola vez.

En realidad si un programador acepta el F84 debería aceptar el C621 porque no se requiere nada especial en las tensiones o en el pinup que requiera cambios de hardware.

Pero por decirlo de alguna manera, si no está bautizado no pasa y una de las primeras cosas que realiza el programador es leer algún código interno para saber cómo debe realizar la grabación del dispositivo.

Si lee C621 y ese integrado no está en la lista de candidatos a grabar olvídese.

El software se niega a grabar o graba la primer posición de memoria y como no la puede recuperar indica “error de grabación en la posición de memoria 0000”.

Nuestro primer “especial” es e; QUARK PIC BASIC, antecesor del “QUARK PRO” que presentaremos en la próxima edición. El software adecuado para el mismo se puede obtener libremente en la página del fabricante o buscarlo a través de los links colocados en www.webelectronica.com.ar. Vamos a comenzar este artículo describiendo cómo se conecta el programador a la PC y cómo se prueba con el software adecuado.

 
EL HARDWARE
En varias direcciones de Înternet aparecen circuitos muy similares al que describiremos a continuación, adjudicándole la autoría a diferentes personas. La versión que reproducimos es en base al trabajo de un tal “Droky” de RaDiKAl ByTEs. Nuestros técnicos han realizado algunas modificaciones y el resultado es el siguiente:

Con este proyecto se puede realizar un programador para PICs y EEPROMs de la serie 24LXxx que funciona bien y requiere pocos componentes externos.

El circuito está basado en el “Luddi” o programador de JDM (vea: www.jdm.com), y es compatible con diferentes softwares cargadores. Se ha probado en diferentes computadoras desde un Pentium 100 hasta un Pentium III de 850MHz sin inconvenientes.

En la figura 1 se muestra el circuito del cargador y en la 2 la placa de circuito impreso propuesta. Tenga en cuenta que sólo debe ser montado por quienes ya tienen alguna experiencia en la carga de PICs dado que su uso no es tan sencillo.

El tamaño del cargador es bastante reducido y posee bases (zócalos) para la mayoría de los chips que puede programar (siempre en encapsulado DIL no en TSOP, SMD ni otros formatos).

Si bien es posible utilizar distintos tipos de softwares, hemos realizado experiencias con el italque, el desden, el pix y el IC Prog. Es precisamente el icprog el que permite “cargar” a casi todos los chips indicados y lo puede bajar gratuitamente siguiendo los pasos que mencionaremos más adelante.

El programa pix se puede usar para los PIC16F8x y PIC16C8x, es rápido y permite bastantes opciones.

Para las EEPROM 24LCxx, pueden emplearse tanto el IC Prog como el PIX .

Para los 12C508/A y 12C509 /A lo más seguro es usar el prog508 y el prog509 (vea los foros PSX) y que se pueden descargar de la página de JDM.

 
COMO USAR EL PROGRAMA
El programador no sirve para nada sino está instalado el programa que lo opera. En nuestro caso funciona con uno de los programas de libre uso que mencionamos y que se puede hallar en http://www.ic-prog.com/index1.htm . Allí se puede cargar el programa IC Prog según las indicaciones siguientes:
  1. Open a browser and select the file ic-prog.exe (ABRA EL NAVEGADOR Y SELECCIONE EL ARCHIVO IC-PROG.EXE).
  2. Press right button on your mouse (PRESIONE EL BOTON DERECHO DEL MOUSE)
  3. Go to Propertties (IR A PROPIEDADES)
  4. Go to Compatibility menú (LUEGO AL MENU DE COMPATIBILIDAD)
  5. Set compatibility mode as Windows 2000 or Windows 98 / Win ME (PREDISPONER LA COMPATIBILIDAD CON EL MODO WINDOW 2000, WINDOWS 98 O ME)
  6. Press Apply icon (PRESIONAR SOBRE EL ICONO APPLY)
  7. Press Accept icon (PRESIONAR SOBRE EL ICONO ACCEPT)

Uno de las mayores ventajas de este programa es que está traducido a una gran cantidad de idiomas por traductores no profesionales. Si, leyó bien, eso es una ventaja, no un defecto. Es común que los traductores profesionales utilicen términos que no son los corrientes en el mundo de los usuarios habituales; en este caso todas las traducciones están realizadas por colaboradores desinteresados que hicieron la traducción luego de un intensivo uso del programa.

Observe la lista siguiente de idiomas y colaboradores:

English Spanish (Thanks to Jose from ZdS electrónica for translating!) French (Thanks to Richard Klein at www.varicap.com for translating!) Portuguese (Thanks to Gil for translating and thanks to Fernando Carvalho for the initial (Brazilian) translating!!!) Dutch (Thanks to Wilfred de Wolf for translating!) Italian (Thanks to MM9800 and Pleaser at freesat. cjb.net) Russian (Thanks to Sergei and Alex Kokaiko) Greek (Thanks to Con Tanidis) Polish (Thanks to Rajmund Komosinski) Turkish (Thanks to Ayhan) German (Thanks to Christoph Heitkamp).

Una de las cosas más importantes, es que los dispositivos pueden ser programados con este programa y el programador Quark PIC BASIC. Observe que dijimos con este programa y este programador porque la capacidad de programar diferentes dispositivos es función de ambas cosas. En la lista siguiente se puede observar toda la variedad aceptada: 12C508, 12C 67X, 16C84, 16F84, 16F877, 16F74, 16F81, 16F873, 16F874, 16F876, 16F877, 16C73, 16C74, 16C76, 80C51, memorias 24LCxx, etc.

Esta es sólo una lista resumida, pero para muestra basta un botón. Si Ud. desea conocer la lista completa de PICs y de memorias posibles de grabar puede obtenerlo directamente de la pantalla principal del programa como veremos más adelante.

Una vez instalado el programa en su máquina, solo le queda conectar el programador. Nuestro programador se instala en el puerto serie.

No funciona sobre el puerto paralelo como la mayoría de los programadores. El puerto serie (RS232) es el puerto del mouse y de otros dispositivos externos. La mayoría de las máquinas modernas poseen dos puertos. Si su máquina posee solo uno y está ocupado por el mouse tiene dos alternativas. Agregar un puerto serie adicional (cuesta aproximadamente 5 dólares americanos) que se compra por separado o si su computadora tiene un conector PS2 comprar un mouse PS2 para liberar el puerto (una alternativa similar ocurre si su máquina tiene una salida USB (universal serie bus) solo que debe comprar un mouse adecuado para esa salida.

La plaqueta del programador se puede conectar directamente sobre el conector de la PC pero para mayor comodidad se aconseja construir un cable prolongador conectado cada pin macho con su homólogo hembra (no se incluye en el kit ni en la plaqueta armada). El cable de unión puede ser del tipo multipar telefónico de 5 pares o plano de 10 conductores. Los conectores son del tipo DB9 con cachas. No se requiere fuente de alimentación externa.

Ahora sólo nos queda probar el sistema completo. Conecte la placa programadora con un PIC 16C84 o 16F84A y pulse sobre el ícono del IC-PRO para abrir el programa de carga. Aparecerá una ventana como la que mostramos en la figura 3.

Observe la ventana superior. En ella tenemos un mapa de la memoria de programa. Sobre la izquierda aparece una columna que debe tomarse como referencia para ubicar una posición de memoria determinada.

En efecto, el mapa de memoria está ordenado de a 8 columnas con cuatro números hexadecimales en cada columna. La primer posición de la izquierda en la posición de memoria 0 la siguiente es la 1, la dos etc. hasta llegar a la posición 7. Luego se continúa en el segundo renglón donde aparece la posición de memoria 8, la nueve etc. Observe entonces que sólo se menciona en la columna de la izquierda la primer posición de memoria del renglón, las siguientes se sobreentienden.

Es obvio que al invocar la primer pantalla todas las posiciones de memoria están llenas con el máximo número posible de guardar en cada celda de memoria, como indicando que esta celda puede llenarse hasta este número hexadecimal y no con otro mayor. Este número depende del dispositivo elegido en la pequeña ventanita de arriba a la derecha. Nosotros elegimos un microprocesador Microchips PIC16C621A con memoria no regrabable del tipo de microfusibles, pero si Ud. elige por ejemplo una memoria 59C11 las posiciones de memoria se llenan con el número hexadecimal FFFF. Observe que con el PIC elegido la ultima posición de memoria nombrada es la 03F8 por lo que la última posición del renglón (y de la memoria) será 7 unidades mayor, es decir el número hexadecimal 03FF equivalente al decimal 1048 (es un micro de 1Kbyte de memoria). Si elige por ejemplo un 16C54 solo llegará hasta la posición 01FF porque tiene la mitad de memoria.

Si cargamos cualquier programa, las posiciones de memoria se llenarán con los números hexadecimales adecuados como para que el micro programado cumpla con la función para la cual fue creado. Como ejemplo vamos a cargar el programa de un secuenciador de leds picando en ARCHIVO/ABRIR DATOS y luego eligiendo el directorio y el archivo deseado se puede cargar un programa en el buffer (en el buffer es un bloque de memoria de la PC en donde la información está pronta a salir hacia el puerto de comunicaciones) que se puede observar en la figura 4 en la ventana Dirección – Código de programa.

Observe que la memoria tiene muy pocas posiciones llenas. Solo 12 de las 1048 posibles de llenar. Es decir que cargamos un programa pequeño para el PIC utilizado. Si cargáramos un programa más grande, por ejemplo el de un juego electrónico “Dado digital” se puede observar cómo se llenan 90 posiciones de memoria (figura 5).

Los números hexadecimales que se pueden leer en la pantalla, no están cargados aún en el microprocesador.

Podríamos decir que están preparados para salir, pero no pueden salir solos; el PIC necesita algo más que el programa. En efecto, necesita algo llamado palabra de configuración o de predisposición.

 
COMO SE CONFIGURA EL MICRO
La configuración nos permite elegir entre diferentes modos de operar de nuestro futuro micro programado.

Por ejemplo podríamos necesitar que el micro mantenga el programa secreto, es decir que nadie pueda leerlo. O que se mantenga operativo el temporizador del perro guardián (watch dog timer enable), etc.. En la serie sobre el NOPPP nos extendimos sobre el tema de la predisposición por lo que aquí solo vamos a enumerar cuáles son las posibilidades y cómo se predisponen.

La predispocición puede incluirse en el programa o agregarse cuando se carga el programa en el PIC a requerimiento del mismo. Con el NOPPP no teníamos opciones, la predisposición se debía incluir en el programa. Con el IC-Prog se puede optar. Si el programa tiene predispoción el IC-Prog la carga directamente.

Si no la tiene aparecen avisos en la pantalla indicándonos que carguemos la predisposición deseada.

El idioma en que aparecen los avisos y todas las leyendas del programa se puede elegir en la solapa AJUSTE/OPCIONES/IDIOMA (SETTING/ OPTION/LANGUAGE). En la versión en español el primer mensaje que aparece es el que se puede observar en la figura 6.

Si Ud. pulsa OK el micro se predispone según la predisposición por defecto.

Qué se puede observar en el costado derecho de la pantalla principal. Observe que en la parte superior dice “Configuración” y luego hay una ventana extensible que tiene las 4 opciones clásicas de clock:

  • LP (filtro cerámico de muy baja frecuencia)
  • XT (cristal de baja frecuencia)
  • HS (cristal de alta frecuencia)
  • RC (oscilador a resistor y capacitor)

Un poco más abajo existen tres ventanitas más que tienen el siguiente significado:

  • WDT temporizador “watch dog” perro guardián
  • PWRT temporizador de reset
  • CP protección de código (Code Protector) (para que nadie pueda leer el programa).

Por último, en la parte inferior existen otras dos ventanas que se ajustan automáticamente en función de la predisposición y que nos indican el checksum del código de predisposición y el código de predisposición mismo (es el hexadecimal que deberíamos agregar al programa para predisponer el micro al cargar el programa).

Una vez cargado el programa a grabar y seteada la predisposición del micro (en caso de que ésta no esté en el programa) podemos realizar la carga de la memoria del PIC.

 
CARGA DE UN PROGRAMA
Vaya a la solapa COMANDO/PROGRAMAR TODO, el programa le va a realizar preguntas de acuerdo a la predisposición de uso que Ud. haya elegido. Esta predisposición de mensajes se elige con las solapas inferiores de la pantalla ajustes. Si Ud. comienza a programar le aconsejamos habilitar todas las ventanas para que el programa le avise todo lo que va a hacer y le de oportunidad de corregir los posibles errores antes de cometerlos. La solapa de atajos no la modifique por el momento. La información que sigue supone que Ud. activó todas las ventanitas de las solapas OPCIONES/CONFIRMACION, OPCIONES/AVISOS, OPCIONES/I2C y OPCIONES/PROGRAMACION.

La primer pregunta es “realmente desea programar el dispositivo” conteste que sí. Luego le pregunta si “realmente desea habilitar la protección de código” conteste sí, si desea que nadie pueda leer el dispositivo programado, pero recuerde que ni siquiera Ud. lo podrá leer (si alguien le dice que puede no le crea). Allí aparece el mensaje “programando código 1024 bytes” y un indicador de barra que le va indicando el progreso de la programación. Cuando se complete el código de 1024 bytes.

Aparece otra barra con la leyenda programando datos 64 bytes y luego otro indicando programando configuración. Si la grabación fue exitosa aparece una pantalla confirmándolo, en caso contrario aparece mensajes de error después de cada gráfico de barras para que Ud. sepa qué operación fue la que produjo el error.

Toda la operación puede durar unos 20 segundos con todas las ventanas predispuestas en sí para un dispositivo de 1024 bytes. Esta no es la velocidad máxima a la cual se puede grabar un PIC, que puede grabarse a una enorme velocidad; pero entonces el sistema se hace sensible al largo del cable y por lo tanto en los programadores semiprofesionales se prefiere la seguridad de que el programador funcione en cualquier máquina a la velocidad final de grabación.

 
CONCLUSIONES
Así presentamos un nuevo producto experimental propuesto por editorial Quark. Este producto sirvió como “primer paso” para la creación del QUARK PRO que permite la carga de más PICs que éste, incluyendo los integrados de 40 patas.

Yo le aseguro que, si bien el QUARK PIC BASIC funciona en cualquier máquina y que puede ser utilizado por todos aquellos que no deseen gastar más de lo necesario, el QUARK PRO es un producto para “exigentes” que deseen un cargador profesional.

En una futura edición podrá observar el circuito de esta nueva versión que también se programa con el IC Prog cyo manejo hemos explicado en esta nota. Le sugiero que expermiente con el cargador mostrado en la figura 1, montándolo en la placa de circuito impreso de la figura 2. Familiarícese con el uso del IC Prog y verá que los resultados son óptimos. Recuerde que éste es un circuito experimental que no puede emplearse para comercializarlo. También tenga presente que el futuro cargador le permitirá cargar otros tipos de microcontroladores.

En la próxima edición le indicaremos varios procedimientos prácticos, para solucionar uno de los principales problemas de los programadores no profesionales. Nos referimos a que los dispositivos profesionales tienen un zócalo llamado de esfuerzo cero para colocar los micros sin ninguna dificultad. Nuestro programador no lo posee porque es un componente demasiado caro (alrededor de 15 dólares).

Pero el autor lo suple con un dispositivo casero que asombrará a muchos.

Los discípulos del Ing. Picerno lo bautizaron el “zócalo de cero costo” y vale la pena conseguir el próximo número de la revista sólo para conocerlo.

 
Autores: Ing. Alberto H. Picerno - picernoa@fullzero.com.ar
Ing. Horacio D. Vallejo - hvquark@ar.inter.net
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
FIGURA 5
 
FIGURA 6
 
MATERIALES
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES