Welcome 微信登录

首页 / 操作系统 / Linux / Exynos 4412 时钟配置

/********************************************************************************* @author    Maoxiao Hu* @version   V1.0.0* @date       Jan-2015******************************************************************************* < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >********************************************************************************/ 时钟初始化的一般方法和顺序,u-boot、普通裸机程序如果需要都可以使用。 —————————————————————————————-本文解决的问题:1、宏观上几个大模块的时钟配置顺序。2、小模块的时钟选择、分频和一般的配置顺序。3、对小模块来说,官方手册推荐的时钟源选择问题。4、本文只以手册的“推荐配置”进行说明,“自由玩法”不保证稳定性。—————————————————————————————-多路选择器选择原则:1、尽量保持默认配置不动。2、尽量选择前端频率最高的源。3、其它手册要求的特殊情况。—————————————————————————————-几个符号:        左边深色的:无抖动多路选择器,无抖动意味着在多路选择切换的瞬间,下游时钟就可以稳定下来。需要注意是在切换时要保证上游时钟已经存在并稳定,不然下游时钟状态不确定。        右边浅色的:有抖动多路选择器,意味着多路选择切换后,要经历一段时间的不稳定时间,但是有稳定后有相应寄存器标志位标示下游时钟已经稳定,这类指示寄存器器一般以CLK_MUX_STAT开头。 —————————————————————————————-全局约束条件:1、无抖动多路选择器的时钟源需要存在并且稳定。2、当某个PLL被设置为关闭状态,是不可以使用它的输出信号的。 —————————————————————————————-晶振说明:由于一般USB IP核需要直接使用高精度时钟,所以在XUSBXTI引脚上接24M晶振,XXTI引脚就不需要接了。手册上说由于iROM代码是根据24M晶振频率设计的,所以24M的选择没什么好说的。 —————————————————————————————-

一、时钟之源PLL配置

      原因:根据全局约束条件2,如果PLL关闭那么不可以使用它的输出,再根据全局约束条件1,多路选择器此时只能选择外部时钟!而24M的时钟直接作为系统的时钟显然是不合适的!      4412有4个PLL:APLL, MPLL, EPLL, and VPLL。推荐使用24M外部晶振作为它们的时钟源。理论上讲,4个PLL均可以在22 ~ 1400MHz之间自由设置,但是手册强烈推荐的频率范围为: /*———————————————*/APLL & MPLL:200 ~ 1400MHzEPLL:90 ~ 416MHzVPLL:100 ~ 440MHz/*———————————————*/ 

1.0 设置PLL_LOCKTIME

        PLL频率从小变到指定频率需要一段时间(图中标红框的部分虽然不是PLL实际波形但可以参考着理解),当PLL频率在变化的时候,比如由复位后的初始的400MHz升到1000MHz, 这时,首先把CPU的频率锁定,因这此时CPU的频率是变化的,频率变化,CPU的状态就无法确定,所以,此时用 PLL_LOCKTIME 将CPU频率锁定一段时间,直到频率输出稳定为止。芯片手册上显示APLL最大的锁定时间为100us(Table 60 -9),如果外部晶振是24MHz,100us换算成tick就是2400个tick,所以APLL_LOCK(Address:0x1004_4000)寄存器该写入0x960MPLL_LOCK(Address:0x1004_0008)寄存器该写入0x190EPLL_LOCK(Address:0x1003_C010)寄存器该写入0xBB8VPLL_LOCK(Address:0x1003_C020)寄存器该写入0x190。  

1.1 APLL & MPLL的倍频值:

设定对应寄存器的 P、M、S 三个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:  

1.2 EPLL的倍频值:

设定对应寄存器的 P、M、S、K 四个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:  

1.3 VPLL的倍频值

设定对应寄存器的 P、M、S、K 四个值,不同的搭配最终频率不同,无须自己计算,系统推荐的搭配如下:  

 1.4 等待PLL稳定

如果PLL输出稳定了,那么PLL_CON0的Bit[29]会由0变1。查询用汇编实现,以APLL为例:/*———————————————————————*/wait_pll_lock:    ldr r1, [r0, r2]    tst r1, #(1<<29)    beq wait_pll_lock    mov pc, lr ldr r0, =CMU_BASE /* 0x10030000 */ldr r2, =APLL_CON0_OFFSET /* 0x14100 */bl wait_pll_lock/*———————————————————————*/ 二、主要模块的初始化顺序 ??虽然官方文档中并没有强制按下面的顺序初始化,但是按照逻辑来讲,是应该使用这个顺序的。  1、CLK_DIV_CPU0[31:0] = target value0?? 2、CLK_DIV_DMC0[31:0] = target value1?? 3、CLK_DIV_TOP[31:0] = target value2?? 4、CLK_DIV_LEFTBUS[31:0] = target value3?? 5、CLK_DIV_RIGHTBUS[31:0] = target value4 上个直观点的图:更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-03/129583p2.htm
  • 1
  • 2
  • 3
  • 下一页
在ARM上安装minicom及“error: conflicting types for "getline"”解决Linux下eMMC芯片版本升级造成的问题相关资讯      Exynos 4412 
  • Exynos 4412 电源管理芯片PMIC 的  (03月29日)
  • 使用Eclipse与jLink V8调试Exynos   (03月29日)
  • JLink V8初始化Exynos 4412脚本  (03月29日)
  • Exynos 4412 eMMC配置及使用方法  (03月29日)
  • jLink V8调试Exynos 4412 u-boot的  (03月29日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数