美文网首页
裸板程序记录之时钟初始化-s3c2440

裸板程序记录之时钟初始化-s3c2440

作者: sgy1993 | 来源:发表于2017-08-15 21:34 被阅读0次

    时钟初始化

    1. 首先需要选择时钟源的来源,jz2440选择的是00,使用晶振的模式
    上电时钟源选择
    1. 时钟相关的寄存器设置
    时钟相关的寄存器

    3.注意事项

    1. CLKDIVN should be set carefully not to exceed the limit of HCLK and PCLK.
    2. If HDIVN is not 0, the CPU bus mode has to be changed from the fast bus mode to the asynchronous
      bus mode using following instructions(S3C2440 does not support synchronous bus mode).
      MMU_SetAsyncBusMode
      mrc p15,0,r0,c1,c0,0
      orr r0,r0,#R1_nF:OR:R1_iA
      mcr p15,0,r0,c1,c0,0
      If HDIVN is not 0 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK.
      This feature can be used to change the CPU frequency as a half or more without affecting the HCLK and PCLK.

    上面是总的步骤,现在一个个详解
    1.时钟源的选择
    由OM[3:2]引脚来控制选择,参考图片"时钟电路1",可知这两个引脚接地,选择的是00.Main Clock source 和USB Clock Source都是晶振

    2.寄存器设置
     2.1 LOCKTIME寄存器

    LOCKTIME寄存器

    从上图可以看出bit'31-16是控制UCLK的lock time的,bit'15-0是控制FCLK(给cpu用的),HCLK(AHB设备用的),PCLK(APB设备用的),那这个lock time是干什么的?
     从"Clock Generator Block Diagram"这个图可以看出,晶振输入的时钟(MPLLin),先要经过一个MPLL得到Mpll(应该就是FCLK),这个过程不是瞬间就完成的,需要一定的转换时间.这个就是设置这个的.

    这里你可以不设置,因为上电启动默认值是0xffffffff
    

    PS:什么是AHB,什么是APB,具体什么意思可以百度,google,以下截图是cpu手册两个总线具体有什么设备.

    AHB APB

    2.2 MPLLCON控制分频系数的

    寄存器的格式

    晶振的频率要进行扩充,晶振频率采用的是12Mhz,FCLK最高能到400MHZ,起码得扩大30多倍,当然手册上也是提供了计算方法的..

    Mpll = (2 * m * Fin) / (p * 2S这是2的s次方)
    m = (MDIV + 8), p = (PDIV + 2), s = SDIV
    举一个实际例子--"时钟参考表格"图里面的
    12.0000MHz 400.00 MHz 92(0x5c) 1 1以这个为
    例计算频率
    m = 92 + 8 = 100
    p = 1 + 2 = 3
    s = 1
    mpll = (210012)/(3*2的一次方), = 400MHz

    • 2.3 UPLLCON是控制usb的,裸板也没有讲要设置

    • 2.4 CLKCON相应外设的时钟使能不使能,按需进行设置

    • 2.5 CLKSLOW

    CLKSLOW

    显然MPLL应该是要turn on的

    • 2.6 CLKDIVN
      设置了FCLK并没有设置HCLK和PCLK啊!这个寄存器就是设置另外两个时钟的!
    这里设置HCLK为FCLK的一半:
    01 : HCLK = FCLK/2.
    PCLK是HCLK的一半:
    1: PCLK has the clock same as the HCLK/2.
    
    • 2.7 CAMDIVN这个应该是摄像头的,不用操作
    Clock Generator Block Diagram PLL (Phase-Locked Loop) Block Diagram 时钟参考表格 Main Oscillator Circuit Examples 时钟电路1
    1. 最后注意事项说了,如果HDIV不等于0的话,需要切换总线模式
      <ARM920T_TRM1_S.pdf>
      fast bus mode to the asynchronous

    mrc p15,0,r0,c1,c0,0 先把c1寄存器读出来
    orr r0,r0,#R1_nF:OR:R1_iA 设置nF,iA两位为1
    mcr p15,0,r0,c1,c0,0 写回c1寄存器

    c1寄存器nF-iA 设置参考表

    相关文章

      网友评论

          本文标题:裸板程序记录之时钟初始化-s3c2440

          本文链接:https://www.haomeiwen.com/subject/oxgvrxtx.html