首页

从LPC1768开始

在本教程中,我们将开始探索一个全新的微控制器领域,称为ARM Cortex-M3系列。具体来说,我们将以ARM Cortex-M3架构的单片机为例,探讨其特点、功能和编程。为此,我选择了NXP公司的LPC1768单片机。在这个LPC1768入门指南中,我将讨论LPC1768单片机的规格,它的内部框图,内存映射,并列出一些通用的应用程序。

我为什么选择LPC1768?

在我解释原因之前,让我带您了解一下ARM Cortex-M系列的一些基础知识。它是一组32位的RISCARM处理器由Arm Holdings设计并授权的核心。Cortex-M系列核心是为低成本、低功耗的微控制器设计的,可广泛应用于嵌入式应用中。

在Cortex-M系列中,有Cortex-M0, M3, M4, M7等几个等级。每一种变体都有一些功能或实现上的差异,并且是针对一组特定的应用程序设计的。例如,ARM Cortex-M3的变体有一个3级指令流水线,不支持浮点指令或DSP指令。但是ARM Cortex-M7的变种有6个阶段,并且支持浮点数和DSP指令。

现在让我们关注本系列教程的架构,即ARM Cortex-M3。它是整个ARM Cortex-M系列的第一个系列,主要针对32位微控制器市场。基于ARM Cortex-M3的微处理器集成了许多曾经只在高端微处理器中才有的特性。

LPC1768

ARM Cortex-M3 Core是在著名的ARM-7架构基础上设计开发的。它引入了一些特性,比如不可屏蔽中断、嵌套向量中断、原子位操作和内存保护。这些特点使ARM Cortex-M3 Core成为微控制器市场上非常著名和广泛使用的ARM架构。

半导体制造商以Verilog RTL(即处理器核心)的形式从Arm Holdings获得Arm Cortex-M3的IP许可。然后,他们根据自己的需求修改(或优化)架构,但严格遵循Arm的指导方针(这是主处理器)。此外,他们添加了自己的风格的外设,使一个完整的微控制器单元。

基于ARM Cortex-M3的mcu的主要供应商有:意法半导体、NXP、德州仪器、英飞凌、微芯片(Atmel)、东芝、Analog Devices等。

在ARM Cortex-M3系列教程中,我选择了NXP公司的LP伟德老虎机手机版C1768单片机。尽管它基于ARM Cortex-M3架构,但我觉得它在SFR(特殊函数寄存器)实现、对硬件(开发板和调试器)以及软件(ide和模拟器)的良好支持、良好的文档和编写良好的外围库方面是一个相当简单的设备。

学习LPC1768(或任何ARM设备)的正确方法

了解一个新设备以及像ARM Cortex-M3 MCU这样的复杂设备是一项相当具有挑战性的任务。首先,文档非常糟糕。你首先需要ARM架构参考手册,然后是ARM核心TRM(技术参考手册),然后是ARM核心通用用户指南。这只是ARM这边的。

然后我们有供应商特定的文档,如参考手册,用户指南和数据表。但是阅读所有这些文档包并没有什么帮助。首先,没有人(甚至包括顶级应用程序开发人员)阅读完整的文档(我建议您不要阅读整个文档)。你必须养成只阅读必要部分而忽略其他部分的习惯(在特定的时刻)。

在学习像LPC1768,一个ARM Cortex-M3 MCU这样复杂的设备时也有一个优势。由于ARM Cortex-M3的复杂性,在架构上,包括LPC1768在内的所有ARM Cortex-M3设备都被整齐地组织成几个“功能块”。每个块都有自己的一组寄存器,并与其他块相当独立地工作。

以LPC1768本身为例。它有一个用于产生主系统时钟的时钟生成单元,一个用于接口各种外设的GPIO单元UART用于串行通信的外围设备等等。如果您想了解GPIO,那么您可以严格关注GPIO Unit、它的寄存器以及如何操作它们。

通过这种方式,您可以了解每个外设,在这个过程中,您可以了解这些外设如何相互依赖,它们如何通信(彼此之间以及与主处理器),以及我们如何和谐地使用它们来开发我们的应用程序。

LPC1768规范

NXPs LPC1768是LPC1700系列中基于ARM Cortex-M3的微控制器。CPU频率可达100mhz。主要的处理器核心是Arm Cortex-M3,它基于哈佛架构,有三条总线,分别用于指令、数据和外设。

在外设方面,LPC1768单片机由以下外设组成:512kb Flash、64kb RAM、USB接口、以太网MAC、4个UARTs、2个can、3个I2C接口、SPI、2个SSP控制器、2输入2输出I2S、8路12位分辨率ADC、10位DAC、4个定时器、8路DMA、6路PWM、电机控制PWM、低功耗RTC、正交编码器和70个GPIO引脚。

下面是LPC1768单片机的一个小列表。完整的细节,我建议你查阅资料表。

  • ARM Cortex-M3处理器,内置NVIC和微处理器,CPU频率100mhz。
  • 用于系统内编程(ISP)和应用内编程(IAP)的片上引导加载程序。
  • 512kb片内Flash和64kb片内SRAM。
  • 8通道DMA控制器,可用于ADC, DAC,定时器,UART, SSP, I2S。
  • 多层AHB矩阵与AHB主(CPU, DMA,以太网和USB)的单独总线互连。所有其他外设的全境通告总线分离。
  • 串行接口
    • 以太MAC与RMII接口
    • 全速USB 2.0控制器
    • 四个uart
    • 2声道可以控制器
    • 2 SSP控制器
    • 3 I2C接口
    • SPI
    • i2
  • 其他外围设备
    • 70年GPIO管脚
    • 8路12位ADC
    • 10位DAC
    • 4-Timers
    • 专用的PWM块
    • 电机控制脉宽调制
    • 正交编码器接口
    • 清债信托公司
    • WDT

LPC1768的框图

下图显示了LPC1768单片机的内部框图。从框图中可以看出,ARM Cortex-M3处理器由三种总线组成:I-code总线(指令获取)、D-code总线(数据访问)和System bus(外围设备访问)。

LPC1768方框图入门

多层AHB矩阵用于连接ARM Cortex-M3的三个总线以及其他总线主控(即DMA、USB和以太网)到其他外设。

LPC1768的Memory Map

LPC1768 MCU,像其他ARM Cortex-M3 MCU一样,包含多个内存区域,用于Flash, RAM, AHB外设和APB外设。由于LPC1768是32位体系结构,因此它有4 GB的地址空间。

下图表示整个4 GB地址空间的整体内存映射。

LPC1768内存映射入门

应用LPC1768

LPC1768单片机是一款基于ARM Cortex-M3的微控制器,功能强大,足以运行相当复杂的嵌入式应用程序。下面列出了该MCU的一些常见应用:

  • 电机控制
  • 警报/保安系统
  • 工业网络
  • 照明控制单元
  • eMetering设备
  • 消费级冷藏和洗涤设备

结论

这是一个简单的LPC1768单片机入门教程。在本教程中,我简要介绍了NXP公司基于ARM Cortex-M3的LPC1768单片机以及一些重要的规格。我建议您下载数据表以及LPC1768的用户手册,因为它们是所有必要信息的首选指南。

在接下来的教程中,我将介绍LPC伟德老虎机手机版1768的一些重要外设,并试图解释如何通过访问相应的寄存器来配置它们。

硬件和软件建议

作为LPC1768入门指南的一部分,我想对用于开发LPC1768应用程序的硬件和软件提出一些建议。

由于所有的LPC1768 MCU都带有UART引导加载程序,任何带有LPC1768 MCU和UART到USB接口的开发板都将是足够的。你不需要高端或昂贵的开发板。

说到软件,我更喜欢使用Keil MDK IDE来编写和调试LPC1768的C代码。为了对LPC1768单片机进行编程,我将使用Flash Magic编程工具,这是专门为带有UART bootloader的NXP微控制器设计的。

如果你感兴趣,你可以买一个ARM微控制器的JTAG调试器。但这是可选的,您可以避开Keil MDK的模拟器特性。

留下一个回复

你的电邮地址不会被公布。

Electronicshub图标
Baidu
map