GRABACIÓN DEL PIC:

El material mínimo necesario e imprescindible para realizar la grabación de los microcontroladores PIC, es el siguiente:

  • Software necesario: software de programación Ic-Prog. 
  • Hardware necesario: grabador compatible con el dispositivo a grabar y con el software de programación.
  • Como la realización del circuito grabador de PIC se ha realizado de forma paralela a la desarrollo del proyecto, y al haberse presentado bastante problemas con dicho circuito grabador, mientras se concluía el grabador, se ha utilizado un programador comercial de bajo coste basado en el programador JDM. Se trata del ya mencionado grabador TE-20, cuya única limitación es no tener un adaptador para programación serial en circuito, motivo por el cual ha surgido la necesidad de construir dicho grabador.


    Ajustes en el puerto serie del PC:

    Se deberán introducir los parámetros de la siguiente tabla en la configuración del puerto serie en Windows XP. Accediendo a Configuración >> Panel de control >> Sistema >> Hardware >> Administrador de dispositivos >> Puertos COM & LPT y una vez abierto hacer doble click sobre el puerto donde este conectado el circuito grabador y seleccionar la pestaña de Configuración del puerto y colocar la configuración mostrada en la tabla 5.1.

    Parámetros del puerto serie:

  • Bits por Segundo:       9600
  • Bits de Datos:                     8
  • Paridad:                  Ninguna
  • Bits de Paridad:                  1
  • Control de Flujo:    Xon/Xoff

  • IC-PROG:

    Se trata del software utilizado, a través del cual se grabará el código compilado de C a hexadecimal en el PIC.

    Instalación del IC-PROG:

    La instalación de este software es muy sencilla, y basta con descargarse el archivo icprog.zip, en la página web: http://www.ic-prog.com. Al descomprimirlo se puede ver que este archivo consta del archivo Icprog.exe que contiene todo lo necesario para su funcionamiento bajo un sistema operativo Windows. También puede obtenerse un archivo de ayuda Icprog.chm (en inglés, italiano y español), 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, también es necesario descargarse de la misma página el archivo “icprog.sys”, que se obtiene haciendo clic en el enlace IC-Prog NT/2000 driver, sin el cual no se puede tener acceso a los puertos del ordenador, debido a un problema de incompatibilidad de este software con los anteriormente mencionados sistemas operativos. Para que este driver sea útil debe estar en la misma carpeta que el ejecutable “Icprog.exe”.

    La página donde se descarga dicho driver, y varias versiones del programa.

    En cuanto se ejecute el programa, éste dará un error.

    Para solucionar este error, se deberá tener en la misma carpeta que el ejecutable el archivo antes mencionado icprog.sys. Una vez dentro del programa se deberán seguir los siguientes pasos:

  • Abrir la pestaña de Settings (Ajustes).
  • Elegir el comando Options (Opciones).
  • Pinchar en la pestaña Misc de la ventana nueva que se abre.
  • Marcar la casilla Enable NT/2000/XP Driver
  • Aparecerá una ventana, se seleccionará “Yes”, de nuevo aparecerá otra venta, y se volverá a seleccionar la opción “Yes”. Ahora ya estará instalado el Driver y se reiniciará el programa sin dar el error de “Privileged instruction”.

    Una vez instalado el driver, al utilizarlo por primera vez, y aceptando las configuraciones por defecto, se presentarán las pantallas en inglés. Para cambiar el idioma se deberán de seguir estos pasos:

  • Abrir la pestaña de Settings (Ajustes).
  • Elegir el comando Options (Opciones).
  • Abrir la pestaña Languaje (Idioma) de este menú.
  • Elegir el idioma preferido. (A partir de ahora se supone el español).

  • Configuración del Hardware:

    El paso siguiente es configurar el hardware necesario para grabar el PIC.

    En la pantalla principal de IC-PROG, se puede acceder a la configuración del hardware pulsando el icono o bien mediante la pestaña Ajustes, y después el comando Tipo Hardware, o bien pulsando la tecla de función F3.

    Esta es la configuración que se debe elegir para el correcto funcionamiento del programador utilizado:

    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 se ha de configurar con un Retardo I/O con un valor de 10. En caso de ocurrir problemas en la grabación, se pueden probar tiempos más largos. En ordenadores rápidos se deberá poner tiempos de retardo más pequeños, lo que nos daría una velocidad de grabación más rápida.

    Igualmente en la pantalla principal de Ic-Prog se presenta toda la información relativa a la configuración del dispositivo en cuestión.

    Esta ventana muestra el tipo de dispositivo que se ha seleccionado. Pulsando en la flecha de la ventana se puede elegir cualquiera de los dispositivos soportados por el software de programación Ic-Prog (también se puede elegir el dispositivo mediante la pestaña Ajustes y la opción Dispositivo).

    El programa cuenta con un menú desplegable para la selección de un dispositivo, en este caso se trata del PIC usado en este proyecto PIC16F873.

    También se pueden ver las opciones de configuración del dispositivo seleccionado.

    Se muestra información del tipo de oscilador usado por el microcontrolador en cuestión (RC, XT, HS).

    También se muestran los diferentes bits de configuración que tiene el microcontrolador. Estos bits serán diferentes para cada uno de los microcontroladores utilizados. Los de la imagen son los bits de configuración del PIC 16F873, y que muestran el estado del WachtDog Timer (WDT), el Power on Reset (PWRT), BODEN, CPD, programación con bajo voltaje (LVP), Code Protection (CP) y DEBUGGER

    Si el programa .hex cargado ya tiene una palabra de configuración determinada aquí aparecerán estas opciones marcadas.

    En el caso de se quiera modificar el estado de alguno de estos bits, basta con marcarlo o no en su casilla correspondiente.

    También existe información del Checksum (prueba que se genera de todo el archivo de datos para la posterior comprobación tras la transmisión de los datos), y la posible identificación (Valor ID) del microcontrolador, si este lo tuviera.

    En la parte inferior de la ventana principal se puede ver que existen unas pestañas para indicar el contenido de 5 buffers diferentes.

    Se dispone de 5 buffers diferentes donde almacenar datos en memoria. En cada uno de estos buffer se puede 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 se ha 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.

    También se puede comparar el contenido de estos buffers entre sí para saber si existen diferencias entre ellos o no.


    Ajustes:

    Al seleccionar el idioma de utilización, se vio anteriormente en la pestaña Ajustes y el comando Opciones del principal. En este apartado se profundizará en los ajustes necesarios para el correcto funcionamiento del programa.

    Los comandos posibles de esta pestaña son los siguientes:

  • Dispositivo: Sirve para elegir el dispositivo con el que se quiere trabajar. (16F873).
  • Dispositivos recientes: Muestra el tipo de los últimos dispositivos utilizados.
  • Tipo Hardware, F3: Aquí se elige el tipo de hardware que se va 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, que su funcionamiento es correcto y por tanto está listo para usarse.
  • Opciones: al ejecutar este comando aparece un diálogo que permite elegir las diferentes configuraciones que van a hacer que el uso de IC-PROG sea mucho más sencillo, práctico y además fiable:
  • El idioma se configuró al realizar la instalación, pero puede cambiarse en esta pestaña del menú Opciones.

    Dentro de la pestaña de configuración de la verificación. Se activará la casilla de Verificar tras la programación, para que el programa cada vez que realice la programación de un dispositivo, automáticamente después de escribir el dispositivo, verifique que el contenido del dispositivo es el mismo que el buffer activo en ese momento. Al activar también la casilla de Verificar durante la programación, se le indica al programa que cada bloque de datos que escriba en el dispositivo vaya comparando que se ha escrito correctamente, leyéndolo y verificando su contenido con el buffer activo. Esto hace que el tiempo empleado en programar un PIC sea mayor, pero también asegura que los errores de programación sean mínimos.

    Otra de las pestañas que se pueden configurar es la de los Atajos, para que sea mucho más rápido el uso del programa. Como el número de dispositivos que pueden programarse con este software es muy grande, mediante estos atajos se puede hacer que elegir uno u otro para trabajar con él sea muy sencillo. Basta con elegir en esta ventana los más utilizados y asignarles una de las combinaciones de teclas que se muestran, para que después desde la pantalla principal baste con teclear la combinación de teclas CTRL + F1, por ejemplo, para que automáticamente el dispositivo elegido quede seleccionado en el buffer activo, con el consiguiente ahorro considerable 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 además de esto, activar la opción de Habilitar Driver NT/2000, que se encuentra en la pestaña de Miscelánea de esta opción de Ajustes. Esta opción solamente podrá activarse en uno de estos sistemas operativos, ya que en Windows 95, 98 ó Me no se encuentra disponible.

    El resto de opciones que puedan aparecer están configuradas por defecto para un correcto funcionamiento en la mayoría de los ordenadores y sistemas operativos actuales.

    Grabación del dispositivo:

    Los pasos que se exponen a continuación son prácticamente idénticos en cualquier tipo de dispositivo a programar, con las únicas variaciones de las características particulares de cada uno, pero se trata de un proceso generalizable.

    Una vez configurado el software Ic-Prog como se ha explicado anteriormente, y cuando el hardware de programación se encuentra conectado y configurado correctamente, se procederá a la grabación del dispositivo.

    Mediante el icono o bien con la pestaña Archivo y el comando Abrir datos, se accede al directorio dónde se guardan los archivos,

    Los archivos de datos que usan para programar un PIC normalmente tendrán la extensión .hex (formato Intel hexadecimal de 8 bits).

    Si se cargan los datos del archivo a grabar en el dispositivo se observa que los datos se han cargado en el área de código de programa y si existieran, se mostrarían los datos de la EEPROM interna del PIC.

    En el caso de que se haya programado la palabra de configuración, los bits correspondientes aparecerán marcados. Si se quiere cambiar alguno de ellos se puede hacer pinchando directamente sobre él. También se puede cambiar el tipo de oscilador con que trabajará la aplicación una vez cargada en el PIC. Si en la aplicación no se programó ninguna palabra de configuración, se muestran los datos por defecto del programa (oscilador tipo RC y Watchdog WDT activados). En la aplicación de ejemplo no se ha configurado nada, de modo que aparecen las que se marcarían por defecto en el IcProg.

    Cualquiera de las áreas de datos (código de programa o datos EEPROM), puede ser aquí modificada, ya que IC-PROG permite la edición de los datos que están presentes en el buffer del ordenador antes de ser enviados al PIC. Esto deberá hacerse con sumo cuidado pues la edición 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.

    Para proceder a la programación física del PIC, basta con pinchar sobre el icono , o bien activar la pestaña Comando y después Programar todo, o bien pulsar la tecla de función F5. Después de solicitarse confirmación de la orden dada, el PIC comenzará a ser programado con los datos cargados en el buffer activo.

    Es aconsejable borrar el dispositivo antes de grabarlo para evitar posibles errores. Esto se puede realizar de la siguiente forma: hacer clic en el icono , o activar la pestaña Comando y después Borrar todo. Tras realizar esta operación y que el dispositivo sea borrado se verá la siguiente ventana de información.

    El proceso de grabación se irá mostrando en una ventana emergente.

    El tiempo empleado en la grabación del dispositivo dependerá de la rapidez del ordenador en que se esté trabajando.

    Después de programar el código se programarán los datos de la memoria EEPROM y posteriormente la palabra de configuración de nuestro programa, todo ello sin requerir para nada de la atención del usuario.

    Una vez terminada la programación se procederá automáticamente a la verificación de los datos escritos en el PIC (si se activó la verificación tras la programación). Del proceso de verificación también se va informando.

    Serán verificados igualmente el código de programa, los datos de la memoria EEPROM y los bits de la palabra de configuración.

    En el caso de que la verificación haya sido correcta se informará mediante una ventana emergente, y el proceso de grabación habrá finalizado con éxito.

    Una buena práctica para evitar errores en la programación, es que una vez terminado el proceso de grabación, como se ha descrito hasta aquí, cambiar el Buffer activo, leer el PIC programado (esto se explica más adelante) y proceder a la comparación entre los contenidos de los dos buffers, es decir comparar el archivo con el contenido del PIC. En realidad se trata de volver a realizar la comprobación que ya se ha realizado automáticamente al programar el dispositivo. Esta nueva comprobación trae consigo el empleo de más tiempo, pero puede ser útil para prevenir errores.

    El buffer de código de programa, y en su caso el de la EEPROM interna, se llenará con los datos leídos, y estos se mostrarán en hexadecimal. Para poder ver el código en ensamblador se puede activar el icono de la barra de tareas.

    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. Se debe recordar que al leer no se verifican los datos.