Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3515645
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: LINUX

2009-02-13 09:06:50

S3C44B0的系统时钟设置公式
Fpllo
为系统的主频,此处为60MHz
Fin
为晶振的频率,此处为10MHz
. 通过PLL输出时钟脉冲频率的计算:
a) Fpllo
m × Fin/ p × 2^s
b) m = (MDIV + 8) , p = (PDIV + 2), s = SDIV
c) 20MHz < Fpllo < 66MHz
d) Fpllo * 2s < 170MHz
s应该尽可能的大)
e) 1MHz <= Fin/p < 2MHz (
最好是Fin/p = 1MHz)
f)
如果PLL打开则:Fpllo = Fout
g)
这样计算出MDIV, PDIV, SDIV的值写入PLLCON寄存器中就可设置Fpllo的输出频率。
根据 d)知道s=1
根据 e)知道p=10
再根据 a)就知道了m=120,注意2^s代表2s次方
再根据 b)知道MDIV=112, PDIV=8, SDIV=1
根据44B0数据手册5-14页算出 PLLCON=0X70081
注意:PLLCON的结果不为一!比如P可以取8 7……
注意:PLLCON寄存器是20位的 各个区域中间有空的
比如MDIV是寄存器里19-12位,PDIV9-4位两个中间有1110位空,如果用2进制算就添0

不过做过硬件的就知道 大可不必只要把MDIV, PDIV, SDIVWEINDOWS自带计算机直接由2进制转换成16进制顺序写就行
比如MDIV=112=0x70, PDIV=8=0x08, SDIV=1=0x1
PLLCON
寄存器就是0x70081(看到这 连手册都不用翻了吧?:))
还得多说一句 不是0x700801,因为SDIV=1=0x1不是0X01,跟PDIV=8=0x08不一样

阅读(4326) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~