总结:S5PV210时钟系统

在数据手册《S5PV210_UM_REV1.1》中的section 02_system/3 CLOCK CONTROLLER(354页)

一、时钟域

在S5PV210的SoC中,时钟系统分为三个区域:MSYS、DSYS、PSYS。

(1)MSYS:CPU(Cortex-A8内核)、DRAM控制器(DMC0和DMC1)、IRAM、IROM等

(2)DSYS:主要是视频图像解码相关的时钟

(3)PSYS:内部外设相关(串口、SD、USB、GPIO、IIC、SPI等)

二、时钟源

可以通过四个晶振作为时钟源信号输入,通过MUX开关进行选择,再使用PLL进行倍频。

三、详细分析

需要设置的几个关键寄存器

(1)CLK_SRC0:用来配置时钟源,对应框图中的MUX开关

(2)APLL_LOCK:配置APLL锁相环

(3)MPLL_LOCK:配置MPLL锁相环

(4)CLK_DIV0:配置分频系数

(5)APLL_CON0:配置锁相环倍频系数

(6)MPLL_CON:配置锁相环倍频系数

配置代码如下:

 1 void clock_init(void)
 2 {
 3     // 第1步:设置时钟开关,使用24MHz的原始时钟源
 4     rREG_CLK_SRC0 = 0x0;
 5
 6     // 第2步:设置PLL锁定时间(使用默认值即可)
 7     // 默认是:0x0fff    我们设置为:0xffff
 8     rREG_APLL_LOCK = 0x0000ffff;
 9     rREG_MPLL_LOCK = 0x0000ffff;
10
11     // 第3步:设置DIV分频系数
12     rREG_CLK_DIV0 = 0x14131440;
13
14     // 第4步:设置PLL倍频系数
15     // FOUT = MDIV*FIN/(PDIV*2^(SDIV-1)) = 0x7d*24(0x3*2^(1-1))=1000MHz
16     rREG_APLL_CON0 = APLL_VAL;
17     // FOUT = MDIV*FIN/(PDIV*2^(SDIV-1)) = 0x29b*24(0xc*2^(1))=667MHz
18     rREG_MPLL_CON = MPLL_VAL;
19
20     // 第5步:设置各种时钟开关,使用PLL通过
21     rREG_CLK_SRC0 = 0x10001111;
22 }

最后配置的结果如下:

注意:重点是学会如何看懂这种类型的时钟框图,学会分析这一类的问题

时间: 2024-10-16 21:14:52

总结:S5PV210时钟系统的相关文章

嵌入式Linux裸机开发(六)——S5PV210时钟系统

嵌入式Linux裸机开发(六)--S5PV210时钟系统 一.时钟系统简介 外设工作需要一定频率的时钟,这些时钟都由系统时钟提供.系统时钟一般由外部低频24MHZ晶体振荡器通过锁相环电路PLL倍频产生.通过外部的低频晶体振荡器产生系统时钟不仅可以减少干扰还可以降低成本.外设的工作频率越高,功耗越高,越不稳定.通过关闭外设的时钟可以关闭外设. 二.时钟域 S5PV210 中包含 3 大类时钟 domain, 分别是主系统时钟 domain (简称 MSYS).显示相关的时钟 domain (DSY

9.S5PV210的时钟系统

1.时钟域:MSYS.DSYS.PSYS(1)因为S5PV210的时钟体系比较复杂,内部外设模块太多,因此把整个内部的时钟划分为3大块,叫做3个域.(2)MSYS: CPU(Cortex-A8内核).DRAM控制器(DMC0和DMC1).IRAM&IROM······(3)DSYS: 都是和视频显示.编解码等有关的模块(4)PSYS: 和内部的各种外设时钟有关,譬如串口.SD接口.I2C.AC97.USB等.(5)为什么内部要分为3个域,怎么划分的?因为210内部的这些模块彼此工作时钟速率差异太

SoC时钟系统简介

1.SoC的时钟获得一般有: * 外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少. * 外部晶振+内部时钟发生器产生时钟,大部分低频单片机都是这么工作的. * 外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器分频得到各种频率的时钟,210属于这种. 2.时钟启动过程 在初始化PLL前为晶振的24m主频,然后设定锁相周期,初始化pll,进行倍频.输出信号通过输出到各总线上,不同设备需要不同的分频. 3.PLL:APLL.MPLL.EPLL.VPLL APLL:Cor

ARM cortex a 之时钟系统2

时钟的产生: 振荡放大器连接到了外部晶体时钟 锁相环使得低输入频率转换为高频时钟来适应S5PV210要求.它的时钟发生器块还包括一个内置的 逻辑单元,在每个系统复位后来稳定时钟频率. 必须注意使用每个时钟mux开关.对于无干扰的mux开关,必须保证在时钟选择从一种变成另一种的时候 时钟源正在运行. 时钟系统示意图大体解析:在S5PV210数据手册的时钟系统那里,有两张复杂的时钟发生图. 数据手册把晶振和时钟发生器画在了一起(因为它们只有在一起才能工作).MUX开关是通过寄存器位设置来确定哪条路时

ARM cortex a 之时钟系统1

ARM cortex a系列的时钟系统是一个非常复杂而且麻烦的东西,下面我们首先明确一些概念和东西. 本部分主要介绍一下时钟系统的初始化工作,以及里面的一些原理. S5PV210的时钟系统是一个非常麻烦的东西,首先需要时钟信号的产生,时钟发生器只有和晶振一起工作才能产生时钟信号,这两个单独使用的话是没有任何作用的. 时钟系统分为三个大域:即主系统(MSYS),显示系统(DSYS),和外围系统(PSYS). (1)MSYS域包括cortexA8处理器,DRAM内存控制器(DMC0和DMC1),3D

S5pv210 时钟体系分析

S5PV210 时钟体系 如下面时钟结构图所示,S5PV210 中包含 3 大类时钟域, 分别是主系统时钟域(简称 MSYS).显示相关的时钟域(简称 DSYS). 外围设备的时钟域(简称 PSYS). 1) MSYS:用来给 cortex a8 处理器.DRAM 控制器.3D.IRAM.IROM.INTC(中断控制器)等提供时钟: 2) DSYS:用来给显示相关的部件提供时钟,包括 FIMC.FIMD.JPEG 和 multimedia IPs; 3) PSYS:用来给外围设备提供时钟,如 i

关于STM32时钟系统

初学STM32,感觉最蛋疼的是它的时钟系统,每次看到它的那个时钟树就有点晕,虽然看了很多这方面的资料,甚至也已经写过很多STM32的模块代码,做过一些小项目,但一直还是对这一块模模糊糊,似懂非懂,所以想把自己对它的一点点认识写出来,一步一步,直到完全搞通的那一天,(这些内容并非自己原创,只是想帮助自己理解) 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. HSI是高速内部时钟,RC振荡器,频率为8MHz. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频

(5)MSP430F5529 统一时钟系统UCS

之前有一点漏说明了,先补充上:还有一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务. 该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求.430F5529中MODCLK为5MHZ. *************************************************************** MSP430F5529有多个时钟源,而且很多模块其时钟源都是可以自由选择的.此外,由于一般

STM32时钟系统

一.在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz. ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz.一般接8MHZ. ③LSI是低速内部时钟,RC振荡器,频率为40kHz. ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体. ⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HSE或者HSE/2.倍频可选择为2~16倍,但是其输出频率最大不得超过72