PIC18F67J90 Selección de reloj [cerrado]

2

Tengo dos opciones para seleccionar el reloj del sistema:

  1. INTOSC
  2. FOSC

Quiero usar el reloj interno a 8/16 Mhz.

¿Cuál debería seleccionar y cuál es la diferencia entre FOSC e INTOSC?

    
pregunta Embedded Geek

1 respuesta

3

En realidad, tienes más de dos opciones de oscilador ...

  

cuál elegir y cuál es la diferencia entre FOSC y   INTOSC?

Lo primero que debe hacer es seleccionar qué tipo de oscilador desea que sea su oscilador principal del dispositivo ("oscilador primario"). Dijiste que querías usar el oscilador interno.

Para hacer eso tenemos que establecer algunos bits de configuración en el momento del flash. Los bits que nos interesan son los bits FOSC < 2: 0 > del CONFIG2L Configuration Register :

  

FOSC < 2: 0 & gt ;: bits de selección del oscilador

     
  • 111 = ECPLL OSC1 / OSC2 como primario; Oscilador ECPLL con PLL habilitado; CLKO en RA6
  •   
  • 110 = CE OSC1 / OSC2 como primario; reloj externo con salida FOSC / 4
  •   
  • 101 = HSPLL OSC1 / OSC2 como primario; Resonador / cristal de alta velocidad con control PLL por software
  •   
  • 100 = HS OSC1 / OSC2 como primario; cristal de alta velocidad / resonador
  •   
  • 011 = bloque de oscilador interno INTPLL1 con software PLL control; FOSC / 4 salida
  •   
  • 010 = Bloque de oscilador interno INTIO1 con salida FOSC / 4 en RA6 y E / S en RA7
  •   
  • 001 = Bloque de oscilador interno INTPLL2 con software PLL control y E / S en RA6 y RA7
  •   
  • 000 = Bloque de oscilador interno INTIO2 con E / S en RA6 y RA7
  •   

Por lo tanto, debe configurar el FOSC < 2: 0 > Configura los bits a '000' para seleccionar el oscilador interno, sin PLL y sin salida del reloj a ningún pin externo.

PIC18F67J90 tiene dos osciladores internos, sin embargo:

  • un bloque de oscilador interno que proporciona una Reloj de 8 MHz (± 2% de precisión): INTOSC
  • una fuente INTRC (aproximadamente 31 kHz, sobre temperatura estable y VDD)

Obviamente queremos seleccionar el oscilador más rápido (INTOSC). Para hacerlo, debemos establecer el bit INTSRC desde OSCTUNE (Registro de afinación de osciladores):

  

INTSRC: bit de selección de fuente de baja frecuencia del oscilador interno

     
  • 1 = 31.25 kHz reloj del dispositivo derivado de la fuente INTOSC de 8 MHz (dividido por 256 habilitado)
  •   
  • 0 = 31 kHz reloj del dispositivo derivado del oscilador INTRC 31 kHz
  •   

Entonces, INTSRC = 1.

A continuación, deberá configurar la velocidad del oscilador interno. Para el oscilador interno Fast RC (INTOSC), la velocidad de reloj predeterminada es 4 MHz, pero puede cambiarla en tiempo de ejecución modificando los bits IRCF < 2: 0 > desde el OSCCON (Oscilador) Control de Registro) :

  

IRCF < 2: 0 & gt ;: bits de selección de frecuencia de fuente INTOSC *

     
  • 111 = 8 MHz (el reloj de las unidades INTOSC directamente)
  •   
  • 110 = 4 MHz (predeterminado)
  •   
  • 101 = 2 MHz
  •   
  • 100 = 1 MHz
  •   
  • 011 = 500 kHz
  •   
  • 010 = 250 kHz
  •   
  • 001 = 125 kHz
  •   
  • 000 = 31 kHz (desde INTOSC / 256 o INTRC)
  •   

* La modificación de estos bits causará una frecuencia de reloj inmediata   cambiar si el oscilador interno está proporcionando los relojes del dispositivo.

Por lo tanto, deberá configurar el IRCF < 2: 0 > bits a '111' si desea que su oscilador interno se ejecute a 8 MHz.

Eso debería hacerlo ..

Nota 1 : Fosc también puede significar la frecuencia del oscilador. Tenga en cuenta que el reloj del sistema será 4 veces más lento que el Fosc proporcionado (Reloj del sistema = Fosc / 4). Eso significa que si selecciona un oscilador de 8 MHz en frecuencia, el PIC funcionará a 2 MIPS. Esto se debe a que, para un PIC de 8 bits, se necesitan 4 ciclos de reloj para ejecutar una instrucción.

Nota2 : Como siempre, encontrará información completa sobre este tema en hoja de datos .

    
respondido por el m.Alin

Lea otras preguntas en las etiquetas