MPLAB es el editor de código que proporciona Microchip para sus microcontroladores, facilita el trabajo de creación de código y de enviar el programa generado al micro. La obsoleta versión MPLAB 8.x funcionaba muy bien pero tenía un entorno visual bastante tosco y anticuado. Por lo que Microchip reescribió por completo el programa (aprovechando la ocasión para hacerlo compatible con Linux y Mac) pero rompió con todo lo anterior. Por lo que los manuales y ayudas que existían han dejado de servir, por eso se ha redactado el siguiente manual de configuración.

Por otro lado CCS es un compilador de pago (existe una versión demo funcional) que antes funcionaba directamente con MPLAB y ahora hay que activar su uso desde el menú (opción bastante oculta) que aquí exponemos cómo se ha de proceder.

Instalaciones

Primero bajar e instalar el MPLAB (hay una pestaña hacia la mitad que pone “Downloads”):

  • Página oficial de descarga del MPLAB X.
  • Página oficial de descarga del MPLAB 8.

Después bajar e instalar el compilador CCS (enlace directo a la descarga). Para descargar nos pedirán el email, pero no recibiremos nada de spam (tan sólo nos enviarán un correo cuando pase el periodo de prueba, al menos eso ha sucedido durante las pruebas):

Integración de CCS en MPLAB X

Al abrir MPLAB X vamos al menú Tools // Plugins:

Primero comprobaremos en la pestaña Settings la opción “Microchip Third Party Plugins” está activada, tal y como se aprecia en la figura:

Y una vez comprobado que están habilitados nos dirigiremos a la pestaña “Available Plugins“. Como se puede ver en la imagen siguiente, es el lugar donde se pueden activar las herramientas externas de MPLAB, tales como integración con MATLAB, Proteus, PicBasic, SDCC y CCS. Y por último destacar que existe la opción de añadir más plugins en la pestaña “Downloaded”, el fichero que admite tiene la extensión .nbm).

Lo que nos interesa, en esta ocasión, es activar el plugin que haga funcionar el compilador de CCS en MPLAB X, y se llama “CCS Plug-in for MPLABX“:

Tras pulsar el botón Install, para que se active el plugin, se abrirá un asistente que nos guiará en la instalación del mismo. Al finalizar nos solicitará reiniciar el MPLAB:

Pulsando en Finish se reinicia el MPLAB. La manera de comprobar que todo ha ido como debería es dirigiéndose al menú Tools // Options:

Botón Embedded:

Y en la pestaña Build Tools debería de aparecer una nueva entrada en Toolchain denominada “CCS C Compiler“, tal y como se ve en la captura de pantalla anterior.

MPLAB X – Crear un proyecto

Si no es nuestro primer programa es posible que ya tengamos un fichero .h e incluso otro .c con las variables y funciones que más habitualmente utilicemos. Por ejemplo el robot de 2012 incluye un par de ficheros que traen funciones y puertos del PIC configurados.

Primero se crea un proyecto, usando el botón o en el menú File // New Project… [Atajo de teclado: Control+Mayúsculas+N]. Saldrá una ventana como la siguiente:

Se han de elegir la categoría Microchip Embedded y el tipo de proyecto Standalone Project. Pulsando en Next aparecerá una ventana preguntando el modelo de micro que vamos a utilizar. Los típicos se encuentran bajo la categoría Mid-Range 8-bit MCUs (PIC12/16/MCP). Para el robot de 2012 el PIC concreto es el PIC16F887:

A continuación preguntará por la herramienta (programador/depurador) a utilizar, es decir, si disponemos de un programador como los PicKit o el ICD3. En caso negativo escogeremos la opción del simulador (Simulator):

En el penúltimo paso es el momento de escoger el compilador, en el caso que nos ocupa el que hemos de elegir será el CCS:

Para finalizar el asistente, se elige la carpeta de trabajo y el nombre del proyecto:

Una vez creado el proyecto se añadirán los ficheros de programación. Primero copiaremos nuestros archivos .c y/o .h en la carpeta de trabajo. Como se puede ver en la imagen siguiente, nuestro proyecto no tiene ningún fichero, para ello tendremos que añadirlos:

Para ello pulsaremos botón derecho sobre Header Files (para los .h) y sobre Source Files para el fichero principal, o dicho de otra forma, donde está la función main(). Al pulsar el botón derecho se elige la opción “Add Existing Item…“. Nuestro proyecto ahora lucirá de la siguiente manera (se han añadido 2 cabeceras, el programa principal y un fichero con funciones ya predefinidas):

Cabe destacar que el fichero con las funciones se ha añadido a la sección Important Files el archivo con las funciones (y que es llamado dentro de programa.c mediante un include). Y una advertencia, si se introduce más de un fichero en la sección Source Files el compilador será llamado tantas veces como ficheros existan, y como probablemente los ficheros “extras” sean para separar las funciones del archivo principal no estarán pensados para ser compilados directamente nos dará error, por esta razón esos ficheros se introducirán en la sección “Important Files” (esta carpeta es la equivalente a Other Files de la versión 8.XX de MATLAB).

MPLAB 8.X – Crear un proyecto

Pese a ser una versión arcaica para Microchip, a finales de 2012 aún sigue siendo la plataforma donde funciona todo como debería. Por lo que se explicará a continuación cómo crear un proyecto y el manejo más básico del programa.

Tras haber instalado el MPLAB y el CCS abrimos el programa y nos dispondremos a crear un proyecto nuevo mediante el asistente situado en Project // Project Wizard…:

Esto iniciará el asistente de creación de un proyecto:

La primera pregunta será cuál es el microcontrolador que vamos a utilizar, en el caso del Robot 2012 será el PIC16F887:

El siguiente paso nos pregunta por el compilador que se usará, escogeremos la opción de “CCS C Compiler for PIC10/12/14/16/18/24/dsPIC30/dsPIC33“:

Llegados a este punto, y con toda probabilidad, nuestro Windows estará instalado en español y por tanto tendremos el programa instalado en “C:\Archivos de programa\PICC” mientras que el MPLAB va a buscarlo a “C:\Program Files\” (en la captura anterior se aprecia un aspa roja junto al nombre de la herramienta de CCS). Es decir, nuestro proyecto no funcionará. Para solucionar este problema tendremos que pulsar sobre el botón de “Browse...” y buscar el fichero “ccsc.exe” por nuestro ordenador (usualmente se encuentra en “C:\Archivos de programa\PICC\Ccsc.exe“). Una vez completado este paso nuestro asistente lucirá de la siguiente forma (sin el aspa roja):

El siguiente paso es para preguntarnos dónde se guardarán los archivos del proyecto (en otras palabras, la carpeta del proyecto).

En este punto es aconsejable introducir los ficheros de cabeceras que tengamos (por ejemplo el Robot de 2012 incluye un fichero zip con 4 archivos) en la carpeta de trabajo, de esta manera nos facilitará el siguiente paso que consistirá en añadir los ficheros que ya tengamos al proyecto. En la captura se ven los 4 archivos ya añadidos. Destacar la “A” que hay delante de los archivos, eso significa que se actualizarán de forma automática (pulsando en la letra se puede cambiar el comportamiento del archivo dentro del proyecto, aunque se recomienda dejar en automático):

El último paso es una confirmación de la configuración escogida:

Pero aún habremos terminado, falta un último paso y es similar al del MPLAB X, es necesario recolocar los archivos para dejar sólo 1 en la sección de Source Files, pues como vemos, por defecto nos ha puesto todos los .c en dicha sección:

Para ello arrastraremos los archivos auxiliares a la sección Other Files quedando de la siguiente forma:

Es decir, el archivo con la función main() en la sección Source y el resto de ficheros .c en la sección Other.

Para pasar nuestro programa al microcontrolador PIC tendremos que conectar nuestro programador al ordenador (PICKit 2/3 o el ICD2/3), la primera vez que se conecte Windows instalará los drivers necesarios. Con nuestro proyecto abierto, en el MPLAB 8 vamos al menú Debugger o Programmer según queramos depurar o programar.

Modo programación en MPLAB 8

El modo programación lo único que hace es transferir nuestros programas en C hacia el microcontrolador PIC terminándose de esta manera cualquier otra comunicación con el ordenador. Este método es el que utilizaremos para ejecutar los programas en el PIC cuando queramos utilizar nuestro robot de forma autónoma.

Como lo único que se hace es transferir el programa la configuración es bastante sencilla y de pocos pasos.
Primero se va al menú Programmer y se elige el programador que tengamos conectado, en nuestro ejemplo un PICKit 3:

La primera vez que se conecta un PICKit en un proyecto nuevo saldrá la siguiente ventana de Output:

PICkit 3 detected
Connecting to PICkit 3…
Firmware Suite Version…… 01.28.02
Firmware type………………….Midrange
PICkit 3 Connected.
PK3Err0045: You must connect to a target device to use PICkit 3.

O en el caso del PICKit 2:

Initializing PICkit 2 version 0.0.3.63
PK2Error0022:  PICkit 2 not found
PICkit 2 Ready

Este “error” es debido a que nuestro circuito no tiene la batería conectada, si queremos alimentar nuestro circuito a 5V (por ejemplo para poder programar sin tener la batería conectada) es necesario indicarlo en la configuración del programador. Para ello nos dirigiremos al menú Programmer // Settings.
En el PICKit 3 se encuentra en la Pestaña Power y se activa la alimentación desde el PICKit 3.

Y en el PICKit 2 se encuentra en la Pestaña Settings, al final.

Cabe destacar que el paso anterior sólo es necesario si no estamos alimentando a nuestro robot con una batería.

Por ejemplo, en el robot de los talleres 2012 si no alimentamos con la batería y lo hacemos desde el PICKit los motores no funcionarán, pues los motores están alimentados directamente desde los 7.4V de la batería, desde el PICKit 3 sólo podríamos alimentar los LEDs, botones, CNY70 y conectores extras.

Una vez conectado el programador aparecerá un nuevo menú:

Menú de programación del PICKit 3

El icono más importante es el primero () con el que enviaremos el programa al PIC.