打印

(转)LPC1114 MDK工程模块下载及注意事项

[复制链接]
1945|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
金鱼木鱼|  楼主 | 2011-1-10 12:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近准备用LPC1114做《智能能家居系统》的分控部分,很多人多提出问题,感觉用LPC1114还不如用51做。我想可能是大家对LPC1114不熟悉,所以有点畏惧,其实个人认为,LPC1114比51更方便,不需要编程器或仿真,更方便开发调试。在使用LPC1114时,最麻烦的一点就是启动代码和时钟的设置可能让新手害怕。其实没什么可怕的,NXP的例程中这些代码已经写好了,只要你能看懂和移植就可以了。



       对于移植应该没什么难度,因为这些代码都是用标准的C语言编写的。至于启动代码就更是没有什么好担心的了,MDK会自动生成启动代码。下面是注意的内容:



1. 对于LPC1114来说,工程的建立关键是时钟的设置。其时钟的设置非常复杂,需要设置大量的寄存器,而且每个给外设都有相应的时钟分频寄存器和时钟控制寄存器。要设置相应的外设就必须正确的设置好这些寄存器。

AHBCLKCTRL 寄存器控制系统和外设寄存器接口时钟的使能。系统时(sys_ahb_clk[0]AHBCLKCTRL 寄存器的位0)为AHB APB 桥、AHB 矩阵、ARM Cortex-M0Syscon块和PMU 提供时钟,不可以禁止。在外设的相应寄存器中写入“0”是禁止4,写入“1”是使能。

如:LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);

// 使能AHB时钟到GPIO域

2.LPC1100系列Cortex-M0含有3个独立的振荡器:系统振荡器(外部晶体振荡器,在10MHz~25MHz内)、内部RC振荡器(IRC 12MHz)和看门狗振荡器(500KHz ~ 3.4MHz),每个振荡器可根据不同应用要求选择使用。可以选择这三者之一为主频时钟。复位后,LPC1100系列Cortex-M0自动选择内部RC振荡器作为系统的时钟源,这使得系统能在没有外部晶振的情况下运行。如果需要外部晶振为系统提供时钟,需要通过软件进行切换。

①.用户可以通过设置时钟源选择寄存器,在主振荡器和内部RC振荡器二者间选择一个作为PLL时钟源。

1.jpg (26.95 KB)
2010-8-2 06:15



注:只有在PLL断开连接时,才可更换PLL输入时钟源。在更换完时钟源后必须在系统时钟源更新使能寄存器先写0然后再写1

2.jpg (13.49 KB)
2010-8-2 06:15







②.可用来驱动系统的时钟源包括IRC振荡器、输入时钟到系统PLLWDT振荡器和系统PLL时钟输出。


3.jpg (28.96 KB)
2010-8-2 06:15



注:在更换完主时钟源后必须在主时钟源更新使能寄存器先写0,然后再写1。


4.jpg (12.12 KB)
2010-8-2 06:15



3. PLL频率计算中的参数:


5.jpg (40.57 KB)
2010-8-2 06:15



FCLKOUT = M×FCLKIN FCCO /2×P

为了选择合适的MP值,推荐如下步骤:

① 指定输入时钟频率FCLKIN


计算M值以获得所需的输出频率FCLKOUTM FCLKOUT / FCLKIN


找出一个值使得FCCO2×P×FCLKOUT


检查所有的频率和分频器值设置,是否符合“系统PLL控制寄存器(SYSPLLCTRL)位功能描述”内的限定。

PLL的输入时钟频率范围为10MHz~25MHz内,允许M值的范围为1~32,这是支持主振荡器和IRC操作的整个M值的范围。

相关帖子

沙发
我爸是李刚| | 2011-1-10 12:48 | 只看该作者
终于看明白了, 以前都是用人家的例程,自己不懂

使用特权

评论回复
板凳
a305566| | 2011-3-23 10:27 | 只看该作者
楼主写得这么仔细,辛苦了:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

346

主题

1551

帖子

2

粉丝