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

16/12/13

ICPROG

DISPOSITIVOS LGICOS MICROPROGRAMABLES ndice / Introduccin ICSP

Programacin de PIC con ic-prog Programador PIC y EEPROM JDM

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.
perso.wanadoo.es/pictob/icprog_jdm.htm 1/23

16/12/13

ICPROG

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

perso.wanadoo.es/pictob/icprog_jdm.htm

2/23

16/12/13

ICPROG

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.
perso.wanadoo.es/pictob/icprog_jdm.htm 3/23

16/12/13

ICPROG

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: 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 .
perso.wanadoo.es/pictob/icprog_jdm.htm 4/23

16/12/13

ICPROG

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).

perso.wanadoo.es/pictob/icprog_jdm.htm

5/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

6/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

7/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

8/23

16/12/13

ICPROG

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.icprog.com.

perso.wanadoo.es/pictob/icprog_jdm.htm

9/23

16/12/13

ICPROG

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.

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

10/23

16/12/13

ICPROG

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
perso.wanadoo.es/pictob/icprog_jdm.htm 11/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

12/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

13/23

16/12/13

ICPROG

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.
perso.wanadoo.es/pictob/icprog_jdm.htm 14/23

16/12/13

ICPROG

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 IC-PROG 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.

perso.wanadoo.es/pictob/icprog_jdm.htm

15/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

16/23

16/12/13

ICPROG

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

17/23

16/12/13

ICPROG

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.

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:

perso.wanadoo.es/pictob/icprog_jdm.htm

18/23

16/12/13

ICPROG

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:

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.

perso.wanadoo.es/pictob/icprog_jdm.htm

19/23

16/12/13

ICPROG

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 :

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
perso.wanadoo.es/pictob/icprog_jdm.htm 20/23

16/12/13

ICPROG

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 men principal, o bien con la opcin Borrar todo que se encuentra en la pestaa Comando. del

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
perso.wanadoo.es/pictob/icprog_jdm.htm 21/23

16/12/13

ICPROG

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: Mediante una nueva lectura del PIC, lo cual nos dar como resultado que el buffer tendr todas sus posiciones a 3FFF. 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

perso.wanadoo.es/pictob/icprog_jdm.htm

22/23

16/12/13

ICPROG

ndice / Introduccin
Mejora

ICSP

Programador PIC y EEPROM JDM

perso.wanadoo.es/pictob/icprog_jdm.htm

23/23

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