Cortex-A时钟架构
Cortex-A 时钟系统
源时钟
进入控制器的时钟源头一般有两种:一个是RTC时钟,一个是外部时钟。
其中RTC时钟频率一般为:32.768KHz。外部时钟频率24M。
具体的外围电路:
IMX6U的外设有很多,不同的外设需要不同的时钟。I.MX6U内部有7组时钟。而7组时钟都是来自24M晶振。具体的7组PLL如下所示:
图 2 7组PLL时钟结构
标号1:此路时钟供ARM内核使用。该路时钟最高频率最高到1.3GHz。此路时钟命名为ARM_PLL。
标号2:此时钟别名system_PLL,此路时钟可以分出4路PFD,作为控制器内部的系统总线时钟源。内核总线包括:DDR接口,内存接口等。
标号3:此路时钟用于USBPHY。此路时钟也可以分为4路PFD,用于各种外设。时钟频率480MHz。
标号4:PLL7,主要用于USBPHY,时钟频率480MHz。
标号5:ENET_PLL(PLL6),此路时钟主要用于网络,时钟频率是500MHz。
标号6:VIDEO_PLL(PLL5)。此时钟用于相关显示的时钟源头。相关外设如LCD。PLL的时钟频率650MHz~1300MHz。而在最终的显示输出端还可以分频,1/2/4/8/16。
标号7:AUDIO_PLL(PLL4)。此时钟用于音频相关的时钟。该路时钟的频率可以调整,频率范围650MHz~1300MHz。在音频相关的输出端可以进行分频处理,1/2/4。
时钟树
图 3 Cortex-A 时钟树架构
时钟频率设置
在运行过程中,如何修改目前正在使用的设备频率呢?
例如:目前的Arm内核时钟频率较低,如何修改Arm的内核时钟?
第一步:先将Arm内核的时钟切换为其它时钟源。
先将内核时钟切换到3处的时钟(24M)来源,将2处的时钟线路空出。这样时钟内核还在低频振动,
系统还在运行。通过设置寄存器,调整2处的时钟频率至期望值。
第二步:设置内核时钟配置,将时钟频率设置为需要设置的时钟频率。
第三步:将Arm内核的时钟频率切换为原来的时钟源。至此,选择2处的时钟源,输出PLL1时钟,这样内核时钟调整至期望频率。