Download Manual de programación de los PIC para su uso con las IOCards

Document related concepts
no text concepts found
Transcript
Manual de programación de los microcontroladores PIC
para su uso en el Proyecto IOCards
Autor: Fernando Brea
Programación de microcontroladores PIC
Proyecto IOCards
Índice
1. Introducción
2. Material necesario
a. Hardware
b. Software
3. Conexiónes Hardware
4. Configuración Hardware
5. Instalación Software
6. Configuración Software
7. Programación del microcontrolador
8. Error y Check List de soluciones
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Introducción
El objeto de este manual es proporcionar unos conceptos básicos que permitan a la
comunidad de constructores de cabinas el poder grabar los microcontroladores PIC
utilizados en la segunda generación de tarjetas diseñadas para el Proyecto IOCards.
El proyecto IOCards esta basado en tarjetas de electrónica discreta y modulares
desarrollado por Manuel Vélez ( http://www.opencockpits.com ) y que han sido
diseñadas para, junto con el software de control, interactuar con los principales
simuladores de vuelo para PC, permitiendo la conexión de todo tipo de mandos,
instrumentos e indicadores, con el fin de realizar la construcción de cabinas de vuelo
caseras con un coste moderado.
La novedad de la segunda generación de estas tarjetas estriba en que estas están
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 generación como el utilizado en la tarjeta IOCard Encoders II
generación, aunque al no entrar en la parte de Código del microcontrolador, podría
utilizarse en la programación 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 utilización de los elementos aquí
descritos.
También Agradecer a Manuel Vélez y todo el equipo de constructores de cabinas los
continuos avances que realizan, permitiendo que cada vez nuestros sueños en forma de
cabinas estén mas cerca.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Material Necesario
Hardware:
El Chip a programar ( en nuestro caso un PIC 16F876 )
Lo podemos encontrar en tiendas de electrónica.
Sin problemas.
El programador (T-20se o similares )
Lo podemos encontrar en tiendas de electrónica.
El único problema es que no tengan este modelo, existe también 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 informática o electrónica.
El cable hay que comprarlo en función de los conectores que tenga el PC y el
programador. De unos años 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 mayoría de
los programadores tienen un conector DB9 Hembra (con agujeritos ), también lo
verificamos. En el 99% de los casos deberemos comprar un cable serie con conectores
BD9 Macho / DB9 Hembra. Si en el PC tuviéramos un DB25 Macho ( posible en PCS
antiguos ), compraríamos un cable serie DB25 Hembra ( que entraría en el PC ) / DB9
Macho (que entraría en el programador ).
NOTA : NO necesitamos un cable cruzado, es un cable pin a pin ( por si preguntan ).
Autor: Fernando Brea
[email protected]
Programación 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 versión? Pues
teóricamente 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. también nos descargamos el Helpfile ( ayuda en Ingles ) ó
el Helpfile in Spanish language ( ayuda en español ) y los que tengáis NT/2000/XP el
IC-Prog NT/2000 driver ( ic-prog.sys ).
Fichero con el Código 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
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Conexiones Hardware
Conectar el cable serie a uno de los puertos serie del PC, estos puertos serie están
protegidos contra cortocircuitos y falsas señales, por lo que no hay ningún 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 zócalo correspondiente del programador, teniendo en cuenta las
muescas indicadoras tanto del PIC como del zócalo.
NOTAS Importantes :
1. Montar y desmontar el PIC sobre su zócalo con el programador desconectado del
cable Serie para evitar que pueda dañarse eléctricamente.
2. Si al montar el PIC en el zócalo 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 OPERACIÓN CON
MUCHO CUIDADO.
3. Al montar el PIC sobre un zócalo (bien del programador o bien de la tarjeta )
encajarlo únicamente lo necesario para que tenga una buena conexión eléctrica, no
lo aprietes como si todo dependiera de ello.
4. Para sacar el PIC del zócalo, haz palanca por los extremos sin patas con un
destornillador de plástico 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
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Configuración 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 ->Configuración ->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 -> Botón
de administrador de Dispositivos -> Desplegamos Puertos ( Com & lpt ) -> Doble clic
en puerto de comunicaciones (Comx 1 o 2 ) -> Solapa Configuración 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 tendríamos el Hardware listo y preparado para realizar la grabación.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Instalación del Software
La instalación del software Ic-Prog no tiene ninguna complicación, 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 configuración, pero si tenemos Windows
XP obtenemos un mensaje de error como este cada vez que lancemos la aplicación
Explicación del error: En Windows NT/2000/XP ( a diferencia de Win 9x/Me ) ningún
programa puede acceder directamente al hardware ( por diseño de estos Sistemas
Operativos ), sino que debe hacerlo a través del propio Windows bien mediante las País
( programas de acceso a funciones de Windows ) o mediante drivers instalados. Icprog
intenta ( en la configuración 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 opción 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 través de él ( Si
tuviéramos un programador conectado al puerto paralelo solo podríamos utilizar esta
opción ). Esta opción también 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
aplicación :
1ª .- Utilizar las Apis de Windows :
Desde la aplicación vamos a:
Menu - Settings -> Hardware y seleccionamos Windows Api y pulsamos Ok.
Reiniciamos el programa y ya no tenemos ningún error, teniendo todo listo para
configurar.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
2ª .- Utilizar los drivers para NT/2000/XP
Desde la aplicación vamos a:
Menú - Settings -> Hardware y seleccionamos Direct I/O y pulsamos Ok.
a continuación:
Menú - Settings -> Options -> Pestaña Mics y marcamos la opción Enable NT/2000/XP
Driver. Pulsamos Ok y..
Obtenemos el siguiente mensaje de confirmación:
Al que contestamos Yes
Se reinicia el programa y obtenemos un nuevo mensaje de confirmación para instalar el
driver
Y de nuevo contestamos Yes
El programa termina de instalar el driver y se inicia quedando listo para la
configuración.
NOTA Resumen:
Windows XP -> Cualquiera de las dos opciones es valida.
Windows 9x/Me -> seleccionaremos Direct I/O ( opción por defecto ) si instalar ningún
driver.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Configuración del Software
Lanzamos la aplicación IcProg.exe
Cambio de Idioma: ( opcional )
Menú – Settings -> Options -> Solapa Language -> en el desplegable seleccionamos
Spanish y pulsamos Ok. Automáticamente cambia toda la aplicación a Español.
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 instalación, no lo tocamos.
En Comunicación -> Tal cual, todo desactivado.
Pulsamos Ok.
Otros ajustes : ( opcionales )
Menu – Settings -> Options -> Solapa Confirmación
Activaremos las opciones que creamos necesarias, evitando acciones involuntarias al
borrar, sobrescribir, etc. ya que nos pedirá confirmación.
Menu – Settings -> Options -> Solapa Programación
Activamos solo la opción de Verificar tras la programación. Verifica que la grabación
ha sido correcta.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Programación 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 código para programar el PIC.
El código se queda cargado en el búfer que tuviéramos seleccionado, en espera a que
realicemos alguna acción con él.
Al cargar el fichero de código, se modifican los valores del Oscilador y los Bits de
configuración.
Podemos dejar estos valores y si se generaran errores podríamos cambiar el oscilador a
XT y deshabilitar todos los bits de configuración
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
3. Verificación de la información.
Verificamos que en el búfer en el que estamos, contiene el fichero de código que
queremos grabar en el microcontrolador, del que verificamos el modelo, que el
oscilador y los bits de configuración corresponden a los del fichero, y que el
programador esta conectado al puerto correcto.
4. Grabación del microcontrolador
Pulsamos el botón programar todo y obtenemos diferentes ventanas de:
Confirmación de grabación del dispositivo ( si lo tenemos configurado )
pulsamos Yes.
Información de proceso Programando código ....
Información de proceso Programando datos ....
Información de proceso programando configuración...
Información de verificación código ... ( si tenemos activa la verificación )
Información de verificación de datos ... ( si tenemos activa la verificación )
La grabación del microcontrolador por si misma no tiene un mensaje de terminado
correctamente o de error, sino que es la verificación la que nos da el Ok o el error, por
lo que conviene tener activada la verificación después de la grabación (como ya vimos
anteriormente ).
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Si no teníamos activada la verificación después de la grabación, pulsamos el botón
verificar
obtenemos los cuadros de proceso de verificación ...
y al final obtenemos el siguiente mensaje de confirmación, que nos indica que todo esta
correcto
pulsamos aceptar
y damos por concluida la grabación del microcontrolador.
Si en este punto obtenemos un error de verificación en 0000h, nos indica que en la
primera posición ya contiene un error.
La mayoría de las veces este error nos indica que se ha producido un fallo de
comunicación con el dispositivo bien físicamente ( p Ej.: para generar el error no tenía
el PIC en el programador ), bien por una configuración incorrecta, por lo que
realizaremos un chequeo de las posibles cosas a corregir y reintentaremos:
Check List de solución de errores
Generales
Realizar la programación del PIC sin tener ningún otro chip en el programador
Borra el PIC antes de grabarlo.
Realizar la programación del PIC si estar trabajando con ninguna otra
aplicación, ya que este proceso requiere de una gran dedicación de la maquina
para él
Si es necesario, reiniciar el equipo lo mas limpio posible ( antivirus, etc.. ) para
realizar la grabación sin perdida de recursos y o procesos de terceros
incordiando.
Reintenta la grabación en estas condiciones, si vuelves a obtener errores continua desde
aquí.
Autor: Fernando Brea
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
Hardware
Verificar que los dos extremos del cable serie están 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
zócalo, en su posición correcta ( su muesca sobre la muesca del zócalo ), y todas
las patas dentro del zócalo ( bien metido ).
Si en este punto has encontrado algo de lo anterior que estuviera mal, reintenta la
grabación 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 aplicación se corresponde con el que quieres grabar.
Verifica en Menú -> ajustes -> tipo de hardware que esta todo correcto como se
describió en Configuración Software. Verifica que el puerto que aparece
marcado se corresponde con el que tiene puesto el cable serie.
Verifica que el fichero de código, abierto en el programa, es un fichero de
código 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
grabación tras corregirlo. Si vuelves a obtener error, continua a partir de aquí.
Tal y como se muestra en el apartado Configuración 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
[email protected]
Programación de microcontroladores PIC
Proyecto IOCards
o Consigue que te dejen otro programador para verificarlo
o El microcontrolador
o Si se ha montado en algún momento en posición 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
[email protected]