您的位置:首页 > 其它

[004-u-boot-Exynos4412] Clock Management Unit

2017-08-24 20:11 162 查看

0. 前言

本文以Exynos4412芯片为例,介绍了CMU(Clock Management Unit)。CMU通过控制PLL产生系统时钟,总线时钟和外设时钟。

1. 时钟域

Exynos4412包含5个时钟域,如图所示:



CMU_CPU:提供Cortex-A9 MPCore处理器,L2 cache控制器,and CoreSight(调试器)的时钟。

CMU_DMC:提供DRAM内存控制器,安全子系统和通用中断控制器的时钟。

CMU_LEFTBUS / CMU_RIGHTBUS:提供全局数据总线和全局外设总线的时钟,总线用于在DRAM和外设之间进行数据传输。

CMU_TOP:给所有剩余的模块提供时钟,如TV,LCD,CAM等。

2. 时钟源

外部时钟



XRTCXTI:提供RTC的时钟。

XXTI:外部时钟源,一般接12MHz~50MHz的晶振。当前的硬件未使用该时钟源。

XUSBXTI:外部时钟源,推荐为24MHz。当前的硬件使用该时钟源作为系统时钟。

内部时钟

APLL:主要给CPU_BLK提供时钟,也可以作为MPLL的补充。

MPLL:主要给DMC_CLK,LEFTBUS_CLK,RIGHTBUS_CLK和CMU_TOP提供时钟。

EPLL:主要给音频提供时钟。

VPLL:主要给视频提供时钟。

USB PHY:给USB提供30MHz~48 MHz时钟。

HDMI PHY:产生54MHz时钟。

时钟命名规则

FIN~Xpll~:pll的输入时钟。

FOUT~Xpll~:pll的输出时钟。

MOUT~Xpll~:pll经过MUX的输出时钟。

SCLK~Xpll~:PAD上的xpll时钟,可能经过了dividor,也可能就是MOUT~Xpll~。

DOUT~xxx~:dividor的输出时钟。

其中’X’为A/M/E/V

3. 时钟组件

PLL

功能:把低频率的输入时钟提高后输出。

设置步骤:

1. 设置PLL的 P、M、S值,这是根据频率用公式计算出来的(寄存器为 XPLL_CON0)

2. 设置PLL的其他控制参数

3. 使能PLL

4. 等待一段时间使PLL稳定

5. 设置MUX ,选择PLL所输出的时钟



MUX

功能:多路复用,从多个输入源中选择一个作为输出。时钟复用器的配置寄存器被定义为CLK_SRC_XXX。



灰色的时钟复用器表示一种无干扰的时钟复用器,也就是说在改变时钟选区时不受干扰。

对该复用器需要在改变时钟时确保时钟源在工作。如果不能保证,这就表明了选择时钟的过程并没有完成,会导致未知的时钟输出状态。时钟复用器的状态寄存器被定义为CLK_MUX_STAT_XXX。

白色的时钟复用器表示有干扰的时钟复用器,也就是说在改变时钟源时,要遭受脉冲信号。

对该复用器在改变时钟时可能有毛刺信号产生。因此建议在修改时钟复用器之前,先关闭这种复用器的输出功能。在完成选择的更换后,再重新使能复用的输出功能。时钟源屏蔽控制寄存器被定义为CLK_SRC_MASK_XXX。

divider

功能:时钟分频器,可以从其输入源来对时钟进行分频。时钟分频器的配置寄存器被定义为CLK_DIV_XXX。

4. 时钟配置

配置CMU_CPU



配置CMU_DMC



配置CMU_TOP



配置CMU_BUS



配置UART_BLK



配置FSYS_BLK



5. 代码

具体可参考:clock_init_exynos4412.c
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  exynos4