La frecuencia de una MCU es mayor que la frecuencia de un cuarzo

8

¿Cómo es posible que en una MCU LPC3141 la MCU tenga una frecuencia de 270MHz mientras que el cristal de cuarzo de 12MHz se usa en el oscilador (dentro de la unidad de generación de reloj)? No tiene ningún sentido para mí...

¿Podría alguien explicarme?

71GA
fuente

Respuestas:

11

Esto es muy común para los procesadores por una variedad de razones. Primero, el reloj tiende a ser la señal de frecuencia más alta en un sistema, por lo que usar un oscilador de frecuencia más baja reducirá la interferencia de RF radiada. En segundo lugar, generar la frecuencia del reloj central en el chip significa que la velocidad del reloj puede ser configurable. Bajar la velocidad del reloj en CMOS ahorra energía, por lo que al darle a la CPU la capacidad de controlar su propia velocidad de reloj, el software puede escalar la velocidad de la CPU según sea necesario para reducir el consumo de energía. Esto también se hace en su computadora de escritorio o portátil: el núcleo funciona a una velocidad de 2 a 3 GHz, pero nada en la placa base se ejecuta tan cerca, excepto los buses serie (SATA, PCIe y USB 3).

Esta generación de reloj se realiza con un dispositivo llamado PLL (Phase Locked Loop). La mayoría de los PLL contienen un oscilador controlado por voltaje (VCO), uno a tres divisores, un comparador de fase y un filtro. La idea básica es bloquear la salida del VCO en un múltiplo entero de la frecuencia del reloj de referencia. La parte principal del PLL genera el voltaje del variador para el VCO. Esto se hace dividiendo la salida del VCO y realizando una comparación de fase con el reloj de referencia. Si la fase es adelantada o retrasada, se produce un voltaje de error positivo o negativo. Este voltaje se integra en el filtro de bucle y luego se pasa a la entrada del VCO. Si la fase es líder, el voltaje de control de VCO se reducirá y la frecuencia de VCO disminuirá. Si la fase está retrasada, el voltaje de control de VCO aumentará y la frecuencia de VCO aumentará. Eventualmente, la salida de VCO dividida y el reloj de referencia coincidirán en fase y frecuencia, y el PLL se bloqueará.

Este método solo puede generar múltiplos enteros de la frecuencia del reloj. Si el oscilador de referencia es de 12 MHz, entonces una división por 2 en el PLL dará como resultado una multiplicación por 2 para obtener una frecuencia de salida de 24 MHz. Una división por 3 producirá 36 MHz. La división por 4 producirá 48 MHz, etc.

Agregar otro divisor en la entrada o salida permite la generación de frecuencia de reloj fraccional. La división por 2 y la multiplicación por 3 en el PLL producirían 18 MHz. La división por 2 y la multiplicación por 5 producirían 30 MHz. La división por 2 y la multiplicación por 45 produciría 270 MHz.

Otra consideración es que el rango de frecuencia del VCO a menudo es limitado. Esto puede evitar la generación de frecuencias que requieren grandes divisores porque entonces la frecuencia de VCO sería demasiado baja o demasiado alta. Agregar otro divisor para poder dividir tanto la entrada de referencia como la salida de PLL mitiga este problema de alguna manera para que el PLL pueda generar un rango más amplio de frecuencias. Siempre que la división no sea un número primo, se puede dividir entre los divisores de entrada y salida para que el VCO esté trabajando en su rango de frecuencia de operación.

alex.forencich
fuente
3
El PLL no está restringido a múltiplos enteros, porque también puede colocar un divisor en la referencia. O puede usar un contador para tragar pulso.
Dietrich Epp
1
Sí, lo mencioné. Con solo un divisor, solo obtienes múltiplos enteros. Pero si agrega más divisores, puede generar tasas de reloj fraccionarias. Con tres divisores, puede asegurarse de que está trabajando dentro del rango del VCO en un rango de frecuencia de salida más amplio. Sin embargo, un contador de deglución no es una buena idea para un reloj, ya que aumentará enormemente la fluctuación.
alex.forencich
6

Esto se hace con un llamado multiplicador de bucle de fase bloqueada, vea también wiki . Se ejecuta un pequeño oscilador controlado por voltaje (VCO) en el microcontrolador, que ha sido especialmente diseñado para funcionar establemente alrededor de la frecuencia del núcleo operativo deseada. Esta frecuencia se divide a través de una cascada de chanclas y se compara con la frecuencia de cristal. El error resultante se retroalimenta al VCO para corregirlo. Cuando ambas frecuencias están finalmente en fase, se dice que están bloqueadas en fase y los relojes MCU pueden ser activados desde el VCO.

usuario36129
fuente
2

Dentro de una IMU hay multiplicadores de hardware que multiplican el reloj de entrada de 12MHz a valores más altos. Esto se puede lograr con algo llamado Phase Lock Loop. Imagine algo como este chip, el NB3N502 ( hoja de datos ) dentro del microcontrolador.

Obtenga más información sobre PLL y la multiplicación de reloj en wiki:

Multiplicadores de CPU

Bucle de bloqueo de fase

EasyOhm
fuente