第十六章 主频和时钟配置实验(PLL1)
这章讲了太多系统时钟的寄存器。主要操作时钟的寄存器。
一、系统时钟来源
32.768KHz晶振时I.MX6U的RTC时钟,24MHz是I.MX6U内核和其他外设的时钟源。
二、 7路PLL时钟源
2.1、PLL1(ARM_PLL)是供RAM内核使用,此PLL通过编程的方式最高可倍频到1.3GHz
2.2、 PLL2(528_PLL)是System_PLL,此路PLL分出了4路PFD,分别为:PLL2_PFD0~PLL2_PFD3。
2.3、 PLL3(USB1_PLL)是用于USBPHY,此PLL有4路PFD,分别是PLL3_PDF0~PLL3_PDF3。
2.4、 PLL4(AUDIO_PLL)用于音频相关的外设。
2.5、 PLL5(VIDE0_PLL),此路PLL用于显示相关的外设。
2.6、 PLL6(ENET_PLL),此路用于生成网络所需要的时钟。
2.7、 PLL7(USB2_PLL)是用于USB2PHY。
三、时钟树简介
CLOCK_SWITCHER是时钟源;
CLOCK ROOT GENERATOR是类似“月老”
SYSTEM CLOCKS是提供芯片外设的时钟
四、内核时钟设置
4.1、 PLL1
CCM_CACRR 寄存器
CCM_CACRR的ARM_PODF位是设置分频
CCM_ANALOG_PLL_ARMn
bit13是控制PLL1是否输出
bit0~6是PLL1倍频,OKK1 CLK =Fin*div_seclec/2.0,Fin=24MHz。如果PLL1要输出1056MHz的话,div_select就要设置为88。
** 器 CCM_CCSR**
image.png
bit8是设置时钟源来之哪里
bit2是设置输出时钟来之step_clk(24MHz)还是pll1_main_clk
修改步骤
①设置寄存器 CCSR 的 STEP_SEL 位,设置 step_clk 的时钟源为 24M 的晶振。
②设置寄存器 CCSR 的 PLL1_SW_CLK_SEL 位,设置 pll1_sw_clk 的时钟源为
step_clk=24MHz,通过这一步我们就将 I.MX6U 的主频先设置为 24MHz,直接来自于外部的
24M 晶振。
③设置寄存器 CCM_ANALOG_PLL_ARMn,将 pll1_main_clk(PLL1)设置为 1056MHz。
④设置寄存器 CCSR 的 PLL1_SW_CLK_SEL 位,重新将 pll1_sw_clk 的时钟源切换回
pll1_main_clk,切换回来以后的 pll1_sw_clk 就等于 1056MHz。
⑤最后设置寄存器 CCM_CACRR 的 ARM_PODF 为 2 分频,I.MX6U 的内核主频就为
1056/2=528MHz。