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

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

Quienes leen Saber Electrnica 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 ms importantes son que es fcil 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 adems 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 slo utilizaba un zcalo para el PIC, dos diodos 1N4148, algunos resistores de 1/8 de Watt, un transistor BC548 y una fuente de 13 y 5 V. Cmo 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 clsicas 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 seales de pulsos de 5V. Buscamos informacin al respecto y encontramos lo siguiente. Para el fabricante del PIC esa tensin llamada Vpp se especifica como de 12 a 14V; por esa razn es que en el diseo 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 tambin un puerto serie que puede ser utilizado para acoplar el programador. El puerto serie no tiene tensiones de fuente. Tiene patas que varan 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 disposicin que sirva para generar los deseados 5 y 13V. Qu quiere decir Microchip con usar una fuente de 12 a 14V? En principio y an 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 tensin y recin 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 das despus de la carga. Los PIC del tipo no regrabable (por microfusibles) recin comienzan a tener problemas de grabacin cerca de los 10V en donde la energa no alcanza para fundir los fusibles de la memoria. Sin embargo, un buen programador debe tener una tensin de fuente de 13V bien en el centro de los requerimientos. Resumiendo; existen por lo tanto tres opciones para la disposicin de fuente. A) la clsica con fuente de alimentacin regulada en donde ponemos el valor de tensin Vpp en el lugar en donde se nos ocurra. B) Una versin econmica sin fuente por el puerto paralelo en donde admitimos que Vpp est en el mnimo aceptable de 12V y C) Una versin econmica 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 programacin in situ.

Expliquemos qu queremos decir: Existen muchos tipos de programas. Algunos no requieren ms que un par de pruebas para optimizar el funcionamiento de un micro, pero otros requieren un exhaustivo trabajo de programacin y prueba. Por ejemplo el desarrollo de un programa para codificacin y decodificacin de seales de TV o para un titulador de video pueden requerir cientos de pruebas. En estos casos se trabaja con una placa especialmente diseada en la cual las patas del micro destinadas a la programacin aparecen sobre un conector. Esas patas se utilizan tambin para otras funciones propias del circuito; por eso el programador se encarga de puentear esa patas al dispositivo de programacin o al dispositivo a disear con una llave mecnica o electrnica. Para este uso tan particular la masa del PIC debe coincidir con la masa de la PC y con la masa del dispositivo a disear. Nosotros suponemos que cuando se requiere programacin in situ es porque uno se dedica profesionalmente a la programacin y el diseo. En esos casos seguramente ya se cuenta con un programador con fuentes reguladas. Nuestro programador est dedicado ms a la enorme masa de estudiantes y simpatizantes de la electrnica 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 estn dispuestos a conectar y desconectar el PIC del zcalo cada vez que sea necesario. Pero la novedad no es solo la reduccin 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 grabacin es una grabacin 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 homlogo (un reemplazo total y directo recomendado por el fabricante). En efecto, los micros tienen grabados de fbrica un juego de datos que el programador lee para verificar que no se produzcan errores (los micros tienen pequeas y grandes diferencias en sus set de instrucciones y si se usa el set equivocado se produce errores de funcionamiento). El NOPPP tiene un nmero limitado de micros posibles de grabar; apenas 3 que son los reprogramables ms 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 pequea fabriquita de algn dispositivo con PIC seguramente debe estar utilizando un PIC del tipo no regrabable por ejemplo el PIC16C621 o el PIC16C621A que es la versin ms sencilla sin ninguna sofisticacin. Estos integrados tienen una memoria de microfusibles que solo se puede grabar una sola vez. En realidad si un programador acepta el F84 debera 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 algn cdigo interno para saber cmo debe realizar la grabacin del dispositivo. Si lee C621 y ese integrado no est en la lista de candidatos a grabar olvdese. El software se niega a grabar o graba la primer posicin de memoria y como no la puede recuperar indica error de grabacin en la posicin de memoria 0000. Nuestro primer especial es e; QUARK PIC BASIC, antecesor del QUARK PRO que presentaremos en la prxima edicin. El software adecuado para el mismo se puede obtener libremente en la pgina del fabricante o buscarlo a travs de los links colocados en www.webelectronica.com.ar. Vamos a comenzar este artculo describiendo cmo se conecta el programador a la PC y cmo se prueba con el software adecuado. EL HARDWARE En varias direcciones de nternet aparecen circuitos muy similares al que describiremos a continuacin, adjudicndole la autora a diferentes personas. La versin que reproducimos es en base al trabajo de un

tal Droky de RaDiKAl ByTEs. Nuestros tcnicos 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 slo debe ser montado por quienes ya tienen alguna experiencia en la carga de PICs dado que su uso no es tan sencillo. El tamao del cargador es bastante reducido y posee bases (zcalos) para la mayora 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 ms adelante. El programa pix se puede usar para los PIC16F8x y PIC16C8x, es rpido 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 ms seguro es usar el prog508 y el prog509 (vea los foros PSX) y que se pueden descargar de la pgina 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.icprog.com/index1.htm . All se puede cargar el programa IC Prog segn las indicaciones siguientes:

1. 2. 3. 4. 5. 6. 7.

Open a browser and select the file ic-prog.exe (ABRA EL NAVEGADOR Y SELECCIONE EL ARCHIVO IC-PROG.EXE). Press right button on your mouse (PRESIONE EL BOTON DERECHO DEL MOUSE) Go to Propertties (IR A PROPIEDADES) Go to Compatibility men (LUEGO AL MENU DE COMPATIBILIDAD) Set compatibility mode as Windows 2000 or Windows 98 / Win ME (PREDISPONER LA COMPATIBILIDAD CON EL MODO WINDOW 2000, WINDOWS 98 O ME) Press Apply icon (PRESIONAR SOBRE EL ICONO APPLY) 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 comn que los traductores profesionales utilicen trminos que no son los corrientes en el mundo de los usuarios habituales; en este caso todas las traducciones estn realizadas por colaboradores desinteresados que hicieron la traduccin luego de un intensivo uso del programa. Observe la lista siguiente de idiomas y colaboradores: English Spanish (Thanks to Jose from ZdS electrnica 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 ms 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 funcin 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 slo una lista resumida, pero para muestra basta un botn. 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 ms adelante. Una vez instalado el programa en su mquina, solo le queda conectar el programador. Nuestro programador se instala en el puerto serie. No funciona sobre el puerto paralelo como la mayora de los programadores. El puerto serie (RS232) es el puerto del mouse y de otros dispositivos externos. La mayora de las mquinas modernas poseen dos puertos. Si su mquina posee solo uno y est ocupado por el mouse tiene dos alternativas. Agregar un puerto serie adicional (cuesta aproximadamente 5 dlares 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 mquina 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 homlogo hembra (no se incluye en el kit ni en la plaqueta armada). El cable de unin puede ser del tipo multipar telefnico de 5 pares o plano de 10 conductores. Los conectores son del tipo DB9 con cachas. No se requiere fuente de alimentacin externa. Ahora slo 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 posicin de memoria determinada. En efecto, el mapa de memoria est ordenado de a 8 columnas con cuatro nmeros hexadecimales en cada columna. La primer posicin de la izquierda en la posicin de memoria 0 la siguiente es la 1, la dos etc. hasta llegar a la posicin 7. Luego se contina en el segundo rengln donde aparece la posicin de memoria 8, la nueve etc. Observe entonces que slo se menciona en la columna de la izquierda la primer posicin de memoria del rengln, las siguientes se sobreentienden. Es obvio que al invocar la primer pantalla todas las posiciones de memoria estn llenas con el mximo nmero posible de guardar en cada celda de memoria, como indicando que esta celda puede llenarse hasta este nmero hexadecimal y no con otro mayor. Este nmero depende del dispositivo elegido en la pequea 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 nmero hexadecimal FFFF. Observe que con el PIC elegido la ultima posicin de memoria nombrada es la 03F8 por lo que la ltima posicin del rengln (y de la memoria) ser 7 unidades mayor, es decir el nmero hexadecimal 03FF equivalente al decimal 1048 (es un micro de 1Kbyte de memoria). Si elige por ejemplo un 16C54 solo llegar hasta la posicin 01FF porque tiene la mitad de memoria. Si cargamos cualquier programa, las posiciones de memoria se llenarn con los nmeros hexadecimales adecuados como para que el micro programado cumpla con la funcin 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 informacin est pronta a salir hacia el puerto de comunicaciones) que se puede observar en la figura 4 en la ventana Direccin Cdigo 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 pequeo para el PIC utilizado. Si cargramos un programa ms grande, por ejemplo el de un juego electrnico Dado digital se puede observar cmo se llenan 90 posiciones de memoria (figura 5).

Los nmeros hexadecimales que se pueden leer en la pantalla, no estn cargados an en el microprocesador. Podramos decir que estn preparados para salir, pero no pueden salir solos; el PIC necesita algo ms que el programa. En efecto, necesita algo llamado palabra de configuracin o de predisposicin. COMO SE CONFIGURA EL MICRO La configuracin nos permite elegir entre diferentes modos de operar de nuestro futuro micro programado. Por ejemplo podramos necesitar que el micro mantenga el programa secreto, es decir que nadie pueda leerlo. O que se mantenga operativo el temporizador del perro guardin (watch dog timer enable), etc.. En la serie sobre el NOPPP nos extendimos sobre el tema de la predisposicin por lo que aqu solo vamos a enumerar cules son las posibilidades y cmo se predisponen. La predispocicin puede incluirse en el programa o agregarse cuando se carga el programa en el PIC a requerimiento del mismo. Con el NOPPP no tenamos opciones, la predisposicin se deba incluir en el programa. Con el IC-Prog se puede optar. Si el programa tiene predispocin el IC-Prog la carga directamente. Si no la tiene aparecen avisos en la pantalla indicndonos que carguemos la predisposicin 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 versin en espaol el primer mensaje que aparece es el que se puede observar en la figura 6.

Si Ud. pulsa OK el micro se predispone segn la predisposicin por defecto. Qu se puede observar en el costado derecho de la pantalla principal. Observe que en la parte superior dice Configuracin y luego hay una ventana extensible que tiene las 4 opciones clsicas de clock:

LP (filtro cermico de muy baja frecuencia) XT (cristal de baja frecuencia) HS (cristal de alta frecuencia) RC (oscilador a resistor y capacitor)

Un poco ms abajo existen tres ventanitas ms que tienen el siguiente significado:

WDT temporizador watch dog perro guardin PWRT temporizador de reset CP proteccin de cdigo (Code Protector) (para que nadie pueda leer el programa).

Por ltimo, en la parte inferior existen otras dos ventanas que se ajustan automticamente en funcin de la predisposicin y que nos indican el checksum del cdigo de predisposicin y el cdigo de predisposicin mismo (es el hexadecimal que deberamos agregar al programa para predisponer el micro al cargar el programa). Una vez cargado el programa a grabar y seteada la predisposicin 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 predisposicin de uso que Ud. haya elegido. Esta predisposicin 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 informacin 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 proteccin de cdigo 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 cdigo 1024 bytes y un indicador de barra que le va indicando el progreso de la programacin. Cuando se complete el cdigo de 1024 bytes. Aparece otra barra con la leyenda programando datos 64 bytes y luego otro indicando programando configuracin. Si la grabacin fue exitosa aparece una pantalla confirmndolo, en caso contrario aparece mensajes de error despus de cada grfico de barras para que Ud. sepa qu operacin fue la que produjo el error.

Toda la operacin puede durar unos 20 segundos con todas las ventanas predispuestas en s para un dispositivo de 1024 bytes. Esta no es la velocidad mxima 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 mquina a la velocidad final de grabacin. CONCLUSIONES As presentamos un nuevo producto experimental propuesto por editorial Quark. Este producto sirvi como primer paso para la creacin del QUARK PRO que permite la carga de ms PICs que ste, incluyendo los integrados de 40 patas. Yo le aseguro que, si bien el QUARK PIC BASIC funciona en cualquier mquina y que puede ser utilizado por todos aquellos que no deseen gastar ms de lo necesario, el QUARK PRO es un producto para exigentes que deseen un cargador profesional. En una futura edicin podr observar el circuito de esta nueva versin que tambin 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, montndolo en la placa de circuito impreso de la figura 2. Familiarcese 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. Tambin tenga presente que el futuro cargador le permitir cargar otros tipos de microcontroladores. En la prxima edicin le indicaremos varios procedimientos prcticos, para solucionar uno de los principales problemas de los programadores no profesionales. Nos referimos a que los dispositivos profesionales tienen un zcalo 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 dlares). Pero el autor lo suple con un dispositivo casero que asombrar a muchos. Los discpulos del Ing. Picerno lo bautizaron el zcalo de cero costo y vale la pena conseguir el prximo nmero de la revista slo para conocerlo.

Вам также может понравиться