LPC824是恩智浦(NXP)公司推出的居于Cotex-M0+内核(版本r0p1)的一个32位的低功耗单片机,其内部拥有32KB的FlashROM,8KB的SRAM,供电电压低(1.8V~3.6V),工作模式中的功耗可低至90uA/MHz,功能强大,价格低廉,应用非常广泛,目前有TSSOP20和HVQFN33两种封装,其中HVQFN33封装的正反面实物外形如下图所示。
从图中可以看出,它一共有33个引脚(含底面接地端),其中的29个是通用输入输出引脚(GPIO),分别为PIO0-0~PIO0-28。余下的4个脚分别是:一个正电源引脚(Vdd)、一个地引脚(Vss),一个ADC正基准电压引脚(VREFP)和一个ADC负基准电压引脚(VREFN)。一般情况下,系统电源端和ADC基准电压引脚可以接在一起(通过电感)。具体的引脚功能如下图所示(顶视图)。
从上图中可以看出,LPC824引脚复用的功能很多,包括复位(RESET)端都复用在了第3脚,所以LPC824没有独立的复位引脚,不过在默认状态下,第3脚是复位端(第一功能)。另外,LPC824其实还有很多的可移动引脚功能(比如USART、SPI等),通过配置芯片内部的开关矩阵(SWITCH MATRIX)可把它们分配到任意引脚上(电源引脚除外)。
LPC824系列内部都自带有12MHz的RC振荡器,并且在其上电(或复位)时默认就是使用片内的RC为主时钟源。所以LPC824在默认情况下,上电就可运行。不过内部RC振荡器的精度不高(一般为1.5%左右),所以在要求较高时还是要使用外部晶振来运行。使用外部晶振的最小系统如下图所示。
要开发居于LPC824的系统,首先必须选择一个合适的开发工具。居于NXP系列的CPU,恩智浦公司专门委托code_red公司为其量身定制了一款居于开源项目eclipse的开发工具,称为LPCXpresso。该软件可以通过code_red公司网站注册后免费下载并激活。其它的开发工具,基本上都是居于ARM的通用开发环境,常见的有ARM公司著名的Real View MDK(MDK-ARM)、IAR公司的EWARM等。本教程选用国内使用非常广泛的MDK-ARM做为LPC824的开发工具,其它的开发工具读者可自行参考使用,它们都有各自的特长。
Real View MDK的前身其实就是著名的Keil μvision,后来它被ARM公司收购后就结合ARM系统推出了MDK-ARM。熟悉Keil μvision的用户会发现两者的界面基本上是一样的,使用起来非常方便。
本教程使用的是MDK-ARM5.26.2版本,它结合了程序编辑、编译、查错、调试、仿真等功能,功能强大,使用方便。熟悉51开发的读者可以很快上手,下图是它的运行界面。
可见它基本上就是Keil C51的界面。
MDK-ARM开发环境的配置并不算复杂,下面来具体看一下如何用它来配置一个LPC824的开发环境:
1、安装MDK-ARM5.26.2版本,输入许可证码将其激活(详略)。
2、MDK-ARM在5.0以后的版本中采取应用程序和器件包分离的方式,所以装完MDK-ARM后还需要安装器件包。依次单击菜单上的Project->Manage->Pack Installer,打开包安装的对话框,如下图所示。
3、安装器件包有在线更新和离线安装两种方式,在线更新有些慢,建议采用离线安装方式。先去KEIL的官网(或其他网站)上去下载离线包文件LPC800_DFP.1.2.0.pack,然后在上图的菜单中单击File->Import,指定到下载好的文件进行导入,完成后就可以使用了。
4、接下来新建工程,单击菜单上的Project->New μvision Project,在弹出的对话框中选择一个路径并输入一个工程名称(如test,默认扩展名为μvproj),点击“保存”。
5、在弹出的器件选择对话框中选择NXP下的LPC800 Series下的LPC82x下的LPC824M201JHI33器件,然后点击“OK”(如下图)。
6、接着会弹出下图所示的对话框,再单击OK就可以了。
7、完成后就进入到工作界面,如下图所示。
8、由于是新建的工程,其中还没有任何的文件,所以下一步就是要加入一些必要的文件(如头文件等),同时要新建主程序文件并把它也添加到工程中来。
9、新建主程序文件,单击菜单上的File->New,就会看到在工作区域内新建了一个默认名称为Text1的文本文件,如下图所示。
10、接下来要保存该主程序文件,单击菜单上的File->Save,在弹出的对话框中选择好保存的路径,在文件名中为该主程序文件取一个名称,注意名称要加上扩展名。如本例中取main.c,点击“保存”。
11、最后一步就是要把刚才新建的主程序文件添加到工程中来,单击左侧带加号的Target1中的加号,把它展开,然后在其下面的Source Group 1上点击右键,选择Add Files to Group ‘Source Group 1’一项,如下图所示。
12、在弹出的对话框中找到刚才保存的主程序文件,单击“Add”将其添加到工程中(如下图所示)。这里要注意一下,若找不到主程序文件可能有以下几个原因:一是刚才保存时没有为主程序文件加上扩展名“.c”,二是对话框中的筛选条件不对(文件类型应为C Source file),三是主程序文件所在的路径不对。其次还要注意一点,因为该对话框是可以连续添加多个文件的,所以单击了“Add”后该对话框不会关闭,要关闭对话框需要单击“Close”(注意不要多次添加同一个文件!)。
13、最后得到的开发环境样子如下图所示,此时就可以在主程序文件中编写程序了。
14、最后,还需要引入一个启动文件才能进行正常编译,跟前面引入main.c文件一样,双击“Source Group 1”打开添加文件对话框,加入一个名为startup_LPC82x.s的启动文件,该文件在安装包的路径下,如果是默认安装,会在目录“C:Keil_v5ARMPACKKeilLPC800_DFP1.2.0DeviceSourceARM”下,添加完毕后如下图所示。
以上只是最基本的开发环境设置,其实在实际使用中还有很多需要配置的地方,比如“运用文件夹来对添加的文件进行分类,编译链接时生成的文件格式,仿真时时钟的配置等”,这些将在用到时再讨论,这里就不再赘述了。