Exynos4412芯片的时钟管理单元

本章介绍Exynos4412芯片的时钟管理单元(CMU)。CMU控制锁相环(PLL)并为Exynos4412芯片中的各个IP、总线和模块产生时钟。它们还与电源管理单元(PMU)通信,以便在进入某个低功耗模式之前停止时钟,以通过时钟切换来降低功耗。

1.Exynos4412芯片的时钟体系介绍

对于PC机来说,CPU、内存、主板、声卡、显卡等等,这些功能部件由不同的芯片组成,在实体上是相互独立的。在嵌入式系统里,一块芯片往往集成了多种功能,比如Exynos4412上面既有CPU,还有音频/视频接口、LCD接口、GPS等模块。这类芯片被称为SoC,即System on Chip,译为芯片级系统或片上系统。在Exynos 4412芯片中,它以异步方式为功能块提供时钟,以提供更广泛的工作频率选择。它还简化了物理实现。

不同的模块往往工作在不同的频率下,在一个芯片上采用单时钟设计基本上是不可能实现的,在SoC设计中采取多时钟域设计。4412的时钟域有5个,如下图1所示。

                                                                              图1. Exynos 4412芯片的时钟域

这5个时钟域名如下(下文中的BLK表示block,模块):

CPU_BLK:内含Cortex-A9 MPCore处理器、L2 cache控制器、CoreSight(调试用)。CMU_CPU用于给这些部件产生时钟。

DMC_BLK:内含DRAM内存控制器(DMC)、安全子系统(Security sub system)、通用中断控制器(Generic Interrupt Controller,GIC)。CMU_DMC用于给这些部件产生时钟。

LEFTBUS_BLK和RIGHTBUS_BLK:它们是全局的数据总线,用于在DRAM和其他子模块之间传输数据。它还包含时钟频率为100MHz的全局外设总线。您可以使用100MHz时钟进行寄存器访问。

CMU_TOP:为剩余的功能块生成时钟,包括G3D,MFC,LCD0,ISP,CAM,TV,FSYS,MFC,GPS,MAUDIO,PERIL和PERIR。它产生的总线时钟工作在400/200/160/133/100MHz频率。它还生成各种特殊时钟来操作Exynos 4412芯片中的IP。

另外,异步总线桥插在两个不同的功能块之间。

各个不同的时钟域已经在图中使用不同的颜色的框做了相应的标注。

表1中描述了Exynos 4412芯片中每个功能模块的典型工作频率。

                                                                表1.在Exynos 4412芯片中各个模块的操作频率

从原理图上可知,下图2所示。tiny4412开发板外接24MHz的晶振;但是4412的CPU频率可达1.4GHz。可以想象,一定有硬件部件,把24MHZ的频率提升为1.4GHZ,这个部件被称为PLL。4412内部其他部件也要工作于一定频率,比UART、DDR里等,也应该有PLL把24MHZ的频率提高后供给它们使用。

                    图2. tiny441开发板链接的外部晶振

4412芯片有3个外部初始时钟源:

  • XRTCXTI引脚:接32KHz的晶振,用于实时时钟(RTC)。
  • XXTI引脚:接12M~50MHz的晶振,用于向系统提供时钟。也可以不接。
  • XUSBXTI引脚:接24MHz的晶振,用于向USB和系统提供时钟。

在tiny4412的开发板中,XRTCXTI上没有外接晶振,系统时钟来源是XUSBXTI引脚上接的24MHz晶振。

Exynos4412有4个PLL:APLL、MPLL、EPLL和VPLL;2个PHY:USB PHY和HDMI PHY(PHY:物理层,一般指与外部信号接口的芯片):

  • APLL:用于CPU_BLK;作为MPLL的补充,它也可以给DMC_BLK、LEFTBUS_BLK、RIGHTBUS_BLK和CMU_TOP提供时钟。
  • MPLL:用于DMC_BLK、LEFTBUS_BLK、RIGHTBUS_BLK和CMU_TOP。
  • EPLL:主要给音频模块提供时钟。
  • VPLL:主要给视频系统提供54MHz时钟,给G3D(3D图形加速器)提供时钟。
  • USB PHY:给USB子系统提供30MHz和48MHz时钟。
  • HDMI PHY:产生54MHz时钟。

2.Exynos4412中设置PLL的方法

以图3为例,里面涉及3个概念:

  • MUX:多路复用,即从多个输入源中选择一个;
  • PLL:把低频率的输入时钟提高后输出;
  • DIV:分频器,把高频率的输入时钟降频后输出。

以APLL为例,它的时钟来源可以是XXTI引脚上接的晶振,也可以是XUSBXTI引脚上接的晶振,通过图3中左边的MUX来选择,这个MUX的输出被称为FINPLL。

通过设置APLL的寄存器(根据公式选择参数值,芯片手册上面都有推荐值),可以把FINPLL提高为某个频率输出,假设为1.4GHz,在图上它被命名为FOUTAPLL。

继续往右看图,里面有多个DIV,可以设置对应的寄存器把频率降下来。CPU可以工作于1.4GHz,但是其他模块不能工作于这么高的频率,所以要把频率降下来。

设置PLL的流程如下:

  • 设置PLL的P、M、S值,这是根据期望得到的频率用公式计算出来的;
  • 设置PLL的其他控制参数;
  • 使能PLL;
  • PLL会等待一段时间使得时钟稳定;
  • 设置MUX,选择PLL所输出的时钟。

简单地说,就是先设置,再启动,后使用。

PLL寄存器的设置:

4个PLL的寄存器功能是相似的,这些寄存器可以分为6类,见表2。

表2. PLL的寄存器分类

以APLL为例:

APLL_LOCK(地址:0x10044000)

APLL_LOCK的寄存器格式:

设置APLL的参数并使能它后,APLL并不能立刻输出稳定的时钟,它需要经历一个锁定的时间(lock time)。APLL的最大锁定时间是:(270 x PDIV)个周期。所以APLL_LOCK设置为(270xPDIV)就可以了。PDIV在后面的APLL_CON1寄存器中介绍。

APLL_CON0(地址:0x10044100):

根据M、P、S的值,可以算出APLL的输出时钟:

FOUT=MDIV*FIN/(PDIV*2^{SDIV})

M、P、S的值不能乱取,需要满足一些限制条件(请参考芯片手册),芯片手册里给出了推荐的取值。

APLL_CON1(地址:0x10044104):

该寄存器用于设置BYPASS模式,即APLL是直接输出FIN时钟,还是提升频率后再输出时钟;也用于设置AFC(自动频率控制)功能,暂时无需理会。该寄存器取默认值即可。

CLK_SRC_CPU(地址:0x10044200):

参考"图3. APLL时钟流程图":

  • BIT[0]控制第1个MUX(即MUXAPLL),用于选择是使用FIN还是APLL的输出时钟,这个输出被称为MOUTAPLL。
  • BIT[16]控制第2个MUX(即MUXCORE),用于选择MOUTAPLL还是SCLKMPLL。其中SCLKMPLL由下面的MUXMPLL控制。
  • BIT[24]控制第3个MUX(即MUXMPLL),用于选择FINPLL还是FOUTMPLL,这个输出被称为SCLKMPLL。其中,FOUTMPLL来自MPLL的输出。
  • BIT[20]控制第4个MUX(即MUXHPM),用于选择MOUTAPLL还是SCLKMPLL。
  • CLK_MUX_STAT_CPU(地址:0x10044400):用于读取CLK_SRC_CPU寄存器里所设置的MUX状态。
  • CLK_DIV_CPU0(地址:0x10044500),CLK_DIV_CPU1(地址:0x10044504):

CLK_DIV_CPU1的寄存器格式:

参考"图3. APLL时钟流程图",以CPU的工作频率ARMCLK为例,根据上述表计算ARMCLK的频率:

ARMCLK = MUXCORE的输出/DIVCORE/DIVCORE2
	   = MOUTCORE/(CORE_RATIO + 1)/DIVCORE2
	   = MOUTCORE/(CORE_RATIO + 1)/(CORE2_RATIO + 1)
MOUTCORE表示MUXCORE的输出,在MUXAPLL和MUXCORE都设置为0时,它等于"MDIV x FIN / (PDIV x 2 ^ SDIV)"。
  • CLK_DIV_STAT_CPU0(地址:0x10044600),CLK_DIV_STAT_CPU1(地址:0x10044604)用于判断设置分频参数后,分频器输出是否已经稳定。
  • CLK_GATE_IP_CPU(地址:0x10044900)用于控制是否给某个模块提供时钟,暂时不用理会。

本文结束!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Exynos 4412是一款由三星公司设计的系统芯片,用于移动设备和嵌入式系统。这款芯片采用了ARM架构,并且拥有强大的处理能力和丰富的功能。 Exynos 4412芯片手册是为了帮助开发者和制造商了解其技术规格和配置而撰写的指南。手册详细介绍了该芯片的各个方面,包括硬件架构、主要组件、功能特性等。 首先,手册介绍了Exynos 4412的硬件架构。它由多个处理核心组成,每个核心可以同时运行多个线程,以提供高性能的处理能力。此外,芯片还包括了与外部设备通信的接口,如USB、UART和SPI。 手册还介绍了Exynos 4412芯片的主要组件,例如内存控制器和图形处理器。内存控制器负责管理存储器的分配和访问,而图形处理器则处理图形相关的任务,为用户提供流畅的视觉体验。 此外,手册还详细介绍了Exynos 4412芯片的功能特性。它支持多种通信技术,例如蓝牙、Wi-Fi和LTE,使设备能够实现无线连接和高速数据传输。此外,芯片还支持多媒体编解码,包括音频和视频格式的编解码,以实现高质量的音视频播放和录制。 总之,Exynos 4412芯片手册是一本详细介绍该芯片技术规格和配置的指南。通过阅读手册,开发者可以更好地了解该芯片的功能和特性,从而更高效地开发相关产品和应用。 ### 回答2: Exynos 4412芯片是由三星电子推出的一款处理器芯片。它是一款基于ARM架构的处理器,采用四核心设计,主频高达1.4GHz。 Exynos 4412芯片手册包含了该芯片的详细规格和功能说明,旨在向芯片开发者和研究人员提供相关的参考信息。手册主要涵盖以下几个方面: 1. 芯片架构:手册介绍了Exynos 4412芯片的整体架构,包括处理器核心、内存管理单元和外设控制器等组成部分。这些信息对于理解芯片的工作原理和性能分析至关重要。 2. 功能特性:手册详细介绍了Exynos 4412芯片支持的各种功能和技术,包括多路复用、中断处理、DMA控制等。这些特性使得该芯片具备出色的性能和可扩展性。 3. 接口和外设:手册列举了Exynos 4412芯片所支持的各种接口和外设,如UART、SPI、I2C、USB、HDMI等。开发者可以根据手册提供的资料,进行硬件电路设计和软件开发的相关工作。 4. 芯片调试和测试:手册提供了一些关于Exynos 4412芯片调试和测试的建议和指导,包括调试接口的使用、性能测试工具的使用等。这些信息有助于开发者更好地评估芯片的性能表现和进行故障排除。 总之,Exynos 4412芯片手册是Exynos 4412芯片开发者的重要参考资料,它提供了关于芯片架构、功能特性、接口和外设等方面的详细说明。开发者可以根据手册提供的信息,进行芯片的设计、调试和测试工作,从而开发出更加稳定和高效的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值