Autor Tema: Reloj interno PIC 18f2525/2620/4525/4620 (funcionamiento)  (Leído 4295 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Reloj interno PIC 18f2525/2620/4525/4620 (funcionamiento)
« en: 13 de Septiembre de 2009, 15:23:50 »
Saludos a todos,

Hoy me gustaría iniciar un debate del maravilloso reloj interno de los PICs mencionado en el titulo, que puede llegar a velocidades sorprendentes de 32 MHZ!! Sin la necesidad de cristales o circuitos RC externos.

Aunque estoy esperando a que llegue el pedido que hice desde USA por un 18F4620, ya me he leído el datasheet y voy a tratar de explicar lo que entendí de este.

Tenemos 3 relojes internos:
•   INTOSC (reloj principal)
•   INTRC (o reloj secundario)
•   TIMER1 (en realidad no entiendo cómo funciona este)

INTRC o reloj secundario: como lo dice su nombre, internamente el PIC tiene un circuito RC, capaz de generar 31 KHz.
Este reloj secundario es muy importante para los respaldo de cristales, es decir cuando uno de estos falla, con ayuda de la opción Fail-Safe Clock Monitor (FSCM). El FSCM es capaz de remplazar el reloj externo en caso de que este llegara a fallar, me parece que esta es una de las mejores opciones que microchip pudo haber sacado al mercado.

INTOSC o reloj principal: su fuente principal son 8 MHz aunque con la ayuda de un postscaler puede variar su frecuencia de 31KHz a 8 maravillosos MHz.
La opción que mejora aun mas este reloj principal es su PLL x4 interna, esto quiere decir que es programable mediante software a diferencia de HSPLL común y silvestre :-) Con la ayuda de este PLL x4 podemos obtener 16 y 32 rapidísimos MHz, ya que solo acepta cuando tiene en la salida de INTOSC  4 o 8 MHz (pero sinceramente quien quiere más para un cristal interno, para mí esto es un regalo de los DIOSES).

TIMER1, por lo que alcancé a leer es un reloj interno también de 31 KHz que se puede implementar como fuente de reloj para el PIC.


Y acá viene algo que quiero informar del compilador PCWHD, en la ayuda del  PIC WIZARD, al configurar los pines de reloj interno en la lista GENERAL,  sale como configuración “INTERNAL RC OSC” para mí está mal dicho, debería ser “INTERNAL OSC” ya que eso es lo único que se puede configurar con los FUSE. Para configurar el reloj interno se hace en la lista “Intr Oscillator Config” y se toma las decisiones según la configuración deseada, que como dije anteriormente se configura en modo software

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: Reloj interno PIC 18f2525/2620/4525/4620 (funcionamiento)
« Respuesta #1 en: 13 de Septiembre de 2009, 15:25:46 »
•   Configuración INTRC:
Los registros involucrados son:
CONFIG1H <FOSC3:FOSC0> = 1001 (SALIDA DE freq/4 EN RA6) o 1000 (RA6 – RA7 E/S)
OSCON:
<IRCF2:IECF0>  <6:4>=000  INTRC directly
<SCS1:SCS0> <0:1>= 1X Internal OSC CLOCK
OSCTUNE<7>=0 para decir que se utiliza el reloj RC interno.
Configurando estos registros podríamos obtener una velocidad de 31 KHz sacado directamente del reloj RC interno de nuestro PIC.

•   Configuración INTOSC:
CONFIG1H <FOSC3:FOSC0> = 1001 (SALIDA DE freq/4 EN RA6) o 1000 (RA6 – RA7 E/S)
<IRCF2:IRCF0>  <6:4>
111 = 8 MHz (INTOSC drives clock directly)
110 = 4 MHz
101 = 2 MHz
100 = 1 MHz (3)
011 = 500 kHz
010 = 250 kHz
001 = 125 kHz
000 = 31 kHz INTOSC/256

<SCS1:SCS0> <0:1>= 1X Internal OSC CLOCK
OSCTUNE<7>=1 para indicar que el reloj Principal es el encargado.
OSCTUNE<6>
1 = PLL x4 encendido, solo funciona cuando IRCF2:IRCF0 están en 111 ó 110
0= PLL x4 apagado


•   Configuración TIMER1:
CONFIG1H <FOSC3:FOSC0> = 1001 (SALIDA DE freq/4 EN RA6) o 1000 (RA6 – RA7 E/S)
OSCCON<1:0> = 01 PARA SELECCIONAR COMO FUENTE DE RELOJ AL TIMER1.


Estoy preparando un ejemplo para configurar el PIC a 32 MHZ con reloj interno, ya que he visto que en la WEB (en español) tenemos poca informacion de este maravilloso PIC que ademas es muy economico (7 dolares).
« Última modificación: 13 de Septiembre de 2009, 15:30:49 por fidodido18 »