s3c44b0的系统时钟与串口波特率的计算公式

s3c44b0的系统时钟与串口波特率的计算公式
S3C44B0的系统时钟设置公式

一.    通过PLL输出时钟脉冲频率的计算:

a)        Fpllo = (m * Fin) / (p * 2^s)

b)        m = (MDIV + 8),   p = (PDIV + 2),   s = SDIV

c)        20MHz < Fpllo < 66MHz

d)        Fpllo * 2^s < 170MHz (s应该尽可能的大)

e)        1MHz <= Fin/p < 2MHz  (最好是Fin/p = 1MHz)

f) 如果PLL打开则:Fpllo = Fout

g)        这样计算出MDIV, PDIV, SDIV的值写入PLLCON寄存器中就可设置Fpllo的输出频率。

二.    PLL的锁存时间(为输出稳定时钟频率需要的平静时间)

a)        T_lock = (1 / Fin) * n > 280us.     (n = LTIMECNT value)


S3C44B0的UART波特率计算公式

UBRDIVn = ( (int)(MCLK / (bps * 16) + 0.5) – 1 )

MCLK = Fout = Fpllo

Bps = 1200,9600,19200,38400,57600,115200

 

 

CPU频率计算方法---PLL设置
根据 d)知道s=1 T1^V"JW{
根据 e)知道p=10bbs.cedn.cnr he&H7D0t
T

再根据 a)就知道了m=120,注意2^s代表2的s次方_JHcqk
再根据 b)知道MDIV=112, PDIV=8, SDIV=1bbs.cedn.cnf-r!j;E.o
~.M%_)t$y,B

根据44B0数据手册5-14页算出 PLLCON=0X70081F-F!f8~!V1bAFI
注意:PLLCON的结果不为一!比如P可以取8 取7……9A*Cc%MS[s,i"Q
注意:PLLCON寄存器是20位的 各个区域中间有空的 bbs.cedn.cn"c8` Q6}C*a}4n
比如MDIV是寄存器里19-12位,PDIV是9-4位两个中间有11,10位空,如果用2进制算就添0t:X/y]'j!`)kc.j8W
不过做过硬件的就知道 大可不必只要把MDIV, PDIV, SDIV用WEINDOWS自带计算机直接由2进制转换成16进制顺序写就行bbs.cedn.cn
Jtw NB |?

比如MDIV=112=0x70, PDIV=8=0x08, SDIV=1=0x1
PLLCON寄存器就是0x70081(看到这 连手册都不用翻了吧?:)).t0m.Zu7I:r
还得多说一句 不是0x700801,因为SDIV=1=0x1不是0X01,跟PDIV=8=0x08不一样


 


;计算公式
  ;Fpllo=(m*Fin)/(p*2^s)
  ;m=MDIV+8,p=PDIV+2,s=SDIV
  ;Fpllo必须大于20Mhz小于66Mhz
  ;Fpllo*2^s必须小于170Mhz
  ;如下面的PLLCON设定中的M_DIV P_DIV S_DIV是取自option.h中
  ;#elif (MCLK==40000000)
  ;#define PLL_M (0x48)
  ;#define PLL_P (0x3)
  ;#define PLL_S (0x2)
  ;所以m=MDIV+8=80,p=PDIV+2=5,s=SDIV=2
  ;硬件使用晶振为10Mhz,即Fin=10Mhz
  ;Fpllo=80*10/5*2^2=40Mhz

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值