Manual Program Ad Or Gpic

download Manual Program Ad Or Gpic

of 10

Transcript of Manual Program Ad Or Gpic

Programacin Serial In-Circuit (ICSP)El Programador que hemos descripto en el Artculo de Tapa de esta edicin puede programar microcontroladores que estn en un zcalo del tipo zif preparado para tal funcin, o bien instalados en un circuito de aplicacin, mediante la utilizacin de la Programacin Serial In-Circuit (ICSP). En esta nota explicamos el procedimiento.www.sitionica.com.ar

UTILIZACIN DE LA PROGRAMACIN SERIAL IN-CIRCUIT EN EL PROGRAMADOR GPICde trabajo muy completas. J INTRODUCCIN

(ICSP)

es aplicado, el microcontrolador entra en el modo Programacin. 4- VDD: Suministro de tensin (positivo). 5- VSS: Suministro de tensin (negativo).

La comunicacin ICSP requiere cinco seales: 1- ICSPDAT o PGD: Datos de Programacin; es una lnea de datos bidireccional sincrnica serial. 2- ICSPCLK o PGC: Reloj de Programacin; es una lnea unidireccional sincrnica serial de reloj que va desde el programador hasta el microcontrolador. 3- VPP: Tensin de Programacin; cuando

En caso de programar un microcontrolador individualmente sobre un zcalo para despus trasladarlo a la aplicacin, el diagrama de conexionado es como el de la figura 1. En los data sheet o manuales de componentes suministrados por el fabricante Microchip, y accesibles desde su pgina de Internet, estn detallados los pines adecuados para la conexin ICSP de cada tipo de dispositivo PIC.

Figura 1 - Diagrama de conexiones para la programacin por ICSP.

Saber Electrnica

17

Artculo de Tapa

Figura 2 - Circuito tpico de aplicacin para programacin ICSP.

En general la disposicin de los pines segn el microcontrolador es la siguiente: Microcontroladores de 8 pines lnea 12F Pin 1 = Vdd (tensin positiva) Pin 4 = Vpp (tensin de programacin) Pin 6 = Ck (ICSPCLK - PGC) Pin 7 = Data (ICSPDAT - PGD) Pin 8 = Gnd (negativo, Vss) Microcontroladores de 18 pines, lnea 16F Pin 14 = Vdd (tensin positiva) Pin 4 = Vpp (tensin de programacin) Pin 12 = Ck (ICSPCLK - PGC) Pin 13 = Data (ICSPDAT - PGD) Pin 5 = Gnd (negativo Vss) Microcontroladores de 28 pines, lnea 16F / 18F Pin 20 = Vdd (tensin positiva) Pin 1 = Vpp (tensin de programacin) Pin 27 = Ck (ICSPCLK - PGC)

Pin 28 = Data (ICSPDAT - PGD) Pin 8 - 19 = Gnd (negativo Vss) Microcontroladores de 40 pines lnea, 16F / 18F Pin 11 - 32 = Vdd (tensin positivo) Pin 1 = Vpp (tensin de programacin) Pin 39 = Ck (ICSPCLK - PGC) Pin 40 = Data (ICSPDAT - PGD) Pin 12 - 31 = Gnd (negativo Vss) Nota: El pin PGM debe conectarse a Vss en los PIC que sean aptos para programacin a baja tensin (LVP) o bien poner en off esta funcin en la configuracin del dispositivo, ya que en todos los casos se utiliza el tipo de programacin normal y no la caracterstica LVP. Sugerimos consultar el data sheet correspondiente del microcontrolador a programar para la identificacin de este pin. Un pin PGM no conectado puede interferir con la programacin. Para la programacin in-circuit, el circuito de aplicacin debe estar diseado para permitir que todas las seales de programacin se conecten al microcontrolador sin que las mismas se distorsionen.

18

Saber Electrnica

Programacin Serial In-Circuit (ICSP)La figura 2 muestra un circuito tpico como punto de partida para disear un circuito de aplicacin para ICSP. Nota: En los microcontroladores PIC con capacidad de programacin a bajo tensin LVP, configurar esta funcin como LVP = off en los registros de configuracin. En su defecto es necesario conectar el pin PGM hacia Vss para evitar errores en la programacin. Para una programacin exitosa con ICSP debemos tener las precauciones que se detallan a continuacin. Aislar el pin VPP/MCLR Cuando es aplicado el tensin Vpp, el circuito de aplicacin necesita tomar en consideracin que la tensin tpica de Vpp es +12V. 1 - Si el pin Vpp es utilizado como un pin MCLR: el circuito de aplicacin es conectado tpicamente a una resistencia/capacitor de pull up, tal como se recomienda en las especificaciones (data sheet) del microcontrolador. Hay que tener la precaucin de que el circuito asociado no baje la velocidad y exceda el tiempo de elevacin de Vpp. Si se coloca una interfaz con algn botn para el pin MCLR, se recomienda que los mismos sean aislados de la tensin Vpp mediante el empleo de un diodo o una resistencia limitante tal como se muestra en la figura 2. 2 - Si el pin Vpp es utilizado como un pin de puerto I/O: el circuito de aplicacin que conecta al pin I/O quiz no est habilitado para manejar la tensin de +12V. Se recomienda utilizar un diodo o una resistencia limitante, para aislar el circuito. Aislar los pines ICSPCLK o PGC, y los pines ICSPDAT o PGD Es necesario aislar del circuito a los pines ICSPCLK o PGC y los pines ICSPDAT o PGD, para prevenir que las seales de programacin sean afectadas por el propio circuito de aplicacin. ICSPCLK o PGC es una lnea de reloj unidireccional sincrnica serial desde el programador al microcontrolador. ICSPDAT o PGD es una lnea bidireccional sincrnica serial de datos de programacin. Si el diseo lo permite, destinemos estos pines para ICSP. Sin embargo, si el circuito requiere que esos pines sean utilizados por la aplicacin, diseemos el circuito de tal manera que no altere el nivel de seal. El aislamiento del circuito variar de acuerdo a la aplicacin. La figura 2 muestra una posibilidad utilizando resistencias en serie para aislar las seales ICSP del circuito de aplicacin.

VDD

Durante la programacin ICSP, es necesario que el microcontrolador sea conectado de acuerdo a la especificacin del mismo. Tpicamente, el suministro de tensin del microcontrolador es conectado al suministro de tensin del circuito de aplicacin. La aplicacin puede ser alimentada por el programador o externamente. Es muy importante, cuando el programador suministra la tensin Vdd al circuito, asegurarse que el capacitor o los capacitores conectados a Vdd de la aplicacin no estn alterando el tiempo de subida de Vdd, especficamente cuando el programador solo eleva Vdd durante el proceso de programacin. En estos casos es recomendable utilizar el suministro de tensin externa o un suministro constante desde el programador.

LONGITUD

DE LOS

CABLES

Debe minimizar la distancia que deben recorrer las seales ICSP colocando el conector de ICSP tan cerca del circuito de aplicacin

Saber Electrnica

19

Artculo de Tapacomo sea posible. Hay que minimizar la longitud de cualquier cable entre el programador y el dispositivo del circuito de aplicacin. El objetivo es mantener las seales ICSP dentro del nivel y las especificaciones de rango para que la programacin sea exitosa.

EN EL

NOTAS Y CAMBIOS RECOMENDABLES PROGRAMADOR GPIC USB

A los efectos de obtener el mejor resultado en el uso de nuestro programador, sugerimos algunas consideraciones a saber: Nota 1: Consulte los data sheet correspondientes para el conexionado de programacin ICSP de estos microcontroladores. El diagrama general para la tensin VDD es como el representado en la figura 3 para los distintos micros. Para los dispositivos LF, la tensin VDDCORE de 2.5 volt puede ser suministrada con un diodo 1N4148 conectado a los 3V de VDD. Nota 2: Toda la familia PIC18F/LF xxJxx admite los 5V correspondientes a las seales de Datos y Reloj que suministra el programador. Nota 3: Los registros de configuracin en esta familia de microcontroladores PIC estn implementados fsicamente en la memoria flash de programa, por este motivo todos los algoritmos de programacin, lectura y verificacin se realizarn sobre el 100% de la memoria y no sobre el porcentaje utilizado del programa como ocurre en otros dispositivos que disponen de un sector especial de memoria para los registros de configuracin.

Figura 3 - Conexionado ICSP para diferentes microcontroladores PIC.

Nota 4: los microcontroladores 18FxxJxx trabajan con tensiones de 3 volt, tanto en Vdd como en Vpp, no obstante admiten tensiones de 5 volt en los pines I/O para compatibilidad con otros dispositivos. Tenemos que tener especial precaucin de seleccionar previamente esta familia de dispositivos desde la interfaz de usuario del programador antes de realizar la programacin, lectura, etc. Al seleccionar dicha familia la tensin de Vpp ser de 3 volt y para Vdd debemos utilizar el suministro de Vdd2 de 3 volt. Recordemos que el programador no puede predecir los errores cometidos por nosotros si intentamos programar los dispositivos de 3 volt estando seleccionada otra familia con tensiones ms elevadas y diferentes. Un suministro de 12 volt en Vpp por un error cometido en la seleccin de la correspondiente familia, seguramente llevar a la destruccin del microcontrolador con tensin de trabajo de 3.6 volt

20

Saber Electrnica

Programacin Serial In-Circuit (ICSP)pero no es estrictamente necesario, el Figura 4 - Circuito de diodo dejar pasar solaproteccin para la programacin de mente los niveles de 0 PICs de 3,3V. volt y el nivel alto es tomado a travs de la resistencia que puede estar comprendida entre 2.2k/4.7k directamente de la tensin de 3.3 volt. De esta forma ante un error en la seleccin de dispositivo nunca entrarn por el pin del microcontrolador los 12 volt de Vpp de otras familias de microcontroladores. Nota 5: Para la programacin de PICs de 3,3V sugerimos realizar un cambio en el valor de la resistencia R20 del programador GPIV original, de 4.7k del programador conectada a Gnd, en el sector de suministro de 3,3 volt segn puede verse en el esquema de la figura 5. El nuevo valor ser de 1k. El motivo de este cambio es debido a que necesitamos aumentar la carga en algunos mA

Figura 5 Arreglo que permite mayor suministro de corriente durante la programacin de PICs de 3,3V.

mximos. Para prevenir los accidentes de este tipo puede implementarse el circuito de la figura 4,

Saber Electrnica

21

Artculo de Tapay lo resolvemos disminuyendo el valor de dicha resistencia, es decir, el consumo del microcontrolador bajo programacin es insignificante especialmente si se trabaja sobre el mismo en forma individual y sin el consumo tpico en un circuito de aplicacin, debido a esto y como las seales de Data y reloj del programador tienen sus niveles altos a 5 volt los diodos internos del Pic, ver figura 6, elevan la tensin de Vdd de 3.3 volt al ritmo de las seales de Data y Reloj. Para suprimir lo explicado necesitamos aumentar la carga de Vdd disminuyendo la resistencia R20 a un valor de 1k como habamos dicho. As mismo tambin podemos reemplazar el capacitor C12 de 100nF por un electroltico de 1F y mejorar el filtrado. Nota 6: Otro que hubo que realizar sobre el diseo original, para poder programar micros de 3,3V es sobre los valores de las resistencias de las lneas de Datos y Reloj, R6 y R7, los valores originales eran de 33 para ambas resistencias, las reemplazamos con valores de 100 en ambos casos, de esta forma estamos limitando la corriente por estas lneas y contribuimos a mejorar lo comentado en la nota anterior. Para finalizar, los cambios mencionados anteriormente no son necesarios de implementar si no se trabaja con las familias de microcontroladores de 3.3 volt.

Figura 6 - Modificacin para el aumento de carga de Vdd.

troladores. Esto es muy importante tenerlo presente y puede ser una buena referencia ante posibles fallos en la programacin de algn tipo de PIC, debido a causas ajenas al programador y al software de programacin. Puede estar todo funcionando correctamente y sin embargo encontrarnos con la imposibilidad de grabar un PIC determinado simplemente por una deficiente alimentacin durante la programacin del microcontrolador. La tensin que suministra el puerto USB, puede variar entre un mnimo y un mximo segn la computadora. Los niveles de tensin que podemos encontrar en VBUS podemos observarla en la siguiente tabla: Tipo de HUB High Power Low Power Vmin. 4,75V 2,4V Vmx. 5,25V 5,25V

LAS TENSIONES

DEL

PUERTO USB Incluso podemos medir valores an inferiores a 4.4 volt en muchas PC, situados en 4.35 volt. Teniendo presente lo anterior y volviendo especficamente a los microcontroladores PIC generales utilizados en nuestros proyectos, que funcionan con una tensin nominal de 5 volt, podemos observar en las especificaciones de programacin que la tensin mnima necesaria para realizar un borrado completo de la mayora de estos chips se sita en 4.5

El programador se alimenta directamente con la tensin suministrada por VBUS del puerto USB. A su vez, por portabilidad y practicidad puede proporcionar el voltaje VDD para la programacin de los dispositivos PICs soportados. Esta ltima caracterstica puede ser utilizada siempre y cuando la tensin VBUS del puerto se mantenga dentro de los mrgenes mnimos admitidos en las especificaciones de programacin de estos microcon-

22

Saber Electrnica

Programacin Serial In-Circuit (ICSP)

volt, segn la tabla 1 de especificaciones. Esto significa que si la tensin que suministra el puerto USB es menor a 4.5 volt, corremos el riesgo que no pueda ser borrado el microcontrolador PIC y en consecuencia producir un error al intentar grabarlo ya que es necesario realizar un borrado general (memoria de programa, memoria de datos y registros de configuracin) antes de la programacin. En este supuesto caso debemos recurrir a una alimentacin externa para solucionar los problemas durante la programacin. Tanto la lectura, verificacin e identificacin del dispositivo, no estn afectados por una tensin del puerto USB menor a 4.5 volt. Un microcontrolador PIC en "blanco" tambin puede ser programado. Slo afecta al borrado y a la secuencia borrado - grabacin.

Esto est probado y puede ser causa de muchos problemas tanto en suministro de tensin, corriente y transferencia de datos. Un puerto USB puede tener los mrgenes de tensin - corriente adecuados, pero se vern afectados por un cable de dudosa calidad. Un ejemplo: La tensin medida en el programador sobre el conector USB terminal VBUS era de 4.75 volt, con un cable de conexin "normal", por lo tanto el puerto USB de mi PC estaba dentro de los mrgenes requeridos. Cambiando el cable por otro de menor calidad, la tensin medida cay a 4.33 volt. Insuficiente, como fue comprobado, para realizar un borrado adecuado en muchos dispositivos PIC.

EL HARDWARE EL CABLE PC - PROGRAMADOR

DEL

PROGRAMADOR

El cable de comunicacin puerto USB - programador, es muy importante para evitar problemas como los planteados anteriormente. Un cable de mala calidad o calidad dudosa, puede producir una cada de tensin de unos cuantos mili volts que son sumamente importantes para nuestros requerimientos.

El circuito electrnico del programador USB no tiene elementos crticos, se suministra el esquema del PCB y la distribucin de los componentes para construirlo correctamente sobre un circuito impreso. Tambin puede ser realizado sobre una placa experimental como las que se adquieren en los comercios de electrnica, del tipo pads individuales, y realizar todas las conexiones de

Saber Electrnica

23

Artculo de Tapalos componentes manualmente. Esto es viable, pero puede llevar a cometer errores en el caso de los menos experimentados. Adems, para la construccin del programador en una placa experimental, hay que tener presente lo siguiente: El conversor DC-DC conformado por el MC34063 y los elementos asociados elevan la tensin de +5 volt a los niveles necesarios para la programacin de los PIC, en este tipo de conversin por conmutacin donde est involucrada una bobina, es proclive a generar interferencia sobre la lnea de alimentacin si no se toma un mnimo de recaudo para el filtrado de las tensiones de este bloque. Esto es as en este y en cualquier circuito, como dije antes, en este tipo de conversores. Todas las conexiones deben ser cortas, bien filtradas por los capacitores que figuran en el esquema electrnico, tomar los 5 volts de entrada de alimentacin al conversor, directamente y no de retornos de otra seccin del circuito. Observar la disposicin del MC34063 y sus componentes en el PCB y realizarla de la misma forma. Se deben tomar en cuenta los detalles mencionados, en caso que se arme el programador en una placa experimental, porque de lo contrario podramos sufrir algn tipo de interferencia en la lnea de alimentacin producto de la conversin, slo visible con un osciloscopio. UN CLSICO: PROGRAMADORPOR

PUERTO LPT

Si bien son muchos los circuitos disponibles en la Web que permiten programar microcontroladores PIC, hace unos aos decidimos tomar lo mejor de cada uno de ellos y elaborar uno propio con las caractersticas que lo hacen ideal para nuestra regin (componentes econmicos y fciles de conseguir, software fcil de usar y en espaol). El programador que proponemos: PIC Pablin (www.pablin.com.ar) permite leer y grabar PICmicros de 8 y 18 pines as como memorias EEPROM seriales. La figura 7 muestra el circuito de este clsico. Dispone de un zcalo de 18 pines el cual permite conectar, tal como se ve en la plantilla, tanto PICs como memorias EEPROM seriales. Los PICs de 18 pines se colocan ocupando la totalidad del zcalo mientras que los PICs de 8 pines se colocan ocupando la parte superior del zcalo. En tanto las memorias seriales se

Figura 7 - Circuito de un programador de PICs clsico.

24

Saber Electrnica

Programacin Serial In-Circuit (ICSP)colocan una hilera anterior al fin del zcalo (el pin 1 de la memoria debe coincidir con el 5 del zcalo). El LED marcado como "Enc." permite observar que el sistema se encuentra alimentado mientras que el LED marcado como "PIC" se enciende indicando que es seguro insertar o quitar un chip (PIC o memoria) y se apaga por instantes breves cuando una lectura o programacin de un PIC est en curso. Mientras este ltimo LED este apagado no se debe quitar o insertar ningn integrado del zcalo. El funcionamiento del circuito es muy simple: los pines del puerto paralelo 2, 3, 5 y 10 permiten interconectar el circuito con la PC. El pin 2 es el encargado de traer los datos (desde la PC hacia el integrado). El pin 3 es el envo de los pulsos de reloj (desde la PC hacia el integrado). En tanto el pin 10 permite a la PC leer los datos desde el programador. El pin 5, por ltimo, es el encargado de controlar la tensin de programacin (Vpp) necesaria para cuando queremos leer o escribir en un PIC. Los microcontroladores PIC se programan utilizando el mismo protocolo que las memorias EEPROM seriales, por consiguiente el programador sirva tanto para PICs como para memorias. La tensin de programacin VPP es necesaria para indicarle al PIC que deseamos leerlo o programarlo. Si en este pin (que es compartido con la entrada de RESET del micro) ponemos masa el PIC sufre un reset, si ponemos el pin en alto (5V) el PIC trabaja normalmente mientras que si ponemos el pin a 12V el PIC se inicializa en modo programacin, quedando dos de los pines de E/S destinados a datos (SDA) y reloj (SCL). El integrado 74LS04 est formado internamente por seis buffers inversores. Estos nos permiten por un lado obtener niveles TTL a su salida y por el otro no cargar de forma excesiva al puerto. Algunos programadores, como el NOPPP utilizan diodos y resistencias para conectar el PIC directamente el puerto paralelo. Esto funciona en muchas computadoras de escritorio con fuentes poderosas pero en la mayora de las porttiles que no disponen de tanta corriente el funcionamiento es errtico o directamente no funciona. Gracias a la utilizacin de este buffer podremos utilizar el circuito en cualquier puerto paralelo ya sea de una computadora de escritorio o en un porttil. Se colocan las compuertas en serie para obtener a la salida el mismo nivel de entrada, sin invertir. Las resistencias de 1k dan seguridad al sistema para evitar que circule corriente excesiva. El control de la tensin de programacin lo efecta el transistor NPN. Estando el pin 5 del puerto paralelo a masa (en 0) tendremos al transistor abierto por lo que la corriente proveniente de +V (12V) pasar por el diodo LED el cual no encender y se portar como un diodo comn polarizado en directa, pasar por la resistencia limitadora de corriente del LED la cual no ofrecer mucha resistencia y ser inyectada al PIC en su terminal MCLR/VPP. Poniendo en 1 el bit que controla el pin 5 del puerto paralelo, en cambio, el transistor se cierra y hace circular masa hacia el PIC haciendo, adems, encender el LED al quedar a masa el otro extremo de la resistencia limitadora de corriente. El circuito requiere como nica alimentacin 12V de continua con una corriente de 200mA. Puede usarse cualquier fuente universal siempre que se respete la polaridad. De tener una fuente de mas tensin (13.5V como mucho) no hay problema, se la puede utilizar sin inconve-

Figura 8 - Fotografa del programador por LPT armado.

Saber Electrnica

25

Artculo de Tapanientes. No es necesario que la fuente sea regulada. Si se tiene una fuente de 12V con mas corriente 1A o incluso mayor se la puede utilizar tambin sin inconvenientes. Para conectarlo a la PC se puede utilizar un conector hembra Centronics para circuito impreso (igual al que tienen las impresoras) o un cable directo hacia el macho DB25. La figura 8 muestra la foto del prototipo terminado, en nuestro caso optamos por poner un segundo zcalo para las memorias seriales y dejar el zcalo grande para los PICs. La resistencia de 1k dems junto al integrado qued de la etapa de prctica pero no tiene conexin a ninguna parte. El programa que recomendamos para este programador es el IC-Prog dado que rene varias caractersticas mas que interesantes: * Es muy fcil de usar. * Posee una interfaz grfica con botones de acceso rpido a las principales funciones. * Permite ver el archivo ASM del programa que se esta por cargar en el PIC (lo obtiene desde el HEX). * Incluye varios idiomas, entre ellos espaol. * Dispone de cinco espacios de memoria (Buffers) para poder tener hasta cinco programas simultneos. * Dentro de una nica ventana rene memoria de programa, memoria EEPROM y bits de configuracin. * Hay actualizaciones peridicas con funciones nuevas y problemas resueltos. * Funciona tanto bajo Windows 95 como Windows 7 as como en versiones intermedias. Vemos en la figura 9 una captura de pantalla del programa. Para configurarlo slo es necesario presionar F3 y especificar el tipo de hardware programador (seleccionar ProPic 2), indicar el puerto paralelo al cual est conectado y establecer como mtodo de transferencia de informacin al puerto Direct I/O (en caso de usar Windows 95, 98 o ME) o Windows API (en caso de usar Windows NT, 2000 o XP). El retardo de I/O debe establecerlo en 10 que es un valor que funciona siempre. Se puede ir reduciendo y probando para lograr el menor retardo posible y as obtener la mayor velocidad de operacin. En tanto se debe indicar como nica lnea invertida la de MCLR. Las dems lneas son normales. El programa no requiere instalacin, bastar con descomprimir los nicos dos archivos que lo conforman (el EXE y el SYS) en cualquier carpeta (nosotros usamos C:\ICPROG). Una vez hecho esto debe ejecutar el EXE con doble clic y establecer la configuracin (lo pide una nica vez). Si al momento de terminar la configuracin del programa los dos LED's estn encendidos es seal de buen funcionamiento. Dentro del men ajustes hay una opcin para probar el funcionamiento del programador. Para comprobar si hay nuevas revisiones debe visitar www.ic-prog.com Aclaracin: Nosotros utilizamos para el proyecto un regulador de tensin 7805 de 1A dado que es lo que tenamos a mano, pero puede utilizarse un regulador 78L05 (los de

Figura 9 - Pantalla del IC-Prog, empleado como interfaz grfica.

26

Saber Electrnica