ARM7 在初始化时,初始时钟频率(Fin)是怎么来的? (平台在博创UP-NETARM3000)

wlj082582   2008-7-6 11:28 楼主
小弟是初学者,
  在博创UP-NETARM3000上,板子上一个32.768KHZ的振晶.
  启动时系统的输入时钟频率(Fin)是多少?
  是人为定的,还是机器设定的?   怎么在option.s中是Fin=6MHz Fout=60MHz,而在44BINIT.S中又写Fin=4MHz,我糊涂了.

  看44bINIT.s,option.s,option.h三个文件对PLLCON的赋值.
  option.s中
        GBLA        PLLCLK
  PLLCL         SETA        60000000         ;!!!!!!!!!!!!!!!!!!

        [        PLLCLK = 60000000        ;!!!!!!!!!!!
    M_DIV        EQU        72        ;Fin=6MHz Fout=60MHz   ???
    P_DIV        EQU        2
   S_DIV        EQU        1
        ]

  再看44bINIT.S
      GET memcfg.s                     ;   memcfg.s   中又有 GET option.s

      ldr        r0,=LOCKTIME
    ldr        r1,=800            ; count = t_lock * Fin (t_lock=200us, Fin=4MHz) = 800
    str        r1,[r0]

    [ PLLONSTART
        ldr        r0,=PLLCON                        ;temporary setting of PLL
        ldr        r1,=((0xe8<<12)+(0x4<<4)+0x2)   ;!!!!!!!!!!!!!!!!!!        ;Fin=4MHz,Fvco=160Mhz,Fout=40MHz,m/p/s=0x48/0/0x2  ????????
        str        r1,[r0]
    ]
这样是不是不一致呀??????????

接着进入C程序后  初始化开发板ARMTargetInit(){..ChangePllValue(PLL_M,PLL_P,PLL_S);..}又改变时钟.
在option.h中有这样的定义
#define MCLK (67500000)
#elif (MCLK==67500000)
        #define PLL_M (82)
        #define PLL_P (2)
        #define PLL_S (1)

而这一块对Fin我不知道是多少?  这个输入时钟频率怎么来的呀?我看了相关的说明文档,但那只是说通过引脚OM[2:3],来选择时钟源,一个是OSC,一个是外部时钟,
但这中间的过程是什么样的?Fin怎么来的?


回复评论 (2)

OM[2:3]选择时钟源,如果用的是外部晶振,那么Fin就是晶振频率,如果选择为外部时钟,那么就是外部设备提供的时钟频率。
点赞  2008-7-6 21:18
我也在想这个问题
点赞  2009-3-28 09:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复