Autor Tema: configuration bits (fuses) en el PICC de hitech  (Leído 5279 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
configuration bits (fuses) en el PICC de hitech
« en: 12 de Julio de 2007, 12:18:52 »
holas a todos, bueno en algunos ejemplos dentro del foro he visto lo siguiente
Código: C
  1. #include <pic.h>
  2. #include "delay.h"
  3. // necesario para llamar a DelayMs
  4. #define XTAL_FREQ 4MHZ  
  5. __CONFIG(0x3F71);
  6.  
  7. void main(void)
  8. {
  9.         TRISB=0x00; // PORTB <- salida
  10.         while(1)
  11.         {   // bucle eterno
  12.                 PORTB=0x01;   // RB0 <- 1
  13.                 DelayMs(1000);   // retardo 1 mS
  14.                 PORTB=0x00; // RB0 <- 0
  15.                 DelayMs(100);
  16.         }
  17. }

Y mi duda recae en esta linea de codigo:
__CONFIG(0x3F71);

que bits de configuración (fuses) activa o desactiva esto? Además supongo que no ha de ser igual que para otros pics, asi que he buscado en los manuales (derepente se me paso) y pues no he logrado encontrarlos. Uso el MPLAB y se peude configurar desde ahi también pero me gustaría tenerlos en el mismo programa.

Luego indage en los archivos del mismo compilador PICC hitech, y pues encontre los fuses de cada pic, ufff.... estaban bien escondidos  :mrgreen: pero no he visto ejemplos donde los usen  :? , digamos que quiero programar el 16f628, segun el archivo que contiene las fuentes de este pic hay lo siguiente:

Citar
#define CONFIG_ADDR   0x2007

/*watchdog*/
#define WDTEN      0x3FFF   // enable watchdog timer
#define WDTDIS      0x3FFB   // disable watchdog timer

/*power up timer*/
#define PWRTEN      0x3FF7   // enable power up timer
#define PWRTDIS      0x3FFF   // disable power up timer

/* MCLR pin function */
#define MCLREN      0x3FFF   // master clear reset enable
#define MCLRDIS      0x3FDF   // master clear reset disable
//alternately
#define MCLRIO      0x3FDF // use MCLRDIS

/*brown out reset*/
#define BOREN      0x3FFF   // enable brown out reset
#define BORDIS      0x3FBF   // disable brown out reset

/*low voltage programming*/
#define LVPEN      0x3FFF   // low voltage programming enable
#define LVPDIS      0x3F7F   // low voltage programming disabled

/*data code protection*/
#define DP      0x3EFF   // protect the data code
// alternative definitions
#define DATPROT      0x3EFF   // use DP
#define DATUNPROT   0x3FFF   // use UNPROTECT

/*code protection*/
#define UNPROTECT   0x3FFF   // do not protect the code
#define PROTECT      0x03FF   // protect the program code
   /* Code protection for 2K program memory   */
#ifdef _16F628      
#define PROTECT75   0x17FF   /* Protects from 0200h-07ffh   */
#define PROTECT50   0x2BFF   /* Protects from 0400h-07ffh   */
#else   /* Code protection for 1K program memory   */
#define PROTECT50   0x17FF   /* Protects from 0200h-03ffh   */
#endif

/*osc configurations*/
#define ER      0x3FFF   /* external resistor, CLKOUT on CLKOUT pin, R on CLKIN */
#define ERIO      0x3FFE   /* external resistor, IO fn on CLKOUT pin, R on CLKIN */
#define INT      0x3FFD   /* internal resistor/capacitor, CLKOUT on CLKOUT pin, IO on CLKIN */
#define INTIO      0x3FFC   /* internal resistor/capacitor, IO fn on CLKOUT pin, IO on CLKIN */
#define EC      0x3FEF   /* external clock in, IO fn on CLKOUT pin, CLKIN on CLKIN */
#define HS      0x3FEE   /* high speed crystal */
#define XT      0x3FED   /* crystal/resonator */
#define LP      0x3FEC   /* low power crystal */

Entonces si
__CONFIG(0x3F71);

entonces "alucino" que para poner cada palabra seria asi:
__CONFIG(WDTDIS & XT); //osiclador de cristal y watchdog desahbilitado. Lo compile y salio OK y también se modificó en el mismo MPLAB configuration bits.

La verdad que mucha información de este compilador no esta tan disponible, si alguien sabe de algún manual pues que me pasa la voz  :mrgreen:


a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #1 en: 12 de Julio de 2007, 12:37:36 »
que bits de configuración (fuses) activa o desactiva esto? Además supongo que no ha de ser igual que para otros pics, asi que he buscado en los manuales (derepente se me paso) y pues no he logrado encontrarlos. Uso el MPLAB y se peude configurar desde ahi también pero me gustaría tenerlos en el mismo programa.
Sí, depende de cada pic aunque entre familias (16F, 18F) se respetan bastante.

En el MPLAB lo configuras y 'sirven' si tienes un programador que funciona bajo MPLAB, pero si usas uno externo, la información no iría en el .HEX por el hecho de que vos lo cambies en el MPLAB...

Además cada vez que recargas/compilas el proyecto, debes volver a tocar estos bits.

Estan en todos los manuales, suelen estar bajo la descripción de "Special Features of the CPU".  Ahi verás uno o 2 bytes que consituyen los CONFIGBITS (o fuses) y son esos bits de los que estamos hablando.


Entonces si
__CONFIG(0x3F71);

entonces "alucino" que para poner cada palabra seria asi:
__CONFIG(WDTDIS & XT); //osiclador de cristal y watchdog desahbilitado. Lo compile y salio OK y también se modificó en el mismo MPLAB configuration bits.


La primer forma (escribir el valor en hexa de los configuration bits) es bastante poco amigable y hasta poco aconsejable.

Sugiero uses la segunda opción.

Si un "fuse" no lo seleccionas dentro de el CONFIG, tomará su valor por defecto (1) , entonces si quieres garantizar el resultado te conviene escribir todos los fuses.

Te dejo un ejemplo para un 16F873 en assembler


__config   _HS_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _CPD_ON & _WRT_ENABLE_OFF & _DEBUG_OFF & _CP_ALL


Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #2 en: 12 de Julio de 2007, 17:07:11 »
...
La primer forma (escribir el valor en hexa de los configuration bits) es bastante poco amigable y hasta poco aconsejable.
...

em em, si se conoce la configuration word y se está usando a cada rato, es mas fácil acordarse en hexa que el chorrero de bits/bytes (de acuerdo al micro en cuestión).





La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #3 en: 12 de Julio de 2007, 17:12:27 »
jejej yo creo que es cuestion de gustos, a mi me gusta más con los nombre de cada uno de los bits, a otros les gusta defrente el hexa de todo el paquete de configuración.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado microKings

  • PIC10
  • *
  • Mensajes: 13
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #4 en: 19 de Agosto de 2007, 22:17:39 »
Buenas amigos de todopic, quisiera preguntarles como hago para configurar conversor A/D en Hi-tech?

De antemano muchas gracias...

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #5 en: 20 de Agosto de 2007, 09:34:47 »
m.... ya te respondi en el otro hilo del hitech... ademas este hilo habla de los configuration bits, .... ademas NO VALE repetir el mismo post en 2 sitios distintos.

saludos.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado certikc

  • PIC10
  • *
  • Mensajes: 3
Re: configuration bits (fuses) en el PICC de hitech
« Respuesta #6 en: 18 de Abril de 2008, 17:58:53 »
Todos esos fuses o bits de configuracion se pueden configurar con el c-wiz , el cual es un generador de codigo que trae el hi-tide, si usas mplab lo configuras desde allá.
el c -wiz te premite configurar todos los fuses del pic, espero y la respuesta no sea demasiada desfasada en tiempo