目录

 

1.原理图

2.数据手册查阅

3.代码编写

4.参考资料


1.原理图

s5pv210开发与学习:1.11之裸机时钟系统_数据

2.数据手册查阅

2.1时钟域

s5pv210开发与学习:1.11之裸机时钟系统_数据_02

S5PV210由三个时钟域组成,分别是主系统(MSYS),显示系统(DSYS)和外围设备系统(PSYS),如图3-1所示。
•MSYS域包括Cortex A8处理器,DRAM存储器控制器(DMC0和DMC1),3D,内部SRAM(IRAM和IROM),INTC和配置接口(SPERI)。 Cortex A8仅支持同步模式,因此它必须与200MHz AXI总线同步运行。
•DSYS域包括与显示相关的模块,包括FIMC,FIMD,JPEG和多媒体IP(所有其他X,L和T块中提到的IP),如图3-1所示。
•PSYS域用于安全性,I / O外设和低功耗音频播放。
•每个总线系统分别以200 MHz(最大),166 MHz和133 MHz运行。 有两个不同域之间的异步总线桥(BRG)。

2.2时钟描述

s5pv210开发与学习:1.11之裸机时钟系统_寄存器_03

S3PV210的时钟分类如图3-2所示。 S5PV210的顶级时钟包括:
•来自时钟板的时钟,即XRTCXTI,XXTI,XUSBXTI和XHDMIXTI。
•来自CMU的时钟(例如,ARMCLK,HCLK,PCLK等)。
•USB PHY的时钟
•来自GPIO管脚的时钟

2.2.1、时钟管脚的时钟
时钟管脚提供以下时钟。但是,您可以禁用晶体时钟管脚。
•XRTCXTI:指定带有XRTCXTI和XRTCXTO引脚的32.768 KHz晶体时钟管脚。 RTC使用此时钟作为实时时钟的来源。
•XXTI:使用XXTI和XXTO引脚指定来自晶体时钟管脚。当未在商业中使用USB PHY时置位后,CMU和PLL使用该时钟为模块生成其他时钟(APLL,MPLL,VPLL和EPLL。)。的输入频率范围为12到50 MHz。建议使用24MHz晶体,因为iROM设计基24MHz输入时钟。
•XUSBXTI:使用XUSBXTI和XUSBXTO引脚指定来自晶体垫的时钟。该时钟提供给APLL,MPLL,VPLL,ELL和USB PHY有关USB PHY时钟的更多信息,请参见第8.4章“ USB2.0 HOST控制器”和8.5“ USB2.0 HS OTG”。建议使用24MHz晶体,因为iROM是根据24MHz输入时钟设计的。
•XHDMIXTI:使用XHDMIXTI和XHDMIXTO引脚指定27MHz晶体垫上的时钟。 VPLL或HDMI PHY为电视编码器生成54MHz时钟。
•XXTI和XXTO使用宽范围的OSC管脚。
•XUSBXTI和XUSBXTO使用各种OSC管脚。
•XHDMIXTI和XHDMIXTO使用各种OSC管脚。
•XRTCXTI和XRTCXTO使用OSC垫进行RTC。
•ARMCLK指定Cortex A8的时钟(最高1GHz)。
•HCLK_MSYS为MSYS时钟域指定AXI时钟,如图3-1所示。
最大工作频率高达200MHz。
•PCLK_MSYS为MSYS时钟域指定APB时钟,如图3-1所示。
最大工作频率高达100MHz。
•HCLK_DSYS为DSYS时钟域指定AXI / AHB时钟,如图3-1所示。
最大工作频率高达166MHz。
•PCLK_DSYS为DSYS时钟域指定APB时钟,如图3-1所示。
最大工作频率高达83 MHz。
•HCLK_PSYS为PSYS时钟域指定AXI / AHB时钟,如图3-1所示。
最大工作频率高达133MHz。
•PCLK_PSYS为PSYS时钟域指定APB时钟,如图3-1所示。
最大工作频率高达66 MHz。
•特殊时钟指定除总线时钟和处理器内核时钟以外的所有时钟。

2.2.2CMU的时钟

CMU使用时钟板中的时钟(即XRTCXTI,XXTI,XUSBXTI和XHDMIXTI),四个PLL(即APLL,MPLL,EPLL和VPLL),USB PHY和HDMI PHY时钟。这些时钟中的一些可以被选择,预先缩放并提供给相应的模块。
建议将24MHz输入时钟源用于APLL,MPLL,EPLL和VPLL。
为了产生内部时钟,使用了以下组件。
•APLL使用FINPLL(参见图3-1)作为输入来生成30MHz到1GHz。
•MPLL使用FINPLL作为输入来生成50MHz到2GHz。
•EPLL使用FINPLL作为输入来产生10MHz到600MHz。
•VPLL使用FINPLL或SCLK_HDMI27M作为输入来生成10MHz到600MHz。该PLL产生54MHz
视频时钟。
•USB OTG PHY使用XUSBXTI生成30MHz和48MHz
•HDMI PHY使用XUSBXTI或XHDMIXTI生成54MHz
在典型的S5PV210应用中,
•Cortex A8和MSYS时钟域使用APLL(即ARMCLK,HCLK_MSYS和PCLK_MSYS)。
•DSYS和PSYS时钟域(即HCLK_DSYS,HCLK_PSYS,PCLK_DSYS和PCLK_PSYS)和
其他外设时钟(即音频IP,SPI等)使用MPLL和EPLL。
•视频时钟使用VPLL

时钟控制器允许绕过PLL以获得慢速时钟。 它还从每个模块连接/断开时钟(时钟门控)使用软件,从而降低了功耗。

2.3时钟关系

时钟具有以下关系:
•MSYS时钟域
− freq(ARMCLK)= freq(MOUT_MSYS)/ n,其中n = 1〜8
− freq(HCLK_MSYS)= freq(ARMCLK)/ n,其中n = 1〜8
− freq(PCLK_MSYS)= freq(HCLK_MSYS)/ n,其中n = 1〜8
− freq(HCLK_IMEM)= freq(HCLK_MSYS)/ 2
•DSYS时钟域
− freq(HCLK_DSYS)= freq(MOUT_DSYS)/ n,其中n = 1〜16
− freq(PCLK_DSYS)= freq(HCLK_DSYS)/ n,其中n = 1〜8
•PSYS时钟域
− freq(HCLK_PSYS)= freq(MOUT_PSYS)/ n,其中n = 1〜16
− freq(PCLK_PSYS)= freq(HCLK_PSYS)/ n,其中n = 1〜8
− freq(SCLK_ONENAND)= freq(HCLK_PSYS)/ n,其中n = 1〜8
高性能操作的值:
•freq(ARMCLK)= 1000 MHz
•freq(HCLK_MSYS)= 200 MHz
•freq(HCLK_IMEM)= 100 MHz
•freq(PCLK_MSYS)= 100 MHz
•freq(HCLK_DSYS)= 166 MHz
•freq(PCLK_DSYS)= 83 MHz
•freq(HCLK_PSYS)= 133 MHz
•freq(PCLK_PSYS)= 66 MHz
•freq(SCLK_ONENAND)= 133 MHz,166 MHz
•锁相环
− APLL可以驱动MSYS域和DSYS域。它可以产生高达1 GHz,49:51的占空比。
− MPLL可以驱动MSYS域和DSYS域。它提供高达2 GHz的时钟和40:60的占空比。
− EPLL主要用于生成音频时钟。
− VPLL主要用于生成54 MHz的视频系统工作时钟。
−通常,APLL驱动MSYS域,而MPLL驱动DSYS域。
注意:尽管有选择PLL值的公式,但强烈建议仅使用PLL值中的值推荐表。

2.3.1适用于APLL的PLL PMS值推荐值(详见数据手册)
2.3.2适用于MPLL的推荐PLL PMS值(详见数据手册)
2.3.3适用于EPLL的PLL PMS值推荐值(详见数据手册)
2.3.4适用于VPLL的PLL PMS值推荐值(详见数据手册)

2.4时钟产生
图3-3给出了时钟产生逻辑的框图。外部晶体时钟连接到振荡放大器。 PLL将低输入频率转换为S5PV210所需的高频时钟。时钟发生器模块还包括一个内置逻辑,可在每次系统复位后稳定时钟频率,因为时钟需要一段时间才能稳定下来。

图3-3还显示了两种时钟复用器。灰色的时钟复用器表示无干扰的时钟复用器,这是如果更改时钟选择,则不会出现故障。白色的时钟复用器表示非无干扰的时钟复用器,其中更改时钟源时可能会出现毛刺。在使用每个时钟复用器时必须小心。对于无毛刺的复用器,更改时钟选择时,应确保两个时钟源都在运行从一个到另一个。如果不是这种情况,则时钟转换未完全完成,因此产生的时钟输出可能具有未知状态。对于无干扰的时钟复用器,更改时钟选择时可能会产生干扰。
为了防止毛刺信号,建议在尝试更改之前禁用非无毛刺的复用器的输出时钟源。时钟更改完成后,用户可以重新启用非无干扰时钟复用器的输出,因此不会因为时钟变化而引起故障。非无干扰的复用器的屏蔽输出由时钟源控制寄存器。

图3-3中所示的时钟分频器在括号中指示可能的分频值。那些驱动值可以是由时钟分频器寄存器在运行时决定。某些时钟分频器只能有一个分频值,并且用户无法更改它们,并且时钟分频器寄存器中没有相应的字段。

图中最左边XXTI, XusbXTI, XXTI27对应核心板上24M,24M,27M三个晶体,从图片左上脚可以看出,各个锁相环的时钟源,全部可以通过OM[0]管脚配置成XusbXTI,但是USB和MIPI的时钟源只能配置成XusbXTI。可见,我们完全可以将XXTI这颗晶体省掉。 HDMI的时钟也可以配置成三个晶体中的任何一个,而且27M的晶体仅供HDMI使用。如果我们将HDMI的时钟源设置为XusbXTI,那么外面27M的晶体也可以省掉了,这就是x210cv3核心板上省掉两个晶体的原因。冋时,晶体省掉后,意味OM[0]在任何情况下必须设置为1,否则无法启动。
最后面的armclk,各pclk, hclk等时钟全部是通过APLL, MPLL, EPLL, VPLL分频而来,具体他们对应的时钟源,分频系数等,由一串寄存器决定。因此,设置各时钟,即设置各PLL输出时钟,以及分频,选择寄存器即可。

s5pv210开发与学习:1.11之裸机时钟系统_寄存器_04


s5pv210开发与学习:1.11之裸机时钟系统_寄存器_05

2.5时钟配置步骤
时钟配置更改时要遵循的规则:
•无干扰的多路复用器的所有输入必须运行。
•当PLL掉电时,不应选择PLL的输出。
基本SFR配置流程:
开启PLL
(A,M,E,V)PLL_CON [31] = 1; //上电PLL(请参阅(A,M,E,V)PLL_CON SFR)
wait_lock_time; //等待直到PLL锁定
(A,M,E,V)PLL_SEL = 1; //在PLL之后选择PLL输出时钟而不是输入参考时钟
输出时钟稳定。 (参考CLK_SRC0 SFR的0、4、8、12位)
一旦打开任何PLL,就不要关闭它。
更改PLL的PMS值
设置PMS值; //设置PDIV,MDIV和SDIV值
(请参考(A,M,E,V)PLL_CON SFR)
更改系统时钟分频器值
CLK_DIV0 [31:0] =目标值0;
更改特殊时钟的分频器值
CLK_DIV1 [31:0] =目标值1;
CLK_DIV2 [31:0] =目标值2;

2.5.1时钟门控
如果不需要,S5PV210可以禁用每个IP的时钟操作。 这会降低动态功耗。

2.6特殊时钟说明
2.6.1特殊时钟表

s5pv210开发与学习:1.11之裸机时钟系统_寄存器_06

所有可能的时钟源包括XXTI,XUSBXTI,SCLK_HDMI27M,SCLK_USBPHY,SCLK_HDMIPHY,SCLKMPLL,SCLKEPLL和SCLKVPLL。XXTI和XUSBXTI分别表示外部晶体。

SCLK_USBPHY表示USB PHY 48 MHz输出时钟。
SCLK_HDMI27M表示HDMI PHY(HDMI的27 MHz参考时钟)输出。
SCLK_HDMIPHY表示HDMI PHY(PIXEL_CLKO)输出时钟。
SCLKMPLL,SCLKEPLL和SCLKVPLL分别表示MPLL,EPLL和VPLL的输出时钟。

s5pv210开发与学习:1.11之裸机时钟系统_数据_07

2.7寄存器说明(详细的设置说明见CHIP数据手册)
系统控制器控制PLL,时钟发生器,电源管理单元(PMU)和其他与系统有关的单位。 

 

3.代码编写

4.参考资料

1.S5PV210_UM_REV1.1.pdf

2.RAM/SRAM/SDRAM工作原理

3.ROM 、RAM、IROM、IRAM