Mostrando entradas con la etiqueta __config. Mostrar todas las entradas
Mostrando entradas con la etiqueta __config. Mostrar todas las entradas

domingo, 18 de marzo de 2012

Palabras de configuración de los PIC

Cuando vamos a usar un PIC que no conocemos, muchas dudas es que no sabemos con certeza las palabras de configuración de los PIC. La realidad es que si usamos el MPLAB v8 o el MPLAB X te vienen ya incluido, sólo hay que buscarlos.



Los PICs que más me preguntan los visitantes son esta pequeña lista.

PIC12F508A
__CONFIG   _CP_OFF & _WDT_ON & _MCLRE_ON & _ExtRC_OSC

PIC12F629
__CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

PIC16F84A
__CONFIG   _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
 
PIC16F628A
__CONFIG   _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT

PIC16F88
__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_IO
     __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF

PIC16F886
__CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
 __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

PIC16F887
__CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
    __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

PIC16F1827
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_ON & _IESO_OFF & _FCMEN_OFF
    __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF

PIC18F2550
CONFIG    FOSC = XT_XT (En realidad es una gran lista. En el MPLAB v8, puedes verlos en la barra de herramientas arriba, Configure-->Configuration Bits).

PIC18F4550
CONFIG    FOSC = XT_XT (Lo mismo arriba).

Hay visitantes que no tienen instalado el MPLAB en este momento, así, este documento les puede ayudar y ahorrar tiempo.

La ubicación se encuentra en este directorio:
C:\Archivos de programa\Microchip\MPASM Suite\Template\Code


Si quieres encontrar donde están los templates, por ejemplo, del PIC16F88, encuentras el archivo llamado 16F88TEMP.ASM y lo abres.

Puede dar el caso que quieras cambiar la configuración del oscilador interno al exteno y que sea del cuarzo. Un ejemplo abajo.

LIST P=16F88 ; Procesador.
#INCLUDE ; Definición de los operandos utilizados.

__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC

; _CP_OFF: Protección de código DESACTIVADO.
; _DEBUG_OFF: Debug en circuito DESACTIVADO.
; _WRT_PROTECT_OFF: Protección a escritura en memoria de programa DESACTIVADO.
; _CPD_OFF: Protección de código de datos DESACTIVADO.
; _LVP_OFF: Programación en baja tensión DESACTIVADO.
; _BODEN_OFF: Reset por Brown-out DESACTIVADO.
; _MCLRE_ON: Reset por pin externo ACTIVADO.
; _PWRTE_ON: Retraso al reset ACTIVADO.
; _WDT_OFF: Watchdog DESACTIVADO.
; _XT_OSC: Oscilador externo del tipo XT.

__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF

; _IESO_OFF: Modo de intercambio de externo a interno DESACTIVADO.
; _FCMEN_OFF: Monitor de CLK DESACTIVADO.



Hay que encontrar las directivas del PIC16F88 que está en la ubicación:
C:\Archivos de programa\Microchip\MPASM Suite

 
El archivo se llama P16F88.INC y lo abrimos para localizar la palabra de configuración del oscilador externo de cuarzo.

Si abriste el archivo P16F88.INC con el notepad de Windows, pulsa "Control B" y busca "CONFIG1 Options", de todas las configuraciones que hay, se usa el _XT_OSC, por ejemplo el oscilador XT a 4MHz o el 20MHz.

Puedes simplificar el __CONFIG sólo introduciendo hexadecimales en vez de los textos aunque resulte más engorroso de interpretar. Cuando lo tengas configurados la configuración de Bits en el MPLAB, lo miras y apuntas.

Ejemplo 1:

    LIST        P=16F88
    INCLUDE       
        __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
        __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Ejemplo 2:

    LIST        P=16F88
    INCLUDE       
        __CONFIG    _CONFIG1, 0x3F21
        __CONFIG    _CONFIG2, 0x3FFC 


Los dos ejemplos son exactamente lo mismo, sólo que te ahorra tiempo y espacio en escribirlo, aún así, es más aconsejable, legible y recomendable el primer ejemplo. Puedes buscar más información en las ayudas del MPLAB escribiendo __config.

NOTA:

No olvidar que "_ _ CONFIG" tiene dos guiones bajo, no uno. Se escribe así __CONFIG. Es importante tenerlo encuenta ya que los primeros programas puedes poner solo uno guión bajo y es un error frecuente.

Autor: Ángel Acaymo M.G.