I.MX6U 学习笔记七------主频和时钟配置

主频和时钟配置

一、硬件原理图分析

1.32.768Khz的晶振,供给RTC时钟。
2.在6U的T16和T17这两个IO上接了一个24MHz的晶振。

二、时钟树

1.7路PLL

为了方便生成时钟,从24MHz晶振生出来7路PLL。这7路PLL中有的又生出来PFD。

  • PLL1:ARM PLL供给ARM内核
  • PLL2:system PLL ,528MHz,此路分出了4路PFD
  • PLL3:USB1PLL,480MHz,也分出来4luPFD
  • PLL4:AudioPLL,供给音频使用
  • PLL5:Video,供给视频外设,比如RGB LCD接口,主要是和图像处理有关的
  • PLL6:ENET,主要供给网络外设
  • PLL7:USB2PLL,480MHz,无PFD

2.要初始化的PLL和PFD

  • PLL1
  • PLL2,以及PLL2_PFD0 ~ PLL2_PFD3
  • PLL3,以及PLL3_PFD0 ~ PLL2_PFD3
    一般按照时钟树里面的值进行设置

三、I.MX6U系统时钟配置

1.系统时钟配置 (配置ARM_PLL)

  1. 要设置ARM内核主频为528MHz,设置CACRR寄存器的ARM_PODF位为2分频,然后设置PLL1=1056MHz即可。PLL1频率范围为650MHz到1.3GHz。CACRRbit3~0为ARM_PODF位,可设置0-7,分别对应1-8分频。应该设置CACRR寄存器的ARM_PODF = 1。
  2. 设置PLL1 = 1056MHz。PLL1 = pll1_sw_clk。pll1_sw_clk 有两路可以选择,分别为pll1_main_clk和step_clk,通过CCSR寄存器的pll1_sw_clk_sel(bit2)位来选择。为0的时候选择pll1_main_clk,为1的时候选择step_clk。
  3. 在修改PLL1的时候,也就是设置系统时钟的时候,需要给系统一个临时的时钟。也就是step_clk。在修改PLL1的时候需要将pll1_sw_clk切换到step_clk上。
  4. 设置step_clk。step_clk也有两路来源,由CCSR寄存器的step_sel位(bit8)来设置,为0的时候选择外部晶振直接输入。
  5. 时钟切换成功以后就可以修改PLL1的值。
  6. 通过CCM_ANALOG_PLL_ARM寄存器的DIV_SELECT位(bit6 - 0)来设置PLL1的频率,公式为:Output = fref*DIV_SEL/2 1056 = 24*DIV_SEL/2 计算可得DIV_SEL = 88。只要设置CCM_ANALOG_PLL_ARM寄存器的DIV_SELECT位等于88,PLL1 = 1056MHz。还要设置CCM_ANALOG_PLL_ARM寄存器的ENABLE位为1,使能时钟。
  7. 在切换回PLL1之前,设置CACRR寄存器的ARM_PODF = 1!!提前2分频后再切换回PLL1,这是为了防止有些SOC不支持太高频率。

2.配置PLL2和PLL3以及PFD

PLL2固定为528MHz,PLL3固定为480MHz。为固定的就不用初始化,但是这两个PLL下面的分别4个PFD需要初始化。

  1. 初始化PLL2_PFD0 - PFD3。寄存器CCM_ANALOG_PFD_528用于设置4路PFD的时钟,比如PFD0 = 528*18/PFD0_FRAC。设置PFD0_FRAC位即可。同理,剩下的3路PFD都是这样设置的。
  2. 初始化PLL3_PFD0 - PFD3

3.其他外设时钟源配置

AHB_CLK_ROOT、PERCLK_CLK_ROOT、IPG_CLK_ROOT。ROOT就是时钟源。
因为PERCLK_CLK_ROOT和IPG_CLK_ROOT要用到AHB_CLK_ROOT,所以我们要初始化AHB_CLK_ROOT。

  1. AHB_CLK_ROOT初始化。AHB_CLK_ROOT = 132MHz,设置CCM->CBCMR寄存器的PRE_PERIPH_CLK_SEL位为0。设置CCM->CBCDR寄存器的AHB_PODF位为2,三分频,因此396/3=132MHz。
  2. IPG_CLK_ROOT 初始化。PERCLK_CLK_ROOT = IPG_CLK_ROOT = 66MHz。
    设置CCM->CBCDR寄存器的IPG_PODF位为1,二分频。132/2=66MHz。
  3. PERCLK_CLK_ROOT 初始化(只是配置一个多路选择器)。
    设置CSCMR1寄存器的PERCLK_SEL位为0,选择IPG时钟源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值