Está en la página 1de 4

ENTENDIENDO ICPROG

www.ic-prog.com
Autor: Jos Antonio Casas email: ihouses@iespana.es


Icprog es un software de libre distribucin con el que podremos programar gran
cantidad de dispositivos como microcontroladores PIC, Scenix, memorias I2C, SPI...
etc. Soporta una nmero de programadores bastante amplio, dependiendo del
programador que estemos usando podremos grabar algunos dispositivos o no. En este
tutorial nos centraremos en el clsico programador JDM. Es un programador serie muy
fcil de montar ( tenis una variante de este programador en www.easybots.com ) con
el que podremos programar gran cantidad de dispositivos, entre ellos se encuentran los
microcontroladores PIC, concretamente la serie 16F8XX.


Lo primero que debemos hacer al iniciar por primera vez ICPROG es escoger el
programador que queremos usar, en nuestro caso JDM
.


Escogeremos convenientemente el puerto serie al que conectaremos el programador y si
nuestro JDM es normalito no har falta marcar ninguna casilla en el apartado
comunicacin. El apartado retardo lo usaremos si vemos que nuestro programador a
veces falla. En ocasiones incrementando un poco el retardo I/O conseguiremos que el
programador falle menos o no falle.

Una vez configurado el Hardware pasaremos a escoger el integrado que queremos
programar. Lo escogeremos dentro de una lista que podremos desplegar en el apartado
Ajustes en el men superior. Para nuestro ejemplo escogeremos el PIC16F877.
Una vez hallamos hecho esto nos aparecer una pantalla con el cdigo de programa y en
la parte izquierda nos aparecer una barra como la de la figura de abajo.
Ser muy importante que entendamos que indican cada una de las casillas que forman
esa tabla. Cada una de las casillas nos permitir cambiar algn parmetro de los FUSES
del PIC. Los FUSES son unos parmetros del PIC que le permitirn cambiar su
configuracin interna antes de que el microcontrolador arranque. Por ejemplo, si
escogemos un reloj HS, el circuito interno de oscilacin que el PIC usar ser diferente
que si escogemos un reloj RC. As pues los FUSES son parmetros de configuracin del
PIC que necesitamos grabar correctamente para que el funcionamiento sea el esperado y
que dependern de la disposicin Hardware con la que est conectado el PIC en el
circuito en el que se encuentre.








WDT: Esta casilla nos permite activar o desactivar el WatchDOGSu
funcionamiento es sumamente sencillo. Simplemente es un registro que
debemos borrar cada cierto tiempo. Si pasa un tiempo X y ese registro no ha
sido borrado, el pic se resetea, as de sencillo. La instruccin para borrar el
registro es CLRWDT. Esto se usa como sistema de proteccin ante un
posible cuelgue del PIC.



OSCILADOR: Este fuse se refiere al modo de oscilacin que va a usar el
Pic. Los modos posibles son los siguientes:
RC: Se basa en un montaje con una resistencia y un condensador (Resistor -
Capacitor). La velocidad a la que oscile el pic depender de los valores del
condensador y de la resistencia. En el dataheet del PIC tenis los valores. En
este modo el PIC no puede funcionar a frecuencias altas, es decir, de orden de
Mhz.
XT: Se suele usar este modo de oscilacin cuando usamos oscilador
con cristal de cuarzo pero a baja velocidad. Por ejemplo 4 Mhz.
HS: Para cuando necesitemos aplicaciones de "alta velocidad"(ms de
4 Mhz ). Se basa tambin en un cristal de cuarzo, como el XT
LP: "Low Power" En este modo de oscilacin el pic consume menos a costa
de bajar su frecuencia de oscilacin a unos 200Khz. Al igual que el XT y el
HS, necesitaremos de un cristal de cuarzo y unos condensadores.
PWRT: Si activamos este FUSE, lo que conseguimos es que se se genere un retardo
en la inicializacin del Pic. Esto se usa para que la tensin se estabilice, por lo que se
recomienda su uso.
LVP: (Low Voltage Programming ) Si activamos este fuse, el PIC entender que lo
vamos a programar mediante el LVP. Es una manera de programarlo que no requiere
usar los 12V en la patilla de reset. Para ms detalles podis consultar el datasheet. Es
muy importante desactivarlo si no lo vamos a usar.
DEBUGGER: Inicializa el PIC en modo DEBUG. Algunos programadores soportan
esta prestacin y podemos hacer un debug en tiempo real con programas como el
MPLAB.
CP: El Code Protection. O dicho de otro modo, una garanta de que el cdigo que
escribamos en el PIC no pueda ser leido por otra persona, para que no nos lo copien,
modifiquen, etc. Esto no impide que el PIC funcione como siempre, ni que no se
pueda sobreescribir su contenido. Lo nico que nos impide es leerlo.




Uso de las pestaas BUFFER

Las pestaas buffer nos permiten tener diferentes ventanas de cdigo de programa para
agilizarnos la tarea de programacin. Si tenemos que grabar diferentes programas o
comparar los programas grabados en el PIC con alguno que nosotros tengamos en el
PC.
Por ejemplo, si nos encontramos dentro de la pestaa 1, podremos cargar un programa
para grabar . Una vez grabado, podemos pinchar en la pestaa 2 y all leer el programa
que hay en el PIC (atajo de teclado: F8). El programa leido se quedar dentro de la
pestaa 2, ahora podramos comparar el contenido de las dos ventanas y as sabramos si
lo que acabamos de grabar en el PIC se ha grabado correctamente, para ello, dentro de
la pestaa Buffer del men superior escogeremos comparar y all seleccionaremos
el buffer con el que queremos comparar ( buffer 1 en nuestro caso ). Si el contenido de
los dos buffers es diferente, el programa nos empezar a indicar las posiciones de
memoria que son distintas. Sin lugar a dudas, esto no es bueno, ya que el cdigo que
acabamos de leer debera ser el mismo que el cdigo que hemos grabado.





El error 0000h

El error 0000h ocurre cuando tras una verificacin ICPROG comprueba que la posicin
de memoria 0000h del cdigo que queremos programar no coincide con la posicin
0000h ( la posicin inicial ) de la memoria del PIC. Por tanto el PIC no se ha grabado
bien . Cuando el PIC no se graba bien, lo suele hacer desde un principio, otras veces
solo se graban mal algunas direcciones concretas, entonces al verificar ICPROG nos
dir que en un direccin determinada ( por ejemplo: 00F4Ch ) ha habido un error. Si
ello ocurre intentaremos grabar de nuevo, si sigue sin funcionar intentaremos cambiar el
retardo del programador en el apartado Ajustes Hardware ( atajo de teclado F3 ).
Si ello tampoco da resultado reiniciaremos la mquina y volveremos a intentar. Si as
tampoco intentaremos la grabacin con otro PIC. Si el programador todava no funciona
probaremos en otro ordenador. Y si as tampoco entonces nos preguntaremos si el
programador ha funcionado alguna vez. Si ha funcionado alguna vez entonces yo ya no
sabra que hacer. En caso contrario, si nunca lo hemos utilizado sera conveniente medir
con un multmetro los voltajes que hay en las patillas asociadas al programador, para
ello haremos lo siguiente.

Iniciaremos una programacin con un programa cualesquiera, mediremos en la patilla
de VDD y all tendr que haber +5V, en caso contrario repasaremos el circuito porque
algo est mal. Si todo ha ido bien mediremos en la patilla de RESET, all tendrn que
aparecer unos 12V. Luego en las patillas de DATA y CLK aparecern unos voltajes de
unos 3V. En verdad all habr un tren de pulsos por donde fluye la informacin, pero si
medimos con el multmetro en modo DC ste nos dar el valor medio de voltaje
presente en ese punto.

Si llegados a este punto todava no hemos resuelto el problema estara bien preguntar a
alguien que hubiese montado ese mismo programador. Si esa persona no nos puede
ayudar entonces lo mejor ser montar otro programador o comprarse uno hecho ( esto
ya cuando estemos desesperados )

También podría gustarte