看见很多朋友不会计算PLL分频和串口频率,整理个笔记发上来 cpu时钟频率和串口波特率的计算公式 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代表2的s次方 再根据 b)知道MDIV=112, PDIV=8, SDIV=1 根据44B0数据手册5-14页算出 PLLCON=0X70081 注意:PLLCON的结果不为一!比如P可以取8 取7…… 注意:PLLCON寄存器是20位的 各个区域中间有空的 比如MDIV是寄存器里19-12位,PDIV是9-4位两个中间有11,10位空,如果用2进制算就添0 不过做过硬件的就知道 大可不必只要把MDIV, PDIV, SDIV用WEINDOWS自带计算机直接由2进制转换成16进制顺序写就行 比如MDIV=112=0x70, PDIV=8=0x08, SDIV=1=0x1 PLLCON寄存器就是0x70081(看到这 连手册都不用翻了吧?:)) 还得多说一句 不是0x700801,因为SDIV=1=0x1不是0X01,跟PDIV=8=0x08不一样
|