arm7 pclock (刚开始并没有pll工作,工作过程要清楚)

ARM7 PLL设置 Startup.s

Fosc:晶振频率

Fcclk:处理器时钟

Fpclk:为外设提供的时钟如定时器,UART,PWM,IIC,SPI,WatchDog等。

 

我板子的晶振是11.0592MHz,

可以在Keil中的Startup.s中设定Fcclk和Fpclk。

 

首先了解:

MPLLCFG寄存器中MSEL位的倍增器值

PPLLCFG寄存器中PSEL位的分频器值

Fcclk = M * Fosc

 

ARM7 <wbr>PLL设置 <wbr>Startup.s
如果我们现在要把Fcclk变成Fosc的4倍,也就是M值为4,即PLLCFG[4:0]=00011

P值用来设定FCCO,暂时没用到,用缺省值P=2,即PLLCFG[6:5]=01

综合以上:

PLLCFG_Val EQU 0x00000023

也可以在Keil中的Configuration Wizard配置向导中设置,如图:

ARM7 <wbr>PLL设置 <wbr>Startup.s

 

Fpclk由VPB分频器,把Fcclk分频得到。如图:

ARM7 <wbr>PLL设置 <wbr>Startup.s

ARM7 <wbr>PLL设置 <wbr>Startup.s
VPB 总线在复位后默认的状态是以 1/4 速度运行,我们设定也是 1/4分频。

VPBDIV_Val EQU 0x00000000

 

 

结果:

//Fcclk=Fosc*4=11.0592*4=44.2368MHz //Fpclk=Fcclk/4=44.2368MHz/4=11.0592MHZ

 

另附:

/* 系统设置, Fosc、Fcclk、Fcco、Fpclk 必须定义*/

#define Fosc 11059200 //晶振频率,10MHz~25MHz,应当与实际一至

#define Fcclk (Fosc * 4) //系统频率,必须为Fosc 的整数倍(1~32),且<=60MHZ

#define Fcco (Fcclk * 4) //CCO 频率,必须为Fcclk 的2、4、8、16 倍,范围156MHz~320MHz

#define Fpclk (Fcclk / 4) * 1 //VPB 时钟频率,只能为(Fcclk / 4)的1 ~ 4 倍 通常只需要设置Fosc 即可。需要更改Fcclk 和Fcco 时,参照注释。

倍频和分频的计算计算顺序: 1) 先根据系统需要的频率选择Fosc,必须10-25MHZ.(假定Fosc=10MHZ) 2) 根据需要的系统频率Fcclk,选择倍频系数M,M = Fcclk/Fosc(假定Fcclk=40MHZ,则M=4). 3) M 的值为PLLCFG bits 4:0.(PLLCFG 的低5 位为二进制00100) 4) 根据Fcclk 的频率选择Fcco. Fcco = cclk * 2 * P,则进行下列计算 Fcco 最小/Fcclk=156/40=3.9,因此2*P 的值必须大于3.9,最接近的值为4. 此时P=4/2=2。由于2 的PLLCFG bits 6:5 次方等于P,因此PLLCFG bits 6:5 为二进制00(应给为01吧,这里有错误。看lpc210x用户手册上有的).

PLL 初始化过程:

1) 写PLLCFG 和PLLCON:启动PLL,但是不连接PLL 到系统内核。 PLLCON = 0x01 //PLLE = 1,PLLC = 0 PLLCFG = 0x04 //假定Fosc=10MHZ,Fcclk=40MHZ 计算

2) 保存中断寄存器,关中断

3) 连续写PLLSEED(必须连续,不能被中断) PLLSEED = 0xAA PLLSEED = 0x55

4) 查询PLLSTAT 一直到PLOCK=1 While((PLLSTART & 0x40) == 0) { Wait; //等待,一直到PLOCK=1 }

5) 写PLLCFG 和PLLCON:启动PLL,连接PLL 到系统内核。 PLLCON = 0x03 //PLLE = 1,PLLC = 1 PLLCFG = 0x04 //假定Fosc=10MHZ,Fcclk=40MHZ 计算

6) 连续写PLLSEED(必须连续,不能被中断) PLLSEED = 0xAA PLLSEED = 0x55

7) 查询PLLSTAT,等待PLOCK=1,PLLE=1,PLLC=1,MSEL4:1 和PSEL1:0(PLLSTAT 的位6-5) 看是否完全符合,如果符合执行下一步,不符合报错。

8) 恢复原来的中断寄存器状态

参考资料:“周立功LPC2200启动代码分析”

posted on 2012-10-11 15:04  Red_Point  阅读(1666)  评论(1)    收藏  举报

导航