Translate, Traductor

viernes, 13 de agosto de 2010

Fusibles de configuracion "Bit's de configuracion" de los PIC's

Los bit's de configuracion o mas comunmente llamados "fusibles" permiten confugurar ciertas funciones en los microcontroladores PIC, como el tipo de cristal para el oscilador, permiten proteger el codigo en el micro, entre muchas funciones. La cantidad de funciones que se pueden configurar con los fusibles dependen del microcontrolador, si tenemos en el 16F84A  4 funciones, en el 16F88 son alrededor de 13 funciones.

Bueno y para que sirven?
Como lo dije antes son para configurar algunas funciones del micro, como el tipo de oscilador, la proteccion de codigo, habilitar el perro guardian ( por que si no este los muerde), habilitar el reset maestro, habilitar un reset inicial, habilitar reset por bajo voltage en la fuente, y otros que como les dije depende del micro usado.

Ahhh y cuando se usan??
En el momento en que se quiere programar el micro se le deben configurar los fusibles ( esto es usando un software como el WINPIC800,  me parece necesario agradecer a los creadores de este software quienes nos permiten descargarlo y usarlo sin ningun problema, www.winpic800.com,  GRACIAS!!!!!!) y si estamos usando alguno de los programadores de MICROCHIP como el pickit2 o el pickit3 debemos escribir la configuracion de estos fusibles en la cabecera de nuestro fuente antes de compilar.

Como se que fusibles usa  mi pequeño monstruo?
Como siempre digo "pues en el manual del micro", jeje suena obvio, y los podes obtener del fichero que incluimos en la cabecera del fuente,  el  P16F88.INC por ejemplo, que se encuentra en la carpeta "MPASM suite" que esta dentro de la carpeta "microchip" donde instalamos el MPLAB, ojo que el nombre del fichero depende del micro.

De los ficheros antes mencionados obtube lo siguiente:

Para el 16F84A


_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'

de donde se arma nuestra palabra de configuracion anteponiendo la directiva  "__CONFIG"

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &  _XT_OSC

Que es lo que debemos poner en la cabecera del fuente.

Aqui va la del 16F88


_CONFIG1               EQU     H'2007'
_CONFIG2                EQU     H'2008'

;Configuration Byte 1 Options
_CP_ALL                               EQU     H'1FFF'
_CP_OFF                              EQU     H'3FFF'
_CCP1_RB0                              EQU     H'3FFF'
_CCP1_RB3                              EQU     H'2FFF'
_DEBUG_OFF                              EQU     H'3FFF'
_DEBUG_ON                               EQU     H'37FF'
_WRT_PROTECT_OFF               EQU     H'3FFF' ;No program memory write protection
_WRT_PROTECT_256               EQU     H'3DFF' ;First 256 program memory protected
_WRT_PROTECT_2048            EQU     H'3BFF' ;First 2048 program memory protected
_WRT_PROTECT_ALL             EQU     H'39FF' ;All of program memory protected
_CPD_ON                               EQU     H'3EFF'
_CPD_OFF                               EQU     H'3FFF'
_LVP_ON                              EQU     H'3FFF'
_LVP_OFF                              EQU     H'3F7F'
_BODEN_ON                               EQU     H'3FFF'
_BODEN_OFF                              EQU     H'3FBF'
_MCLR_ON                              EQU     H'3FFF'
_MCLR_OFF                              EQU     H'3FDF'
_PWRTE_OFF                              EQU     H'3FFF'
_PWRTE_ON                               EQU     H'3FF7'
_WDT_ON                              EQU     H'3FFF'
_WDT_OFF                              EQU     H'3FFB'
_EXTRC_CLKOUT                 EQU     H'3FFF'
_EXTRC_IO               EQU     H'3FFE'
_INTRC_CLKOUT               EQU     H'3FFD'
_INTRC_IO                              EQU     H'3FFC'
_EXTCLK                               EQU     H'3FEF'
_HS_OSC                              EQU     H'3FEE'
_XT_OSC                                EQU     H'3FED'
_LP_OSC                               EQU     H'3FEC'

;Configuration Byte 2 Options
_IESO_ON                               EQU     H'3FFF'
_IESO_OFF                               EQU     H'3FFD'
_FCMEN_ON                               EQU     H'3FFF'
_FCMEN_OFF                              EQU     H'3FFE'



y la palabra seria algo como esto:

__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

;Program Configuration Register 2
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Si necesitan de otro micro la pueden consultar el el fichero del micro como les comente antes, ahhh  bueno pues!!!!  me pueden escribir yo se las pongo aqui.

2 comentarios:

  1. Socio usted es el mejor...

    Excelentes esas plantillas...

    Monta por favor herramientas de manejo del C para pics...

    ResponderEliminar
  2. cordial saludo, le(s) felicito por estos aportes, en especial para quienes no somos expertos y tenemos tantas dudas.
    la metodologia que empleas es muy clara y facil de entender.
    quisiera saber si recibes mi comentario.
    email- literatura100@hotmail.com
    que bueno que publicaras mas.
    gracias....

    ResponderEliminar