S3C2440系统时钟讲解

FCLK ->CPU

HCLK->AHB总线

PCLK ->APB总线

两个锁相环(PLL)

MPLL->FCLK HCLK PCLK

UPLL ->USB(48M)

时钟来源

外部晶振->PLL->FCLK->HCLK->PCLK

必须先配置MPLLCON MPLL才会输出系统时钟

在软件重新配置PLLCON 寄存器之前系统时钟使用晶振时钟,即如果不配置PLLCON则系统时钟为晶振时钟(12M)(即上电后要想使用PLL放大晶振频率就要配置 MPLLCON

 

CLKDIVN寄存器中HDIVN和 PDIVN 决定FCLK HCLK PCLK之间的比例

HDIVN:1 PDIVN:1 可以使FCLK HCLK PCLK之间的分频比例为1:2:4

但是 如果 HDIVN 不为 0,CPU 总线模式应该使用以下指令使其从快总线模式改变为异步总线模式(S3C2440不支持同步总线模式)。

MMU_SetAsyncBusMode

MRC  p15, 0,  r0,  c1,  c0,  0

ORR  r0,  r0,  #R1_nF:OR:R1_iA

MCR  p15, 0,  r0,  c1,  c0,  0

不添加此指令的影响

如果 HDIVN 不为 0 并且 CPU 总线模式为快总线模式,CPU 运行在 HCLK

 

MPLLCON寄存器配置

MDIV  [19:12] 主分频器控制 

PDIV  [9:4]    预分频器控制

SDIV  [1:0]    后分频器控制

晶振经过锁相环PLL后时钟计算公式为:

Mpll = ( 2 × m × Fin ) / ( p × 2 s  )

m = M(分频器 M 的值)+ 8

p = P(分频器 P 的值)+ 2

s = SDIV 

 

UPLL  控制寄存器

Upll = ( m × Fin ) / ( p × 2 s  )

m = ( MDIV + 8 )

p = ( PDIV + 2 )

s = SDIV

当你设置 MPLL 和 UPLL 的值时,你必须首先设置 UPLL 值再设置 MPLL 值。(大约需要 7 个 NOP 的间隔)

 

如果要设置S3C2440 CPU工作在200MHZ可配置

MDIV = 100

PDIV = 1

SDIV = 2

重点:

即上电后要想使用PLL放大晶振频率就要配置 MPLLCON

先设置 UPLL 值再设置 MPLL 值

CLKDIVN:决定FCLK HCLK PCLK之间的比例

MPLLCON:决定晶振放大后的频率

配置CLKDIVN时注意总线模式切换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值