标签:arm cortex a
ARM cortex a系列的时钟系统是一个非常复杂而且麻烦的东西,下面我们首先明确一些概念和东西。
本部分主要介绍一下时钟系统的初始化工作,以及里面的一些原理。
S5PV210的时钟系统是一个非常麻烦的东西,首先需要时钟信号的产生,时钟发生器只有和晶振一起工作才能产生时钟信号,这两个单独使用的话是没有任何作用的。
时钟系统分为三个大域:即主系统(MSYS),显示系统(DSYS),和外围系统(PSYS)。
(1)MSYS域包括cortexA8处理器,DRAM内存控制器(DMC0和DMC1),3D,内部SRAM((IRAM, and IROM),
INTC和配置接口(SPERI)。cortex—A8仅支持同步模式,因此它必须在200 mhz 的AXI总线上同步操作。
(2)DSYS域包含显示相关模块,包括FIMC FIMD,JPEG,多媒体IPs(所有在X,L,T模块中提到的“IPs”),
(3)PSYS域用于安全、I/O设备,和低功耗音频。
时钟的来源:
1、从时钟信号来,比如XRTCXTI, XXTI, XUSBXTI, 以及 XHDMIXTI
2、从CMU来,例如ARMCLK, HCLK, PCLK
3、从USB协议中来
4、从GPIO中输入
内部外设的时钟来源源于:晶振+时钟发生器+PLL锁相环+分频电路
特别提示:XUSBXTI中,推荐使用24 mhz晶振因为iROM设计的是基于24 mhz的时钟输入。
HDMI:高清晰度多媒体接口(High Definition Multimedia Interface)
AMBA(Advanced Microcontroller Bus Architecture)协议,是一种面向高性能、高带宽、低延迟的片内总线。
它的地址/控制和数据相位是分离的,支持不对齐的数据传输。AXI:一种总线协议。
内部时钟生成,使用以下组件:
APLL以FINPLL作为输入来产生30MHz ~ 1GHz的时钟
MPLL以FINPLL作为输入来产生50MHz ~ 2GHz的时钟
EPLL以FINPLL作为输入来产生10MHz ~ 600MHz的时钟
VPLL使用FINPLL或SCLK_HDMI27M作为输入来生成10MHz~600MHz的时钟,该锁相环生成54 mhz的电子时钟。
USB OTG PHY使用XUSBXTI来产生30MHz和48MHz的时钟
HDMI PHY使用XUSBXTI或者XHDMIXTI来产生54MHz
Cortex A8和MSYS域使用APLL(即ARMCLK, HCLK_MSYS, 和PCLK_MSYS)
DSYS和PSYS clock域(即HCLK_DSYS,HCLK_PSYS,PCLK_DSYS,PCLK_PSYS)和其他外围时钟(即audio IPs, SPI,等)使用MPLL和EPLL
Video时钟(电子/视频时钟使用VPLL
时钟控制器允许绕过PLL来获得低频时钟信号,而且也可以通过软件编程来控制时钟和功能模块的连接和断开。
各个时钟的典型值:
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
PLL锁相环(频率加倍电路)
APLL可以驱动MSYS域和DSYS域. 可以产生达到1 GHz, 49:51占空比的时钟.
MPLL可以驱动MSYS域和DSYS域.它提供 2 GHz和40:60占空比的时钟.
EPLL主要用来产生音频时钟.
VPLL主要用来产生视频系统操作时钟,54 MHz.
比如典型设置中, APLL驱动MSYS域,MPLL驱动DSYS域.
标签:arm cortex a
原文地址:http://11962449.blog.51cto.com/11952449/1840562