LPC2131 ARM微控制器.pdf
《LPC2131 ARM微控制器.pdf》由会员分享,可在线阅读,更多相关《LPC2131 ARM微控制器.pdf(395页珍藏版)》请在三一文库上搜索。
1、广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 1 - 第 1 章 LPC2141/2/4/6/8 概述.7 1.1 简介.7 1.1.1 特性.8 1.1.2 应用.8 1.1.3 器件信息.9 1.2 管脚和结构.9 1.2.1 LPC2141/2/4/6/8 的管脚分布 9 1.2.2 LPC2141/2/4/6/8 的管脚描述 12 1.2.3 结构概述.17 1.3 外部中断输入.19 1.4 其它系统控制.20 1.5 锁相环(PLL)20 1.6 功率控制.26 1.7 向量中断控制器(VIC)29 1.8
2、管脚连接模块.29 1.8.1 描述.29 1.8.2 寄存器描述.29 第 2 章 功能部件和基础实验35 2.1 实验平台介绍.35 2.1.1 LPC214x CPU PACK板介绍35 2.1.2 LPC214x工程模板36 2.2 GPIO36 2.2.1 特性.36 2.2.2 应用.37 2.2.3 管脚描述.37 2.2.4 慢速GPIO38 2.2.5 快速GPIO40 2.2.6 GPIO使用注意事项50 2.2.7 操作方法.52 2.2.8 基础实验.52 2.3 UART156 2.3.1 特性.57 2.3.2 管脚描述.57 2.3.3 结构.58 2.3.4 寄
3、存器描述.59 2.3.5 基础实验.75 2.4 SPI0.80 2.4.1 寄存器描述.80 2.4.2 使用示例.81 2.5 ADC 84 2.5.1 特性.84 2.5.2 描述.84 2.5.3 管脚描述.84 2.5.4 寄存器描述.85 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 2 - 2.5.5 基础实验.91 2.6 DAC 92 2.6.1 特性.92 2.6.2 管脚描述.92 2.6.3 DAC寄存器(DACR 0xE006C000).93 2.6.4 操作.93 2.6.5 基础实验.93
4、 2.7 实时时钟.94 第 3 章 LPC214x USB设备控制器固件编程96 3.1 LPC214x USB设备控制器简介.96 3.1.1 控制器特性.96 3.1.2 控制器结构.96 3.1.3 端点配置.97 3.1.4 USB数据流.98 3.1.5 USB设备控制器寄存器 .100 3.2 LPC214x USB硬件电路设计.101 3.3 LPC214x USB固件程序设计思想.102 3.4 USB固件程序配置头文件 .104 3.5 USB设备硬件抽象层.105 3.6 USB设备接口命令层.106 3.6.1 USB器件中断寄存器 .106 3.6.2 端点中断寄存器
5、.109 3.6.3 端点使用寄存器.111 3.6.4 数据传输寄存器.113 3.6.5 从机模式下端点的数据传输.115 3.6.6 命令寄存器.118 3.6.7 USB协议引擎命令描述 .120 3.6.8 USB协议引擎命令的实现 .121 3.7 应用层的实现.130 3.7.1 初始化LPC214x USB控制器.130 3.7.2 USB设备控制器中断服务 .132 3.7.3 低优先级中断服务程序.134 3.7.4 USB事件处理.135 3.7.5 控制传输处理.136 3.7.6 端点数据收发.137 3.8 协议层.140 3.8.1 USB标准设备请求 .140
6、3.8.2 USB标准设备请求的实现 .141 3.9 USB设备控制器DMA功能的实现154 3.9.1 USB DMA工作原理.155 3.9.2 DMA相关的中断159 3.9.3 DMA相关寄存器161 3.9.4 USB DMA编程要点.163 3.9.5 DMA引擎初始化163 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 3 - 3.9.6 DMA中断服务程序167 3.9.7 DMA操作相关的API函数 .169 3.10 使用LPC214x USB固件程序需要注意的问题.171 第 4 章 LPC214
7、x USB固件程序的应用172 4.1 EasyUSB214x.dll动态库172 4.2 一个最简单的例子.172 4.2.1 要求.172 4.2.2 硬件配置.173 4.2.3 程序的编写.173 4.2.4 程序的运行.174 4.3 收发大量数据例子.176 4.3.1 要求.176 4.3.2 硬件配置.176 4.3.3 实现的方法.176 4.3.4 程序的编写.177 4.3.5 例子的运行.181 4.4 利用LPC214x USB固件程序实现HID类183 4.4.1 要求.183 4.4.2 硬件配置.183 4.4.3 程序的编写.183 4.4.4 程序的运行.1
8、91 4.5 DMA使用例子192 4.5.1 要求.192 4.5.2 硬件配置.192 4.5.3 程序的编写.192 4.5.4 程序的运行.194 第 5 章 移植C/OS-II到ARM7196 5.1 C/OS-II简介196 5.1.1 概述.196 5.1.2 C/OS-II的特点196 5.2 移植规划.197 5.2.1 编译器的选择.197 5.2.2 任务模式的取舍.197 5.2.3 支持的指令集.197 5.3 移植C/OS-II197 5.3.1 概述.197 5.3.2 关于头文件includes.h和config.h198 5.3.3 编写OS_CPU.H199
9、 5.3.4 编写Os_cpu_c.c文件 200 5.3.5 编写Os_cpu_a.s 205 5.3.6 关于中断及时钟节拍.208 5.4 移植代码应用到LPC2100210 5.4.1 编写或获取启动代码.210 5.4.2 挂接SWI软件中断210 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 4 - 5.4.3 中断及时钟节拍中断.211 5.4.4 C/OS-II移植目录结构211 5.4.5 编写应用程序.212 第 6 章 C/OS-II基础实验.215 6.1 概述.215 6.2 GPIO实验215
10、 6.2.1 GPIO输出实验 1.215 6.2.2 GPIO输出实验 2.217 6.2.3 GPIO输入实验218 6.3 定时器实验.220 6.4 PWM实验 .221 6.5 RTC实验 .225 6.6 信号量使用.229 第 7 章 C/OS-II中间件.232 7.1 数据队列.232 7.1.1 简介.232 7.1.2 配置选项.232 7.1.3 API函数集.232 7.1.4 使用范例.235 7.2 串口驱动.239 7.2.1 简介.239 7.2.2 配置选项.239 7.2.3 API函数集.239 7.2.4 使用范例.240 7.3 MODEM接口模块2
11、45 7.3.1 简介.245 7.3.2 MODEM的状态245 7.3.3 API函数集.245 7.3.4 使用范例.247 7.4 I2C总线模块250 7.4.1 简介.250 7.4.2 API函数集.250 7.4.3 使用范例.251 7.5 SPI总线模块.255 7.5.1 简介.255 7.5.2 API函数集.256 7.5.3 使用范例.258 7.6 ZLG/FS文件系统260 7.6.1 概述.260 7.6.2 关于ZLG/FS V1.1.262 7.6.3 ZLG/FS V1.0 API函数集262 7.6.4 使用范例.269 第 8 章 ZLG/USB21
12、4x软件包的开发与应用 .272 8.1 软件包运行的硬件条件.272 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 5 - 8.2 ZLG/USB214x软件包总体设计思想.272 8.3 软件包应用层的实现.273 8.3.1 初始化USB设备控制器 .273 8.3.2 USB总中断服务程序 .275 8.3.3 低优先级中断.277 8.3.4 控制传输的实现.278 8.3.5 端点数据收发设计思想.279 8.3.6 无DMA模式下从端点接收数据281 8.3.7 无DMA模式向USB主机发送数据286 8.
13、3.8 DMA模式下从USB接收数据290 8.3.9 C/OS-II中的DMA中断服务程序.292 8.3.10 DMA模式下向USB主机发送数据296 8.4 ZLG/USB214x软件包的使用 300 8.4.1 ZLG/USB214x软件包的配置方法.300 8.4.2 ZLG/USB214x软件包API函数300 8.5 ZLG/USB214x软件包的使用实验 303 8.5.1 实验内容.303 8.5.2 硬件配置.303 8.5.3 原理分析.303 8.5.4 实验步骤.303 8.5.5 实验参考程序.305 第 9 章 ZLG/GUI应用实例310 9.1 概述.310
14、9.2 ZLG/GUI的文件.310 9.3 ZLG/GUI的配置.310 9.4 ZLG/GUI函数手册.312 9.5 ZLG/GUI的移植.317 9.5.1 移植相关说明.317 9.5.2 移植相关接口函数.318 9.5.3 移植实例.321 9.6 应用举例.335 9.6.1 关于CONFIG.H文件.335 9.6.2 使用ZLG/GUI的一般操作步骤.336 9.6.3 ZLG/GUI在多任务中的使用说明.337 9.6.4 “Hello”程序 338 9.6.5 汉字显示演示.341 9.6.6 窗口显示演示.349 9.6.7 图形显示演示.351 9.6.8 菜单功能
15、演示.354 第 10 章 SD/MMC卡读写模块368 10.1 SD/MMC卡的外部物理接口.368 10.1.1 SD模式369 10.1.2 SPI模式.370 10.2 访问SD/MMC卡的SPI模式硬件电路设计 .371 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:38730925 http:/ - 6 - 10.2.1 SPI总线.372 10.2.2 卡供电控制.372 10.2.3 卡检测电路.372 10.3 SD/MMC卡读写模块的文件结构及整体构架.372 10.3.1 SD/MMC卡读写模块的文件组成.372 10.3.2 SD
16、/MMC读写模块整体框架.373 10.4 SD/MMC卡读写模块的使用说明.373 10.4.1 SD/MMC卡读写模块的硬件配置.373 10.4.2 SD/MMC卡读写模块提供的API函数.376 10.5 SD/MMC卡读写模块的使用例子.378 10.5.1 硬件连接与配置.378 10.5.2 实现方法.379 10.5.3 例子建立与运行步骤.381 10.5.4 参考程序.385 上位机软件EasyARM.exe介绍389 USB分析仪USBAnalyser简介.393 参考文献.395 广州致远电子有限公司 Tel:(020)38730976 38730977 Fax:387
17、30925 http:/ - 7 - 第第1章 章 LPC2141/2/4/6/8 概述概述 LPC214x 和 LPC213x 是引脚兼容的两个系列芯片,LPC214x 在 LPC213x 的基础上新 增了许多新特性,其中最引人注目的是内置了 USB2.0 Device(全速)控制器,USB 特性和使 用将在第 3、 4 和第 8 章介绍。 除此之外, LPC214x 在其它很多外设上均有所改进, 如 GPIO、 UART、ADC 等,由于本书上册已经对 LPC213x 进行了专门的介绍,为了避免内容上的重 复, 本书将只对 LPC214x 新增和改进的特性进行重点介绍, 其余部分请看 深入
18、浅出 ARM7 LPC214x/214x(上册) 。 1.1 简介简介 LPC2141/2/4/6/8是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-S CPU 的微控制器,并内嵌 32/64/128/256/512kB 的高速 Flash 存储器。128 位宽度的存储器接口 和独特的加速结构使 32 位代码能够在最大时钟速率下运行。 对代码规模有严格控制的应用 可使用 16 位 Thumb 模式将代码规模降低超过 30%,而性能的损失却很小。 较小的封装和很低的功耗使 LPC2141/2/4/6/8 特别适用于访问控制和 POS 机等小型应 用中;由于内置了宽范围的串行通信
19、接口(USB 2.0 Device(全速)、多个 UART、SPI、 SSP 和 I2C 总线接口)和 8kB40kB 的片内 SRAM,它们也非常适合于通信网关、协议转 换器、软件 modem、语音识别和低端成像,为这些应用提供大规模的缓冲区和强大的处理 功能。 多个 32 位定时器、 1 个或 2 个 10 位 ADC、 10 位 DAC、 PWM 通道、 45 个快速 GPIO 口以及多达 9 个边沿或电平触发的外部中断管脚, 使它们特别适用于工业控制和医疗系统。 ARM7TDMI-S 是通用的 32 位微处理器内核,它具有高性能和低功耗的特性。ARM 结 构是基于精简指令集计算机(RI
20、SC)原理而设计的。指令集和相关的译码机制比复杂指令集 计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实 时的中断响应。 由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条 指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。 ARM7TDMI-S 处理器也使用了一个被称为 Thumb 的独特结构化策略,它非常适用于 那些对存储器有限制或者需要较高代码密度的大批量产品的应用。 在 Thumb 后面一个关键的概念是“超精简指令集” 。基本上,ARM7TDMI-S 处理器具 有两个指令集: ? 标准 32 位 ARM 指令集 ? 16
21、 位 Thumb 指令集 Thumb 指令集的 16 位指令长度使其可以达到标准 ARM 代码两倍的密度, 却仍然保持 ARM的大多数性能上的优势, 这些优势是使用16位寄存器的传统16位处理器所不具备的。 因为 Thumb 代码和 ARM 代码一样,在相同的 32 位寄存器上进行操作。 Thumb 代码仅为 ARM 代码规模的 65%, 但其性能却相当于连接到 16 位存储器系统的 相同 ARM 处理器性能的 160%。 关于 ARM7TDMI-S 处理器的详细内容请参阅 ARM 官方网站上的 ARM7TDMI-S 数据 手册。 广州致远电子有限公司 Tel:(020)38730976 38
22、730977 Fax:38730925 http:/ - 8 - 1.1.1 特性特性 ? 16/32 位 ARM7TDMI-S 微控制器,超小 LQFP64 封装。 ? 8kB40kB 的片内静态 RAM 和 32kB512kB 的片内 Flash 程序存储器。 128 位宽 度接口/加速器可实现高达 60 MHz 的工作频率。 ? 通过片内 boot 装载程序可实现在系统编程/在应用编程(ISP/IAP) 。单个 Flash 扇 区或整片擦除时间为 400ms,256 字节编程时间为 1ms。 ? EmbeddedICE RT 和嵌入式跟踪接口提供实时调试(通过片内 RealMonitor
23、 软件) 和高速跟踪指令执行。 ? USB 2.0 全速设备控制器具有 2kB 的端点 RAM。此外,LPC2146/8 提供 8kB 的片 内 RAM,可被 USB 的 DMA 控制器访问。 ? 1 个或 2 个(LPC2141/2 vs. LPC2144/6/8)10 位 A/D 转换器,提供总共 6/14 路模 拟输入,每个通道的转换时间低至 2.44us。 ? 1 个 10 位的 D/A 转换器提供可变的模拟输出(LPC2141 除外) 。 ? 2 个 32 位定时器/外部事件计数器(带 4 路捕获和 4 路比较通道) 、PWM 单元(6 路输出)和看门狗。 ? 低功耗实时时钟(RTC
24、)具有独立的电源和专门的 32kHz 时钟输入。 ? 多个串行接口,包括 2 个 UART(16C550)、2 个高速 I2C 总线(400 kbit/s)、SPI 和 具有缓冲作用和数据长度可变功能的 SSP。 ? 向量中断控制器(VIC) 。可配置优先级和向量地址。 ? 多达 45 个可承受 5V 电压的通用 I/O 口(LQFP64 封装) 。 ? 多达 9 个边沿或电平触发的外部中断管脚。 ? 通过一个可编程的片内 PLL(100us 的设置时间)可实现最大为 60MHz 的 CPU 操作频率。 ? 片内集成振荡器可操作频率为 130 MHz 的外部晶体或频率高达 50MHz 的外部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LPC2131 ARM微控制器 ARM 控制器
链接地址:https://www.31doc.com/p-3672693.html