Autor Tema: ¿Qué Fuses debo usar en un 18FXXX?  (Leído 2147 veces)

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

Desconectado ariznaf

  • PIC10
  • *
  • Mensajes: 23
¿Qué Fuses debo usar en un 18FXXX?
« en: 26 de Marzo de 2010, 13:38:13 »
Tengo un programa para un PIC16F876A.

Tenía los Fuses correspondientes para que funcionara, con un cristal oscilador externo a 4MHz.
Con el C CCS utilizaba un
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT,NOWRT,NOBROWNOUT,NOPUT


Ahora, por diversos motivos, tengo que cambiar a un PIC18F25J11
Me he leido el datasheet del pic, para ver las diferencias con el pic anterior. Pero la verdad es que no resulta muy útil cuando vas a programar en C y con el CCS , ya que éste usa sus propias instrucciones de configuración.
He intentado usar el PicWizard para crear un nuevo proyecto con este pic y escoger los valores adecuados....

¡¡Casi me caigo de espaldas!! ¡¡Menuda cantidad de opciones!!

No acabo de saber cómo seleccionar los valores apropiados, que sean similares a los usados en el fuses del pic16F876A.

El manueal del CCS o el propio picWizard no son de mucha ayuda, ya que no están documentados todas esas opciones que trae.
¿Dónde puedo conseguir esa documentación?

La idea final y uno de los motivos de cambiar de pic, era no tener que usar un cristal externo, si no usar el oscilador interno a 8MHz (y liberar las patillas OSC1 y OSC2 como entradas analógicas), así que si me explicáis qué opción utilizar para esto también, os lo agradecería, aunque primero pensaba probar el programa sin cambiar nada en el hardware.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ¿Qué Fuses debo usar en un 18FXXX?
« Respuesta #1 en: 26 de Marzo de 2010, 14:02:12 »
Hice un proyecto con Pic Wizard y me salio esto:

Código: C
  1. #include <18F25J11.h>
  2. #device adc=8
  3.  
  4. #FUSES NOWDT                    //No Watch Dog Timer
  5. #FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
  6. #FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
  7. #FUSES E4_SW                
  8. #FUSES NODEBUG                  //No Debug mode for ICD
  9. #FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
  10. #FUSES STVREN                   //Stack full/underflow will cause reset
  11. #FUSES NOPROTECT                //Code not protected from reading
  12. #FUSES FCMEN                    //Fail-safe clock monitor enabled
  13. #FUSES IESO                     //Internal External Switch Over mode enabled
  14. #FUSES IOL1WAY                  //Allows only one reconfiguration of peripheral pins
  15. #FUSES PRIMARY                  //Primary clock is system clock when scs=00
  16. #FUSES NOWPCFG              
  17. #FUSES WPBEG                
  18. #FUSES WPDIS                
  19. #FUSES NOCPUDIV              
  20. #FUSES LPT1OSC                  //Timer1 configured for low-power operation
  21. #FUSES T1DIG                
  22. #FUSES MSSPMSK7              
  23. #FUSES DSWDT2147483648      
  24. #FUSES DSWDT                
  25. #FUSES DSBOR                
  26. #FUSES RTCOSC_T1            
  27. #FUSES DSWDTOSC_INT          
  28. #FUSES WPFP
  29. #use delay(clock=8000000)

Código: C
  1. void main()
  2. {
  3.  
  4.    setup_adc_ports(ALL_ANALOG|VSS_VDD);
  5.    setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
  6.    setup_spi(SPI_SS_DISABLED);
  7.    setup_spi2(SPI_SS_DISABLED);
  8.    setup_wdt(WDT_OFF);
  9.    setup_timer_0(RTCC_INTERNAL);
  10.    setup_timer_1(T1_DISABLED);
  11.    setup_timer_2(T2_DISABLED,0,1);
  12.    setup_timer_4(T4_DISABLED,0,1);
  13.    setup_ccp1(CCP_OFF);
  14.    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
  15.    setup_oscillator(OSC_8MHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);
  16.  
  17.    //TODO: User Code
  18.  
  19. }

Esta linea configura el clock interno:
  setup_oscillator(OSC_8MHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.