LPC1788和LPC1768时钟配置的差异

来源:互联网 发布:js map使用 编辑:程序博客网 时间:2024/05/21 15:40

LPC1788和LPC1768时钟配置的差异

LPC1788和LPC1768的外部晶振都是12M,但是LPC1788可以达到120M,而LPC1768的主频只能达到100M。查资料发现这个和PLL0配置的有关系。锁相环(PLL)的作用是把一个输入频率“放大”后输出,输出的频率在通过CCLKSEL 配置后变成CPU时钟频率。观察LPC1788和LPC1768的主频配置时发现两者的PLL0配置相差挺多的。

1788配置:

1788的PLL原理图

其中MSEL和PSEL分别是指PLL倍频器值(M)和PLL分频器值(P)。在LPC1788的寄存器PLL0CFG可以设置。Fcco指PLL振荡器的频率。

所以根据上图 PLL的输出频率  PLL_out_clk =PLL_in_clk x M 或PLL_out_clk = Fcco/(2xP)

可以看出PLL输出频率只由PLL_in_clk和M值决定,而P值是用来决定Fcco的(Fcco限制工作范围是156MHz~320MHz)

Keil中LPC1788的时钟配置:


外部晶振为12MHz,可以算出PLL_out_clk = 12MHz x 10 = 120MHz

而LPC1788的主频率 cclk = PLL_out_clk / CCLKDIV = 120MHz / 1 = 120MHz

LPC1788外设时钟的配置:

外设时钟的配置就是在主频后再分频得到的,通过配置CPU 时钟选择寄存器。


LPC1788配置出来的外设时钟都是统一的值。

Keil中外设时钟显示值:


图中的PCLK就是各个外设相同的时钟。

LPC1768时钟配置:

LPC1768的PLL原理图


LPC1788的PLL工作方式不同,LPC1768的PLL是先分频和倍频,Fcco就等于输出的PLL频率。于是 PLL_out_clk = Fcco = PLL_in_clk x M x 2 / N,可以看出PLL输出频率与M值和N值都有关。

Keil中LPC1768时钟配置

外部晶振同样是12MHz, 于是PLL_out_clk = Fcco =  12MHz x100 x 2 / 6 = 400MHz

 而LPC1768的主频 CCLK= PLL_out_clk / CCLKSEL = 400MHz / 4 =100MHz

对于LPC1768外设时钟可以通过Keil中的界面进行设置:


其原理就是通过配置寄存器PCLKSEL0和PCLKSEL1来达到分频的效果。

具体分频配置如下:



0 0
原创粉丝点击