Como configurar PIC18F14K22 para usar oscilador externo de 64Mhz

#1
Hola a todos!

Tengo un problema a la hora de usar un cristal oscilador externo para mi PIC18F14K22.

El problema es, que la configuración externa de como conectarlo, la tengo bien,
pero a la hora de la programación, mi pic usa el oscilador interno en vez del externo.

¿Que tengo que poner en la programación, para que mi PIC use el cristal oscilador externo y no el interno?
Os adjunto las patas del PIC, porque la pata del OSC1, también es la del RA5.
¿Entonces supongo que habrá que definir de alguna forma que esa pata se usara como OSC1, no?
¿Y después definir programando que voy a usar un cristal oscilador de 64Mhz, no?
El tema es que no se como hacerlo.

Muchas gracias! He estado buscando información por internet, y leyendo el datasheet, pero no me aclaro.

Aprovecho para preguntar si sabéis que FUSES debería tener la programación del PIC,
que tampoco me entero muy bien..

Gracias otra vez!
 

Adjuntos

Última edición por un moderador:
#2
No mencionas para que lenguaje requieres los fuses de la palabra de configuración.
Si es para ensamblador, en el archivo 18F14K22TEMP.ASM está esa información.
Encontrarás algo así...
Código:
     ;Setup CONFIG11H
     CONFIG FOSC = IRC, PLLEN = OFF, PCLKEN = OFF, FCMEN = OFF, IESO = OFF
     ;Setup CONFIG2L
     CONFIG PWRTEN = ON, BOREN = OFF, BORV = 19
     ;Setup CONFIG2H
     CONFIG WDTEN = OFF, WDTPS = 1
     ;Setup CONFIG3H
     CONFIG MCLRE = ON, HFOFST = OFF
     ;Setup CONFIG4L
     CONFIG STVREN = OFF, LVP = OFF, BBSIZ = OFF, XINST = OFF
     ;Setup CONFIG5L
     CONFIG CP0 = OFF, CP1 = OFF
     ;Setup CONFIG5H
     CONFIG CPB = OFF, CPD = OFF
     ;Setup CONFIG6L
     CONFIG WRT0 = OFF, WRT1 = OFF
     ;Setup CONFIG6H
     CONFIG WRTB = OFF, WRTC = OFF, WRTD = OFF
     ;Setup CONFIG7L
     CONFIG EBTR0 = OFF, EBTR1 = OFF
     ;Setup CONFIG7H
     CONFIG EBTRB = OFF
Luego para determinar el tipo de oscilador, en el archivo P18F14K22.INC encontrarás la descripción...
Código:
;   Oscillator Selection bits:
;     FOSC = LP            LP oscillator
;     FOSC = XT            XT oscillator
;     FOSC = HS            HS oscillator
;     FOSC = ERCCLKOUT     External RC oscillator, CLKOUT function on OSC2
;     FOSC = ECCLKOUTH     EC, CLKOUT function on OSC2 (high)
;     FOSC = ECH           EC (high)
;     FOSC = ERC           External RC oscillator
;     FOSC = IRC           Internal RC oscillator
;     FOSC = IRCCLKOUT     Internal RC oscillator, CLKOUT function on OSC2
;     FOSC = ECCLKOUTM     EC, CLKOUT function on OSC2 (medium)
;     FOSC = ECM           EC (medium)
;     FOSC = ECCLKOUTL     EC, CLKOUT function on OSC2 (low)
;     FOSC = ECL           EC (low)
Suerte.
 
Última edición:
#3
Gracias por la informacion y lo siento un monton por no especificar el lenguaje y compilador que utilizo! se me habia olvidado mencionarlo

Resulta que estaba interesado en Lenguaje C, y compilo con el CCS, asi que tu aporte no me vale :(

Muchas gracias de todas formas
 
#4
Resulta que estaba interesado en Lenguaje C, y compilo con el CCS, asi que tu aporte no me vale :(
La información de los archivos que ofrece Microchip sirven para cualquier lenguaje de programación,
siempre y cuando sepas comprender su significado. :cool:
Con esa información puedes establecer los que tu deseas,
escribiéndolos como el compilador que uses, los entienda.

Si dices que usas CCS, entonces abres el PIC Wizard y los seleccionas.
Te dará un código como este...
Código:
#include <18F14K22.h>
#FUSES NOWDT, WDT128, HS, PUT, NOBROWNOUT, NOHFOFST, NOLVP, NOXINST
#use delay(clock=64000000)
Suerte.
 
Última edición:

Temas similares

Arriba