LPC18S50/S30/S10:32 位 ARM Cortex - M3 微控制器的深度解析
在嵌入式系统设计领域,选择一款合适的微控制器至关重要。NXP 推出的 LPC18S50/S30/S10 32 位 ARM Cortex - M3 微控制器,凭借其丰富的功能和出色的性能,成为众多工程师的首选。今天,我们就来深入了解这款微控制器。
文件下载:LPC18S30FET100E.pdf
一、概述
LPC18S50/S30/S10 是基于 ARM Cortex - M3 内核的微控制器,专为嵌入式应用设计,具备安全特性。它能在高达 180 MHz 的 CPU 频率下运行,采用 3 级流水线和哈佛架构,拥有独立的本地指令和数据总线,以及用于外设的第三总线,还包含支持推测分支的内部预取单元。
这款微控制器集成了多达 200 kB 的片上 SRAM、带 AES 引擎的安全特性、Quad SPI Flash 接口(SPIFI)、状态可配置定时器/脉宽调制器(SCTimer/PWM)子系统、两个高速 USB 控制器、以太网、LCD、外部存储器控制器以及多个数字和模拟外设。
二、特性与优势
(一)处理器核心
- 高性能内核:ARM Cortex - M3 处理器,运行频率高达 180 MHz,内置支持八个区域的内存保护单元(MPU)和嵌套向量中断控制器(NVIC),具备不可屏蔽中断(NMI)输入。
- 调试功能强大:支持 JTAG 和串行线调试、串行跟踪、八个断点和四个观察点,还具备增强跟踪模块(ETM)和增强跟踪缓冲区(ETB)。
- 系统滴答定时器:可按 10 ms 间隔生成专用的 SYSTICK 异常。
(二)片上内存
- 大容量 SRAM:提供 200 kB 的 SRAM 用于代码和数据存储,多个 SRAM 块具有独立的总线访问,提高了数据处理效率。
- ROM 与 OTP 内存:64 kB 的 ROM 包含引导代码和片上软件驱动;64 位一次性可编程(OTP)内存用于通用用途,两个 256 位的 OTP 内存用于 AES 密钥存储,其中一个存储加密密钥用于解码引导映像。
- AES 引擎:支持通过基于 ROM 的 API 进行 AES 加密和解密,具备随机数生成器(RNG),可对连接到 Quad SPI Flash 接口(SPIFI)的外部闪存数据进行解码,确保数据安全。
(三)时钟生成单元
- 多时钟源:支持 1 MHz 至 25 MHz 的晶体振荡器、12 MHz 内部 RC 振荡器(精度达 1.5%)和超低功耗 RTC 晶体振荡器。
- PLL 灵活配置:三个 PLL 允许 CPU 在无需高频晶体的情况下达到最大速率,第二个 PLL 专用于高速 USB,第三个 PLL 可作为音频 PLL。
- 时钟输出:提供时钟输出功能,方便系统时钟同步。
(四)丰富的外设接口
- 串行接口
- Quad SPI Flash 接口(SPIFI):支持 1、2 或 4 位数据传输,速率高达 52 MB 每秒。
- 以太网:10/100T 以太网 MAC,具备 RMII 和 MII 接口,支持 DMA,支持 IEEE 1588 时间戳和高级时间戳(IEEE 1588 - 2008 v2)。
- USB 接口:一个高速 USB 2.0 主机/设备/OTG 接口(USB0)和一个高速 USB 2.0 主机/设备接口(USB1),均支持 DMA,USB 接口电气测试软件包含在 ROM USB 堆栈中。
- UART 和 USART:四个 550 UART 支持 DMA,其中一个 UART 具备完整调制解调器接口,一个 UART 具备 IrDA 接口,三个 USART 支持 UART 同步模式和符合 ISO7816 规范的智能卡接口。
- SSP 控制器:两个 SSP 控制器具备 FIFO 和多协议支持,均支持 DMA。
- I2C 接口:一个快速模式增强型 I2C 总线接口和一个标准 I2C 总线接口,支持高达 1 Mbit/s 的数据速率。
- I2S 接口:两个 I2S 接口支持 DMA,每个接口有一个输入和一个输出。
- 数字外设
- 外部存储器控制器(EMC):支持外部 SRAM、ROM、NOR 闪存和 SDRAM 设备。
- LCD 控制器:支持高达 1024 H × 768 V 的可编程显示分辨率,支持单色和彩色 STN 面板以及 TFT 彩色面板,支持 1/2/4/8 bpp 颜色查找表(CLUT)和 16/24 位直接像素映射。
- SD/MMC 卡接口:支持 Secure Digital 内存(SD 版本 3.0)、Secure Digital I/O(SDIO 版本 2.0)、Consumer Electronics Advanced Transport Architecture(CE - ATA 版本 1.1)和 MultiMedia 卡(MMC 版本 4.4)。
- 通用 DMA 控制器:八通道通用 DMA 控制器可访问 AHB 上的所有内存和所有支持 DMA 的 AHB 从设备。
- GPIO:多达 164 个通用输入/输出(GPIO)引脚,具备可配置的上拉/下拉电阻,GPIO 寄存器位于 AHB 上以实现快速访问,GPIO 端口支持 DMA。
- 模拟外设
- ADC:两个 10 位 ADC 支持 DMA,数据转换速率为 400 kSamples/s,每个 ADC 最多有八个输入通道。
- DAC:一个 10 位 DAC 支持 DMA,数据转换速率为 400 kSamples/s。
(五)电源管理
- 单一电源供电:采用单一 3.3 V(2.2 V 至 3.6 V)电源供电,片上内部稳压器为核心电源和 RTC 电源域供电。
- RTC 独立供电:RTC 电源域可由 3 V 电池单独供电。
- 多种低功耗模式:支持睡眠、深度睡眠、掉电和深度掉电四种低功耗模式,可通过各种外设的唤醒中断从睡眠模式唤醒,通过外部中断和 RTC 电源域中电池供电模块产生的中断从深度睡眠、掉电和深度掉电模式唤醒。
- 欠压检测:具备四个独立阈值的欠压检测功能,用于中断和强制复位。
三、应用领域
LPC18S50/S30/S10 适用于多种应用场景,包括通信集线器、汽车售后市场、电源管理、消费健康设备、嵌入式音频应用、工业控制、工业自动化和白色家电等。
四、订购信息
该系列微控制器提供多种封装选项,如 LBGA256、TFBGA180、TFBGA100 和 LQFP144 等,不同型号在 SRAM 容量、LCD、以太网、USB 接口、ADC 通道、PWM、QEI 和 GPIO 等方面存在差异,工程师可根据具体需求进行选择。
五、功能描述
(一)架构概述
ARM Cortex - M3 包含三个 AHB - Lite 总线:系统总线、I - code 总线和 D - code 总线,LPC18S50/S30/S10 使用多层 AHB 矩阵将 ARM Cortex - M3 总线和其他总线主设备连接到外设,实现灵活的连接和同时访问。
(二)ARM Cortex - M3 处理器
ARM Cortex - M3 是一款通用的 32 位微处理器,具有高性能和低功耗的特点,采用流水线技术,支持 Thumb - 2 指令集、低中断延迟、硬件除法、硬件单周期乘法等功能。
(三)系统滴答定时器(SysTick)
可按 10 ms 间隔生成专用的 SYSTICK 异常,用于系统定时。
(四)AHB 多层矩阵
通过多层 AHB 矩阵实现总线主设备和从设备的连接,确保数据的高效传输。
(五)嵌套向量中断控制器(NVIC)
支持 53 个向量中断,具备八个可编程中断优先级级别和硬件优先级级别屏蔽功能,支持可重定位向量表、非屏蔽中断(NMI)和软件中断生成。
(六)事件路由器
将各种内部信号、中断和外部中断引脚(WAKEUP[3:0])组合,在 NVIC 中创建中断,并生成唤醒信号,可由电池供电。
(七)全局输入多路复用器阵列(GIMA)
用于将内部和外部信号路由到事件驱动的外设目标,具备单源选择、信号反转、脉冲捕获、同步和单周期脉冲生成等功能。
(八)片上静态 RAM
支持高达 200 kB 的 SRAM,具备独立的总线主设备访问和独立的电源控制,支持在系统编程(ISP)模式。
(九)引导 ROM
64 kB 的内部 ROM 存储引导代码,支持从外部静态内存(如 NOR 闪存、SPI 闪存、Quad SPI 闪存、USB0 和 USB1)引导,包含 OTP 编程 API 和灵活的 USB 设备堆栈。
(十)内存映射
详细的内存映射为不同的外设和内存区域分配了特定的地址空间,方便工程师进行编程和调试。
(十一)一次性可编程(OTP)内存
提供 64 位通用 OTP 内存和 256 位用于存储两个 AES 密钥的 OTP 内存,其中一个为加密密钥。
(十二)通用输入/输出(GPIO)
提供八个 GPIO 端口,每个端口最多有 31 个 GPIO 引脚,具备加速 GPIO 功能、位级设置和清除寄存器、方向控制、中断请求等功能。
(十三)AHB 外设
- AES 解密/加密:硬件 AES 引擎支持 AES 算法的加密和解密,具备多种特性,如随机数生成、唯一 ID、CMAC 哈希计算等。
- 状态可配置定时器(SCTimer/PWM)子系统:可配置为两个 16 位计数器或一个统一的 32 位计数器,支持多种定时、计数、输出调制和输入捕获操作。
- 通用 DMA:支持外设到内存、内存到外设、外设到外设和内存到内存的事务,具备八个 DMA 通道、16 个 DMA 请求线、硬件 DMA 通道优先级等功能。
- SPI Flash 接口(SPIFI):支持经典和 4 位双向串行协议,可与低功耗串行闪存连接,支持 DMA 访问。
- SD/MMC 卡接口:支持多种 SD/MMC 模式。
- 外部存储器控制器(EMC):支持动态内存接口(如 SDRAM)和异步静态内存设备(如 RAM、ROM 和 NOR 闪存),具备低事务延迟、读写缓冲区等特性。
- 高速 USB 主机/设备/OTG 接口(USB0):具备片上 UTMI + 兼容的高速收发器(PHY),支持 USB 2.0 规范和 USB On - The - Go 补充协议。
- 高速 USB 主机/设备接口(USB1):可连接外部 ULPI PHY 实现高速操作,支持 USB 2.0 规范。
- LCD 控制器:提供必要的控制信号,支持多种 LCD 面板,具备 DMA 控制器和硬件光标支持。
- 以太网:支持 10/100 Mbit/s,具备 DMA 支持、电源管理远程唤醒帧和魔法包检测等功能,支持 IEEE 1588 时间戳。
(十四)数字串行外设
- UART:具备标准的发送和接收数据线,支持全调制解调器控制握手接口和 RS - 485/9 位模式,支持 DMA。
- USART:三个 USART 支持同步模式和智能卡模式,支持 DMA,其中 USART3 支持 IrDA 模式。
- SSP 串行 I/O 控制器:支持 SPI、4 线 SSI 或 Microwire 总线,支持全双工传输,具备八个帧 FIFO。
- I2C 总线接口:两个 I2C 总线接口支持多主机操作,具备可编程时钟、双向数据传输、仲裁和串行时钟同步等功能。
- I2S 接口:两个 I2S 接口支持数字音频应用,具备独立的输入/输出通道,支持 8、16 和 32 位字大小,支持音频主时钟。
- C_CAN:两个 C_CAN 控制器符合 CAN 协议版本 2.0B,支持高达 1 Mbit/s 的比特率,具备 32 个消息对象和可编程 FIFO 模式。
(十五)计数器/定时器和电机控制
- 通用 32 位定时器/外部事件计数器:四个 32 位定时器/计数器具备可编程 32 位预分频器、两个 32 位捕获通道和四个 32 位匹配寄存器,支持多种操作模式和中断功能。
- 电机控制 PWM:支持三相电机和其他组合,具备反馈输入和中止输入,可用于多种定时、计数、捕获和比较应用。
- 正交编码器接口(QEI):用于解码正交编码器的数字脉冲,跟踪编码器位置、方向和速度,具备可编程计数模式、速度捕获和比较功能。
- 重复中断(RI)定时器:提供一个自由运行的 32 位计数器,可与可选值进行比较,生成中断。
- 窗口看门狗定时器(WWDT):用于在软件未能在可编程时间窗口内定期服务时复位控制器,具备可选的窗口操作和警告中断功能。
(十六)模拟外设
- 模数转换器(ADC):两个 10 位 ADC 具备输入多路复用、掉电模式、测量范围 0 至 VDDA、采样频率高达 400 kSamples/s 等特性,支持 DMA。
- 数模转换器(DAC):10 位分辨率,具备单调设计、可控转换速度和低功耗等特性。
(十七)RTC 电源域外设
- RTC:用于测量时间,具备超低功耗设计,支持电池供电,可进行校准,支持周期性中断和闹钟中断。
- 闹钟定时器:16 位定时器,可按 1 kHz 计数,生成闹钟中断。
(十八)系统控制
- 配置寄存器(CREG):控制 BOD 跳闸设置、振荡器输出、DMA 到外设复用、以太网模式、内存映射、定时器/USART 输入和 USB 控制器启用等设置。
- 系统控制单元(SCU):确定数字引脚的功能和电气模式,控制 ADC 功能选择。
- 时钟生成单元(CGU):生成多个基本时钟,多个分支时钟可独立控制,用于电源管理。
- 内部 RC 振荡器(IRC):作为 WWDT 和/或 PLLs 及 CPU 的时钟源,频率为 12 MHz,精度为 1.5%。
- PLL0USB(用于 USB0):为 USB0 高速控制器提供专用 PLL。
- PLL0AUDIO(用于音频):通用 PLL,支持小步长,输出频率可根据采样频率进行设置。
- 系统 PLL1:输入时钟频率范围为 1 MHz 至 25 MHz,可将输入频率倍增至高频,输出时钟可通过输出分频器进行设置。
- 复位生成单元(RGU):可生成独立的复位信号用于各个模块和外设。
- 电源控制:具备多个独立的电源域,支持四种低功耗模式,可通过 WAKEUP[3:0] 引脚和 RTC 电源域中电池供电模块产生的中断唤醒。
(十九)仿真和调试
集成了 ARM Cortex - M3 的调试和跟踪功能,支持串行线调试和跟踪,支持多达八个断点和四个观察点。
六、电气特性
(一)限制值
文档给出了调节器电源电压、输入/输出电源电压、模拟电源电压、电池供电电压等参数的限制值,确保芯片在安全的电压范围内工作。
(二)热特性
提供了平均芯片结温的计算公式,以及不同封装的热阻参数,帮助工程师进行散热设计。
(三)静态特性
详细列出了各种电源引脚的电压、电流参数,以及不同模式下的功耗情况,为电源设计提供参考。
(四)动态特性
包括唤醒时间、外部时钟、晶体振荡器、IRC 振荡器、RTC 振荡器、I/O 引脚、I2C 总线、I2S 总线接口、USART 接口、SSP 接口、外部存储器接口、USB 接口、以太网、SD/MMC、LCD 和 SPIFI 等的动态特性参数,为系统设计提供了准确的时序信息。
(五)ADC/DAC 电气特性
给出了 ADC 和 DAC 的各项电气特性参数,如模拟输入电压、输入电容、线性误差、偏移误差、增益误差等,确保模拟信号处理的准确性。
七、应用信息
(一)LCD 面板信号使用
提供了不同类型 LCD 面板(ST