4 votos

Configuración de la velocidad del oscilador interno en PIC12F1822

Estoy tratando de conseguir un PIC12F1822 para que se ejecute a 32 MHz. Aquí los bits de código:

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



MOVLW   b'11110000' ; 32MHz HFINTOSC

BANKSEL OSCCON
MOVWF   OSCCON


BANKSEL OSCSTAT
btfss OSCSTAT, HFIOFR      ; Is internal oscillator running?
goto $-1
btfss OSCSTAT, HFIOFL      ; Is internal oscillator locked?
goto $-1


BANKSEL TRISA
CLRF    TRISA


BANKSEL PORTA

ON
    BSF      PORTA,2          ; 1 cycle
    GOTO    OFF               ; 2 cycles

OFF 
    BCF      PORTA,2          ; 1 cycle
    GOTO     ON               ; 2 cycles

Me estoy poniendo un 1.33 MHz de onda cuadrada de PORTA,2, lo que significa que el reloj está funcionando a 8MHz... El PLL es definitivamente de trabajo, aunque, como si lo apago, el freqency gotas para 333KHz (2MHz)

De acuerdo con el depurador (PicKit3), OSCCON es obtener el valor correcto.

El chip está funcionando a 5 V.

Alguna idea?

4voto

jason saldo Puntos 5036

El reloj de instrucciones en esta parte (y la mayoría de los PIC en general) se ejecuta en \$ \frac{F_{OSC}}{4}\$.

Cada ciclo de instrucción es \$ \frac{4}{32 MHz} = 125ns\$

lo que tiene mucho sentido cuando se describe una onda cuadrada de salida de 1.33 MHz

(6 relojes totales = \$ 750ns\$ = 1.33 MHz)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X