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.

Bueno por el momento sera todo lo que le haga, hasta la proxima.

Descargas:
AquĆ­ el enlace directo para DESCARGAR los archivos disponibles, tambiĆ©n puedes revisar o descargar la informaciĆ³n desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquĆ­, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interĆ©s y la otra puedes ayudarme con una donaciĆ³n para seguir realizando publicaciones y mejorar el contenido del sitio. TambiĆ©n puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentaciĆ³n avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, asĆ­ tambiĆ©n si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Publicar un comentario

0 Comentarios