时钟体系

来源:互联网 发布:链传动计算软件 编辑:程序博客网 时间:2024/05/16 18:54

1、2440时钟产生模块

S3C2440可以使用外部晶振(XTIpll(默认为12MHZ)
和外部时钟(EXTCLK)两种方式输入时钟信号。它由跳
线OM[3:2]决定。 

S3C2440 默认的工作主频为12MHz
(晶振频率),S3C2440有两个PLL
MPLLUPLL。通
MPLL会产生三个部分的时钟频率:
FCLKHCLK
PLCKUPLL则负责产生USB所需时钟UCLK

2、2440有两个锁相环PLL(MPLL和UPLL)

3、时钟初始化流程

      

4、时钟工作流程

1、上电几毫秒后,晶振输出稳定,FCLK=晶振频率,nRESET信号恢复高电平后,CPU开始执行指令。

2、我们的程序开头启动MPLL,设置MPLL的寄存器

3、在设置MPLL的寄存器后,需要等待一段时间(LockTime),MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。Lock Time的长短 由寄存器LOCKTIME设定。
4、Lock Time之后,MPLL输出正常,CPU工作在新的FCLK下。

5、时钟初始化--寄存器配置

      1、设置locktime(LOCKTIME 寄存器

      2、设置分频系数(CLKDIVN 寄存器)

      3、如果FCLK  != HCLCK (即CLKDIVN 寄存器 PDIVN 位不为0)应设置CPU至异步模式。

      4、设置UCLK与FCLK频率(UPLLCON 寄存器、MPLLCON 寄存器

      5、NOTE: When you set MPLL&UPLL values, you have to set the UPLL value first and then the MPLL value. (Needs intervals
    approximately 7 NOP)

6、启动代码时钟初始化
#define CLKDIVN 0x4c000014#define MPLLCON 0x4c000004#define MPLL_405MHZ ((127<<12)|(2<<4)|(1<<0))init_clock:ldr r0, =CLKDIVNmov r1, #0x5str r1, [r0]mrc p15,0,r0,c1,c0,0orr r0,r0,#0xc0000000mcr p15,0,r0,c1,c0,0ldr r0, =MPLLCONldr r1, =MPLL_405MHZstr r1, [r0]mov pc, lr


0 0
原创粉丝点击