9/27/2014

9/20/2014

MPLAB X & C18: Bits de configuración (FUSES)

Continuando con la programación en C18 toca el turno de los Bits de configuración. Un paso muy importante al momento de realizar un código es configurar adecuadamente los FUSES del PIC que se está utilizando para ello es necesario tener del Datasheet del micro (Capitulo SPECIAL FEATURES OF THE CPU), pero Microchip nos proporciona el archivo “hlpPIC18ConfigSet” en donde podemos consultarlos todos y este se encuentra en la carpeta llamada “doc” donde se ha instalado el C18.


Ahora bien basta con abrir el archivo y seleccionar el PIC a utilizar y tendrán la lista de todos los FUSES que se deben de configurar. Utilizare el PIC18F4620 como ejemplo lo bueno de esto es que con una vez que lo configures te servirá para tus demás proyectos, pero para una mayor estética en nuestro firmware nosotros crearemos un archivo llamado “Config_FusesPIC.h” en donde estarán todos y cuando se necesite solo agregaremos el archivo al proyecto y listo.

Es momento de explicar (No domino del todo el tema pero algo será de ayuda):
  • OSC: Selección del oscilador (interno, externo, etc.)
  • FCMEN: Permite un cambio del oscilador (El externo por el interno en caso de fallar el externo).
  • IESO: Permite minimizar el periodo de latencia del oscilador al inicio del programa (Two-Speed Start-Up), También permite al microcontrolador usar el oscilador INTOSC como fuente de reloj hasta que la fuente de reloj principal esté disponible si es que se está usando en modo XT, LP, HS o HSPLL.
  • PWRT: Permite habilitar el Power-UpTimer
  • BOREN: Habilita y configura el modo del Brown-OutReset. Provoca que el micro entre en modo Reset si el voltaje de alimentación baja a un cierto nivel.
  • BORV: Selección los niveles del BOR, nivel al cual BOREN responderá.
  • WDT: Habilita el WatchDogTimer, para evitar que el micro se quede atorado en un lugar no previsto por el diseñador.
  • WDTPS: Selecciona el Postscaler del WDT
  • CCP2MX: CCP2 multiplexado con RB3 o RC1.
  • PBADEN: Configura los pines del PORTB como análogos o digitales después del Reset.
  • LPT1OSC: Configura el modo de consumo del Timer1.
  • MCLRE: Habilita el pin MCLR y deshabilita el pin RE3 o deshabilita el MCLR y habilita el pin RE3 como entrada.
  • STVREN: Habilita el Reset por desbordamiento de pila.
  • LVP: Habilita la programación en bajo voltaje (Low Voltaje Programming).
  • XINST: Habilita el modo de instrucciones extendidas.
  • DEBUG: Habilita o deshabilita el Debugger ubicado en los pines RB6 y RB7, pueden ser dedicados al Debugger o a pines digitales.
  • CP0: Habilita protección del bloque 0 de la memoria de programa.
  • CP1: Habilita protección del bloque 1 de la memoria de programa.
  • CP2: Habilita protección del bloque 2 de la memoria de programa.
  • CP3: Habilita protección del bloque 3 de la memoria de programa.
  • CPB: Habilita protección del bloque BOOT.
  • CPD: Habilita protección de la memoria EEPROM.
  • WRT0: Habilita protección de escritura de la memoria de programa en bloque 0.
  • WRT1: Habilita protección de escritura de la memoria de programa en bloque 1.
  • WRT2: Habilita protección de escritura de la memoria de programa en bloque 2.
  • WRT3: Habilita protección de escritura de la memoria de programa en bloque 3.
  • WRTB: Habilita protección de escritura del BOOT.
  • WRTC: Habilita protección de escritura de los registros de configuración.
  • WRTD: Habilita protección de escritura de la memoria EEPROM
  • EBTR0: Habilita protección de lectura de tablas de la memoria de programa en el bloque 0.
  • EBTR1: Habilita protección de lectura de tablas de la memoria de programa en el bloque 1.
  • EBTR2: Habilita protección de lectura de tablas de la memoria de programa en el bloque 2.
  • EBTR3: Habilita protección de lectura de tablas de la memoria de programa en el bloque 3.
  • EBTRB: Habilita protección de lectura de tablas de la memoria de programa en el BOOT.
Tal vez no esté explicado al 100% pues sugiero revisar la hoja de datos o investigar más del tema en otros sitios para tener un mayor entendimiento.

Para declarar estos FUSES en C18 se hace de la siguiente manera:

#pragma config OSC = INTIO67

Es hora de hacer nuestro archivo con toda la configuración del PIC para ello necesitamos crear un nuevo proyecto Click en la carpeta Header File >> New >> C Header File…
En la ventana que aparezca en File Name colocaremos Config_FusesPIC y en Extensión debe de estar h después Finish.
Ya tenemos el archivo ahora solo falta apuntar todos los FUSES del PIC y tendremos todo listo para empezar con nuestro proyecto. Dejo la configuración que he utilizado para el PIC18F4620.

9/13/2014

MPLAB X & C18: Crear nuevo proyecto

Continuando con MPLAB X y C18 en esta ocasión aprenderemos a crear un nuevo proyecto, configurar el MPLAB X, seleccionar el PIC utilizar, etc. Después de instalar todo ejecutamos el MPLAB y nos aparecerá lo siguiente:


El siguiente paso es hacer click en: File >> New Project... y nos aparecerá la siguiente ventana, donde seleccionaremos: Microchip Embedded >> Standalone Project y después Next.


En la siguiente ventana que aparezca seleccionamos en Family: Advanced 8-bit MCUs (PIC18) y en Device: El PIC que utilicen, en mi caso utilizare el PIC18F4620 y dan Next.


En la siguiente ventana se selecciona el grabador, en mi caso uso el PICkit3 pero eso depende de cual tengan. Si no es uno de los que está en la lista puedes seleccionar Simulador u otro, después dar en Next.


En la ventana que aparece seleccionamos C18 y damos Next. Con esto le decimos que compilador es el que vamos a utilizar.


Ahora colocamos un nombre a nuestro proyecto y seleccionamos en donde lo guardaremos yo lo he dejado en la carpeta por defecto. Importante no guardarlo en un lugar que tenga una ruta demasiada larga por qué no te ve a permitir hacerlo. Dar en Finish para terminar


Ya está configurado el proyecto el siguiente paso es crear el archivo principal para ello dar click sobre la carpeta Source Files >> New >> C Main File…


Aparecerá la siguiente ventana donde colocamos el nombre al archivo por lo regular es Main, dejamos lo demás como esta y damos click en Finish.


Ahora si ya está listo para empezar a escribir código.


Con esto se termina esta parte, en la siguiente publicación veremos nuestro primer ejemplo.

9/06/2014

MicroCode Studio & PBP: Uso del ADC con PIC16F877A – Display de 7 segmentos

Siguiendo con las prácticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros Microcontroladores PIC, en esta ocasión utilizaremos el ADC del PIC16F887 para encender un display de 7 segmentos.

Se tiene un display de7 segmentos de cátodo común conectado al puerto B del microcontrolador (RB0-RB6), un potenciómetro conectado al canal analógico (RA0), además una resistencia conectado al Master Clear (MCLR) para que funcione el PIC, se utiliza el oscilador interno del PIC a 4 MHz. Recordar que los pines de alimentación del PIC son: 5 para GND y 14 para Vcc=5 Volts, el circuito utilizado se muestra a continuación: