Está en la página 1de 15

Manual de programacin de los microcontroladores PIC para su uso en el Proyecto IOCards

Autor: Fernando Brea

Programacin de microcontroladores PIC Proyecto IOCards

ndice 1. Introduccin 2. Material necesario a. Hardware b. Software 3. Conexines Hardware 4. Configuracin Hardware 5. Instalacin Software 6. Configuracin Software 7. Programacin del microcontrolador 8. Error y Check List de soluciones

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Introduccin
El objeto de este manual es proporcionar unos conceptos bsicos que permitan a la comunidad de constructores de cabinas el poder grabar los microcontroladores PIC utilizados en la segunda generacin de tarjetas diseadas para el Proyecto IOCards. El proyecto IOCards esta basado en tarjetas de electrnica discreta y modulares desarrollado por Manuel Vlez ( http://www.opencockpits.com ) y que han sido diseadas para, junto con el software de control, interactuar con los principales simuladores de vuelo para PC, permitiendo la conexin de todo tipo de mandos, instrumentos e indicadores, con el fin de realizar la construccin de cabinas de vuelo caseras con un coste moderado. La novedad de la segunda generacin de estas tarjetas estriba en que estas estn controladas por microcontroladores PIC, lo que da objeto a este manual. En este manual se utilizara como ejemplo el PIC 16F876, que es el utilizado tanto en la tarjeta IOCard Servos II generacin como el utilizado en la tarjeta IOCard Encoders II generacin, aunque al no entrar en la parte de Cdigo del microcontrolador, podra utilizarse en la programacin de otros chips. Desde aqu agradecer a otras comunidades dedicadas a otros menesteres y que fueron las que me instruyeron en su momento para la utilizacin de los elementos aqu descritos. Tambin Agradecer a Manuel Vlez y todo el equipo de constructores de cabinas los continuos avances que realizan, permitiendo que cada vez nuestros sueos en forma de cabinas estn mas cerca.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Material Necesario
Hardware: El Chip a programar ( en nuestro caso un PIC 16F876 )

Lo podemos encontrar en tiendas de electrnica. Sin problemas. El programador (T-20se o similares )

Lo podemos encontrar en tiendas de electrnica. El nico problema es que no tengan este modelo, existe tambin el T-20 II, el TE-20 X, y si no, lo mejor es pedir un programador para grabar el PIC 16F876 y que nos asesoren. El precio puede estar entre los 8 10 NOTA : el TE-21 NO nos vale. Un cable serie

Lo podemos encontrar en tiendas de informtica o electrnica. El cable hay que comprarlo en funcin de los conectores que tenga el PC y el programador. De unos aos a esta parte El 99% de los PCS traen los puertos serie con el conector DB9 Macho ( con pines ), de cualquier manera lo verificamos. La mayora de los programadores tienen un conector DB9 Hembra (con agujeritos ), tambin lo verificamos. En el 99% de los casos deberemos comprar un cable serie con conectores BD9 Macho / DB9 Hembra. Si en el PC tuviramos un DB25 Macho ( posible en PCS antiguos ), compraramos un cable serie DB25 Hembra ( que entrara en el PC ) / DB9 Macho (que entrara en el programador ). NOTA : NO necesitamos un cable cruzado, es un cable pin a pin ( por si preguntan ).

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Software:

Programador de prototipo ICProg.( Ver. 1.05C )

Lo podemos encontrar en http://www.ic-prog.com Aqu nos descargaremos el ic-prog.exe ( el programa ) y que versin? Pues tericamente la ultima que no sea Beta, aunque a mi particularmente me gustan las beta ya que por lo menos tienen corregidos los problemas conocidos...y si encontramos errores pues los reportamos. tambin nos descargamos el Helpfile ( ayuda en Ingles ) el Helpfile in Spanish language ( ayuda en espaol ) y los que tengis NT/2000/XP el IC-Prog NT/2000 driver ( ic-prog.sys ). Fichero con el Cdigo para el Microcontrolador ( IOCard_Servo.hex )

Lo podemos encontrar en :
http://www.opencockpits.com/modules.php?name=Downloads&d_op=viewdownload&cid=1&orderby=dateD

Por supuesto nos descargaremos el fichero correspondiente a la placa que estemos construyendo, si dudamos, pues lo preguntamos en el foro...

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Conexiones Hardware
Conectar el cable serie a uno de los puertos serie del PC, estos puertos serie estn protegidos contra cortocircuitos y falsas seales, por lo que no hay ningn problema en conectarlo / desconectarlo con el ordenador encendido. Importante anotar el puerto al que se conecta 1 o 2, ya que si no, nos volver a tocar agacharnos para verificarlo

Montar el PIC en el zcalo correspondiente del programador, teniendo en cuenta las muescas indicadoras tanto del PIC como del zcalo.

NOTAS Importantes : 1. Montar y desmontar el PIC sobre su zcalo con el programador desconectado del cable Serie para evitar que pueda daarse elctricamente. 2. Si al montar el PIC en el zcalo vemos que las patas quedan fuera por estar muy abiertas, poner el PIC con un lateral de patas sobre la mesa, y forzarlo girando ligeramente para que todas las patas se cierren por igual, si es necesario hacer lo mismo con el otro lateral de patas. REALIZAD ESTA OPERACIN CON MUCHO CUIDADO. 3. Al montar el PIC sobre un zcalo (bien del programador o bien de la tarjeta ) encajarlo nicamente lo necesario para que tenga una buena conexin elctrica, no lo aprietes como si todo dependiera de ello. 4. Para sacar el PIC del zcalo, haz palanca por los extremos sin patas con un destornillador de plstico o similar y que salga de los dos extremos a la vez ( as evitamos que se doblen las patas ).

Conectar el otro extremo del cable serie a programador T20se.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Configuracin Hardware.
Configuraremos el puerto Serie que utilizamos para el programador ( si, el que anotamos anteriormente cuando conectamos el cable serie), para lo cual :
Windows 9x / ME

Pulsamos Inicio ->Configuracin ->Panel de Control -> Icono de Sistema -> solapa Administrador de Dispositivos -> Desplegamos Puertos ( Com & lpt ) -> Doble clic en puerto de comunicaciones (Comx 1 o 2 ) dando paso a la ventana de propiedades del puerto de comunicaciones ( muy similar a la de XP )
Windows XP

Pulsamos Inicio -> Panel de Control -> Icono de Sistema -> solapa Hardware -> Botn de administrador de Dispositivos -> Desplegamos Puertos ( Com & lpt ) -> Doble clic en puerto de comunicaciones (Comx 1 o 2 ) -> Solapa Configuracin del puerto

Aqu verificamos los valores de : Bits por Segundo : 9600 ( Este valor ser el que bajemos en caso de problemas ) Bits de Datos : 8 Paridad : Ninguna Bits de parada : 1 Control de flujo : ninguno Aceptamos los cambios y cerramos todas las ventanas.

Con esto tendramos el Hardware listo y preparado para realizar la grabacin.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Instalacin del Software


La instalacin del software Ic-Prog no tiene ninguna complicacin, simplemente descomprimimos los ficheros bajados y obtenemos los ficheros de programa : icprog105C.zip help_spanish.zip icprog_driver.zip -> icprog.exe ( el programa en si ) -> icprog.chm ( el fichero de ayuda ) -> icprog.sys ( Driver para Win NT/2000/XP )

Si tenemos Windows 9x/ME esta listo para la configuracin, pero si tenemos Windows XP obtenemos un mensaje de error como este cada vez que lancemos la aplicacin

Explicacin del error: En Windows NT/2000/XP ( a diferencia de Win 9x/Me ) ningn programa puede acceder directamente al hardware ( por diseo de estos Sistemas Operativos ), sino que debe hacerlo a travs del propio Windows bien mediante las Pas ( programas de acceso a funciones de Windows ) o mediante drivers instalados. Icprog intenta ( en la configuracin por defecto ) acceder al hardware directamente por lo que provoca este error. Para solucionarlo Icprog nos da dos opciones: 1 .- Indicarle a Icprog que utilice las Apis de Windows, que aunque esta opcin es solo aplicable a programadotes conectados al puerto serie ( NO a los de puerto paralelo ) se adapta a nuestro caso y podemos usarla. 2 .- Instalar un driver que permitir a Icprog el acceso al hardware a travs de l ( Si tuviramos un programador conectado al puerto paralelo solo podramos utilizar esta opcin ). Esta opcin tambin nos es valida. Vamos a ver como configurar las dos opciones y elegimos la que queramos (las dos funcionan correctamente ): En cualquiera de los dos casos, Aceptamos el mensaje de error y se termina de abrir la aplicacin :
1 .- Utilizar las Apis de Windows :

Desde la aplicacin vamos a: Menu - Settings -> Hardware y seleccionamos Windows Api y pulsamos Ok.

Reiniciamos el programa y ya no tenemos ningn error, teniendo todo listo para configurar.
Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

2 .- Utilizar los drivers para NT/2000/XP

Desde la aplicacin vamos a: Men - Settings -> Hardware y seleccionamos Direct I/O y pulsamos Ok.

a continuacin: Men - Settings -> Options -> Pestaa Mics y marcamos la opcin Enable NT/2000/XP Driver. Pulsamos Ok y.. Obtenemos el siguiente mensaje de confirmacin:

Al que contestamos Yes Se reinicia el programa y obtenemos un nuevo mensaje de confirmacin para instalar el driver

Y de nuevo contestamos Yes El programa termina de instalar el driver y se inicia quedando listo para la configuracin.
NOTA Resumen: Windows XP -> Cualquiera de las dos opciones es valida. Windows 9x/Me -> seleccionaremos Direct I/O ( opcin por defecto ) si instalar ningn driver.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Configuracin del Software


Lanzamos la aplicacin IcProg.exe
Cambio de Idioma: ( opcional ) Men Settings -> Options -> Solapa Language -> en el desplegable seleccionamos Spanish y pulsamos Ok. Automticamente cambia toda la aplicacin a Espaol. Ajuste del Hardware : ( mandatoria ) Men Ajustes -> Tipo de Hardware

En programador -> JDM Programer En Puertos -> El que anotamos en su momento al conectar el cable al PC. En Retardo I/O -> En principio a 10 ( lo bajaremos si tenemos problemas ). En Interfaz -> Como lo dejamos en el proceso de instalacin, no lo tocamos. En Comunicacin -> Tal cual, todo desactivado. Pulsamos Ok.
Otros ajustes : ( opcionales ) Menu Settings -> Options -> Solapa Confirmacin Activaremos las opciones que creamos necesarias, evitando acciones involuntarias al borrar, sobrescribir, etc. ya que nos pedir confirmacin.

Menu Settings -> Options -> Solapa Programacin Activamos solo la opcin de Verificar tras la programacin. Verifica que la grabacin ha sido correcta.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Programacin del microcontrolador


1. Seleccionar el dispositivo ( microcontrolador ) a programar.

Sin comentarios, se trata de buscar nuestro PIC y pulsar sobre el.


2. Seleccionar el fichero de cdigo para programar el PIC.

El cdigo se queda cargado en el bfer que tuviramos seleccionado, en espera a que realicemos alguna accin con l. Al cargar el fichero de cdigo, se modifican los valores del Oscilador y los Bits de configuracin. Podemos dejar estos valores y si se generaran errores podramos cambiar el oscilador a XT y deshabilitar todos los bits de configuracin

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

3. Verificacin de la informacin.

Verificamos que en el bfer en el que estamos, contiene el fichero de cdigo que queremos grabar en el microcontrolador, del que verificamos el modelo, que el oscilador y los bits de configuracin corresponden a los del fichero, y que el programador esta conectado al puerto correcto.
4. Grabacin del microcontrolador

Pulsamos el botn programar todo y obtenemos diferentes ventanas de: Confirmacin de grabacin del dispositivo ( si lo tenemos configurado ) pulsamos Yes. Informacin de proceso Programando cdigo .... Informacin de proceso Programando datos .... Informacin de proceso programando configuracin... Informacin de verificacin cdigo ... ( si tenemos activa la verificacin ) Informacin de verificacin de datos ... ( si tenemos activa la verificacin ) La grabacin del microcontrolador por si misma no tiene un mensaje de terminado correctamente o de error, sino que es la verificacin la que nos da el Ok o el error, por lo que conviene tener activada la verificacin despus de la grabacin (como ya vimos anteriormente ).

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Si no tenamos activada la verificacin despus de la grabacin, pulsamos el botn verificar

obtenemos los cuadros de proceso de verificacin ... y al final obtenemos el siguiente mensaje de confirmacin, que nos indica que todo esta correcto

pulsamos aceptar y damos por concluida la grabacin del microcontrolador. Si en este punto obtenemos un error de verificacin en 0000h, nos indica que en la primera posicin ya contiene un error.

La mayora de las veces este error nos indica que se ha producido un fallo de comunicacin con el dispositivo bien fsicamente ( p Ej.: para generar el error no tena el PIC en el programador ), bien por una configuracin incorrecta, por lo que realizaremos un chequeo de las posibles cosas a corregir y reintentaremos:

Check List de solucin de errores


Generales

Realizar la programacin del PIC sin tener ningn otro chip en el programador Borra el PIC antes de grabarlo. Realizar la programacin del PIC si estar trabajando con ninguna otra aplicacin, ya que este proceso requiere de una gran dedicacin de la maquina para l Si es necesario, reiniciar el equipo lo mas limpio posible ( antivirus, etc.. ) para realizar la grabacin sin perdida de recursos y o procesos de terceros incordiando. Reintenta la grabacin en estas condiciones, si vuelves a obtener errores continua desde aqu.

Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

Hardware

Verificar que los dos extremos del cable serie estn correctamente conectados al PC y al programador. Verificar una vez mas el puerto al que esta conectado el cable en el PC y anotarlo. Verificar que el microcontrolador que vamos a programar ( no otro...), esta en el zcalo, en su posicin correcta ( su muesca sobre la muesca del zcalo ), y todas las patas dentro del zcalo ( bien metido ). Si en este punto has encontrado algo de lo anterior que estuviera mal, reintenta la grabacin tras corregirlo. Si vuelves a obtener error, continua a partir de aqu.

Software

Verifica, como vimos anteriormente, que el microcontrolador ( dispositivo ) que tienes seleccionado en la aplicacin se corresponde con el que quieres grabar. Verifica en Men -> ajustes -> tipo de hardware que esta todo correcto como se describi en Configuracin Software. Verifica que el puerto que aparece marcado se corresponde con el que tiene puesto el cable serie. Verifica que el fichero de cdigo, abierto en el programa, es un fichero de cdigo valido y que corresponde al microcontrolador que queremos grabar. ( no es conveniente programar un PIC con el fichero leeme.txt ) Si en este punto has encontrado algo de lo anterior que estuviera mal, reintenta la grabacin tras corregirlo. Si vuelves a obtener error, continua a partir de aqu. Tal y como se muestra en el apartado Configuracin Software, bajaremos el valor Bits por segundo, utilizando los valores 4800, 2400, 1200 y 300 y reintentando con cada uno de ellos. Si no obtenemos resultados satisfactorios, lo dejamos en 4800. En Men -> ajustes -> tipo hardware, ve disminuyendo el valor de Retardo I/O de dos en dos y reintenta en cada uno de ellos. Si no obtenemos resultados satisfactorios puede ser debido a:
o El puerto del ordenador o Utiliza el otro puerto, reconfigura todo y realiza pruebas o Utiliza otro ordenador si puedes o El programador
Autor: Fernando Brea fernandobrea@eresmas.net

Programacin de microcontroladores PIC Proyecto IOCards

o Consigue que te dejen otro programador para verificarlo o El microcontrolador o Si se ha montado en algn momento en posicin cambiada, etc.. puede estar estropeado. o Consigue otro para probarlo.

Y si todo falla, no te desesperes, busca a un amigo que te lo programe, seguro que encontraras a alguno.

Autor: Fernando Brea fernandobrea@eresmas.net