s5pv210的locks寄存器设置流程

总结这几天的locks的总结,初始化时钟就用到了三类寄存器,xPLL_CON0(x为A/M/P等)、CLK_DIV0 、CLK_SRC0


下面我找出了,这几个寄存器的详细信息,就是出去保留位的其他有效位:

锁相环-----倍频器

APLL_CON0 = 0xE010_0100

ENABLE  [31]      PLL enable control      (0: disable, 1: enable)              0

LOCKED  [29]      PLL locking indicatio   0 = Unlocked   1 = Locked   Read Only n       0

MDIV      [25:16]   PLL M divide value                                 0xC8

PDIV      [13:8]    PLL P divide value                                    0x3

SDIV    [2:0]     PLL S divide value                                   0x1 

分频器

CLK_DIV0 = 0xE010_0300

PCLK_PSYS_RATIO  [30:28]  DIVPCLKP clock divider ratio,    PCLK_PSYS = HCLK_PSYS / (PCLK_PSYS_RATIO + 1)   0x0

HCLK_PSYS_RATIO  [27:24]  DIVHCLKP clock divider ratio,    HCLK_PSYS = MOUT_PSYS / (HCLK_PSYS_RATIO + 1)   0x0

PCLK_DSYS_RATIO  [22:20]  DIVPCLKD clock divider ratio,    PCLK_DSYS = HCLK_DSYS / (PCLK_DSYS_RATIO + 1)   0x0

HCLK_DSYS_RATIO  [19:16]  DIVHCLKD clock divider ratio,    HCLK_DSYS = MOUT_DSYS / (HCLK_DSYS_RATIO + 1)   0x0

PCLK_MSYS_RATIO  [14:12]  DIVPCLKM clock divider ratio,    PCLK_MSYS = HCLK_MSYS / (PCLK_MSYS_RATIO + 1)   0x0

HCLK_MSYS_RATIO  [10:8]   DIVHCLKM clock divider ratio,     HCLK_MSYS = ARMCLK / (HCLK_MSYS_RATIO + 1)     0x0

A2M_RATIO       [6:4]    DIVA2M clock divider ratio,              SCLKA2M = SCLKAPLL / (A2M_RATIO + 1)    0x0

APLL_RATIO       [2:0]    DIVAPLL clock divider ratio,            ARMCLK = MOUT_MSYS / (APLL_RATIO + 1)    0x0 


选择器
CLK_SRC0 = 0xE010_0200

ONENAND_SEL   [28]       Control MUXFL ASH (0:HCLK_PSYS, 1:HCLK_DSYS)      0

MUX_PSYS_SEL  [24]       Control MUX_PSYS (0:SCLKMPLL, 1:SCLKA2M)      0

MUX_DSYS_SEL  [20]      Control MUX_D SYS (0:SCLKMPLL, 1:SCLKA2M)      0
    
MUX_MSYS_SEL  [16]       Control MUX_MSYS (0:SCLKAPLL, 1:SCLKMPLL)      0

VPLL_SEL      [12]       Control MUXVPLL (0: FINVPLL, 1: FOUTVPLL)     0

EPLL_SEL      [8]      Control MUXEPLL (0:FINPLL, 1:FOUTEPLL)      0

MPLL_SEL      [4]       Control MUXMPLL (0:FINPLL, 1:FOUTMPLL)      0

APLL_SEL      [0]         Control MUXAPLL (0:FINPLL, 1:FOUTAPLL)       0 


上面的是寄存器的几个位,没有列出的是寄存器的保留位,

要实现时钟的初始化,我们需要做一下几个步骤:

第一步:  打开一个PLL,如:APLL_CON[31] = 1
第二步:  等待lock的上锁时间,APLL_LOCK[0-15] = 0xFFFF
第三步:  选择PLL的输出时钟代替参考的输入时钟,在PLL输出时钟稳定的时,如APLL_SEL = 1、CLK_SRC0 = 0x10001111
第四步:  设置PLL的输出频率,即PMS,这几位的值,如:APLL_CON0的M=0x7d,P=0x3,S=0x1
第五步:  用除法器改变系统的输出频率,即设置寄存器如:CLK_DIV0 =0x14131440

下面我在附一张芯片手册里边的寄存器设置步骤的图片:

……

这几天终于把我这个计划第一步的理论部分学习完毕了,

……

加油!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值