PIC 16F887 y el misterioso bit de selección de reloj del sistema (SCS)

1

Estoy usando un PIC 16F887 y me gustaría usar el oscilador interno HFINTOSC. Para lograr esto, establezco los bits de IRCF 2: 0 en 110 (preescalado de 4Mhz) y los bits de configuración FOSC 2: 0 en INTOSC.

Ahora debería hacer algo que realmente no puedo entender: de acuerdo con la hoja de datos (ver pág. 61), debo configurar el bit SCS para usar la fuente de reloj interna (vea el MUX final en el diagrama en pag. 61). Debido a que el bit SCS está en el registro OSCON, debería configurarlo programáticamente en mi código, ¡pero el código en sí necesita una fuente de reloj para ser ejecutado! ¿Cómo puedo ejecutar un código para configurar un bit para usar un reloj si el código necesita una fuente de reloj en primer lugar?

Cito la hoja de datos para el bit SCS:

  

4.6.1 BIT DE SELECCIÓN DE RELOJ DEL SISTEMA (SCS) El bit de selección de reloj del sistema (SCS) del registro OSCCON selecciona la fuente de reloj del sistema que se utiliza   Para la CPU y periféricos. • Cuando el SCSbitoftheOSCCONregister = 0, el   la fuente del reloj del sistema está determinada por la configuración del FOSC < 2: 0 >   bits en el Registro de Palabra de Configuración 1 (CONFIG1). •   Cuando el SCSbitoftheOSCCONregister = 1, se elige la fuente del reloj del sistema   por la frecuencia del oscilador interno seleccionada por el IRCF < 2: 0 > pedazos de   El registro OSCCON. Después de un reinicio, el bit SCS del registro OSCCON   siempre se borra.

    

1 respuesta

4

No es necesario que escriba también el bit SCS si ya seleccionó el oscilador interno en los bits de configuración.

  

bit 0 SCS: Bit de selección de reloj del sistema

     
  • 1 = El oscilador interno se usa para el reloj del sistema
  •   
  • 0 = fuente de reloj definida por FOSC < 2: 0 > del registro CONFIG1
  •   

El bit SCS es 0 de forma predeterminada, por lo que el reloj del sistema se selecciona con FOSC < 2: 0 > CONFIG1 bits.

Ni siquiera tiene que configurar el IRCF < 2: 0 > bits, porque su valor de restablecimiento es 110 = 4 MHz.

    
respondido por el m.Alin

Lea otras preguntas en las etiquetas