Sunteți pe pagina 1din 6

Bits de configuracin del PIC18F458. v.0.

2
Luis Arcesio Quintero
luisquinteropgmail.com
Dispositivos Programables II, Ingenieria Fisica
Universidad del Cauca
2003
Resumen
Los microcontroladores de Microchip cuentan multiples herramientas de desarrollo gratuitas y
una de ellas es el Ireeware IC-Prog, que permite con una herramienta hardware quemar el
programa que deseamos. En este soItware, los bits de conIiguracion de los micros de la Iamilia
18 (PIC18) se presenta en Iorma de registro, lo que resulta un poco conIuso y no tan explicito
como con los micros PIC12 y PIC16. En este articulo se indica como hacer esta conIiguracion
desde el codigo assembler para que quede incluido en el programa binario, *.hex.
1. Descripcin de la Configuracin
El programa utilizado para compilar el codigo assembler es MPLAB IDE v6.30 y el soItware
con el que se pretende quemar PIC es IC-Prog 1.05C con un Programador de
Microcontroladores PIC y EEPROM por puerto paralelo. El procedimiento para programar los
PIC18 es similar a los de la Iamilia PIC16, se crea un proyecto en MPLAB, se hace el programa
en assembler y se compila obteniendo un archivo con extension HEX, Iinalmente este archivo es
leido por el IC-Prog y quemado en la memoria de programa del microcontrolador. Pero hay una
diIerencia con los micros de la Iamilia PIC18: los Iusibles de conIiguracion en el IC-Prog no se
presentan de una Iorma Iacil, en este caso se presentan unos registros de 16 bits que permiten
ajustar parametros como: tipo de oscilador, Power-up Timer, Wathdog, Brown-out Detect, Code
Protect, etc.
Figura 1. ConIiguracion en IC-Prog para el PIC16F877 y para el PIC18F458
Figura 2. Cuadro de dialogo para los bits de conIiguracion en MPLAB
Si se revisa la hoja caracteristica del PIC18F458|1|, en la pagina 265 se encuentra el capitulo 24
que trata de las caracteristicas especiales de la CPU. En el punto 24.1 concretamente se habla de
los bits de conIiguracion para el microcontrolador. En si son 12 registros de 8 bits nombrados de
la siguiente manera: CONFIG1H, CONFIG2L, CONFIG2H, CONFIG4L, CONFIG5L,
CONFIG5H, CONFIG6L, CONFIG6H, CONFIG7L, CONFIG7H, DEVID1, DEVID2.
Aparentemente se puede hacer la conIiguracion de estos registros en MPLAB por medio de la
opcion ConIiguration Bits. Para acceder se tiene que seleccionar en el menu
ConIigure~ConIiguration Bits. Hecha esta seleccion debe desplegarse un cuadro de dialogo
como el que aparece en la Iigura 2.
La primera Iila muestra un registro en una posicion de memoria 0x300001, si se revisa el
manual, este registro corresponde a CONFIG1H. De esta manera, uno podria suponer que si uno
modiIica esta inIormacion en MPLAB, antes de compilar el codigo, esta conIiguracion se
guardara en el archivo .HEX y uno podria recuperarla en el IC-Prog, pero en realidad no sucede
esto. Simplemente en los registros de conIiguracion aparece 0xFFFF.
Otra alternativa para poder programar los micros, con la conIiguracion que uno desee, podria ser
anotar los valores indicados en Value (ver Iigura 2) y armar los registros de 16 bits y anotarlos
en la conIiguracion que aparece en el IC-Prog en los campos etiquetados con ConIig1, ConIig2,
ConIig3, ConIig4, ConIig5, ConIig6 y ConIig7. Pero existe otra alternativa que es mediante
codigo utilizando la opcion CONFIG con los parametros adecuados.
Vamos a revisar algunas de las lineas de codigo que deben adicionarse en assembler para poder
hacer una conIiguracion basica. Los parametros de conIiguracion Iueron consultados en la
libreria P18I458.inc|2|.
Comencemos con los parametros necesarios para el ConIig1. Este registro solo es aIectado en
los 8 bits mas signiIicativos a traves del valor que tenga el registro CONFIG1H. Del manual
podemos obtener la siguiente inIormacion acerca de este registro:
Figura 3. Registro CONFIG1H
Como se puede ver, este registro permite conIigurar el tipo de oscilador a utilizar. Una linea que
se podria adicionar al codigo para deshabilitar el OSCEN y seleccionar un oscilador cristal XT
es la siguiente:
CONFIG CONFIG1H, OSCSOFF1H & XTOSC1H
Al compilar el codigo, puede veriIicarse el valor del registro CONFIG1H en la conIiguracion de
bits del MPLAB, en este caso seria 0xF9. Ahora, cuando se abre el .HEX en IC-PROG, la casilla
de ConIig1 pasa de estar en un valor de 0xFFFF (por deIecto) a 0xF9FF. Para otros tipos de
osciladores tenemos la siguiente tabla:
Tabla 1. Parametros de conIiguracion para el oscilador, con OSCEN deshabilitado.
Tipo de Oscilador Parmetro Valor CONFIG1H
RC OSC2 as RA6 RCIOOSC1H 0xFF
HS PLL Enabled HSPLLOSC1H 0xFE
EC OSC2 as RA6 ECIOOSC1H 0xFD
EC OSC2 as Clock Out ECOSC1H 0xFC
RC RCOSC1H 0xFB
HS HSOSC1H 0xFA
XT XTOSC1H 0xF9
LP LPOSC1H 0xF8
Para habilitar OSCEN solo basta cambiar OSCSOFF1H por OSCSON1H
Para modiIicar el registro de ConIig2 en el IC-Prog es necesario conIigurar los registros
CONFIG2L y CONFIG2H. En las Iiguras 4 y 5 puede verse la inIormacion que aparece en el
manual de estos registros.
Figura 4. Registro CONFIG2L
Figura 5. Registro CONFIG2H
Como se puede ver, el registro CONFIG2L permite conIigurar todo lo relacionado con el
Brown-out Reset y permite habilitar o deshabilitar el Power-up Timer. Veamos ahora una linea
basica para conIigurar el registro CONFIG2L donde se habilita el Brown-out Reset, se Iija un
voltaje de V
BOR
de 2.0V y se deshabilita el Power-up Timer:
CONFIG CONFIG2L, BORON2L & BORV252L & PWRTOFF2L
Para deshabilitar el Brown-out Reset simplemente es cambiar BORON2L por
BOROFF2L y para habilitar el Power-up Timer se cambia PWRTOFF2L por
PWRTON2L. En la siguiente tabla se muestran los parametros para conIigurar V
BOR
.
Tabla 2. Parametros de conIiguracion V
BOR
; BOR habilitado; PWRT deshabilitado
V
BOR
(V) Parmetro Valor CONFIG2L
2.0 BORV252L 0xFF
2.7 BORV272L 0xFB
4.2 BORV422L 0xF7
4.5 BORV452L 0xF3
En la Iigura 5, se ve que el registro CONFIG2H tiene la conIiguracion del Watchdog Timer en el
microcontrolador. Permite habilitarlo o deshabilitarlo, y ademas, Iijar el post-escaler de timer. A
continuacion se muestra una linea de codigo en assembler basica para conIigurar este registro:
CONFIG CONFIG2H, WDTON2H & WDTPS1282H
El parametro WDTON2H permite habilitar el Watchdog (WDTOFF2H para
deshabitarlo) y WDTPS1282H Iija el post-escaler en 1:128. La tabla 3 muestra los
parametros para Iijar los diIerentes valores del post-escaler.
Tabla 3. Parametros de conIiguracion para el post-escaler; WDT habilitado
Post-escaler Parmetro Valor CONFIG2H
1:1 WDTPS12H 0xF1
1:2 WDTPS22H 0xF3
1:4 WDTPS42H 0xF5
1:8 WDTPS82H 0xF7
1:16 WDTPS162H 0xF9
1:32 WDTPS322H 0xFB
1:64 WDTPS642H 0xFD
1:128 WDTPS1282H 0xFF
Finalmente, veamos como modiIicar el ConIig4 en IC-Prog; para modiIicar las caracteristicas
basicas de conIiguracion del PIC18F458 parece que solamente es necesario cambiar los registros
de ConIig1, ConIig2 y ConIig4, el registro ConIig3 no tiene parametros y los registros ConIig5,
ConIig6 y ConIig7 se conIiguran para proteccion del codigo del programa y los datos de la
memoria EEPROM.
En la Iigura 6 se puede ver la inIormacion del registro CONFIG4L que aparece en el manual del
PIC18F458. Con este registro se puede habilitar o deshabilitar el Background Debuger y el Low
Voltage ICSP. Tambien permite habilitar o deshabilitar el reset para el Snack Full/UnderIlow.
Figura 6. Registro CONFIG4L
A continuacion se presenta una linea de codigo basica para conIigurar el registro CONFIG4L:
CONFIG CONFIG4L, DEBUGOFF4L & LVPON4L & STVRON4L
Esta conIiguracion desactiva DEBUG (DEBUGOFF4L para habilitarlo), habilita el LVP
(LVPOFF4L para deshabilitarlo) y activa el STVR (STVROFF4L para deshabilitarlo).
2. Resumen
De esta manera, uno podia copiar las siguientes lineas en el codigo assembler para conIigurar el
microcontrolador:
list p18I458
include "p18I458.inc"
CONFIG CONFIG1H, OSCSOFF1H & XTOSC1H
CONFIG CONFIG2L, BORON2L & BORV252L & PWRTOFF2L
CONFIG CONFIG2H, WDTON2H & WDTPS1282H
CONFIG CONFIG4L, DEBUGOFF4L & LVPON4L & STVRON4L
Las lineas de conIiguracion deben colocarse despues de include "p18I458.inc" y la sentencia
CONFIG tiene dos guiones ( ), en cambio, los parametros solamente tienen uno.
Referencias
|1| MICROCHIP. PIC18FXX8 Data Sheet, 41159c.pdI. Microchip Technology Inc. 2003.
|2| MICROCHIP. Libreria P18I458.inc de MPLAB IDE v.6.30. En: ...\MPLAB
IDE\MCHIPTools\ P18I458.inc
Nota: los bits de conIiguracion pueden se consultados en la libreria del dispositivo que se utilice,
de esta manera, este articulo sirve como guia para la conIiguracion de cualquier
microcontrolador de Microchip.

S-ar putea să vă placă și