历史上的今天
今天是:2025年02月15日(星期六)
2019年02月15日 | LPC1768@100MHz和LPC1788@120MHz的PLL0设置
2019-02-15 来源:eefocus
对于搞软件开发的来说,弄一些硬件相关参数总觉得有点没底。做了几年,总算知道锁相环(PLL)的作用是把一个输入频率“放大”后输出,虽然对PLL的电路原理还是一窍不通。最近研究LPC1788和LPC1768的主频时发现两者的PLL0配置相差挺多的,于是耐着性子啃了User manual,总算理清楚了(作为软件开发者,某些太细节的硬件原理就不去深究了)。
首先LPC1788工作在120MHz是没问题的,但LPC1768的最高频率只能是100MHz(LPC1769可以到120MHz,但估计大陆很少有人会去用这片子)。
LPC1788 的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的时钟配置

外部晶振(Main Osicallor)为12MHz,可以算出PLL_out_clk = 12MHz x 10 = 120MHz
而LPC1788的主频率 cclk = PLL_out_clk / CCLKDIV = 120MHz / 1 = 120MHz
再来看下LPC1768的PLL原理图

细心的可以发现这里是NSEL而不是PSEL, 查阅官方手册,NSEL是指Pre-Divider。和LPC1788的PLL工作方式不同,LPC1768的PLL是先分频和倍频,Fcco就等于输出的PLL频率。
于是 PLL_out_clk = Fcco = PLL_in_clk x M x 2 / N
可以看出PLL输出频率与M值和N值都有关,而LPC1768的Fcco的范围是(275MHz~550MHz),Ps: LPC1788的Fcco更低,是不是更省电?
同样看下Keil中LPC1768的时钟配置

为什么这么配肯定是有道理的(有兴趣请参见LPC176x User Manual中第4章)。
外部晶振同样是12MHz, 于是PLL_out_clk = Fcco = 12MHz x 100 x 2 / 6 = 400MHz
而LPC1768的主频 CCLK = PLL_out_clk / CCLKSEL = 400MHz / 4 =100MHz
于是,笔者就弄明白了同样12MHz外部晶振下,怎么配置PLL以把LPC1788和LPC1768分别工作在120MHz和100MHz
史海拾趣
|
作者:gooogleman 刚才一觉醒来,我就淘宝了一番,分析各家2440开发板的性价比。 首先抛弃那些土枪开发板,太低价格没有啥保障因素的。 从500~800的开发板,搜索一下,发现友善,飞凌,天嵌,占据了90% ...… 查看全部问答> |
|
有研究tcpmp的么?想请教一下里面顶部的那个播放/暂停控件的位置在那修改? 有研究tcpmp的么?想请教一下里面顶部的那个播放/暂停控件的位置在那修改?我想把file,options,和播放,暂停,还有全屏等控件放在底部,就是那个时间进度条那....可是找不到具体代码的位置... 另外那个控件的大小只能是16和32两种相素选择,能不能改大一 ...… 查看全部问答> |
|
我今年大四就快出去找工作了,想问问各位有经验的大姐,大哥们,哪些公司在FPGA方面有比较好的前景啊?还有如果可以的话能否说说去应聘FPGA工作时的面试和笔试经历或者遇到的一些试题,让我汲取一些你们宝贵 ...… 查看全部问答> |
|
Buffersize 具体指代缓冲区的大小(多少字节大小的缓冲区)还是缓冲区的数目(多少个指定宽度(DMA_PeripheralDataSize 或DMA_MemoryDataSize)的缓冲区)呢? 手册中给出: Specifies the buffer size, in data unit, of the specified Cha ...… 查看全部问答> |
|
如图所示,左端经过电阻分压,然后经过电压跟随器和光耦后接PA0,但是采集的电压和计算的不同,而且采集的电压用于程序里也没有达到预想的效果,求用过的好心人给看看,谢谢。… 查看全部问答> |




