Cómo hacer que un PIC12F1822 funcione a 32MHz

1

Simplemente no puedo hacer que mi PIC12F1822 cambie a 32MHz (8MHz + 4xPLL) Le digo a OSCCON que cambie a 8MHz, pero, según el depurador, ¡ese valor nunca se carga en él! También espero que el oscilador de alta velocidad esté listo, pero ese bit nunca se establece en OSCSTAT.

Aquí están los fragmentos relevantes de mi código.

__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_19 & _LVP_OFF

; > SNIP <

START
    BANKSEL OSCCON
    movlw 0b11110000
    movwf OSCCON

    BANKSEL OSCSTAT
WaitOsc
    btfss OSCSTAT, 4
    goto WaitOsc

; execution never reaches here

¿Qué estoy haciendo mal?

    
pregunta Rocketmagnet

3 respuestas

3

Descubrí la respuesta, y me siento estupido. Resulta que, mientras que en MPLAB C puedes escribir 0b11110000, en MPLAB ASM, tienes que escribir B'11110000 '. Pero el ensamblador no me advirtió sobre esto.

    
respondido por el Rocketmagnet
0

No estoy muy familiarizado con ese chip, pero sí tengo en cuenta que para obtener más de 16 MHz, entonces el VDD debe ser mayor o igual a 2.5v.

    
respondido por el user3624
0

¿Es su Vdd estable? ¿Tienes tapas de desvío de Vdd a Vss?
¿El chip se comporta normalmente con un programa de prueba? (por ejemplo, pin de palanca). La razón por la que pregunto es que si el oscilador nunca alcanza la estabilidad, es muy probable que sea algo fundamental, como los problemas de alimentación.

    
respondido por el Oli Glaser

Lea otras preguntas en las etiquetas