PAGE1
PAGE1
LPC1768的基本架构
LPC1768是NXP半导体公司推出的一款基于ARMCortex-M3内核的高性能微控制器。它具有丰富的外设和强大的处理能力,适用于复杂娱乐设备的开发。本节将详细介绍LPC1768的基本架构,包括其核心处理单元、存储器、外设和电源管理。
ARMCortex-M3内核
ARMCortex-M3是一种高度集成的、低功耗的内核,广泛用于嵌入式系统。它支持Thumb-2指令集,提供了平衡的性能和功耗。LPC1768采用ARMCortex-M3内核,具有以下特点:
高性能:工作频率高达100MHz,提供了出色的处理能力。
低功耗:在高性能和低功耗之间取得了良好的平衡。
Thumb-2指令集:支持16位和32位指令,提高了代码密度和执行效率。
嵌入式跟踪宏单元(ETM):支持调试和跟踪,便于开发和维护。
嵌入式外设:包括UART、I2C、SPI、CAN、USB等多种通信接口,以及ADC、DAC、GPIO等多种输入输出设备。
存储器
LPC1768配备了多种类型的存储器,包括闪存和SRAM,以满足不同场景下的需求。
闪存:512KB的闪存,用于存储程序和常量数据。
SRAM:64KB的SRAM,用于存储运行时数据和变量。
外部存储器接口(EMC):支持外部SDRAM、SRAM、PSRAM、NORFlash和NANDFlash,扩展了存储能力。
外设
LPC1768集成了丰富的外设,使其能够适应多种应用场景。
UART:8个UART接口,支持串行通信。
I2C:2个I2C接口,支持两线制通信。
SPI:2个SPI接口,支持四线制通信。
CAN:2个CAN接口,支持汽车网络通信。
USB:支持USB2.0全速主机和设备模式。
ADC:12位ADC,具有8个输入通道。
DAC:12位DAC,具有1个输出通道。
GPIO:多达114个通用输入输出引脚。
PWM:6个独立的PWM通道,支持多种波形生成。
定时器:4个32位定时器,支持多种定时功能。
RTC:实时时钟,支持低功耗操作。
电源管理
LPC1768具有多种电源管理模式,以优化功耗。
正常模式:全速运行,所有外设可用。
空闲模式:CPU停止运行,外设继续工作。
掉电模式:CPU和外设停止运行,仅保留实时时钟。
深度掉电模式:所有功能停止,仅保留少量寄存器状态。
初始化LPC1768
在开发基于LPC1768的复杂娱乐设备时,正确的初始化步骤是确保系统正常运行的关键。本节将介绍如何初始化LPC1768,包括时钟配置、外设初始化和中断设置。
时钟配置
LPC1768的时钟系统非常灵活,可以通过多种方式配置。主要的时钟源包括内部RC振荡器、外部晶振和PLL(锁相环)。
//初始化系统时钟
voidSystemClock_Config(void){
//选择外部晶振作为主时钟源
LPC_SC-CLKSRCSEL=0x01;//选择外部晶振
LPC_SC-CCLKCFG=0//设置CCLK分频器为1
//配置PLL
LPC_SC-PLL0CON=0x01;//使能PLL0
LPC_SC-PLL0CFG=0//设置PLL0分频器
LPC_SC-PLL0STAT=0//设置PLL0状态
LPC_SC-PLL0FEED=0xAA;//喂狗
LPC_SC-PLL0FEED=0x55;//喂狗
//连接PLL0到CCLK
LPC_SC-PLL0CON=0x03;//使能并连接PLL0
LPC_SC-PLL0FEED=0xAA;//喂狗
LPC_SC-PLL0FEED=0x55;//喂狗
//设置系统时钟
LPC_SC-CCLKSEL=0x01;//选择PLL0作为系统时钟源
}
外设初始化
外设初始化是系统配置的重要部分。以下是一个简单的示例,初始化UART0用于串行通信。
//初始化UART0
voidUART0_Init(void){
//使能UART0时钟
LPC_SC-PCONP|=(114);
//配置UART0时钟分频器
LPC_UA