3 EL CIRCUITO DE RELOJ

Anuncio
3. El Circuito de Reloj
3 EL CIRCUITO DE RELOJ
La Figura 3-1 muestra el complejo circuito de reloj de los PIC32MX. Todos los
microcontroladores PIC desde el primero, el PIC16C54, tienen un circuito de oscilador
flexible que ha ido evolucionando gradualmente hasta la forma presenta ofrecida por el
PIC32MX [13] .
A continuación se explicarán las opciones de reloj que nos proporciona este módulo
y el uso de cada una de estas.
Figura 3-1. Circuito de Reloj [9]
De la Figura 3-1 vemos que existen 5 osciladores, o fuentes de reloj. Dos de estas
usan osciladores internos y las otras 3 usan cristal externo o circuito oscilador.
Para lograr mayores frecuencias, dentro del circuito de reloj existen circuitos PLL
(Phase Locked Loops) que permiten multiplicar la frecuencia de la fuente de reloj, y
también se tienen divisores de frecuencia para reducir la frecuencia de reloj.
Ing. Juan Ramon Terven Salinas
26
3. El Circuito de Reloj
Del lado derecho de la Figura 3-1 vemos que existen 3 relojes principales dentro del
PIC32:
1. El reloj del sistema (SYSCLK) usado por el CPU y algunos periféricos.
2. El reloj de periféricos (PBCLK) usado por la mayoría de los periféricos.
3. El reloj del USB (USBCLK) usado por el USB.
Tal vez el circuito de reloj de la Figura 3-1 parezca intimidante, sin embargo existen
dos razones por las cuales los microcontroladores PIC ofrecen tantas opciones de reloj:
Rendimiento y Consumo de energía.
Rendimiento vs Consumo de Energía
En los circuitos embebidos, ya sea que el dispositivo sea alimentado con baterías o
tenga una fuente de alimentación dedicada; se tienen 2 parámetros importantes que
tomar en cuenta:
•
El Rendimiento se refiere a cuanto trabajo puede realizar el microcontrolador
por unidad de tiempo. Este parámetro es muy importante en aplicaciones de
tiempo real.
•
El Consumo de Energía define el tamaño y el costo de la fuente de alimentación.
Además si el dispositivo es alimentado con baterías, el consumo de energía
define la duración de la batería.
El detalle aquí es que estos dos parámetros están directamente relacionados. Ya que
si aumentamos el rendimiento del procesadores por medio del incremento de la
frecuencia del reloj, también aumenta el consumo de energía.
Esta relación esta dada por la fórmula de Potencia Dinámica, la cual es la potencia
consumida por el chip en funcionamiento [15] .
De acuerdo a la hoja de datos [9] , el PIC32MX534F064H consume un máximo de
39 mA funcionando a su máximo de 80 MHz. Sin embargo si bajamos el reloj a 4 MHz
el PIC32 sólo consume 6 mA. Si nos vamos al extremo y usamos el oscilador interno de
baja velocidad (31 kHz), el PIC32 consume solo 100µA.
Ing. Juan Ramon Terven Salinas
27
3. El Circuito de Reloj
A continuación analizaremos la generación de los 3 relojes principales del
PIC32MX.
Generación del System Clock (SYSCLK)
El reloj del sistema o SYSCLK puede ser generado por cualquiera de las 5 fuentes
de reloj mostradas con rojo en la Figura 3-1. A partir de estas fuentes se pueden generar
diversas combinaciones de reloj, ya sea agregando PLL y/o divisores de frecuencia. La
Tabla 3-1 muestra las diferentes fuentes de reloj y los valores de los bits de
configuración (POSCMD y FNOSC).
Tabla 3-1. Diferentes fuentes de reloj [7]
Notas:
1. El pin OSCO puede sacar un pulso con frecuencia igual a PBCLK por medio del
bit de configuración OSCIOFNC (OSCIOFNC = ON).
2. Es el modo de reloj predeterminado para el dispositivo no programado.
3. Cuando se usa PLL, el divisor de entrada del PLL debe seleccionarse de tal
modo que resulte en una frecuencia de 4 MHz a 5 MHz.
La frecuencia de SYSCLK máxima soportada por los PIC32MX es de 80MHz. A
continuación se describen las fuentes de reloj para generar el SYSCLK:
Ing. Juan Ramon Terven Salinas
28
3. El Circuito de Reloj
Oscilador Externo Primario (POSC)
Esta fuente de oscilador se usa cuando se requiere un alto rendimiento (alta
velocidad) y alta precisión de reloj. Se usan los pines OSC1 y OSC2 en los cuales se
puede conectar un cristal de cuarzo de hasta 20 MHz o un circuito de oscilador externo
(modo EC).
Se usan 2 ajustes de ganancia: XT para cristales por debajo de 10 MHz y HS para
cristales por encima de 10 MHz.
La Figura 3-2 muestra la conexión del oscilador de cristal externo. El cristal debe
ser del tipo paralelo y los valores de C1 y C2 deben estar en el rango de 22 pF a 33 pF.
Figura 3-2. Oscilador de Cristal
La Tabla 3-2 muestra los distintos modos en los que se puede configurar el oscilador
primario.
Tabla 3-2. Modos del Oscilador Primario
El modo EC se usa cuando queremos reemplazar el oscilador de cristal por un
circuito de oscilador externo. Cuando usamos este modo, el tren de pulsos generado por
el oscilador externo se conecta en el pin OSCI y el pin OSCO se puede usar como un
pin de E/S o se puede configurar para generar un pulso de salida con frecuencia igual a
PBCLK (bit de configuración OSCIOFNC = ON). Vea la Figura 3-3.
Ing. Juan Ramon Terven Salinas
29
3. El Circuito de Reloj
Figura 3-3. Modos de oscilador EC
Phase Locked Loop (PLL)
El PLL del circuito de reloj es un complejo circuito que nos permite modificar la
frecuencia de entrada del oscilador externo primario y del oscilador interno FRC que
veremos mas adelante. Dentro del circuito de reloj se tiene un divisor de frecuencia de
entrada, PLL (multiplicador de frecuencia) y divisor de frecuencia de salida.
Cuando se usa el PLL, el divisor de entrada del PLL debe seleccionarse de tal modo
que resulte en una frecuencia de 4 MHz a 5 MHz; luego configuramos el valor del
multiplicador y el valor del divisor de salida.
Por ejemplo si conectamos un cristal de 8 MHz al oscilador principal y queremos un
SYSCLK de 80 MHz hacemos lo siguiente (vea la Figura 3-4)
1. Divisor de entrada de 1:2 para introducir 4 MHz al PLL.
2. Multiplicador 1 x 20 para lograr 80 MHz
3. Divisor de salida de 1:1.
Ing. Juan Ramon Terven Salinas
30
3. El Circuito de Reloj
Figura 3-4. Configuración para 80 MHz con cristal de 8 MHz [13]
En el primer programa desarrollado en el capítulo anterior se configuró para un
SYSCLK de 80 MHz con la configuración de la Figura 3-4 usando los Bits de
Configuración. A continuación se muestran los bits de configuración usados para
configurar el Oscilador Primario:
#pragma config POSCMOD = HS, FNOSC = PRIPLL, FPLLMUL = MUL_20
#pragma config FPLLIDIV = DIV_2, FPLLODIV = DIV_1
POSCMOD = HS –Indica oscilador de cristal mayor a 4 MHz. En nuestro caso 8 MHz.
FNOSC = PRIPLL –Indica Oscilador Primario (XT, HS o EC) con PLL.
FPLLMUL = MUL_20 –Indica multiplicador de frecuencia x 20.
FPLLIDIV = DIV_2 –Indica Divisor de entrada 1:2.
FPLLODIV = DIV_1 –Indica Divisor de salida 1:1.
Ing. Juan Ramon Terven Salinas
31
3. El Circuito de Reloj
Oscilador Externo Secundario (SOSC)
El oscilador externo secundario o SOSC está diseñado específicamente para 2
funciones:
1. Como fuente de oscilador principal para aplicaciones de muy baja potencia (bajo
consumo de energía).
2. Como fuente de reloj para el Timer1 o el módulo RTCC (Reloj de tiempo real y
calendario) para aplicaciones de reloj en tiempo real.
Se usan los pines SOSCO y SOSCI para conectar un cristal de 32.768 kHz.
Para seleccionar el Oscilador Externo Secundario como fuente de oscilador del chip
activamos el siguiente bit de configuración:
#pragma config
FNOSC = SOSC
Para activar el Oscilador Externo Secundario para fuente de reloj de Timer1 o RTCC
activamos el siguiente bit de configuración:
#pragma config
FSOSCEN = ON
De la Figura 3-1 vemos que esta fuente de reloj no cuenta con PLL para multiplicar la
frecuencia.
Oscilador Interno de Alta Velocidad (FRC)
Este Oscilador está diseñado para aplicaciones de alto rendimiento pero sin
precisión de reloj a diferencia del Oscilador Externo Primario. Esta fuente de oscilador
consiste de un oscilador interno de 8 MHz con un error de ±2% en la frecuencia.
La ventaja de esta fuente de reloj es que no requiere componentes externos, además
que cuenta con los mismos mecanismos que el reloj externo primario para aumentar la
frecuencia. Con este oscilador podemos trabajar a la frecuencia máxima del PIC32 sin
tener que agregar ningún cristal externo.
La Figura 3-5 muestra una porción del circuito de reloj del PIC32 encerrando con
rojo las opciones que provee el oscilador FRC.
Ing. Juan Ramon Terven Salinas
32
3. El Circuito de Reloj
Figura 3-5. Opciones de FRC [13]
Cualquier de estas opciones las escogemos con los bits de configuración mostrados en
la Tabla 3-3.
Tabla 3-3. Opciones de reloj FRC en bits de configuración [12]
Por ejemplo si queremos usar el oscilador FRC con PLL para obtener un SYSCLK de 80
MHz, definimos los bits de configuración de la siguiente manera:
#pragma
#pragma
#pragma
#pragma
#pragma
config
config
config
config
config
POSCMOD = OFF //Oscilador Primario desactivado
FNOSC =FRCPLL //Fuente de oscilador FRC con PLL
FPLLIDIV = DIV_2 //Divisor de entrada FRC/2
FPLLMUL = MUL_20 //PLL x 20
FPLLODIV = DIV_1 //Sin divisor de salida
Ing. Juan Ramon Terven Salinas
33
3. El Circuito de Reloj
Oscilador Interno de Baja Potencia (LPRC)
Esta fuente de reloj se usa para aplicaciones de baja velocidad (bajo consumo de
energía). A diferencia del oscilador externo secundario, esta fuente de reloj no se
recomienda para sincronizar un reloj de tiempo real (RTC), ya que la precisión de la
frecuencia no es tan buena como el uso de un cristal externo.
Este oscilador además poder ser usado como fuente de oscilador principal, se usa
para el Power-up Timer (PWRT), Watchdog Timer (WDT), Fail Safe Clock Monitor
(FSCM).
En este curso no usaremos esta fuente de reloj como reloj principal.
Generación del Peripheral Bus Clock (PBCLK)
El PBCLK se deriva del reloj del sistema SYSCLK. La Tabla 3-4 muestra los bits
de configuración usados para configurar el PBCLK.
Tabla 3-4. Bits de configuración para PBCLK [12]
Por ejemplo para configurar un PBCLK igual a SYSCLK en los bits de configuración:
#pragma config FPBDIV = DIV_1
Generación del USB Clock (USBCLK)
El módulo USB requiere 48 MHz para su correcto funcionamiento; dicho reloj es
llamado USBCLK. El USBCLK puede ser generado a partir del FRC o del POSC como
se muestra en la Figura 3-6.
Ing. Juan Ramon Terven Salinas
34
3. El Circuito de Reloj
Sin embargo el reloj del USB debe ser preciso y no se puede usar a partir del FRC
para su funcionamiento normal, sólo para detectar actividad y regresar al módulo USB
del modo suspendido.
Figura 3-6. Circuito para generación de USBCLK [7]
En la Tabla 3-5 se muestran los bits de configuración para activar el PLL del circuito de
reloj del USB y el divisor de frecuencia de entrada del PLL.
Tabla 3-5. Bits de configuración para USBCLK [12]
Ing. Juan Ramon Terven Salinas
35
Descargar