Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Noviembre del 2017)
733 visualizaciones desde el 9 de Noviembre del 2017
339,3 KB
17 paginas
Creado hace 15a (15/07/2009)
CLOCK GENERATION
MODULE (CGM)
“Módulo de Generación
de Clock”
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Clock Generation Module
Clock
Generation
Module
(CGM)
Serial
Communications
Interface
(SCI)
System
Integration
Module
(SIM)
LVI
IRQ
COP
BREAK
68HC08
CPU
RESET
Timer
Interface
Module
(TIM)
Direct
Memory
Access
Module
(DMA)
Internal Bus (IBUS)
Serial
Peripheral
Interface
(SPI)
Random
Access
Memory
(RAM)
Electronically
Programmable
ROM
Monitor
ROM
Genera la frequencia de Clock base para el MPU
Dos fuentes de clock seleccionables (en el GP32, ver otros derivativos con más variantes):
• Oscilador a Cristal
• Phase Lock Loop (PLL) (Oscilador por enganche de fase)
– Usa un oscilador a cristal de baja frecuencia para producir frecuencias de clock
más altas.
La salida es usada por el “System Integration Module” SIM .
Todos los sub sistemas usan el “system clock” para “ timing”
– Excepto el “Serial Communications Interface Module” SCI
• Usa la frecuencia de oscilador del cristal CGMXCLK o la del Bus .
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Diagrama en Bloques del CGM
CRYSTAL OSCILLATOR
OSC2
OSC1
SIMOSCEN
CGMRDV
CGMRCLK
REFENCE
DIVIDER
V DDA
CGMXFC
V SS
PHASE
DETECTOR
LOOP
FILTER
PLL ANALOG
÷ 2
A
B S*
CGMXCLK
CGMOUT
TO SIM, SCI
TO SIM
*When S = 1, CGMOUT = B
USER MODE
PTC3
MONITOR MODE
CLOCK
SELECT
CIRCUIT
BCS
VRS[7:4]
VOLTAGE
CONTROLLED
OSCILLATOR
LOCK
DETECTOR
BANDWIDTH
CONTROL
INTERRUPT
CONTROL
CGMINT
LOCK
AUTO
ACQ
PLLIE
PLLF
MUL[7:4]
CGMVDV
Curso de Microcontroladores
Familia HC908 Flash de Freescale
DIVIDER
FREQUENCY
CGMVCLK
Parte II
ING. DANIEL DI LELLA
Oscilador a Cristal
Un cristal externo es conectado entre OSC1 y OSC2
CGMXCLK es la salida del oscilador de clock
• Es igual a la frecuencia externa del cristal
• 4 X de la frecuencia interna del Bus (si es seleccionada)
CUANDO SE USA EL VCO PARA GENERAR SYSCLK, EL CRISTAL ES:
• “Bufferiado” para producir CGMRCLK
– Referencia de frequencia para el circuito del PLL
El “SIM module” puede habilitar/desahabilitar el oscilador via
la linea SIMOSCEN
• Detiene el oscilador a cristal y el módulo del PLL
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Módulo PLL
El PLL consiste de:
• Oscilador Controlado por Tensión de ancho de banda programable (VCO)
• Módulo divisor de frecuencia del VCO programable
• Detector de fase
• Filtro de Lazo
• Detector de Enclavamiento
• Opera en Modo “Adquisición” o Modo “Tracking”
CGMVCLK es la salida del “PLL module”
• Es el exacto multiplo entero de CGMXCLK
• 4 X de la frecuencia interna del Bus (si es seleccionada)
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
VCO Programable
Genera la señal CGMVCLK basado en:
• Divisor de Frequencia
– Divide frequencia produciendo “clocks” más rápidos
– Los bits de selección de multiplicación controlan división de Frecuencia
• Detector de Fase
– Compara CGMXCLK y la salida del divisor de Frequencia
– Detecta errores de fase
– Genera pulso de corrección
• Filtro de Lazo
– Convierte el pulso de corrección del detector de fase en tensión de correción para el VCO.
Ancho de Banda programable mejora la inmunidad al ruido
• Los Bits de rango del VCO determinan los limites del Ancho de Banda.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Secuencia de programación del PLL
Ejemplo de Uso
Meta : 8MHz de frecuencia de Bus desde un cristal de 32,768 Khz (baja frecuencia).
1. Seleccionar la frecuencia de Bus deseada, FBUSDES.
2. Calcular la frecuencia de VCO deseada ( 4 veces la FBusDes ), FVCLKDES
FBUSDES = 8 MHz
FVCLKDES = 4 x FBUSDES
FVCLKDES = 4 x FBUSDES = 4 x 8 MHz = 32 MHz
3. Elegir una frecuencia práctica de referencia del PLL , FRCLK.
tipicamente usamos Frclk = 32,768Khz y R = 1 ( reference clock divider ) y P = 0 (ver manual de datos)
FRCLK = 32,768Khz
4. Seleccionar un multiplicador de la frecuencia del VCO , N
N = FVCLKDES / FRCLK ( el entero positivo más cercano )
N = FVCLKDES / FRCLK = 32 MHz / 32,768kHz = 977 ( 3D1 Hexa )
5. Calcular y verifcar la adequación de las frecuencias del VCO y el Bus , FVCLCK y FBUS.
FVCLK = N x FRCLK
FBUS = (FVCLK) / 4 Fbus = 8,003584 Mhz
FVCLCK = N x FRCLK = 977 x 32,768 Khz = 32,014336 MHz
6. Seleccionar un multiplicador de rango( pot. De 2 ) del VCO , E.
De acuerdo a tabla ( ver manual ) para Fvclk = 32 MHz E = 2
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Secuencia de programación del PLL Cont.
7. Seleccionar un multiplicador de rango lineal del VCO, L. L = Redondeo ( Fvclk / 4 x FNOM ) =
32,014336Mhz / 4 x 38,4Khz = 208,4266 = 208 ( D0 hexa ) = L
donde FNOM = frecuencia nominal VCO = 38,4 KHz @ 5.0 Volts
8. Calcular y verificar la frecuencia de centro del rango del VCO,FVRS.
FVRS = L x 2^E x FNOM
[ Fvrs - Fvclk ] < o = FNoM x 2^E /2 cumple !!!
FVRS = L x 4 x FNOM = 208 x 4 x 38,4 KHz = 31,9488 MHz
NOTA:
Si se exceden los valores máximos de la frecuencia del Bus y del VCO puede causar un
“crash” (no funcionamiento) en el MCU !!!. El circuito de PLL posee poco margen de
“overclocking” (excederse del limite de frecuencia de clock), ya que su principal limitación
pasa por la frecuencia máxima que puede generar el VCO dentro del PLL. No ocurre lo mismo
cuando se utiliza el oscilador a cristal externo (OSC1 / OSC2) ya que puede soportar bién el
“overclocking” , pero se debe ser conciente que se está fuera de la curva estadística de
garantía de buen funcionamiento.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Programando el PLL
Programar los registros del PLL según:
A) En el bit “PRE” del PLL Control Register ( PCTL ), programar el
equivalente binario de “P”.
B) En el bit “VPR” del PLL Control Register ( PCTL ), programar el
equivalente binario de “E”.
C) En el “PLL multiplier select register Low y High” ( PMSL ) y
( PMSH ), programar el equivalente binario de “N”.
D) En el PLL range select register ( PMRS ), programar el equivalente binario
de “L”.
E) En el PLL reference divider select register ( PMDS ), programar el
equivalente binario de “R”.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
REGISTROS DEL PLL
PCTL
READ:
WRITE:
PLLF
PRE1 PRE0 VPR1 VPR0
PLLIE
PLLON BCS
RESET:
0
PMSH
READ:
WRITE:
0
RESET:
0
0
0
0
1
0
0
0
0
0
0
0
0 MUL11 MUL10 MUL9 MUL8
0
0
0
0
0
PMSL
READ:
WRITE:
MUL7 MUL6 MUL5 MUL4 MUL3 MUL2 MUL1 MUL0
RESET: 0 1 0 0 0 0 0 0
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
REGISTROS DEL PLL Cont.
PMRS
PMDS
READ:
VRS7 VRS6 VRS5 VRS4 VRS3 VRS2 VRS1 VRS0
WRITE:
RESET:
READ:
0
0
WRITE:
RESET:
0
0
0
0
0
0
0
1
0
0
0
0
0
0
RDS3 RDS2 RDS1 RDS0
0
0
0
1
Estos valores son los que deberían
cargarse en los correspondientes
registros del PLL para obtener una Fbus
= 8.0Mhz, según el ejemplo explicado
anteriormente.
(Ver rutina de ejemplo al final del cap. 7)
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
Tabla resumen:
- Fbus = 8.0Mhz
- FRCLK = 32.768 KHz
- R = 1
- N = 3D1
- P = 0
- E = 2
- L = D0
ING. DANIEL DI LELLA
Información Adicional
- Acquisición vs Tracking -
Modo Adquisición
• Permite grandes correcciones de frecuencia en el “PLL module”.
• La frecuencia no está fija ( not locked ).
Modo Tracking
• La frecuencia del VCO está cerca de la frequencia programada, se requieren solo
pequeña correcciones.
• La frecuencia está fija ( locked ).
Al iniciar el funcionamiento del módulo de PLL, el mismo comienza en el “modo Adquisición”,
ya que la fecuencia del lazo no está estabilizada y el sistema tiende a alcanzar la frecuencia final
por medio de grandes correcciones en frecuencia.
Una vez alcanzada la frecuencia final, y dentro de una “banda de error” típica de estos sistemas
realimentados digitalmente, el PLL pasa a funcionar en “modo tracking” pués las
compensaciones en frecuencia son mínimas y a los efectos prácticos, puede considerarse la
frecuencia de salida como “FIJA”.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
PBWC
READ:
WRITE:
RESET:
AUTO
0
LOCK
0
0
0
0
0
0
Información Adicional
- Auto vs Manual -
0
0
0
0
0
ACQ
0
PLL Bandwidth Control Register (PBWC)
• AUTO - Automatic Bandwidth Control (Acquisition vs Tracking)
1 = Automatic bandwidth control
0 = Manual bandwidth control
• LOCK - Lock Indicator ( se auto setea )
1 = frecuencia del VCO correcta o fijada (locked)
0 = frecuencia del VCO incorrecta o no fija (unlocked)
• ACQ – Acquisition 1 = Tracking mode
0 = Acquisition mode
Cuando se coloca al PLL en modo “AUTO”, el mismo selecciona en forma automática el modo
de seguimiento de la frecuencia (adquisition vs tracking), de esta forma, ante eventuales
“desenganches” del PLL el sistema tenderá a autocorregirse e indicará esta situación por
medio de “flags” especiales y una interrupción específica, si esta fuera habilitada.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Información Adici
Comentarios de: HC908 FLASH, CLOCK GENERATION MODULE (CGM) (0)
No hay comentarios