首次使用LPC单片机-扒一扒它的特点
首次使用LPC单片机
---东方青
首先,非常感谢电子发烧友给的试用机会,得到了LPC54114板卡的试用。因为这是我第一次使用NXP的MCU,所以还是先了解其特点,再进行其他的开发。
LPC5114是基于ARM体系架构Cortex-M4和Cortex-M0+的双核MCU,因为也是第一次使用双核的MCU,所以先来了解其内部的架构是如何组成的。
如上图即为整个MCU的框架图了,所要关注的应该为如下几部分:
1.存储
LPC5114内部存在32KB(SRAMX)+64KB(SRAM0)+64KB(SRAM1)+32KB(SRAM2)共192KB的可运行程序空间;256KB Flash用来存储程序。这对MCU而言,存储空间相对较大了。
而且,Flash和SRAM都是挂载在Cortex-M4和Cortex-M0+内核的总线上,也就意味着,Cortex-M4或者Cortex-M0+的内核都可以使用相同的SRAM和Flash。那是否就意味着Cortex-M4内核和Cortex-M0内核不能同时进行工作呢?
2.时钟
LPC5114 MCU内部存在ASYNC APB、APB0、APB1、AHB四条时钟总线,这些时钟总线分别为MCU的外设提供时钟频率,从而才使得外设能够正常的工作。
ASYNC APB、APB0、APB1、AHB这四个时钟总线分别可以由Cortex-M4和Cortex-M0+这两个内核提供时钟,选择其一便好。
LPC5114在内部提供了12MHz的自激振荡器(FRO)来为MCU提供时钟源,并且通过锁相环PLL可选的为CPU提供了48MHz或者96MHz的运行频率,同时FRO也可以有选择的输出48MHz和96MHz的频率。为主时钟main clock提供频率。
以上是我见过比较简单的时钟树。主时钟main clock为各个时钟总线或者外设提供时钟频率,以使得外设能够正常的工作。
AHB控制总线使用矩阵的方式作为I/D-Code、System总线、DMA、缓冲FIFO和M0+内核运行优先级的仲裁器。
3.外设
自我感觉而言,LPC系列的MCU对I/O口的命名和定义与8051内核的MCU的引脚定义何其相似。比如分为P0口和P1口两组,其中P0口一共有32个引脚,命名为P0_0~P031。相比习惯做其他MCU(特别是STM32)而言,这个命名方式确实有些特别。在进行GPIO口的管理时,寄存器的配置也较复杂,分别有很多个寄存器管理者着GPIO口的工作模式,如下图:
4.LPC5114除了一些基本的外设功能:USB、I2C、UART、SPI、ADC、窗口看门狗、定时器等基本通用功能之外,还为用户提供了PMU(电源管理单元),这使得在处理低功耗的时候,更加具有可操作性和便利性。
搭建环境并开发:
所使用的环境是MDK520,需要在keil的官网http://www.keil.com/pack下载支持LPC511x系列的MCU设备开发包。如下图:
程序的烧录:
开发板很多种烧录程序的方式,不过比较人性化的是板载了CMSIS-DAP的烧录器,使用Mirco-USB先连接板卡的CN1,然后与PC机连接,安装驱动后,就可以直接使用MDK的Downloader烧录程序了,并且CMSIS-DAP还虚拟了一个串口,可以通过该虚拟串口来进行调试程序。
下图为在设备管理器中看到的节点。
LPC54114 相关文章: