Está en la página 1de 5

MPLAB X Y C18: BITS DE CONFIGURACIN (FUSES)

Continuando con la programacin en C18 toca el turno de los Bits de configuracin. Un paso muy importante al momento de realizar un cdigo 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 tendrn 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 dems proyectos, pero para una mayor esttica en nuestro firmware nosotros crearemos un archivo llamado Config_FusesPIC.h en donde estarn 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: Seleccin del oscilador (interno, externo, etc.) FCMEN: Permite un cambio del oscilador (El externo por el interno en caso de fallar el externo).

1 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

IESO: Permite minimizar el periodo de latencia del oscilador al inicio del programa (Two-Speed Start-Up), Tambin 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 alimentacin baja a un cierto nivel. BORV: Seleccin 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 diseador. WDTPS: Selecciona el Postscaler del WDT CCP2MX: CCP2 multiplexado con RB3 o RC1. PBADEN: Configura los pines del PORTB como anlogos o digitales despus 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 programacin 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 proteccin del bloque 0 de la memoria de programa. CP1: Habilita proteccin del bloque 1 de la memoria de programa. CP2: Habilita proteccin del bloque 2 de la memoria de programa. CP3: Habilita proteccin del bloque 3 de la memoria de programa. CPB: Habilita proteccin del bloque BOOT.

2 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

CPD: Habilita proteccin de la memoria EEPROM. WRT0: Habilita proteccin de escritura de la memoria de programa en bloque 0. WRT1: Habilita proteccin de escritura de la memoria de programa en bloque 1. WRT2: Habilita proteccin de escritura de la memoria de programa en bloque 2. WRT3: Habilita proteccin de escritura de la memoria de programa en bloque 3. WRTB: Habilita proteccin de escritura del BOOT. WRTC: Habilita proteccin de escritura de los registros de configuracin. WRTD: Habilita proteccin de escritura de la memoria EEPROM EBTR0: Habilita proteccin de lectura de tablas de la memoria de programa en el bloque 0. EBTR1: Habilita proteccin de lectura de tablas de la memoria de programa en el bloque 1. EBTR2: Habilita proteccin de lectura de tablas de la memoria de programa en el bloque 2. EBTR3: Habilita proteccin de lectura de tablas de la memoria de programa en el bloque 3. EBTRB: Habilita proteccin 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 ms 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 configuracin del PIC para ello necesitamos crear un nuevo proyecto Click en la carpeta Header File >> New >> C Header File

3 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

En la ventana que aparezca en File Name colocaremos Config_FusesPIC y en Extensin debe de estar h despus Finish.

4 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/

Ya tenemos el archivo ahora solo falta apuntar todos los FUSES del PIC y tendremos todo listo para empezar con nuestro proyecto. Dejo la configuracin que he utilizado para el PIC18F4620. Config_FusesPIC.h
#ifndef CONFIG_FUSESPIC_H #define CONFIG_FUSESPIC_H #pragma config OSC = INTIO67 //Uso del oscilador interno #pragma config FCMEN = ON #pragma config IESO = OFF #pragma config PWRT = ON #pragma config BOREN = OFF #pragma config WDT = OFF #pragma config MCLRE = ON #pragma config LVP = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF #pragma config CPB = OFF #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT3 = OFF #pragma config WRTC = OFF #pragma config WRTB = OFF #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF #pragma config EBTRB = OFF #endif /* CONFIG_FUSESPIC_H */

5 Pedro Snchez

mrchunckuee.psr@gmail.com

http://electronicayrobotica.wordpress.com/