Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Por Andrés Raúl Bruno Saravia

Entrega Nº 3.
En nuestra entrega anterior creamos nuestro primer código, el cual simplemente nos hace falsear un LED conectado al PORTB. Hoy veremos como compilar es código dentro del MPLAB y grabar el mismo dentro del microcontrolador sin salir del entorno de desarrollo y usando la herramienta “PICKIT2” o equivalente

Compilando nuestro primer código...
Ya hemos terminado de escribir nuestro primer código, ahora tenemos que convertirlo en hexadecimal para grabarlo dentro del microcontrolador. Este proceso se denomina compilación. El programador de microcontroladores, cualquiera sea el que estemos usando, necesita que le carguemos el código a programar dentro del microcontrolador en formato hexadecimal, él lee un archivo en formato HEX de INTEL, el cual tiene una estructura interna que Microchip adaptó a su necesidad. El compilador CCS es un compilador denominado “de 2 pasos” ya que en el primer paso traduce el programa escrito en lenguaje C al lenguaje Assembler y luego en un segundo paso, traduce este archivo al hexadecimal. Como consecuencia de todo el proceso de traducción o como se lo llama técnicamente compilación, CCS genera una serie de archivos: xxxxx.ERR : contiene los errores del proceso de compilación xxxxx.HEX: contiene el codigo en hexadecimal, este es usado por el programador xxxxx.LST: contiene un listado del proceso de ensamblado xxxxx.STA: contiene cuanta memoria RAM, ROM y STACK esta usando el programa xxxxx.TRE: contiene un árbol de las llamadas a funciones, es visible en el IDE de CCS xxxxx.SYM: contiene la localización de cada registro y variable usada en la RAM xxxxx.ESYM: solo es visible en el IDE de CCS y contiene información para el mismo.

Sobre dicho menú haremos clic sobre el ítem “PICkit 2”: Esto activará los controles del PICkit2 programmer. allí haremos clic con el Mouse sobre la solapa select Programmer y se desplegará un menú. los cuales aparecerán como una nueva barra de herramientas: .En la siguiente figura podemos ver un ejemplo del resultado del proceso de compilación: Grabado nuestro código en el PIC Una vez compilado nuestro código. para ello iremos a la solapa programmer. ahora lo cargaremos en nuestro microcontrolador.

A continuación nos indica cual es el valor de VCC leído sobre la placa de aplicaciones. verificar el contenido de la memoria de programa del microcontrolador.0 PICkit 2 Unit ID = OlHoss Target power detected ( 4. programaremos el microcontrolador pulsando el ícono respectivo dentro de las herramientas del programador: Accionado el control se inicia el proceso de programación.3.En dicho menú tenemos los íconos para: programar el microcontrolador. seguidamente nos indica el ID grabado dentro del PICkit 2. leer el contenido de la memoria de programa del microcontrolador. como se le dice en la jerga de los programadores.0.70V) PIC16F887 found (Rev 0x2) PICkit 2 Ready En la primera línea nos indica la versión del firmware que esta grabada dentro del microcontrolador de nuestro pickit2. sacar el reset del ICSP y arrancar el programa.63 Found PICkit 2 . ahora que esta todo listo.Operating System Version 2. borrar el microcontrolador. siempre que todo esté realmente bien conectado: Durante la programación se irán desplegando distintos mensajes en la ventana de salida del PICkit 2: . Observe que si se ha establecido la comunicación sin problemas deberá aparecer el siguiente mensaje en la ventana de salida : Initializing PICkit 2 version 0. poner el RESET del ICSP y detener el programa y finalmente. verificar si la memoria de programa del microcontrolador esta vacía. y finalmente nos indica que el PICkit 2 está listo para operar. establecer una comunicación con el microcontrolador.32. con el ícono del “lapicito”. leer el contenido de la memoria EEPROM de datos del microcontrolador. el microcontrolador que tenemos instalado ya que lee su código de revisión interna. Por tanto.

Programming Target (20/02/2012 20:00:56) PIC16F887 found (Rev 0x2) Erasing Target Programming Program Memory (0x0 . . nos encontraremos en nuestra próxima nota.0x4F) Programming Configuration Memory Verifying Configuration Memory PICkit 2 Ready Bueno hasta aquí hemos llegado en este artículo.0x4F) Verifying Program Memory (0x0 .