Clock Controller/es

From Qi-Hardware
Jump to: navigation, search

Clock Controller

La lógica de reloj del procesador Ingenic jzXXXX, puede generar las señales requeridas para el correcto funcionamiento de todo el SoC.

Con esta lógica se pueden generar relojes lentos sin la necesidad del PLL. La configuración de la generación de reloj se hace via software, lo que permite optimizar el sistema para reducir el consumo de potencia.

A continuación se muestra una tabla descriptiva de los relojes:


Señal Descripción
CCLK Reloj utilizado para operaciones internas como la ejecución de instrucciones desde la memoria caché este reloj puede ser deshabilitado durante el modo DOZE y IDLE.
HCLK Señal de reloj para el manejo del bus del sistema y puede ser deshabilitado en el modo SLEEP
PCLK Reloj para dispositivos que usan el bus APB(Advanced Peripheral Bus)
MCLK Reloj para el controlador EMC(External Memory Controller)
CK0 Reloj SDRAM
LDCLK Reloj para el dispositivo LCD
LPCLK Reloj contador de pixel del LCD
CIM_MCLK Reloj de salida del modulo CIM
CIM_PCLK Reloj de entrada del modulo CIM
I2SCLK Reloj del modulo I2S (Integrated Interchip Sound)
MSCCLK Reloj para el modulo MSC (Midi Show Control)
SSICLK Reloj para el modulo SSI (Synchronous Serial Interface)
EXCLK Reloj de 12Mhz para los protocolos de comunicacion seriales


A continuacion se muestra una tabla con los registros que se modifican para configurar los relojes:

Nombre Descripción Valor Reset Direccion
CPCCR Registro de control de reloj 0x42040000 0x10000000
CPPCR Registro de control del PLL 0x28080011 0x10000010
I2SCDR Divisor de reloj para el bloque I2S 0x00000004 0x10000060
LPCDR Divisor de reloj para el LCD pix 0x00000004 0x10000064
MSCCDR Divisor de reloj MSC 0x00000004 0x10000068
UHCCDR Divisor de reloj de 48M Usb Host Controller 0x00000004 0x1000006C
SSICDR Divisor de reloj del bloque SSI 0x00000004 0x10000074

Todos los registros son de un tamaño de 32 bits y se pueden configurar mediante software

[edit] Registro configuración del PLL(CPPCR)

En este registro accedemos a la configuración del PLL donde podemos modificar los divisores, habilitar o no el PLL y tiempo de estabilizacion del PLL. este registro se inicializa por medio de un reset a 0x280811.

CPPCR.PNG

Descripción de la configuración:

PLLM: Divisor de realimentación, BITS (31:23).

PLLN: Divisor de entrada al PLL, BITS (22:18).

PLLOD: BITS (17:16) divide según la siguiente tabla:

Bits divisor
00 1
01 2
10 2
11 4

Reservado: estos bit no se pueden modificar quedan cargados con ceros. PLLS: bandera de estabilización del PLL; 0 no se a estabilizado el PLL con 1 ya esta estabilizado, BIT 10

PLLEN: habilitamos el PLL con 1 y con 0 lo deshabilitamos, BIT 8.

PLLBP:Conmuta si la señal de reloj sale del PLL o del reloj de 12MHz, BIT 9.


PLLST:tiempo de estabilizacion del PLL se basa en la señal RTCCLK, se inicializa por defecto con H'11' BITS (7:0).

La salida del PLL la podemos obtener de la siguiente ecuación:

M * XIN / (N * NO)

Donde:

XIN: señal de reloj de entrada, en este caso seria 12MHz.

M: PLLM +2

N: PLLN+2

NO: 2PLLOD(0) + PLLOD(1)

Analizando el Valor de reset del registro CPPCR 0x28080011:

CPPCR=101000000010000000000000010001

donde:

PLLM= 101000000= 320

PLLN= 01000 = 8

PLLOD=00

M=322

N=10

NO=1

Por lo tanto la salida del PLL seria 322 * 12MHz / (10) = 386MHz

pero ya que esta el PLL esta deshabilitado Bit 8=0.

y el PB=0: la salida del PLL seria 12MHz

En la siguiente animación se puede ver los bloques del pll y como esta relacionado con el registro CPPCR

Pll.gif

CPCCR REGISTER.png

[edit] Registro de control de reloj

Este registro especifica las razones de división para controlar las señales CCLK, HCLK, PCLK, MCLK y LDCLK.

A continuación se hara un desglose de la configuración de este registro.

I2CS

Este bit permite seleccionar la fuente de reloj entre la salida del PLL y el cristal de 12 MHz para el bloque I2S. Los posibles valores son 0 y 1 y determinan lo siguiente:

0: la fuente de reloj sera EXCLK, o sea la señal directamente del reloj. 1: la fuente de reloj sera la salida del PLL dividida entre el valor almacenado en el registro I2SDIV.

Cpccr.gif

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export