天嵌 ARM开发社区

 找回密码
 注册
查看: 2334|回复: 3

ARM中计算MPLL的方法

[复制链接]
lbygtwx 发表于 2010-4-18 15:46:21 | 显示全部楼层 |阅读模式
今天用TQ2440做流水灯裸机实验,遇到MPLL寄存器配置问题,现总结如下,如有错误,欢迎指正!

   具体计算步骤:

1. U32 mpll_val=0;

      mpll_val = (92<<12)|(1<<4)|(1);

      算得mpll_val的二进制:0101 1100 0000 0001 0001

       注意:(92<<12)中的92为十进制数,转换为二进制为0x5C。
2. ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);

     代入1算得:ChangeMPllValue(0x5C,1,1);

3. 找到ChangeMPllValue子函数

      void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
             {

                     rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
              }

4. 调用子函数,得到rMPLLCON二进制为:0101 1100 0000 0001 0001

5. 根据S3C2440A官方datasheet:

     PLLCON          Bit                        Description

        MDIV         [19:12]           Main divider control

        PDIV          [9:4]               Pre-divider control

         SDIV          [1;0]               Post divider control

      以及MPLL Control Register

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

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

   因rMPLLCON二进制为:0101 1100 0000 0001 0001,所以

m=(MDIV+8)=([19:12]+8)=92+8=100

p=(PDIV+2)=([9:4]+2)=1+2=3

s=SDIV=[1:0]=1

   Mpll=(2*m*Fin)/(p*2s)=(2*100*12)/(3*2)=400M
zhuxincai 发表于 2010-4-19 19:28:02 | 显示全部楼层
xiexie,受教了
回复

使用道具 举报

GH.CHEN 发表于 2010-9-5 21:59:38 | 显示全部楼层
详解。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-17 04:03 , Processed in 2.040068 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表