Programació en C del PIC 16F690 amb PICkit 2

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

El programari MPLAB X IDE

Emprarem el programari MPLAB X IDE per preparar el programa en C i enviar-lo al microcontrolador. Podeu trobar la darrera versió del programari al web de Microchip on anirem a la pestanya downloads i baixarem i instal·larem la darrera versió per al nostre sistema operatiu. En cas que us calgui baixar una versió anterior, les podreu trobar en aquesta pàgina.

Després hem d'instal·lar el compilador de C, anomenat XC8. El podeu trobar al web de Microchip. En aquesta pàgina, aneu a la pestanya downloads i cerqueu la versió de XC8 que correspon al vostre sistema operatiu i instal·leu-la.

Un cop instal·lat el programa, veurem una finestra similar a la de la figura següent:

Pantalla inicial

Per preparar un programa, picarem sobre la icona New Project per crear un projecte nou. Ens sortirà una pantalla com la següent:

Choose Project

Al requadre central triarem Microchip Embedded i al de la dreta Standalone Project. Picarem a Next i passarem a la següent pantalla:

Select Device

En aquesta pantalla, on diu Device, triarem el nostre microcontrolador (PIC 16F690). Picant a Next i passarem a la pantalla següent:

Select Header

En principi, deixarem el valor None. A la pantalla següent ens demana que triem el gravador:

Select Tool
Select Tool
Select Tool

Podem fer servir dos gravadors diferents, PICkit 2 i PICkit 3. Si tenim el gravador connectat a l'ordinador, veurem que el detecta i el podem triar. Ens dóna un número de referència que podria ser útil si tinguéssim més d'un gravador connectat al mateix temps. Si en aquest punt no tenim el gravador connectat, no passa res. Marquem PICkit 2 o PICkit 3 i seguim ja que més endavant podrem triar-lo.

A la següent pantalla ens demana que triem el compilador. Com treballarem en C, triarem XC8:

Select Compiler

A la darrera pantalla ens demana el nom del projecte i el directori on el volem guardar:

Project Name

Per evitar problemes posteriors, cal que la ruta del directori triat sigui curta i que els noms dels fitxers i carpetes siguin curts i no tinguin espais en blanc (per exemple C:\PIC\programes\).

Per crear el nostre programa, anem al menú lateral i piquem sobre Source Files amb el botó dret:

New File

Triem Main.c... i s'obrirà una finestra per triar el nom:

New File

Al nom del fitxer cal posar-hi l'extensió c (per exemple prova.c) ja que així ens assegurem que interpreti correctament el format.

Un cop fet això, se'ns obrirà la finestra on podrem editar el nostre programa. En la figura següent hi ha l'exemple EL. Els exemples que trobareu en aquest web han estat preparats de manera que poden ser copiats de la pàgina web i enganxats directament al MPLAB X IDE.

Exemple EL

Un cop tenim llest el programa, podem picar a la icona Build Project que ens generarà el codi màquina. Un cop fet això, ens hem d'assegurar que el resultat és BUILD SUCCEEDED (ho veurem la finestra de baix a la dreta). En cas contrari cal solucionar el problema i tornar-ho a provar.

Important: En la finestra de l'MPLAB X podem tenir-hi més d'un projecte i dins del projecte hi podem tenir més d'un fitxer de programa. Quan li diem que ho enviï al microcontrolador, s'enviarà el projecte marcat com a Main Project, és a dir aquell que té el nom en negreta. És indiferent quin tinguem obert a la finestra de la dreta o quin estigui marcat en vídeo invers. De la mateixa manera, si un projecte té més d'un fitxer de programa s'enviaran tots al microcontrolador. Cal ser molt curosos amb això si no es volen tenir resultats inesperats. Una manera alternativa és fer els fitxers de programa amb un altre editor i tenir un únic projecte amb un únic fitxer a l'MPLAB X de manera que en cada moment n'esborrem el contingut i enganxem el que realment volem enviar. Cadascú pot triar la manera que li sigui més còmoda.

Quan ja tenim el codi màquina, podem fer:

View Program Memory

I se'ns obrirà una finestra on veurem el nostre programa en codi màquina i també en ensamblador però amb tots els paràmetres en forma numèrica hexadecimal:

Program Memory

A totes les adreces de memòria que no es facin servir hi trobem el valor 3FFF que és el que tenen les posicions de la memòria de programa que no estan programades.

Quan ja tenim el programa en codi màquina, és el moment d'enviar-lo al microcontrolador. Si no ho havíem fet abans, cal triar el dispositiu programador. Per triar-lo, picarem amb el botó dret sobre el nom del projecte i marcarem Properties.

Properties

Se'ns obrirà una finestra nova on podrem triar-lo (sense canviar el compilador):

Conf.

Abans de tancar aquesta finestra, ens posem sobre PICkit 2 o PICkit 3 per ajustar les propietats:

PICkit 2
PICkit 3

L'estat de la casella Use target power always depèn de com alimentem la placa. Si nosaltres alimentem la placa des del PICkit 2 cal que estigui desmarcada. Si, en canvi, alimentem externament la placa mentre la programem, caldrà activar aquesta casella. En el cas del PICkit 3 cal marcar Power target circuit from PICkit3 si no fem servir alimentació externa.

Si fem servir PICkit 2 també ens cal que estigui activat 3-State on 'Release from Reset', si no és així el polsador de la placa potser no funcioni.

Un cop tancada aquesta finestra, programarem el microcontrolador picant a la icona Program Device. Si tot va bé, ens programarà el microcontrolador i el posarà en marxa per poder veure el resultat. Si el nostre programa no hagués estat compilat a codi màquina, amb aquesta icona podríem haver fet les tres operacions (compilar, programar i posar en marxa) amb un sol botó.

Un cop ja hem enviat el programa, aquest es queda a la memòria del microcontrolador i es conserva encara que desconnectem l'alimentació. Si alimentem la placa amb una font d'alimentació externa, el programa que tingui gravat s'iniciarà des del començament.

Alguns cops el MPLAB X IDE ens diu que no pot programar. La majoria de cops això s'arregla tancant el programa i tornant-lo a obrir.

Important: En la finestra de l'MPLAB X podem tenir-hi més d'un projecte i dins del projecte hi podem tenir més d'un fitxer de programa. Quan li diem que ho enviï al microcontrolador, s'enviarà el projecte marcat com a Main Project, és a dir aquell que té el nom en negreta. És indiferent quin tinguem obert a la finestra de la dreta o quin estigui marcat en vídeo invers. De la mateixa manera, si un projecte té més d'un fitxer de programa s'enviaran tots al microcontrolador. Cal ser molt curosos amb això si no es volen tenir resultats inesperats. Una manera alternativa és fer els fitxers de programa amb un altre editir i tenir un únic projecte amb un únic fitxer a l'MPLAB X de manera que en cada moment n'esborrem el contingut i enganxem el que realment volem enviar. Cadascú pot triar la manera que li sigui més còmoda.

El fet que si creem més d'un fitxer de programa dins el mateix projecte els compilarà tots junts i els intentarà executar al mateix temps és útil quan una part del programa (per exemple una funció) està en un fitxer separat (com en el cas de l'exemple ST).

També podeu consultar la guia d'usuari del MPLAB X IDE, la guia d'inici del compilador XC8 i la guia d'usuari del compilador XC8 al web de Microchip.

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.