Está en la página 1de 24

Programacin de PIC con ic-prog ndice de contenidos Programacin de PIC con ic-prog ndice de contenidos Introduccin Material necesario

Instalacin del software IC-PROG Eleccin de idioma Configurar el Hardware Explicacin de los mens Ajustes Programacin de un PIC Abrir archivo HEX Ajustar configuracin Programar el PIC Errores frecuentes en la programacin Lectura de un PIC Lecturas especiales de datos Verificacin de un dispositivo Borrado de un dispositivo Opciones Finales Introduccin En unin del hardware adecuado, el software IC-PROG permite programar gran cantidad de dispositivos electrnicos. Esta gua se va referir nicamente a la programacin de dispositivos PIC de Microchip del tipo 16F84A con un programador serie tipo JDM como el JDMD (JDM Directo). Material necesario El material mnimo necesario e imprescindible para la programacin de los microcontroladores PIC , es el siguiente: Software necesario: Software de programacin IC-PROG. Hardware necesario: Programador tipo JDM. Instalacin del software IC-PROG

http://perso.wanadoo.es/pictob/imagenes/icprog01.jpg

La instalacin de este software es muy sencilla, y basta con descomprimir el archivo icprog.zip, cuya ltima versin puede encontrarse en la pgina web http://www.ic-prog.com, este archivo consta del archivo Icprog.exe que contiene todo el cdigo necesario para su funcionamiento para Windows. Tambin puede obtenerse un archivo de ayuda Icprog.chm (en ingls, italiano y espaol), si bien este archivo no es necesario para el funcionamiento del programa. En el caso de utilizar este software con Windows 2000, Windows NT Windows XP, tambin es necesario tener en el mismo directorio que el ejecutable, el archivo icprog.sys para Windows XP (se encuentra en la misma pgina), sin el cual no se puede tener acceso a los puertos del ordenador. Eleccin de idioma Una vez instalado el software, al utilizarlo por primera vez, y aceptando las configuraciones por defecto, se nos presentarn las pantallas en ingls, y para cambiar el idioma se debern de seguir estos pasos: 1. 2. 3. 4. Abrir la pestaa de Settings (Ajustes). Elegir el comando Options (Opciones). Abrir la pestaa Languaje (Idioma) de este men. Elegir el idioma preferido. (A partir de ahora se supone el espaol).

Configurar el Hardware El paso siguiente es configurar el hardware necesario para programar los PIC . En la pantalla principal de IC-PROG, podemos acceder a la configuracin del hardware pulsando el icono o bien mediante la pestaa Ajustes y despus el comando Tipo

Hardware, o bien pulsando la tecla de funcin F3, de cualquiera de las maneras accederemos a la pantalla siguiente:

Esta es la configuracin que deberemos elegir para el correcto funcionamiento del programador JDM. Una vez elegido el tipo de programador como JDM y seleccionado el puerto serie adecuado, es importante no olvidarse de elegir el tipo de Interface como Direct I/O, y en cuanto al tiempo de Retardo I/O, si hubiese problemas se pueden probar tiempos ms largos. En ordenadores rpidos quizs se puedan poner tiempos de retardo ms pequeos, lo que nos dara una velocidad de grabacin ms rpida. Explicacin de los mens Los mens principales de IC-PROG tienen un icono grfico en la pantalla principal, de tal forma que con estos iconos prcticamente se puede leer, borrar, programar y verificar cualquier dispositivo. Abrir un nuevo archivo Configurar el hardware Leer un dispositivo Borrar un dispositivo Mostrar en ensamblador Asistente Smartcard Igualmente en la pantalla principal de IC-PROG se nos presenta toda la informacin relativa al dispositivo en cuestin. Guardar el buffer a un archivo Opciones Grabar un dispositivo Verificar un dispositivo Mostar en hexadecimal

Esta ventana muestra el tipo de dispositivo que se ha seleccionado. Pulsando en la flecha de la ventana podemos elegir cualquiera de los dispositivos soportados por el software de programacin IC-PROG (tambin se puede elegir el dispositivo mediante la pestaa Ajustes y la opcin Dispositivo).

Tambin se pueden ver las opciones de configuracin del dispositivo seleccionado. Se muestra informacin del tipo de oscilador usado por el microcontrolador en cuestin (RC, XT, HS). Tambin se muestran los diferentes bits de configuracin que tiene el microcontrolador. Estos bits sern diferentes para cada uno de los microcontroladores utilizados. Los de la imagen son los bits de configuracin del PIC 16F84A , y que muestran el estado del Wachtdog (WDT), el Power on Reset (PWRT) y la proteccin de cdigo (CP). Si el programa ya tiene una palabra de configuracin determinada aqu aparecern estas opciones marcadas. En el caso de se quiera modificar el estado de alguno de estos bits, basta con marcarlo o no en esta pantalla. Tambin tenemos informacin del Checksum (chequeo que se genera de todo el archivo de datos), y la posible identificacin (Valor ID ) del microcontrolador, si este lo tuviera. En la parte inferior de la ventana principal podemos ver que existen unas pestaas para indicar el contenido de 5 buffers diferentes.

Disponemos de 5 buffers diferentes donde almacenar datos en memoria. En cada uno de estos buffer podemos tener almacenado bien el contenido de un PIC o bien el contenido de un archivo. Con los datos contenidos en cualquiera de estos buffer se puede realizar cualquiera de las operaciones que hemos visto en los iconos anteriores. Es decir que se pueden guardar en un archivo en disco, o bien se puede programar un PIC con ellos. Tambin se puede comparar el contenido de estos buffers entre s para saber si existen diferencias entre ellos o no. Ajustes Cuando seleccionamos el idioma de utilizacin, vimos la pestaa Ajustes y el comando Opciones del principal. Vamos a ver ahora un poco ms en detalle los ajustes necesarios para el correcto funcionamiento del programa.

Los comandos posibles de esta pestaa son los siguientes: Dispositivo. Sirve para elegir el dispositivo con el que queremos trabajar. (PIC16F84A). Dispositivos recientes. Muestra el tipo de los ltimos dispositivos utilizados. Tipo Hardware F3. Aqu se elige el tipo de hardware que vamos a usar para programar el dispositivo elegido anteriormente. (JDM Programmer).

Prueba hardware. Se puede realizar una prueba de que el hardware elegido est conectado al ordenador en el puerto elegido, y por tanto est listo para usarse. Opciones. Desde este comando se pueden realizar las configuraciones que van a hacer que el uso de IC-PROG sea mucho ms sencillo, prctico y adems fiable. El idioma ya lo cambiamos al principio de esta gua, as es que vamos a configurar las opciones de programacin.

Activaremos la casilla de Verificar tras la programacin, para que el programa cada vez que realice la programacin de un dispositivo, automticamente despus de escribir el dispositivo, verifique que el contenido del dispositivo es el mismo que el buffer activo en ese momento. Al activar tambin la casilla de Verificar durante la programacin, le indicamos al programa que cada bloque de datos que escriba en el dispositivo vaya comparando que se ha escrito correctamente, leyndolo y verificando su contenido con el buffer activo. Esto hace que el tiempo empleado en programar un PIC sea mayor, pero tambin nos aseguramos de que los errores de programacin son mnimos.

Otra de las pestaas que se pueden configurar es la de los Atajos, para que nos sea mucho ms fcil el uso del programa. Como el nmero de dispositivos que pueden programarse con este software es muy grande, mediante estos atajos podemos hacer que elegir uno u otro para trabajar con l sea muy sencillo.

Basta con elegir aqu los ms utilizados y asignarles una de las combinaciones de teclas que se muestran, para que despus desde la pantalla principal baste con teclear la combinacin de teclas CTRL + F1 para que automticamente el dispositivo elegido quede seleccionado en el buffer activo, con el consiguiente ahorro de tiempo.

En el caso de trabajar con los sistemas operativos Windows NT, Windows 2000 o Windows XP, como ya se coment anteriormente, se deber tener en el mismo directorio que el archivo ejecutable de IC-PROG, el archivo icprog.sys para Windows XP, y adems de esto, activar la opcin de Habilitar Driver NT/2000, que se encuentra en la pestaa de Miscelnea de esta opcin de Ajustes. Esta opcin solamente podr activarse en uno de estos sistemas operativos, ya que en Windows 95, 98 Me no se encuentra habilitada. El resto de opciones que puedan aparecer estn configuradas por defecto para un correcto funcionamiento en la mayora de los ordenadores y sistemas operativos actuales, y en caso de duda siempre se podr acceder a la ayuda del archivo icprog.chm de la pgina web http://www.ic-prog.com. Programacin de un PIC 16F84A Los pasos que se exponen a continuacin son prcticamente idnticos en cualquier tipo de dispositivo a programar, con las nicas variaciones de las caractersticas particulares de cada uno de los dispositivos, pero el proceso se puede generalizar para cualquier dispositivo a programar. Se supone que el software IC-PROG ya se encuentra configurado como se ha explicado anteriormente, y tambin el hardware de programacin se encuentra conectado y configurado correctamente. Abrir archivo HEX Mediante el icono o bien con la pestaa Archivo y el comando Abrir datos, se accede al directorio dnde se guardan los archivos, como se observa en la figura.

http://perso.wanadoo.es/pictob/imagenes/icprog23.jpg

Los archivos de datos que usan para programar un PIC normalmente tendrn la extensin .hex (formato Intel hexadecimal de 8 bits). Ajustar configuracin Una vez cargados los datos del archivo correspondiente, la pantalla de IC-PROG presentar un aspecto como el mostrado a continuacin. http://perso.wanadoo.es/pictob/imagenes/icprog24.jpg

Se observa que los datos se han cargado en el rea de cdigo de programa y si existieran, se mostraran los datos de la EEprom interna de PIC . En el caso de que se haya programado la palabra de configuracin, los bits correspondientes aparecern marcados. Si se quiere cambiar alguno de ellos se puede hacer pinchando

directamente sobre l. Tambin se puede cambiar el tipo de oscilador con que trabajar la aplicacin una vez cargada en el PIC . Si en la aplicacin no se program ninguna palabra de configuracin, se nos mostrarn los datos por defecto del programa (oscilador tipo RC y Watchdog WDT activados). En la aplicacin de ejemplo tenemos configurados (oscilador tipo XT, Watchdog WDT y Power on Reset PWRT). Cualquiera de las reas de datos (cdigo de programa o datos EEprom), puede ser aqu modificada, ya que IC-PROG permite la edicin de los datos que estn presentes en el buffer del ordenador antes de ser enviados al PIC . Esto deber hacerse con sumo cuidado pues la edicin de los datos se llevar a cabo en hexadecimal directamente, con el consiguiente riesgo de cometer errores y causar un mal funcionamiento del programa cargado. Programar el PIC 16F84A Para proceder a la programacin fsica del PIC , basta con pinchar sobre el icono , o bien activar la pestaa Comando y despus Programar todo, o bien pulsar la tecla de funcin F5, de cualquiera de estas tres formas, y despus de solicitarnos confirmacin de la orden dada, el PIC comenzar a ser programado con los datos cargados en el buffer activo. El proceso de grabacin se nos ir mostrando, tal como puede verse en la figura.

El tiempo empleado en la grabacin del PIC 16F84A depender de la rapidez del ordenador en que se est trabajando. Despus de programar el cdigo se programarn los datos de la memoria EEprom y posteriormente la palabra de configuracin de nuestro programa, todo ello sin requerir para nada de la atencin del usuario. Una vez terminada la programacin se proceder automticamente a la verificacin de los datos escritos en el PIC (si se activ la verificacin tras la programacin). Del proceso de verificacin tambin se nos ir informando, tal como muestra la figura.

Sern verificados igualmente el cdigo de programa, los datos de la memoria EEprom y los bits de la palabra de configuracin. En el caso de que la verificacin haya sido correcta se nos informar mediante la ventana representada en la figura siguiente, y el proceso de grabacin habr finalizado.

Una buena prctica para evitar errores en la programacin, es que una vez terminado el proceso de grabacin, como se ha descrito hasta aqu, cambiar el Buffer activo, leer el PIC programado (esto se explica ms adelante) y proceder a la comparacin entre los contenidos de los dos buffers, es decir comparar el archivo con el contenido del PIC. En realidad estamos volviendo a realizar la comprobacin que ya se ha realizado automticamente al programar el dispositivo. Esta nueva comprobacin trae consigo el empleo de ms tiempo, pero a veces ms vale prevenir. Errores frecuentes en la programacin Cuando por alguna causa la programacin no se realiza correctamente tambin el programa nos informar de ello mediante el aviso oportuno. El error ms frecuente en la programacin de un PIC es el que se muestra en la ventana siguiente, que nos informa de que se produjo un error al verificar el contenido en la primera posicin de memoria, la 0000h.

Este error suele estar motivado por algn fallo en la comunicacin entre el ordenador y el programador, tal como una mala conexin del cable serie, o una colocacin errnea del PIC en el programador, o hasta incluso por tener mal configurado el puerto serie con el que comunicamos el ordenador y el programador. Tambin puede estar producido porque el PIC que estamos intentando programar se encuentre defectuoso o se haya estropeado por un mal uso. Cuando aparece este error podemos tratar de evitarlo siguiendo los pasos que se enumeran a continuacin:

Lo primero de todo es asegurarnos de que no hemos seleccionado la proteccin de cdigo CP en los bits de configuracin (Este es un error muy tpico, y en este caso el programa leera los 8 primeros bytes de datos como ceros, dando por tanto el error de verificacin en la primera direccin). Comprobar que el PIC se encuentra bien introducido en el zcalo del programador. Verificar que el cable serie est bien conectado en sus dos extremos, tanto en el conector del programador como en el del ordenador. Asegurarnos de que hemos elegido en Ajustes Tipo Hardware, el tipo de programador correcto y el puerto COM adecuado. Comprobar que el dispositivo elegido es el que estamos realmente programando (PIC

16F84A PIC 16F84A ). Comprobar que en ninguno de los ajustes realizados hemos variado las configuraciones relativas a las patillas de Vcc para el tipo de programador (JDM) utilizado. En el caso de que ninguna de estas comprobaciones diera un resultado que nos permita volver a programar el PIC , lo mejor es repetir la programacin con otro microcontrolador que est en buen estado, para descartar completamente que el fallo est en el software o hardware del ordenador o programador y poder asegurar que se trata del PIC que se encuentra en mal estado. Cuando se trabaja en uno de los sistemas operativos Windows XP, Windows NT o Windows 2000, adems del anterior se puede dar el error que se muestra en la figura.

Este error en realidad est indicndonos que el sistema no puede acceder a los puertos del ordenador y por tanto al programador conectado a ellos, y como se indic anteriormente, para solucionarlo se deber instalar el archivo icprog.sys en la carpeta donde se encuentra el ejecutable y adems habilitar el driver para NT/2000 en las opciones de Miscelnea en la pestaa de Ajustes. Una vez habilitado este driver el programa pedir volver a iniciarse, y a partir de ese momento ya est perfectamente habilitado para realizar la programacin de los dispositivos necesarios. Lectura de un PIC La lectura de un dispositivo mediante el software IC-PROG y el programador adecuado, es idntica para todos los dispositivos soportados, sin embargo en esta gua todo lo relativo a la lectura de un dispositivo se realizar sobre un PIC tipo 16F84A . Es muy importante seleccionar el tipo de dispositivo que vamos a leer, pues el programa ICPROG al indicarle el tipo de dispositivo ajusta automticamente la capacidad del buffer de lectura al tamao del PIC en cuestin. As si elegimos un PIC 16F84A , veremos que el buffer de cdigo de programa se ajusta al tamao de 1 Kbytes de memoria (0000h - 03FFh). Al leer un dispositivo, no se realiza una posterior verificacin, con lo cual si el buffer elegido es de menor capacidad que el PIC ledo, los ltimos datos no se almacenarn en l y se perder su contenido. No es necesario activar ningn bit de la palabra de configuracin, ni elegir el tipo de oscilador, ya que una vez ledo el PIC , ser el propio IC-PROG quien nos muestre la informacin de todos ellos, si es que existe en el programa ledo. Pulsando sobre el icono comienza la lectura de los datos del PIC , secuencialmente se irn leyendo el cdigo de programa, los datos de la memoria EEprom y finalmente los bits de configuracin.

http://perso.wanadoo.es/pictob/imagenes/icprog33.jpg

El buffer de cdigo de programa, y en su caso el de la EEprom interna, se llenar con los datos ledos, y estos se mostrarn en hexadecimal. Para poder ver el cdigo en ensamblador se puede activar el icono de la barra de tareas. http://perso.wanadoo.es/pictob/imagenes/icprog35.jpg

Una buena medida es cambiar el buffer activo y volver a leer el dispositivo para posteriormente comparar los contenidos de ambos buffers y tener seguridad de que la lectura ha sido correcta. Recordad que al leer no se verifican los datos. La comparacin de los dos buffers de datos se realiza en la pestaa Buffer con el comando Comparar, y si la comparacin es correcta se nos indica el resultado tal como se muestra en la

figura siguiente.

En el caso de que la comparacin de los buffers de datos de cmo resultado que estos no son iguales, el programa nos ir informando de las diferencias que se vayan encontrando entre uno y otro buffer. http://perso.wanadoo.es/pictob/imagenes/icprog38.jpg

De esta manera podemos averiguar tambin las diferencias entre los contenidos de un microcontrolador y otro que aunque estn programados con el mismo programa, no funcionen correctamente, o de un archivo y otro que al ensamblarlos no sean exactamente iguales. Lecturas especiales de datos Si un PIC no ha sido nunca programado, o est completamente borrado, su contenido ser 3FFF (son posiciones de 13 bits), una prueba de ello se muestra a continuacin: http://perso.wanadoo.es/pictob/imagenes/icprog39.jpg

Esta lectura de un PIC completamente borrado es lo que se conoce como verificacin de blanco, y puede realizarse automticamente mediante la orden Verificar blanco, que se encuentra en la pestaa Comando. Ms tarde veremos la opcin de borrado de un dispositivo, que lo que realiza es una escritura de 3FFF en todas las posiciones del PIC y una posterior lectura del mismo, para verificar que est en blanco. Si el PIC est protegido contra lecturas (CP activado) su contenido al leerlo ser de todas las

posiciones a 0, como se muestra a continuacin: http://perso.wanadoo.es/pictob/imagenes/icprog40.jpg

Si solo estuviese protegida una parte del cdigo, al leer el PIC , la parte que no est protegida se lee normalmente y la parte de cdigo que est protegida se leer con todas las posiciones a 0000. Cuando un programa ocupa slo una parte de la memoria de cdigo, si leemos el PIC, el resto de posiciones no ocupadas por el programa se leern como si estuviesen en blanco 3FFF. Los datos de la memoria EEprom son de 8 bits y por eso al leerlos, si estn vacos se muestran como se puede ver a continuacin : http://perso.wanadoo.es/pictob/imagenes/icprog41.jpg

Verificacin de un dispositivo Aunque ya se ha explicado anteriormente que al realizar la programacin de un dispositivo, este es automticamente verificado, en el men principal de IC-PROG se dispone del icono , mediante el cual se accede a la verificacin del dispositivo elegido. Tambin se puede realizar la verificacin mediante la opcin Verificar dentro de la pestaa Comando o bien pulsando la tecla de funcin F6. De cualquiera de estas tres formas el programa IC-PROG compara el contenido del PIC colocado en el programador, con los datos cargados en el buffer activo.

La verificacin del PIC se realiza en dos pasos: En primer lugar se verifica el rea de cdigo de programa, y en caso de que halle algn error en los datos comparados se detiene la verificacin y se nos informa de la direccin

dnde se ha producido el error de comparacin. Una vez superada con xito la comparacin del rea de cdigo de programa, en segundo lugar se verifica el rea de datos de la memoria EEprom (si el dispositivo est dotado de ella).

Al final de la comparacin, si no han existido diferencias entre los datos, se nos informa de que se ha tenido xito en la verificacin del dispositivo, con una pantalla como la adjunta. Borrado de un dispositivo Cuando se quiere realizar el borrado completo de un PIC , antes de proceder a una nueva programacin, esto se puede hacer con el icono del men principal, o bien con la opcin Borrar todo que se encuentra en la pestaa Comando.

Si dentro de la pestaa de Ajustes, en el men de Opciones la casilla de Borrar un dispositivo (como se muestra en la figura) est activada, antes de proceder al borrado del PIC , se nos pedir que confirmemos la opcin elegida mediante una pantalla de aviso, caso de no estar activada esta casilla no se pedir confirmacin y el PIC se borrar perdiendo todos sus datos.

El borrado del PIC se lleva a cabo en un tiempo muy breve, y al finalizar el mismo se nos informa de que el proceso ha finalizado.

La comprobacin de este proceso se puede realizar de dos maneras: 1. Mediante una nueva lectura del PIC , lo cual nos dar como resultado que el buffer tendr todas sus posiciones a 3FFF. 2. Realizando la verificacin del blanco. En cuyo caso se nos informar mediante una pantalla de que el PIC est en blanco, o bien de que no lo est en una direccin determinada de memoria. Opciones Finales A continuacin se muestran unas figuras con las opciones de cada una de las pestaas del men principal de IC-PROG. Estas figuras se dan a nivel informativo, y en ningn caso se pretende explicar exhaustivamente su uso, ya que eso no es misin de este tema. Para una mayor informacin consultar el archivo icprog.chm o la pgina http://www.ic-prog.com http://perso.wanadoo.es/pictob/imagenes/icprog46.jpg

Programar PIC
ndice de contenidos
ndice de contenidos Introduccin

Introduccin
Con programar un PIC nos referimos a transferir y almacenar el programa en el PIC, no a generar o escribir el programa que contiene. Este proceso comienza con un archivo de tipo HEX, que especifica exactamente como deben quedar la memoria de programa y la memoria de datos no volatil (EEPROM) del microcontrolador. El proceso de la programacin consiste en copiar el archivo HEX en el PIC.

Programador de PIC
Para programar un PIC debe utilizarse un ordenador, como por ejemplo un PC. Sin embargo no existe, en principio, forma de conectar directamente a un PIC con un PC para programarlo. Es necesario utilizar un dispositivo hardware llamado programador el cual interconecta un puerto de entrada/salida del PC por un lado y el PIC por el otro. Existen muchos modelos de programadores, tanto comerciales como para construirlos uno mismo.

Conexin del lado del PC


Del lado del PC existen programadores que utilizan el puerto paralelo, otros el puerto serie (COM port) y otros el puerto USB. De los modelos para construir uno mismo los mas simples utilizan el puerto serie, como es el caso de los basados en el diseo JDM. Un problema importante es que tanto el puerto serie como el paralelo no estn disponibles en los porttiles actuales y cada vez es menos comn en los equipos de sobremesa. Los programadores USB pueden realizarse con un PIC con USB pero incluso estos modelos necesitan a su vez programarse, aunque slo sea la primera vez, mediante un programador (al menos hasta donde sabemos). Los conversores USB-serie comerciales, que crean un puerto serie virtual en el PC, no sirven. Al menos en pruebas realizadas con el programador serie JDM.

Conexin del lado del PIC


Por el lado del PIC este puede programarse de dos maneras: Insertndolo directamente en un zcalo en el programador Con el PIC insertado en el circuito de aplicacin y programndolo mediante el llamado ICSP. Programacin por zcalo

En este caso el programador proporciona algn sistema de zcalos para insertar PIC de distintos tamaos y proporcionar las conexiones necesarias para su programacin. Programacin ICSP El programador ICSP conecta el PIC mientras est conectado en el circuito de aplicacin. Este mtodo evita tener que manipular el PIC. Al evitar tener que insertarlo en el programador con zcalos y luego en la aplicacin no se corre el riesgo de deteriorarlo, partiendo alguna patilla o por descargas electrostticas. Tambin permite programar PIC SMD y por ltimo permite que un dispositivo montado se pueda programar justo antes de salir para su comercializacin y as disponga de la ltima versin del programa del PIC. Ver ICSP

Bootloader
El uso de un bootloader permite actualizar fcilmente el programa del PIC sin necesidad de utilizar un programador especfico, utilizndo una conexin serie RS232 o USB. Para mas informacin ver bootloader.

Modos de programacin
Existen dos maneras de programar un PIC, la estndar y la de baja tensin o LVP la cual slo soportan algunos modelos de PIC (no por ejemplo el PIC16F84A).

Programacin estndar
La programacin estndar requiere de cinco seales. Una de ellas, la Vpp, a 13 voltios: 1- VPP: Tensin de programacin de unos 13 voltios; cuando es aplicada, el microcontrolador entra en el modo Programacin. 2- VDD: Alimentacin positiva. 3- VSS: Alimentacin negativa 4- ICSPDAT o PGD: Datos de Programacin; es una lnea de datos bidireccional sncrona serie. 5- ICSPCLK o PGC: Reloj de Programacin; es una lnea unidireccional sncrona serie de reloj que va desde el programador hasta el microcontrolador. http://perso.wanadoo.es/pictob/imagenes/jdmd2.1.gif

Programacin a baja tensin

Existen microcontroladores PIC con capacidad de programacin a baja tensin (LVP), es decir, no necesitan de una tensin Vpp de 13v. En este tema sin embargo se trata la programacin estndar (a 13V) y no la programacin de baja tensin, as que en los PIC con capacidad LVP pero que vamos a programar con el sistema estndar, debemos deshabilitar la funcin LVP en los ajustes de configuracin (mediante el uso de LVP = off en los registros de configuracin). Si no lo hacemos (o adems de hacerlo para asegurarnos) debemos colocar la patilla de programacin de baja tensin (PGM o LVP) a nivel bajo (Vss) cuando se realice la programacin, por ejemplo, mediante una resistencia de 1 a 100K para tirar a masa esta patilla. Un pin PGM que se deja flotante (sin conectar) o en la condicin de nivel alto, puede interferir con la programacin y producirse errores. Pines de LVP Para la mayora de los PIC de la serie 16F , RB3 funciona tambin como pin PGM. En la serie 18F, por lo general, es RB5 la que necesitamos poner a nivel bajo. Para los 16F62x y 16F64x, se necesita que RB4 sea puesto a 0. Debemos consultar el datasheet correspondiente del microcontrolador a programar para la identificacin de este pin.

Programacin de PIC a 3,3 voltios


Algunos microcontroladores PIC no pueden alimentarse a 5V. Funcionan a una tensin de alimentacin inferior, como 3,3 V . En este caso se requieren circuitos adicionales en la programacin en circuito. Puede consultarse mas informacin en la pgina de Microchip buscndo los tipos: PIC18FxxJ, PIC18FxxK, PIC24xJ y dsPIC33FJ

Programacin con MCLR como I/O


Conviene configurar MCLR como un pin de RESET. El programador trata de reajustar el PIC al principio del proceso de programacin. Si el pin MCLR se configura como una entrada, el programador puede tener problemas para poner el PIC en el modo programacin. Esto es especialmente problemtico si el PIC ha sido previamente programado y se establecen el reloj de programacin o las lneas de datos como salidas. En algunos montajes no hay suficientes pines para permitir el uso de un RESET, siendo necesario que MCLR sea utilizado como una entrada. Esto es habitual en pequeos PIC de 8 pines. En estos casos conviene configurar el reloj y la patilla de datos como entradas y colocar un retardo en el inicio del cdigo principal. Esto permitir al conectar la alimentacin del PIC comenzar el proceso de programacin, mientras el retardo se est ejecutando. Por ejemplo, utilizando pseudocdigo, en un programa destinado al PIC12F675, podemos comenzar con:

TRIS FF 'Todos los pines como entrada PAUSA 1000 'Espera un segundo

TRIS XX 'Pines segn convenga

Se pone un tris para que todas las patillas acten como entrada, un retardo de 1 seg y despues un tris para cambiar las patillas a salida o entrada segn convenga. Adems los pines por donde se programa (CK y DATA) son tambin entradas al principio.

Todo esto permite la reprogramacin del PIC sin problemas.

Patillas de programacin
En los datasheet suministrados por el fabricante Microchip (accesibles desde su pgina de Internet) estn detallados los pines adecuados para la conexin de un programador para cada tipo de dispositivo PIC. En general la disposicin de los pines segn el microcontrolador es la siguiente: Microcontroladores de 8 pines lnea 12F: Pin 1 = Vdd (voltaje positivo) Pin 4 = Vpp (voltaje 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 (voltaje positivo) Pin 4 = Vpp (voltaje 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 (voltaje positivo) Pin 1 = Vpp (voltaje 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 (voltaje positivo) Pin 1 = Vpp (voltaje de programacin) Pin 39 = Ck (ICSPCLK PGC) Pin 40 = Data (ICSPDAT - PGD) Pin 12 - 31 = Gnd (negativo Vss)

In-circuit Serial Programming (ICSP)


Por terminar

Introduccin
Este tema trata sobre como realizar el diseo de los circuitos de aplicacin con PIC programados mediante ICSP (in-circuit serial programming) por el modo de programacin estndar (no de baja tensin LVP). La mayor parte de la informacin que se muestra aqu es generica y aplicable independientemente del tipo de programador utilizado. Cuando sean relevantes se mencionarn aspectos especficos de programadores ICSP. Recordemos (programar PIC) que un programador ICSP conecta el PIC mientras est conectado en el circuito de aplicacin. Pero debido a la variedad de conexiones que puede presentar el PIC con el resto de componentes en el circuito de aplicacin es necesario tener en cuenta algunos aspectos para que el programador ICSP pueda trabajar correctamente. Algunos montajes no permiten la programacin ICSP. El propsito pues de este tema es ayudar en el diseo de esquemas con PIC que cumplan con las condiciones impuestas en el circuito para permitir su programacin ICSP. La comunicacin ICSP requiere cinco seales (ver Programar PIC para mas informacin): 1- VPP: Tensin de programacin. 2- VDD: Alimentacin positiva. 3- VSS: Alimentacin negativa 4- ICSPDAT / PGD / DATA: Datos. 5- ICSPCLK / PGC / CK: Reloj. http://perso.wanadoo.es/pictob/imagenes/jdmd2.1.gif

Consideraciones de diseo para los circuitos con

capacidad ICSP
A continuacin se detallan algunas consideraciones a tener en cuenta en el diseo de un circuito para ICSP.

Pines de programacin dedicados


Es necesario aislar del circuito a los pines CK y DATA para prevenir que las seales de programacin sean afectadas por el propio circuito de aplicacin. CK es una lnea de reloj unidireccional sncronica serie desde el programador al microcontrolador. DATA es una lnea bidireccional sncronica serie de datos de programacin. Si es posible, conviene dedicar el reloj de programacin y la patilla de datos solamente para ICSP. No obstante si tambin debemos utilizar estos pines para fines distintos en el circuito, debemos pensar bien que tipo de hardware conectar. El mejor de los casos es utilizar las patillas de programacin para pulsadores normalmente abiertos. Siempre y cuando no se opriman los botones durante la programacin, nada afectar a la programacin. Si se conectan cargas a CK y DATA, estas no deben interactuar con el reloj y las seales de datos. Las cargas capacitivas causarn problemas. Las cargas de alta impedancia, por lo general, irn bien. La conexin de LEDs con resistencias limitadoras de corriente son menos deseables, pero normalmente no causan problemas. En definitiva disearemos el circuito de tal manera que no se altere el nivel de seal en CK y DATA. Por ejemplo utilizando resistencias en serie para aislar las seales ICSP del circuito de aplicacin.

Pin Vpp/MCLR
El pin MCLR en el PIC se pone a unos 13V durante la programacin. Esto plantea dos problemas. El primero es que nuestro circuito debe permitir en este pin la aplicacin de los 13V. Por tanto no se puede conectar este pin directamente a la lnea de Vdd. El segundo problema es que el resto del circuito debe estar protegido de esta tensin. Los 13V en el pin MCLR podran poner en peligro otros componentes en la placa. Veamos distintas soluciones: Si el pin Vpp es utilizado como reset (MCLR): El circuito de aplicacin es conectado tpicamente a una resistencia y un condensador 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 un botn para el pin MCLR, se recomienda que los mismos sean aislados del voltaje Vpp mediante el empleo de un diodo o una resistencia limitante. Si el pin Vpp es utilizado como un pin de puerto I/O: El circuito de aplicacin que conecta al pin I/O quizs no est habilitado para manejar el voltaje de +12V. Se recomienda utilizar un diodo o una resistencia limitante, para aislar el circuito.

Deshabilitar la programacin a baja tensin


En los microcontroladores PIC con capacidad de programacin a bajo voltaje 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. Como antes se ha dicho, en este tema se trata la programacin estndar (a 13V) y no la programacin de baja tensin. Por ello debe ser siempre deshabilitada en los ajustes de configuracin. Usaremos una resistencia de 1 a 100K para tirar a masa la patilla PGM en el diseo de un circuito para ICSP. (Ver programar PIC)

Alimentacin durante la programacin


Durante la programacin ICSP es necesario que el microcontrolador sea conectado de acuerdo a la especificacin del mismo. Tpicamente, la alimentacin del microcontrolador se conecta al suministro de alimentacin del circuito de aplicacin. La aplicacin tambin puede ser alimentada por el programador siempre y cuando se tenga en cuenta lo siguiente. La corriente de alimentacin que suministran algunos programadores es limitada. No se recomienda utilizar esta alimentacin si el consumo de la aplicacin supera unos pocos miliamperios. As por ejemplo en los programadores basados en JDM la corriente viene dada por el puerto serie del PC cuya capacidad es limitada. Cuando el programador suministra el voltaje Vdd al circuito y solo lo aplica durante el proceso de programacin debemos asegurarnos de que el condensador o los condensadores conectados entre Vdd y Vss de la aplicacin no retarden el tiempo de subida de Vdd. En estos casos es recomendable utilizar el suministro de tensin de la aplicacin o un suministro constante desde el programador. Siempre debemos conectar todas las patillas de alimentacin disponibles en el PIC a positivo o a negativo, segn corresponda. Muchos dispositivos PIC tienen patillas etiquetadas como Vdd, Vss, AVdd y AVSS. Si alguna de estas patillas se deja desconectada pueden darse errores de programacin. Esto se aplica a las patillas analgicas, incluso aunque no tengamos pensado utilizar las funciones analgicas. Los programadores basados en JDM utilizan una tierra flotante que provocar problemas si el circuito donde esta el PIC est tambin conectado a tierra. Para no provocar daos debemos tenerlo en cuenta y desconectar la tierra o la alimentacin de la aplicacin mientras se programa. Ante posibles descuidos, una solucin es utilizar el mismo conector para la alimentacin normal de la aplicacin y para la programacin. Esto obliga a desconectar la alimentacin para programar el PIC. Esta solucin slo es vlida si el consumo de la aplicacin durante la programacin es bajo. De todas maneras, normalmente la aplicacin se alimentar mediante un F.A. aislada de tierra y no aparecern problemas. Suministro normal de energa Para la conexin de +5V a los pines Vdd del PIC podemos utilizar el suministro normal de energa del circuito. El conector ICSP de los programadores suele incorporar un pin de 5V que puede ser utilizado, pero slo si el circuito no consume demasiada corriente, de lo contrario probablemente se producirn errores durante la programacin, y es posible que se dae el programador. Si se alimenta el PIC con la alimentacion de la placa y no con la del programador debera dejarse desconectada del PIC la alimentacion Vdd del programador. Desacoplo

Debemos utilizar condensadores de desacoplo entre Vdd y Vss. Esta es una buena prctica en cualquier caso, pero es especialmente importante para ICSP. Un nico condensador de 0.1uF es el mnimo recomendado, aunque suelen colocarse mas.

Longitud de los cables


Debemos minimizar la longitud del cable entre el programador y del circuito de aplicacin. Debemos tambin minimizar la distancia que deben recorrer las seales ICSP en el circuito de aplicacin colocando el conector de ICSP tan cerca como sea posible del PIC. El objetivo es mantener las seales ICSP dentro del nivel y las especificaciones adecuados para que la programacin sea exitosa.

Esquemas
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. A continuacin se muestran algunos esquemas punto de partida para disear circuitos de aplicacin para ICSP. http://perso.wanadoo.es/pictob/imagenes/jdmd2.2.gif

http://perso.wanadoo.es/pictob/imagenes/jdmd2.3.gif

Finalmente indicar que siempre debemos montar un prototipo y probar la programacin ICSP para garantizar el funcionamiento del circuito de aplicacin.

También podría gustarte