NEWMSG Tech JAS K 2132 User Manual

Page 1
NewMsg Tech http://www.rfinchina.com
JASK2132 开发使用手册
ARM & RF 系列开发套件
V2.0
追赶时代技术潮流 加速科技创新步伐
1.从 8 位单片机到 32 位 ARM7 处理器一站式轻松入门
2.精通无线通信与嵌入式两大热门技术,做时代的强者
3.视频教学指导,要点解析,举一反三,开发技巧高效速成
4.基础性、启发性案例丰富,从简单到复杂,从入门到精通
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 2
NewMsg Tech http://www.rfinchina.com
目录
第一部分 嵌入式无线通信技术简介 ................................................................... 4
功能框架示意图 .................................................... 5
如何正确认识和定位嵌入式? ........................................ 5
如何成为一名全面的嵌入式工程师? .................................. 6
JASK2132 开发板的设计定位是什么?.................................. 6
嵌入式无线通信技术的典型应用领域 .................................. 7
第二部分 ARM7-LPC2132 芯片解析...................................................................... 8
LPC213X概述 ....................................................... 9
LPC213X基本特性............................................... 10
硬件功能示意图 ................................................... 12
锁相环PLL和VPB分频器要点解析 ..................................... 12
锁相环PLL和VPB分频器概述和意义................................ 12
四类时钟频率的区别和各自作用.................................. 13
锁相环PLL和VPB分频器基本操作方法.............................. 13
PLL和VPB操作示例.............................................. 14
在操作PLL和VPB时的注意事项.................................... 15
中断操作要点解析 ................................................. 15
向量中断控制器(VIC)概述..................................... 15
向量中断控制器(VIC)特性..................................... 16
VIC基本操作方法............................................... 16
中断操作示例.................................................. 17
VIC使用注意事项............................................... 17
GPIO操作要点解析 ................................................. 19
GPIO功能概述.................................................. 19
功能模块的操作方法............................................ 21
GPIO的读、写操作方法.......................................... 21
GPIO使用注意事项.............................................. 22
UART应用要点解析 ................................................. 22
UART功能概述.................................................. 22
UART基本操作方法.............................................. 25
UART0 示例分析 ................................................ 25
I2C要点解析 ...................................................... 27
I2C功能概述................................................... 27
I2C基本特性................................................... 28
I2C操作模式................................................... 29
I2C主机基本操作方法........................................... 32
SPI模块要点解析 .................................................. 33
SPI功能概述................................................... 33
SPI基本特性................................................... 33
SPI基本操作方法............................................... 33
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 3
NewMsg Tech http://www.rfinchina.com
SPI主机操作流程............................................... 36
SPI从机操作流程............................................... 36
SPI操作示例................................................... 37
定时器使用要点分析 ............................................... 38
定时器功能概述................................................ 38
定时器基本特性................................................ 38
定时器 0 操作示例.............................................. 39
PWM脉宽调制器要点解析 ............................................ 39
PWM概述....................................................... 39
PWM基本特性................................................... 40
PWM操作示例................................................... 45
AD采集要点解析 ................................................... 46
AD功能概述.................................................... 46
AD基本特性.................................................... 46
AD模块的寄存器功能............................................ 46
AD基本操作方法................................................ 49
AD操作示例.................................................... 49
RTC时钟要点解析 .................................................. 51
RTC功能概述................................................... 51
RTC基本特性................................................... 51
RTC基本操作方法............................................... 52
RTC操作示例................................................... 53
RTC使用注意事项............................................... 54
第三部分 基于LPC2132 嵌入式无线应用 ........................................................... 55
主流无线芯片汇总及特点解析 ....................................... 55
系列A: 433/868/915MHZ频段..................................... 55
1.NRF905 基本特性 ............................................ 55
2.SI4432 基本特性 ............................................. 56
3.CC1100 芯片特性 ............................................. 57
4.CC1020 芯片特性 ............................................. 57
5.A7102 基本特性 .............................................. 58
系列B: 2.4GHZ频段类........................................... 58
1.NRF24L01 芯片特性 ........................................... 58
2.NRF2401A基本特性............................................ 59
3.CC2500 基本特性 ............................................. 60
系列C: ZIGBEE协议类.......................................... 60
1.CC2420/CC2520 基本特性 ...................................... 61
基于LPC2132 无线应用案例解析...................................... 62
案例一: 无线双向遥控.......................................... 62
功能概述...................................................... 62
实验准备...................................................... 62
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 4
NewMsg Tech http://www.rfinchina.com
实验目的:.................................................... 62
基本工作流程.................................................. 62
操作步骤:.................................................... 63
案例二: 无线 232/485 通信设计.................................. 64
功能概述...................................................... 64
实验准备:.................................................... 64
实验目的:.................................................... 64
基本该工作流程................................................ 64
操作步骤:.................................................... 65
案例三: 无线温度数据采集...................................... 65
功能概述...................................................... 65
实验准备:.................................................... 66
基本工作流程:................................................ 66
操作步骤:.................................................... 67
案例四:无线AD传感器应用....................................... 68
功能概述...................................................... 68
实验准备:.................................................... 68
基本工作流程:................................................ 69
操作步骤:.................................................... 69
无线应用注意事项 ................................................. 70
基本配置:
类型 数量 备注 JASK2132 开发底板 1 块 ARM7--LPC2132 JASK2000 开发底板 1 块 MCS51--STC89C52 TFT 准真彩显示屏 1 块 18 位像素 128X128 无线模块 2 片 可选选配如:RF905SE 等 JLINK 仿真器 1 个 USB 接口用于 ARM 调试 串口线 1 条 用于串口通信 USB-TTL 模块 2 个 用于 JASK2000 下载和串口通信 5V 电源适配器 1 个 电源输入 光盘 1 张 提供源码、入门视频等
资料丰富,设计结构系统化,及时是初学者,也一样可以 8 位机到 32
位机轻松入门,同时感受无线通信的魅力,嵌入式入门首选。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 5
NewMsg Tech http://www.rfinchina.com
第一部分 嵌入式无线通信技术简介
功能框架示意图

如何正确认识和定位嵌入式?

经过多年的电子应用设计,从 8051 到 AVR、PIC、430 再到 ARM7、ARM9,对通用
MCU 的应用有了比较全面掌握和长足积累, PIC 以抗干扰能力强而广受好评,430
是低功耗设计首选,ARM 在处理能力上有了质的飞跃,也许很多人瞧不起 8051,但
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 6
NewMsg Tech http://www.rfinchina.com
从 8051 的问世至今,以其最丰富的资料、最广泛的使用人群,入门容易,且价格也
相对较低等优势,仍然是常青树。所以,不同的应用,在考虑设计成本、抗干扰性、
低功耗、处理速度等综合性能的基础上,不得不承认任何一种 MCU 都无法完全取代
其他。认识和分析任何一个实物,在横向特性的对比的同时,同样需要纵向的性能
的权衡,唯有这样嵌入式系统开发才有效而顺利的进行,才能事半功倍。

如何成为一名全面的嵌入式工程师?

经验告诉我们最好掌握 3 类 MCU,第一类 51 系列,这是入门的基础,也是低成
本设计的首选,毕竟没有不想省钱的老板,同时很多应用设计,好比要设计的是拖
拉机而发动机却用的是波音 747 的引擎,结果自然就是一启动就四塴五裂,或者也
只能是个毫无性价比的摆设。其次,AVR、PIC、430 等这类中档型的 MCU(微控制器)
能掌握其中一种,毕竟有很多应用场合环境恶劣,或者追求低功耗需要电池供电方
式等,这就对系统的性能有了更多要求。最后,学习和掌握 ARM,不仅仅入门难度
和应用层次的提高,同样也是编程思想上的转变,8 位、16 位甚至 ARM7 系列 MCU
的编程更多的是逻辑性编程,是按照时序和外围设备进行通信,通过数据交换完成
指令和数据的传递,实现智能控制应用设计。而到了 ARM9 以及更高性能的 MPU(微
处理器)来说则是面向对象编程,在应用层基础上对底层驱动的调用和裁剪。

JASK2132 开发板的设计定位是什么?

首先,考虑到 ARM7 的研究和学习价值。ARM7 内核 MCU 的处理速度在 8 位机的基
础上有了本质的提高,内部集成的 SPI、PWM、RTC、UART 等功能模块也更丰富更完
善,解决了很多 8 位机应用的技术瓶颈,虽然 ARM7 远没有 ARM9 系列强大,但 ARM7
入门的门槛相比 AMR9 要低,而且开发工具和开发环境的调试方法一致,所以,在嵌
入式 IC 大家族中,ARM7 往往在 8 位机向 32 位机应用转变过程中扮演着重要的桥梁
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 7
NewMsg Tech http://www.rfinchina.com
作用,起到平和过渡效果。
其次,一方面我们自身有必要采用 ARM7 芯片对主流无线芯片进行结合性应用评
估,于此同时也可以为广大嵌入式应用提供了应用参考,降低开发风险,提高开发
效率,加速项目进程。
再次,我们考虑到 8051 使用群体最广,所以设计中以 8051 作为药引,以 ARM
为核心重点,以无线作为纽带,对重点和难度做出详细分析,例程举一反三;并提
供入门视频讲解,从简单到复杂,从入门到精通,学以致用,让嵌入式技术的学习
和应用充满活力。我们也将不断更新和完善,希望我们理念也能引导、感悟和改变
每一位热爱和向往嵌入式技术应用开发人员的现在和未来。

嵌入式无线通信技术的典型应用领域

RFID 识别类:无线标签、身份识别、非接触 RF 智能卡
无线网络:无线局域网络,无线星形网络,无线拓扑网络
数据采集类:无线工业数据采集,无线 232/485/422 数据通信
无线传感器:温度、压力等传感器信号无线采集、机器人控制
检测监控类:车辆管理系统、遥控引爆、工业遥控、无线鼠标键盘、遥测、航模控
制器、无线抄表、门禁系统、安全防火系统;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 8
NewMsg Tech http://www.rfinchina.com

第二部分 ARM7-LPC2132 芯片解析

ARM也许你现在还不太熟悉和精通,但相信每一位电子工程师都会对此有所兴
趣,ARM即Advanced RISC Machines的缩写,既可以认为是一个公司的名字,也
可以是对一类微处理器的通称,ARM架构是一款面向低预算市场设计的RISC微
处理器,具有性能高、成本低和低能耗的特点,适用于嵌入控制、消费类多媒
体、DSP和个人通信等嵌入式等众多领域。
同时,我们也已经真正进入一个无线技术无所不在的时代。手机通话、短信息
通信无处不在;GPS 导航系统为我们导航指路;无线智能家居设备、无线故障监测
系统、农作物环境监测控制系统等典型应用,而这一切,正是嵌入式技术和无线通
通信技术相结合的产物,嵌入式无线数据通信技术的迅速发展,正不断改变人们生
活的方方面面,让人们的生活更加舒适、美好和安全。
多年以来,我们一直致力于短距离无线通信技术的研究开发,积累了诸多经验
和应用案例,短距离无线通信技术以方便、快捷的优点,必将成为诸多领域创新的
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 9
NewMsg Tech http://www.rfinchina.com
敲门砖,其中微处理器同样是无线通信技术发挥性能的心脏,是基础的基础,而目
前MCU从 8 位到 32 位,型号成百上千,已是百花齐放。JASK2132 正式是一款以PHILIPS
公司出品的LPL2132(ARM7)芯片作为主控制器,并与主流无线芯片相结合的系列开
发板,传统的 8 位单片机,随着网络、通信、多媒体时代的到来,也逐渐显现出了
一些先天性的不足和设计瓶颈,而 32 位嵌入式系统在系统主频,运算处理能力上有
了本质的提高,满足控制系统的网络化、智能化的发展趋势,为高端产品应用设计
提供了广阔的空间。
LPC2132 不是万能的,也不是最强大,甚至说是ARM系列中基础型的产品,但在
嵌入式应用中,LPC系列以开发相对简单,资料丰富而广受欢迎,是ARM系列芯片大
家族中的一个简约而不简单的明星。正是考虑到LPC系列的这些优点,将LPC2132 与
主流的NRF905、CC1101、NRF24L01 等无线芯片结合起来,抛开传统呆板、空洞的评
估方式,引领技术时尚,以形象的案例应用,让你拥有感性认识的同时,激发无限
的创新能力。学以致用,方显学习之根本。研发JASK2132 开发板的目的在于将主流
的ARM和RF相结合起来,并做典型应用评估,让大家认识嵌入式,认识无线通信技术,
让工程师掌握嵌入式开发技巧,让越来越多的人设计出各行各业迫切需要的行业应
用。致力于嵌入式无线通信技术的推广和快速发展,是我们的宗旨所在。于此同时,
我们也在不断开发更多ARM9、ARM11 等系列产品。

LPC213X 概述

LPC2131/2132/2134/2136/2138 微控制器是基于一个支持实时仿真和嵌入式
跟踪的ARM7TDMI-S内核的通用 16/32 位CPU
微处理器,ARM7TDMI-S为冯-诺依曼结构,
同时,采用 3 级流水线技术,处理和存储系统的所有部分都可以连续工作,具有高
性能和低功耗的特性,对代码规模有严格控制的应用可使用 16 位Thumb模式将代码
规模降低超过 30%,而性能的损失却很小,单电源供电模式,应用已经非常普及,
已经广泛应用于个人通信等嵌入式领域,特别适用于工业控制应用以及医疗系统。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 10
NewMsg Tech http://www.rfinchina.com
你会逐渐发现 ARM7都可以实现几乎所有的嵌入式应用,或采用定制的方式来满足需
求。

LPC213X基本特性

01. 16/32 位 ARM7TDMI-S 核
02. 集成 8/16/32kB 的 RAM 和 32/64/128/256/512kB 的片内 Flash 程序存储器
03. 128 位宽度接口/加速器可实现高达 60MHz 工作频率
04. 可通过片内 boot 装载程序实现在系统编程/在应用编程(ISP/IAP)
05. 单个 Flash 扇区或整片擦除时间为 400ms,256 字节行编程时间为 1ms
06. 嵌入式跟踪接口可以对代码进行实时调试和高速跟踪
07. LPC2131/LPC21328 路 10 位的 A/D 转换器(LPC2134/36/38 为 16 路)
08. 1 个 10 位的 D/A 转换器,可产生不同的模拟输出
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 11
NewMsg Tech http://www.rfinchina.com
09. 2 个 32 位定时器/外部事件计数器(带 4 路捕获和 4 路比较通道)
10. PWM 单元(6 路输出)并集成片内看门狗功能
11. 低功耗实时时钟具有独立的电源和特定的 32kHz 时钟输入
12. 2 个 16C550 工业标准 UART0 和 UART1
13. 2 个高速I2C总线(400 kbit/s)
14. SPI和具有缓冲作用和数据长度可变功能的SSP
15. 向量中断控制器。可配置优先级和向量地址
16. 47 个通用I/O口(I/O口可承受 5V的电压)
17. 9 个边沿或电平触发的外部中断管脚
18. 通过片内PLL(100us的设置时间)可实现最大为 60MHz的 CPU操作频率
19. 片内集成振荡器与外部晶体的操作频率范围为 1~30 MHz
20.与外部振荡器的操作频率范围高达 50MHz
21.低功耗模式:空闲和掉电
22.可通过个别使能/禁止外部功能和外围时钟分频来优化功耗
23.通过外部中断或BOD将处理器从掉电模式中唤醒
24.单电源,具有上电复位(POR)和掉电检测(BOD)电路
25.CPU操作电压范围:3.0~3.6 V (3.3 V±10%)
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 12
NewMsg Tech http://www.rfinchina.com

硬件功能示意图

锁相环 PLL 和 VPB 分频器要点解析

通过分清晶振频率(FOSC)、处理器时钟(Fcclk)、系统外设时钟(Fpclk)、CCO
时钟的意义,可以学习和掌握通过对锁相环 PLL 和 VPB 分频器的配置,灵活实现所
想要的时钟系统。

锁相环 PLL 和 VPB 分频器概述和意义

PLL 锁相环(倍频):由于输入时钟频率范围为 10~25MHz,频率不高,而外部
晶体振荡器输出的时钟信号,通过 PLL 升频,可以获得更高的系统时钟(CCLK)。通
过一个电流控制振荡器(CCO)倍增到 10~60MHz。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 13
NewMsg Tech http://www.rfinchina.com
PLL 锁相环主要用途如下:
(1)可以通过 PLL 提升系统主频;
(2)增强抗干扰性能。
VPB 分频器(分频): 对 PLL 时钟分频,供给片上外设使用, 由于 CPU 内核的
速度通常比外设部件的工作速度快,用户通过使用设置 VPB 分频器,将 Fcclk 信号
降低到一个合适的值 Fpclk, 因此,VPB 分频器决定处理器时钟(CCLK)与外设器
件所使用的时钟(PCLK)之间的关系。
VPB 分频器主要有两个用途:
(1)将 Fcclk 分频,为外设提供可在合适的速度下工作所需的 Fpclk 时钟;
(2)降低系统功耗(工作频率越高,功耗越大)。

四类时钟频率的区别和各自作用

(1)晶振频率(FOSC):外部晶振的频率,如 JASK2132 上为 11.0592MHZ 晶振。
(2)处理器时钟(Fcclk):芯片执行指令的频率。Fcclk = FOSC × PLL 倍频。对
应的寄存器:PLLCFG[4:0]。
(3)VPB 时钟(Fpclk):给片内外设提供的时钟频率。Fpclk=Fcclk/PLL 分频。对
应的寄存器:APBDIV
(4)CCO 时钟:无实用的意义。只要把它设置在 156MHz~320MHz 范围内就行。对
应的寄存器:PLLCFG[6:5]
FOSC的范围:10MHz~25MHz
Fcclk的范围:10MHz~60MHZ(最大允许频率60MHZ)
CCO的范围:156MHz~320MHz

锁相环 PLL 和 VPB 分频器基本操作方法

PLL 配置需要的寄存器如下:
PLLCON:PLL 控制寄存器。控制 PLL 使能(PLLCON=1)和 PLL 连接的状态。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 14
NewMsg Tech http://www.rfinchina.com
PLLCFG:PLL 配置寄存器。设置 PLL 倍频(M 值)和 PLL 分频(P 值)。
PLLSTAT:PLL 状态寄存器。读出 PLL 状态(PLSTAT.10=11 等待 PLL 锁定。
PLLFEED:PLL 馈送寄存器。将值 0xAA、0x55 写入 PLLFEED,才能使 PLLCON
(PLLCON=3)和 PLLCFG 的配置生效。

PLL 和 VPB 操作示例

/* 设置系统各部分时钟 */ PLLCON = 1; // 使能 PLL,但是不连接 PLL #if (Fpclk / (Fcclk / 4)) == 1 VPBDIV = 0; #endif #if (Fpclk / (Fcclk / 4)) == 2 VPBDIV = 2; #endif #if (Fpclk / (Fcclk / 4)) == 4 VPBDIV = 1; #endif #if (Fcco / Fcclk) == 2 PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5); #endif #if (Fcco / Fcclk) == 4 PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5); #endif #if (Fcco / Fcclk) == 8 PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5); #endif #if (Fcco / Fcclk) == 16 PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5); #endif PLLFEED = 0xaa; //向 PLL 送序列 PLLFEED = 0x55; while((PLLSTAT & (1 << 10)) == 0); //等待 PLL 锁定 PLLCON = 3; //设置激活并连接 PLL PLLFEED = 0xaa; PLLFEED = 0x55;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 15
NewMsg Tech http://www.rfinchina.com

在操作 PLL 和 VPB 时的注意事项

(1)PLL 在芯片复位和进入掉电模式时被关闭并旁路。PLL 只能通过软件使能;程序
必须在配置并激活 PLL 后等待其锁定,然后再连接 PLL
(2)PLL 值的不正确设定会导致芯片的错误操作;
(3)PLL在作为时钟源之前必须进行设置、使能并锁定。将振荡器时钟切换到PLL输出
或反过来操作时,内部电路对操作进行同步以确保不会产生干扰。硬件不能确保PLL
在连接之前锁定或在PLL在失去锁定时自动断开连接。在PLL失去锁定的情况下,振
荡器很可能已经变得不稳定,这样断开PLL也挽救不了这种状况;
(4)仅当正确馈送序列写入PLLFEED寄存器才能使PLLCON和PLLCFG寄存器更改;
(5)掉电模式会自动关闭并断开 PLL。从掉电模式唤醒不会自动恢复 PLL 的设定,PLL
的恢复必须由软件来完成
备注:以上是对 PLL 和 VPB 功能的介绍、基本操作方法以及注意事项做出了理
论性综述,请结合 JASK2132 进行实战操作,方能得到理性升华,切勿浮躁,详细说
明请对照 LPC2132 文档对应寄存器仔细查阅。

中断操作要点解析

向量中断控制器(VIC)概述

向量中断控制器(VIC)具有32个中断请求输入,可将其编程分为3类:FIQ(快
速中断请求)、向量IRQ和非向量IRQ。而可编程分配机制意味着不同外设的中断优
先级可以动态分配并调整。
快速中断请求(FIQ)要求具有最高优先级。如果分配给FIQ的请求多于1个,VIC
将中断请求“相或”后向ARM处理器产生FIQ信号。当只有一个中断被分配为FIQ时可
实现最短的FIQ等待时间,因为FIQ服务程序只要简单地启动器件的处理就可以了。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 16
NewMsg Tech http://www.rfinchina.com
但如果分配给FIQ级的中断多于1个,FIQ服务程序从VIC中读出一个字来识别产生中
断请求的FIQ中断源是哪一个。
向量IRQ具有中等优先级。该级别可分配32个请求中的16个。32个请求中的任意
一个都可分配到16个向量IRQ slot中的任意一个,其中slot0具有最高优先级,而
slot15则为最低优先级。
非向量IRQ的优先级最低。
VIC将所有向量和非向量IRQ“相或”向ARM处理器产生IRQ信号。IRQ服务程序可
通过读取VIC的一个寄存器立即启动并跳转到相应地址。如果有任意一个向量IRQ发
出请求,VIC则提供最高优先级请求IRQ服务程序的地址,否则提供所默认程序的地
址。该默认程序由所有非向量IRQ共用。默认程序可读取另一个VIC寄存器以确定哪
个IRQ被激活。

向量中断控制器(VIC)特性

(1)ARM PrimeCell TM向量中断控制器
(2)最多32个中断请求输入
(3)16个向量IRQ中断
(4)16个优先级,可动态分配给中断请求
(5)可软件中断产生
(6)VIC中所有的寄存器都为字寄存器。不支持字节和半字的读和写操作。

VIC 基本操作方法

VIC 的基本操作方法如下:
(1)设置中断是 FIQ 还是 IRQ,若是 IRQ,再设置向量中断,并分配中断优先级。
(2)设置中断允许,以及乡里向量中断对应地址或非向量中断默认地址。
(3)有中断之后,若是 IRQ 中断,可读取向量地址寄存器,然后跳转到服务程序。
(4)当要退出中断时,对向量地址寄存器写 0,通知 VIC 中断结束
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 17
NewMsg Tech http://www.rfinchina.com

中断操作示例

//以定时器 0 中断为例子 IRQEnable(); /* IRQ 中断使能
/* 设置定时器 0 中断 IRQ */ VICIntSelect = 0x00; /* 所有中断通道设置为 IRQ 中断 */ VICVectCntl0 = 0x20 | 0x04; /* 设置定时器 0 中断通道分配最高优 先*/ VICVectAddr0 = (uint32)IRQ_Timer0; /* 设置中断服务程序地址 */ VICIntEnable = 1 << 0x04; /* 使能定时器 0 中断
/*对应中断服务程序*/ void __irq IRQ_Timer0 (void) { if ((IO0SET & BEEP) == 0) IO0SET = BEEP; /* 关闭BEEP*/ else IO0CLR = BEEP; T0IR = 0x01; /* 清除中断标志*/ VICVectAddr = 0x00; /* 通知VIC中断处理结束*/
}

VIC 使用注意事项

如果在片内 RAM 当中运行代码并且应用程序需要调用中断,那么必须将中断向量
重新映射到 Flash 地址 0x0。这样做是因为所有的异常向量都位于地址 0x0 及以上。
通过将寄存器 MEMMAP(位于系统控制模块当中)配置为用户 RAM 模式来实现这一点。
用户代码被连接以便使中断向量表 (IVT)装载到 0x4000 0000。虽然可以选择多
个中断源(通过 VICIntSelect)来产生 FIQ 请求,但是只有一个专门的中断服务程
序来服务响应所有可用/出现的 FIQ 请求。因此,如果分配为 FIQ 的中断多于一个,
FIQ 中断服务程序就必须读取 VICFIQStatus 的内容来决定如何处理中断请求。不过
我们还是建议只将一个中断分配为 FIQ。多个 FIQ 中断源会增加中断延迟。
在中断服务程序执行完毕后,对外设中断标志的清零将会对VIC寄存器
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 18
NewMsg Tech http://www.rfinchina.com
(VICRawlntr, VICFIQStatus和VICIRQStatus)当中的对应位产生影响。另外,为
了能够服务下次中断,必须在中断返回之前对VICVectAddr寄存器执行写操作。该写
操作将清零内部中断优先级硬件当中对应的中断标志。
通常要禁止VIC中断,必须清零VICIntEnClr寄存器中的对应位,该操作使
VICIntEnable寄存器的对应位清零。这同样应用于VICSoftInt和VICSoftIntClear,
VICSoftIntClear将会使VICSoftInt中的对应位清零。例如,如果VICSoftInt=0x0000
0005并且bit0必须清零,那么VICSoftIntClear=0x0000 0001可实现该操作。通过写
VICSoftIntClear来执行对VICSoftInt当中相同位的新的清零操作之前,必须执行
VICSoftIntClear=0x0000 0000。因此向VICSoftIntClear寄存器任何位写入1对目标
寄存器都是一次有效。
如果看门狗只在溢出或无效喂狗时产生中断,那么无法清除中断。唯一的方法是
通过VICIntEnClr禁止VIC中断来实现中断返回。
假设UART0和SPI0产生中断请求,它们被分配为向量IRQ(UART0的优先级高于
SPI0),而UART1和I2C产生非向量IRQ,下面就是VIC一种可能的设定:
VICIntSelect = 0x0000 0000 //(SPI0, I2C, UART1和UART0为IRQ => bit10, bit9, bit7和bit6=0)
VICIntEnable = 0x0000 06C0 //(SPI0, I2C, UART1和UART0中断使能 => bit10, bit9, bit 7和bit6=1)
VICDefVectAddr = 0x…
2
//(保存服务非向量IRQ的程序地址 (即,UART1和I
C的起始地址)) VICVectAddr0 = 0x… //(保存UART0 IRQ服务程序的起始地址) VICVectAddr1 = 0x… //(保存SPI0 IRQ服务程序的起始地址) VICVectCntl0 = 0x0000 0026 //(VIC通道号为6(UART0)的中断源使能为优先级0(最高级)) VICVectCntl1 = 0x0000 002A //(VIC通道号为10(SPI0)中断源使能为优先级1)
在任何IRQ请求(SPI0, I2C, UART0或UART1)产生之后,微控制器跳转到地址
0x00000018执行代码。对于向量和非向量IRQ,可在地址0x18放入下面指令:
LDR pc, [ pc, #-0xFF0 ]
该指令将VICVectAddr寄存器中保存的地址装入PC。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 19
NewMsg Tech http://www.rfinchina.com
一旦产生UART0请求,VICVectAddr和VICVectAddr0相同。如果产生SPI请求,
VICVectAddr等于VICVectAddr1。如果UART0和SPI都没有产生IRQ请求,而UART1和/
或I2C产生请求,那么VICVectAddr的内容与VICDefVectAddr相同。
备注:以上是对中断操作方法的介绍以及注意事项做出了理论性综述,请结合
JASK2132 进行实战操作,从模仿做起,举一反三,方可成本自己身本领,详细说明 请对照 LPC2132 文档对应寄存器仔细查阅,

GPIO 操作要点解析

GPIO 功能概述

LPC213X系列芯片的引脚一般都是多功能复用的,可以通过引脚连接模块在多个
功能之间进行选择,引脚连接模块配置寄存器控制多路开关来连接管脚与片内外设。
外设在激活和任何相关中断使能之前必须连接到适当的管脚。任何使能的外设功能
如果没有映射到相关的管脚,则被认为是无效的。当管脚只选择一个功能时,其它
复用功能无效。系统复位时,所有通用GPIO默认为第一功能,其中引脚功能选择寄
存器PINSEL0、PINSEL1、PINSEL2如下。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 20
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 21
NewMsg Tech http://www.rfinchina.com

功能模块的操作方法

以设置 P0.0、P0.1 为 TXD0,RXD0 为例
PINSEL0 = 0x00000005; // 设置 I/O 连接到 UART0
LPC2132 拥有多达 47 个通用 GPIO,分别是 P[31:0]和 P[31:16],其中,P0.24 未用,
P0.31 仅能作为输出端口,由于所有 GPIO 都有多种功能复用,所以首先需要通过
PINSEL0、PINSEL1、PINSEL2 来选择和确定功能,然后通过 IODIR 寄存器设置来确
定 GPIO 的方向(输入/输出),然后就可以通过 IOSET、IOCLR 和 IOPIN这3个寄存
器来实现对 IO 的置位、清零和读取 IO 状态。

GPIO 的读、写操作方法

以下以 GPIO-0.21 示例
IO0SET = 1 << 21; //对 P0.21 端口置 1
IO0CLR = 1 << 21; //对 P0.21 端口清 0
IO0DIR|= 1 << 21; //设置 P0.21 方向为输出
如果指定输出管脚在GPIO输出置位寄存器(IOnSET)和GPIO输出清零寄存器
(IOnCLR)中的对应位都置位,那么管脚的输出电平取决于后写入的寄存器的值。
例如:
IO0SET = 0x0000 0080
IO0CLR = 0x0000 0080
P0.7输出电平为低,因为写GPIO清零寄存器在写置位寄存器之后。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 22
NewMsg Tech http://www.rfinchina.com
如果在应用中要求在特定的并行口上瞬时出现0和1,可直接通过访问相应的
GPIO管脚值寄存器(IOPIN)来实现。
假设P0.8~P0.15要配置成输出,则写IO0PIN:
IO0PIN=0x0000 C700
产生的输出结果与下面两条写指令的相同:
IO0SET=0x0000 C700
IO0CLR=0x0000 3800
由此可见,前者较后者更简便

GPIO 使用注意事项

以下以设置I/O连接到UART0为例
PINSEL0=0x00000005; PINSEL0=(PINSEL0&(0xfffffff0))|0x00000005; 前者是直接对PINSEL0进行赋值,而后者是在保证其他引脚功能不变的情况下对
P0.0和P0.1设置为TXD0,RXD0功能。这样的优点是,便于代码的随便调用。举一反
三,请思考以下的设置所实现的功能。
PINSEL1=PINSEL1&0x30000000;//设置TFT对应GPIO为数字IO功能 IO0DIR=IO0DIR|0xBFFF0000; //P0.16-0.23 ,p0.25-29,P0.31 都设为输出
总结:本节主要描述了 GPIO 的基本操作方法,GPIO 是嵌入式应用的基础,任
何外围设备都是用 GPIO 来连接和驱动的,所以 GPIO 的操作是完成嵌入式应用设计 的关键。请多加练习,习惯就成自然,伟大程序员就是这么练成的。

UART 应用要点解析

UART 功能概述

LPC2132 拥有 2 个符合’550 工业标准的异步串行口 UART0 和 UART1,者仅仅是
外设地址不同,其他操作方法等完全一样。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 23
NewMsg Tech http://www.rfinchina.com
UART 基本特性: 
16 字节收发 FIFO;
 寄存器位置符合’550工业标准;
 接收器FIFO触发点可为1, 4, 8和14字节;
 内置波特率发生器;
包含使能实现软件流量控制机制。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 24
NewMsg Tech http://www.rfinchina.com
UART中最重要的参数就是波特率概念,LPC2132中UART的波特率计算方法如下:
而UART收发数据的数据格式又如何操作请看ULCR寄存器设置,如下:
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 25
NewMsg Tech http://www.rfinchina.com

UART 基本操作方法

设置GPIO连接到UARTx功能;
设置串口波特率(相关寄存器为UxDLM,UxDLL);
设置串口工作模式(UxLCR,UxFCR);
发送或接收数据(UxTHR, UxRBR);
检查串口状态字(UxLSR)或者等待串口中断(UxIIR)

UART0 示例分析

/**************************************************************** ** 函数名称 :UART0_Init() ** 函数功能 :串口初始化,设置工作模式和波特率。 ** 入口参数 :baud 波特率 ** set 模式设置(UARTMODE数据结构) ** 出口参数 :1-初始化成功, 0-初始化失败 ***************************************************************/
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 26
NewMsg Tech http://www.rfinchina.com
int8 UART0_Init (uint32 baud) { uint32 bak; /***************************参数过滤***********************************/ if ((baud ==0 ) || (baud > 115200)) return (0); if ((set_datab <5) || (set_datab > 8)) return (0); if ((set_stopb == 0) || (set_stopb > 2)) return (0); if (set_parity > 4) return (0); /********************************设置串口波特率 ***********************/ U0LCR = 0x80; // DLAB = 1 bak = (Fpclk >> 4) / baud; U0DLM = bak >> 8; U0DLL = bak & 0xFF; /*******************************设置串口模式***************************/ bak = set_datab - 5; // 设置字长 if (set_stopb == 2) bak |= 0x04; // 判断是否为2位停止位
if (set_parity != 0) { set_parity = set_parity - 1; bak |= 0x08; } bak |= set_parity << 4; // 设置奇偶校验 U0LCR = bak; return (1); } /********************************************************************** ** 函数名称 :IRQ_UART0() ** 函数功能 :串口0接收中断服务程序 ***********************************************************************/ void __irq IRQ_UART0 (void) { uint8 i; if ((U0IIR & 0x0F) == 0x04) rcv_new = 1; // 设置接收到新的数据标志 for (i=0; i<4; i++) { rcv_buf[i] = U0RBR; // 读取FIFO的数据,并清除中断 } VICVectAddr = 0x00; // 中断处理结束 }
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 27
NewMsg Tech http://www.rfinchina.com
/********************************************************************** ** 函数名称 :UART0_SendByte() ** 函数功能 :向串口0发送1字节数据 ** 入口参数 :dat 要发送的数据 ***********************************************************************/ void UART0_SendByte (uint8 dat) { U0THR = dat; // 要发送的数据 } PINSEL0 = 0x00000005; // 设置I/O连接到UART0 /*********************定义串口模式设置数据结构 ***********************/ set_datab = 8; // 字长度选择,5位/6位/7位/8位可选 set_stopb = 1; // 停止位,1/2可选 set_parity = 0; // 奇偶校验位,0-无校验,1-奇校验,2-偶校验 rcv_new = 0; UART0_Init(9600); // 串口初始化,设置波特率等 // 如果你要设置成其他波特率如4800,只要把9600改成4800就可以啦,就这么简单, U0FCR = 0x41; // 使能FIFO,并设置触发点为4字节,也就 //是收到多少字节后才产生1次中断,PLC2132支持1、4、8、14字节中断模式 U0IER = 0x01; // 允许RBR中断,即接收中断
IRQEnable(); // 使能IRQ中断 /*************************使能UART0中断 *******************************/ VICIntSelect = 0x00000000; // 设置所有的通道为IRQ中断 VICVectCntl0 = 0x20 | 0x06; // UART0分配到IRQ slot0,即最高优 先级 VICVectAddr0 = (uint32)IRQ_UART0; // 设置UART0向量地址 VICIntEnable = 1 << 0x06; // 使能 UART0 中断

I2C 要点解析

I2C 功能概述

I2C总线的典型配置如图24所示。根据方向位(R/W)状态的不同,I2C总线上存在以下
两种类型的数据传输:
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 28
NewMsg Tech http://www.rfinchina.com
(1)从主发送器向从接收器发送数据。主机发送的第一个字节是从机地址。接下
来是数据字节流。从机每接收一个字节返回一个应答位。
(2)从发送器向主接收器发送数据。第一个字节(从地址)由主机发送。从机返回
一个应答位。接下来从机向主机发送数据字节。主机每接收一个字节返回一个应答
位。接收完最后一个字节,主机返回一个非应答位。主器件产生所有串行时钟脉冲
和起始以及停止条件。出现停止条件或重复的起始条件时传输结束。由于重复的起
始条件同时是下一个串行发送的开始,因此I2C总线不会被释放。

I2C 基本特性

标准的 I2C 总线接口
可配置为主机、从机或主/从机
可编程时钟可实现通用速率控制
主机从机之间双向数据传输
多主机总线(无中央主机)
同时发送的主机之间进行仲裁,避免了总线数据的冲突
串行时钟同步使器件在一条串行总线上实现不同位速率的通信
串行时钟同步可作为握手机制使串行传输挂起和恢复
I2C 总线可用于测试和诊断
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 29
NewMsg Tech http://www.rfinchina.com

I2C 操作模式

主发送器模式:
在该模式中,数据从主机发送到从机。在进入主发送器模式之前,I2C的ONSET
必须按照图25进行初始化。必须置位I2EN来使能I2C功能。如果AA位为0,而另一个
器件成为总线的主控器时,I2C将不会对任何地址产生应答。也就是说它无法进入从
模式。STA,STO和SI必须设置为0。向I2CONCLR寄存器中的SIC位写入1可清零SI。
第一个发送的数据包含接收器件的从地址(7 位)和数据方向位。在此模式下,
数据方向位(R/W)应当为 0 表示执行写操作。因此第一个发送的字节为从地址和
写方向位。数据的发送每次为 8 位。每发送完一个字节,都接收到一个应答位。起
始和停止条件用于指示串行传输的起始和结束。
通过软件置位STA进入I2C主发送器模式。I2C逻辑在总线空闲后立即发送一个起
始条件。当发送完起始条件后,SI置位。此时I2STAT中的状态代码应当为08H。该状
态代码用于指向一个中断服务程序。该中断程序将从地址和写方向位装入I2DAT(数
据寄存器),然后清零SI位。向I2CONCLR寄存器中的SIC位写入1可清零SI。
当从地址和R/W位已发送且接收到应答位之后,SI位再次置位,并且对于主模式,
可能的状态代码为18H,20H或38H,如果从模式使能(AA=1),可能的状态代码为68H,
78H或0B0H。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 30
NewMsg Tech http://www.rfinchina.com
主接收器模式
在主接收器模式中,数据字节接收自从发送器。传输的初始化与主发送器模式相 同。发送完起始条件后,中断服务程序必须将从地址和数据方向位装入I2C数据寄存 器(I2DAT),然后清零SI位。 当从地址和方向位已发送且接收到应答位之后,SI置位而状态寄存器将显示状态代 码。对于主模式,可能的状态代码为40H,48H或38H,对于从模式,可能的状态代码 为68H,78H或B0H。
从接收器模式
在从接收器模式中,从主发送器接收数据字节。要初始化从接收器模式,用户必
须将从地址写入从地 址寄存器(I2ADR)并配置I2C控制置位寄存器(I2CONSET):
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 31
NewMsg Tech http://www.rfinchina.com
I2EN 必须置位以使能 功能。AA 位必须置位以使 I2C 应答自身的从地址或通用调
用地址。STA,STO 和 SI 设置为 0。
当I2ADR和I2CONSET完成初始化时,I2C一直等待到它被自身的从地址或通用地址
(两者后面都紧跟数据方向位)寻址为止。如果数据方向位为1(R),I2C将进入从发
送器模式。在接收到地址和方向位后,SI置位并可从状态寄存器(I2STAT)中读出
有效的状态代码。
从发送器模式
第一个字节的接收和处理与从接收器模式相同。但在该模式中,方向位指示传输
的方向掉转。串行数据通过SDA发送而串行时钟通过SCL输入。在串行传输的开始和
2
结束对起始和停止条件进行识别。在一个给定的应用中,I
C可以为主模式也可以为
从模式。在从模式中,I2C寻找它自身的从地址和通用调用地址。如果检测到其中一
个地址,将产生中断请求。当微控制器希望成为总线主机时,硬件在进入主模式前
一直等待,直到总线释放。这样就不会中断一个可能的从机动作。如果在主模式中
总线仲裁丢失,I2C将立即切换到从模式并能在同一个串行传输中检测自身的从地
址。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 32
NewMsg Tech http://www.rfinchina.com

I2C 主机基本操作方法

(1)设置I2C引脚连接;
(2)设置I2C时钟速率(I2SCLH, I2SCLL);
(3)设置为主机,并当发送其实信号(I2CONSET的I2EN=1,STA,AA=0);
(4)发送从机地址,控制I2CONSET发送;
(5)判断总线状态(I2STAT),进行数据传输控制;
(6)发送结束信号(I2CONSET)
I2C从机基本操作方法
(1)设置I2C引脚连接;
(2)设置自身的从几地址(I2ADR)
(3)使能I2C(I2EN=1,AA=1)
(4)判断SI位或者等待I2C中断
(5)判断总线状态(I2STAT),进行数据传输控制;
I2C操作示例
设置I2C总线时钟
I2SCLH = (Fpclk/Fi2c + 1) / 2; //设定I2C时钟 I2SCLL = (Fpclk/Fi2c)/2;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 33
NewMsg Tech http://www.rfinchina.com
初始化I2C为主模式
I2C1CONCLR = 0x2C;
I2C1CONSET = 0x60; // 设置为主机,并启动总线
初始化I2C为从模式
I2ADR = adr&0xFE; // 设置从机地址 I2CONCLR = 0x28; I2CONSET = 0x44; // I2C配置为从机模式

SPI 模块要点解析

SPI 功能概述

SPI0和SPI1是一个全双工的串行接口。它们设计成可以处理在一个给定总线上多
个互连的主机和从机。在一定数据传输过程中,接口上只能有一个主机和一个从机
能够通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是
向主机发送一个字节数。

SPI 基本特性

 两个完全独立的SPI控制器
 遵循串行外设接口(SPI)规范
同步、串行、全双工通信
 组合的SPI主机和从机
 最大数据位速率为输入时钟速率的1/8

SPI 基本操作方法

联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 34
NewMsg Tech http://www.rfinchina.com
SPI 总共有 4 种不同数据传输格式的时序。如下图,时序图描述的是 8 位数据的
传输。需要注意的是,该时序图分成了 3 个水平的部分。第一部分描述 SCK 和 SSEL
信号。第二部分描述了 CPHA=0 时的 MOSI 和 MISO 信号。第三部分描述了 CPHA=1
时的 MOSI 和 MISO 信号。
在时序图的第一部分需要注意两点。第一,时序图包含了CPOL设置为0和1的情
况。第二,SSEL信号的激活和未激活。当CPHA=1时,SSEL信号在数据传输之间时总
是保持未激活状态。当CPHA=0时则不能保证这一点(信号有可能保持激活状态)。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 35
NewMsg Tech http://www.rfinchina.com
数据和时钟的相位关系在表113中描述。该表汇集了下面情况下CPOL和CPHA的每
一种设定:
当驱动第一个数据位时
当驱动所有其它数据位时
当采样数据时
8 位传输起始和停止时间的定义取决于器件为主机还是从机,以及 CPHA 变量
的设定。
当器件为主机时,传输的起始由包含发送数据字节的主机来指示。此时,主机
可激活时钟并开始传输。当传输的最后一个时钟周期结束时,传输结束。
当器件为从机并且CPHA=0时,传输在SSEL信号激活时开始,并在SSEL变为高电
平时结束。当器件为从机且CPHA=1时,如果该器件被选择,传输从第一个时钟沿开
始,并在数据采样的最后一个时钟沿结束。
SPI 外设描述
有4个寄存器控制SPI外设,SPI控制寄存器包含一些可编程位来控制SPI模块的
功能。该寄存器必须在数据传输之前进行设定。
SPI状态寄存器包含只读位,用于监视SPI外设的状态,包括一般性功能和异常
状况。该寄存器的主要用途是检测数据传输的完成,这通过SPIF位来实现。其它位
用于指示异常状况。异常情况将在后面描述。
SPI数据寄存器用于提供发送和接收的数据字节。串行数据实际的发送和接收通
过内部移位寄存器来实现。在发送时向SPI数据寄存器写入数据。数据寄存器和内部
移位寄存器之间没有缓冲区。写数据寄存器会使数据直接进入内部移位寄存器。因
此数据只能在没有执行数据发送时写入该寄存器。读数据带有缓冲区。当传输结束
时,接收到的数据转移到一个单字节的数据缓冲区,下次传输时将其读出。读SPI
数据寄存器将返回读数据缓冲区的值。
当SPI模块处于主模式时,SPI时钟计数器寄存器用于控制时钟速率。该寄存器
必须在数据传输之前设定。当SPI模块处于从模式时,该寄存器无效。
SPI所使用的I/O口为标准CMOS I/O口。设计上没有实现开漏SPI选项。当器件设置为
从机时,它的I/O口只有在被有效的SSEL信号选择时才有效。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 36
NewMsg Tech http://www.rfinchina.com

SPI 主机操作流程

下面的步骤描述了 SPI 设置为主机时如何处理数据传输。该处理假设任何之前
的数据传输已经结束。
1. 将 SPI 时钟计数寄存器设置为所需要的值。
2. 将SPI控制寄存器设置为所需要的设定。
3. 将要发送的数据写入SPI数据寄存器。此写操作启动SPI数据传输。
4. 等待SPI状态寄存器中的SPIF位置位。SPIF位将在SPI数据传输的最后一个周期
之后置位。
5. 读取SPI状态寄存器。
6. 从SPI数据寄存器中读出接收到的数据(可选)
7. 如果有更多数据需要发送,则跳到第3步。
注:读或写SPI数据寄存器用来清零SPIF状态位。因此,如果不执行可选的SPI数据
寄存器读操作,则需要执行该寄存器的写操作以清零SPIF状态位。

SPI 从机操作流程

下面的步骤描述了SPI设置为从机时如何处理数据传输。该处理假设任何之前的数据
传输已经结束。要求驱动SPI逻辑的系统时钟速度至少8倍于SPI。
1. 将SPI控制寄存器设置为所需要的设定。
2. 将要发送的数据写入SPI数据寄存器(可选)。注意这只能在从SPI传输没有进
行时执行。
4. 读取SPI状态寄存器。
5. 从SPI数据寄存器中读出接收到的数据(可选)。
6. 如果有更多数据需要发送,则跳到第2步。
备注:读或写SPI数据寄存器用来清零SPIF状态位。因此至少需要执行一个该寄存
器的读或写操作来清。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 37
NewMsg Tech http://www.rfinchina.com

SPI 操作示例

/*********************************************************************** ** 函数名称 :SPI_Init() ** 函数功能 :初始化SPI接口,设置为从机。 ** 入口参数 :无 ** 出口参数 :无 ***********************************************************************/ void SPI_Init(void) {
S0PCR = (0 << 3)| // CPHA = 0, 数据在SCK 的第一个时钟沿采样 (1 << 4) | // CPOL = 1, SCK 为低有效 (0 << 5) | // MSTR = 0, SPI 处于从模式 (0 << 6) | // LSBF = 0, SPI 数据传输MSB (位7)在先 (1 << 7); // SPIE = 1, SPI 中断被使能 } /*********************************************************************** ** 函数名称 :SSP_Init() ** 函数功能 :将SSP控制器初始化SPI接口,设置为主机。 ** 入口参数 :无 ** 出口参数 :无 ***********************************************************************/ void SSP_Init(void) { SSPCR0 = (0x01 << 8) | // SCR 设置SPI时钟分频 (0x00 << 7) | // CPHA 时钟输出相位,仅SPI模式有效 (0x01 << 6) | // CPOL 时钟输出极性,仅SPI模式有效 (0x00 << 4) | // FRF 帧格式 00=SPI,01=SSI,10=Microwire,11=保留 (0x07 << 0); // DSS 数据长度,0000-0010=保留,0011=4位,0111=8位,1111=16位 SSPCR1 = (0x00 << 3) | // SOD 从机输出禁能,1=禁止,0=允许 (0x00 << 2) | // MS 主从选择,0=主机,1=从机 (0x01 << 1) | // SSE SSP使能,1=允许SSP与其它设备通信 (0x00 << 0); // LBM 回写模式
SSPCPSR = 0x52; // PCLK分频值 // SSPIMSC = 0x07; // 中断屏蔽寄存器
SSPICR = 0x03; // 中断清除寄存器
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 38
NewMsg Tech http://www.rfinchina.com

定时器使用要点分析

定时器功能概述

LPC2132拥有2个32位可编程定时/计时器,均具有4路捕获和4路比较匹配与输出
电路,定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄
存器的设定,在到达指定的定时值时执行其它动作。它还包括4个捕获输入,用于在
输入信号发生跳变时捕获定时器值,并可选择产生中断。

定时器基本特性

带可编程32位预分频器的32位定时器/计数器
具有多达4路32位的捕获通道。当输入信号跳变时可取得定时器的瞬时值。也可
选择使捕获事件产生中断。
4个32位匹配寄存器:
-匹配时定时器继续工作,可选择产生中断
-匹配时停止定时器,可选择产生中断
-匹配时复位定时器,可选择产生中断
多达4个对应于匹配寄存器的外部输出,具有下列特性:
-匹配时设置为低电平
-匹配时设置为高电平
-匹配时翻转
-匹配时无动作
定时器主要,用于对内部事件进行计数的间隔定时器,通过捕获输入实现脉宽调制
以及自由运行的定时器 。
定时器基本操作方法:
(1)计算定时器的时钟频率,设置PR寄存器进行分频操作;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 39
NewMsg Tech http://www.rfinchina.com
(2)设置比较匹配通道的初始值和工作方式,
(3)若使用定时器的相关中断,需要设置VIC,并使能中断;
(4)设置TCR,启动定时器
其中定时器时钟频率计算公式如下:

定时器 0 操作示例

IRQEnable(); /* IRQ中断使能*/ /* 定时器0初始化 */ T0TC = 0; /* 定时器设置为0*/ T0PR = 0; /* 时钟不分频:定时器计数器每个PCLK周期加1,T0PR = 1时 定时器计数器每2个PCLK周期加1*/ T0MCR = 0x03; /* 设置T0MR0匹配后复位T0TC,并产生中断标志*/ T0MR0 = Fpclk /2; /* 0.5秒钟定时 */ T0TCR = 0x01; /* 启动定时器*/ /* 设置定时器0中断IRQ */ VICIntSelect = 0x00; /* 所有中断通道设置为IRQ中断*/ VICVectCntl0 = 0x20 | 0x04; /* 设置定时器0中断通道分配最高优先级*/ VICVectAddr0 = (uint32)IRQ_Timer0; /* 设置中断服务程序地址*/ VICIntEnable = 1 << 0x04; /* 使能定时器0中断*/
备注:相关寄存器请详细参考LPC2132芯片文档。

PWM 脉宽调制器要点解析

PWM 概述

LPC2132的脉宽调制器建立在标准定时器 0/1 之上。应用在 PWM 和匹配功 能
当中进行选择。 PWM基于标准的定时器模块并具有其所有特性,不过LPC21324只将
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 40
NewMsg Tech http://www.rfinchina.com
其PWM功能输出到管脚。定时器对外设时钟(pclk)进行计数,可选择产生中断或基于
7个匹配寄存器,在到达指定的定时值时执行其它动作。它还包括4个捕获输入,用
于在输入信号发生跳变时捕获定时器值,并可选择在事件发生时产生中断。PWM功能
是一个附加特性,建立在匹配寄存器事件基础之上。
独立控制上升和下降沿位置的能力使PWM可以应用于更多的领域。如多相位电机
控制通常需要3个非重叠的PWM输出,而这3个输出的脉宽和位置需要独立进行控制。
两个匹配寄存器可用于提供单边沿控制的PWM输出。一个匹配寄存器(PWMMR0)
通过匹配时重新设置计数值来控制PWM周期率。另一个匹配寄存器控制PWM边沿的位
置。每个额外的单边沿控制PWM输出只需要一个匹配寄存器,因为所有PWM输出的重
复率速率是相同的。多个单边沿控制PWM输出在每个PWM周期的开始,当PWMMR0发生
匹配时,都有一个上升沿。
3个匹配寄存器可用于提供一个双边沿控制PWM输出。也就是说,PWMMR0匹配寄存
器控制PWM周期速率,其它匹配寄存器控制两个PWM边沿位置。每个额外的双边沿控
制PWM输出只需要两个匹配寄存器,因为所有PWM输出的重复率速率是相同的。
使用双边沿控制PWM输出时,指定的匹配寄存器控制输出的上升和下降沿。这样
就产生了正脉冲(当上升沿先于下降沿时)和负脉冲(当下降沿先于上升沿时)。

PWM 基本特性

7个匹配寄存器,可实现6个单边沿控制或3个双边沿控制PWM输出,或这两种类
型的混合输出:
-连续操作,可选择在匹配时产生中断
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 41
NewMsg Tech http://www.rfinchina.com
-匹配时停止定时器,可选择产生中断
-匹配时复位定时器,可选择产生中断
 每个匹配寄存器对应一个外部输出,具有下列特性:
-匹配时设置为低电平
-匹配时设置为高电平
-匹配时翻转
-匹配时无动作
 支持单边沿控制和/或双边沿控制的PWM输出。单边沿控制PWM输出在每个周期开
始时总是为高电平,除非输出保持恒定低电平。双边沿控制PWM输出可在一个周期内
的任何位置产生边沿。这样可同时产生正和负脉冲。
 脉冲周期和宽度可以是任何的定时器计数值。这样可实现灵活的分辨率和重复速
率的设定。所有PWM输出都以相同的重复率发生。
 双边沿控制的PWM输出可编程为正脉冲或负脉冲
 匹配寄存器更新与脉冲输出同步,防止产生错误的脉冲。软件必须在新的匹配值
生效之前将它们释放。 如果不使能PWM模式,可作为一个标准定时器
 带可编程32位预分频器的32位定时器/计数器
 当输入信号跳变时4个捕获寄存器可取得定时器的瞬时值,也可选择使捕获事件
产生中断。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 42
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 43
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 44
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 45
NewMsg Tech http://www.rfinchina.com

PWM 操作示例

PINSEL1 = 1 << 10; // 设置 P0.21 对应为 PWM5 功能
/* PWM 初始化 */ PWMPR = 0x00; // PWMPR = 0x00 时,PWMTC每1个PCLK 周期加//
不分频,计数频率为 Fpclk,PWMPR = 1 时,PWMTC每2个PCLK 周期加 1, PWMMCR = 0x02; // 设置 PWMMR0 匹配时复位 PWMTC PWMPCR = 0x2000; // 允许 PWM5 输出,单边 PWM PWMMR0 = Fpclk / 1000; // 匹配 PWMMR5 = PWMMR0 / 2; // 50%占空比 PWMLER = 0x05; // PWM0 和 PWM5 匹配锁存 PWMTCR = 0x02; // 复位 PWMTC PWMTCR = 0x09; // 启动 PWM 输出 while(1) {for(i = 0; i < sizeof(HCMM); i++) { PWMMR0 = Fpclk / HCMM[i]; // 设置输出频率 PWMLER = 0x21; // 更新匹配值后,必须锁存 Delay(HCMM_L[i]); // 延时,控制播放速度 }}
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 46
NewMsg Tech http://www.rfinchina.com

AD 采集要点解析

AD 功能概述

A/D转换器的基本时钟由VPB时钟提供。可编程分频器可将时钟调整至逐步逼近转
换所需的4.5MHz(最大)。完全满足精度要求的转换需要11个这样的时钟
LPC2132 拥有1个10位8路AD转换器,启动 AD 转换方式很灵活,既可以单路
采集,也可以审核制 BURST 方式对多路信号逐次循环采样。
AD 模块主要用于传感器数据采集。

AD 基本特性

10 位逐次逼近式模数转换器 
一个或多个输入的 Burst 转换模式
 掉电模式
 测量范围:0~3V
10位转换时间>=2.44us
可选择由输入跳变或定时器匹配信号触发转换

AD 模块的寄存器功能

联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 47
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 48
NewMsg Tech http://www.rfinchina.com
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 49
NewMsg Tech http://www.rfinchina.com

AD 基本操作方法

(1)硬件触发转换:如果 ADCR 的 BURST 位为 0 且 START 字段的值包含在 010-111
之内,当所选管脚或定时器匹配信号发生跳变时 A/D 转换器启动一次转换。也可选
择在 4 个匹配信号中任何一个的指定边沿转换,或者在 2 个捕获/匹配管脚中任何一
个的指定边沿转换。将所选端口的管脚状态或所选的匹配信号与 ADCR 位 27 相异或
用作边沿检测逻辑。
(2)时钟产生:一般,我们很希望时钟分频器(利用它来得到 4.5MHz 的转换时钟)
在 A/D 转换器空闲时保持复位状态,以便在 ADCR 的 START 字段被写入 01 或所选边
沿出现在选择的信号上时可立刻启动采样时钟。这个特性可以节省功率,尤其适用
于 A/D 转换器很少使用的场合。 中断 当 DONE 位为 1 时,中断请求声明到向量中
断控制器(VIC)。软件通过 VIC 中 A/D 转换器的中断使能位来控制是否产生中断。 DONE 在 ADDR 读出时清零。
(3)精度和数字接收器:当A/D转换器用来测量Ain脚的电压时,并不理会管脚在管
脚选择寄存器中的设置(见管脚连接模块),但是通过禁能管脚的数字接收器来选
择Ain功能可以提高转换精度。

AD 操作示例

/********************************************************************** ** AD 相关 IO 端口设置 ***********************************************************************/
void AD_IO_SET() {
PINSEL1 = (PINSEL1&0xCFFFFFFF) | 0x10000000 ; // 设置P0.30 对应AD 功能
}
/*********************************************************************** ** 函数名称 :AD_INT() ** 函数功能 :AD 采集初始化设置 ***********************************************************************/
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 50
NewMsg Tech http://www.rfinchina.com
void AD_int() { /* 进行 ADC 模块设置,AD0CR 为 AD 控制寄存器 */ AD_IO_SET(); AD0CR = (1 << 3) | // SEL=8,选择通道 3(AD0.3) ((Fpclk / 1000000 - 1) << 8) | // CLKDIV=Fpclk/1000000-1,转换时钟为 1MHz (0 << 16) | // BURST=0,软件控制转换操作,需 要 11 个时钟方能完成 (0 << 17) | // CLKS=0, 使用 11clock 转换 (1 << 21) | // PDN=1, 正 常 工 作 模式,若 PDN=0,A/D 转换处于掉电模式 (0 << 22) | // TEST1:0=00,正常工作模式 (1 << 24) | // START=1,直接启动 ADC 转换 (0 << 27); // 直接启动 ADC 转换时,此位无效 DelayNS(10); ADC_Data = AD0DR; // 读取 ADC 结果,并清除 DONE 标志位 } /*********************************************************************** ** 函数名称 :AD_GET() ** 函数功能 :AD 转换 ***********************************************************************/ uint32 AD_GET() { uint32 ADC_OUT; AD0CR |= 1 << 24; // 进行第一次转换 while ((ADDR & 0x80000000) == 0); // 等待转换结束 AD0CR |= 1 << 24; // 再次启动转换 while ((AD0DR & 0x80000000) == 0); // 等待转换结束 ADC_Data = AD0DR; // 读取 ADC 结果 ADC_Data = (ADC_Data >> 6) & 0x3ff;
// 右移 6 位是因为 AD0DR 低 6 位没有用到(3FF:AD0DR 的 15:6)
ADC_Data = ADC_Data * 2640;
// 参考电压经过 20/(5+20)=4/5 分压,3300*4/5=2640
ADC_OUT = ADC_Data / 1024;
// AD 转换精度为 10 位,也就是2的10次方=1024 return(ADC_OUT); }
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 51
NewMsg Tech http://www.rfinchina.com

RTC 时钟要点解析

RTC 功能概述

实时时钟(RTC)提供一套计数器在系统上电和关闭操作时对时间进行测量。RTC
消耗的功率非常低,这使其适合于由电池供电的,CPU不连续工作(空闲模式)的系统

RTC 基本特性

 测量保持日历或时钟的时间通路
 超低功耗设计,支持电池供电系统
 提供秒、分、小时、日、月、年和星期
 可编程基准时钟分频器允许调节RTC以适应不同的晶振频率
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 52
NewMsg Tech http://www.rfinchina.com

RTC 基本操作方法

(1)选择时钟源(相关寄存器CCR)
(2)设置RTC预分频器(PREINT,PREFRAC)
(3)初始化RTC时钟值,如YEAR,MONTH等
(4)报警中断设置,如CIIR和AMR等
(5)启动RTC(即CCR的CLKEN=1)
(6)读取完整时间寄存器值,或等待中断
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 53
NewMsg Tech http://www.rfinchina.com

RTC 操作示例

/********************************************************************** ** 函数名称 :RTCInit() ** 函数功能 :初始化实时时钟 **********************************************************************/ void RTCInit (void) { PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器 PREFRAC = Fpclk - (Fpclk / 32768) * 32768; CCR = 0x00; // 禁止时间计数器 YEAR = 2010; MONTH = 06; DOM = 7; DOW = 1; HOUR = 8; MIN = 30; SEC = 59; CIIR = 0x01; // 设置秒值的增量产生1次中断 CCR = 0x01; // 启动RTC } /********************************************************************* ** 函数名称 :SendTimeRtc() ** 函数功能 :读取RTC的时间值,并将读出的时分秒值通过串口送到上位机显示。 *********************************************************************/ void SendTimeRtc (void) { uint32 datas; uint32 times; uint32 bak; times = CTIME0; // 读取完整的时钟寄存器 datas = CTIME1; bak = (datas >> 16) & 0xfff; // 获取 年 year_data[3]=bak / 1000; year_data[2]=bak % 1000/100; year_data[1]=bak % 100/10; year_data[0]=bak % 10; bak = (datas >> 8) & 0x0f; // 获取 月 month_data[1]=bak / 10; month_data[0]=bak % 10; bak = datas & 0x1f; // 获取 日
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 54
NewMsg Tech http://www.rfinchina.com
day_data[1]=bak / 10; day_data[0]=bak % 10; week_data[0]= (times >> 24) & 0x07; // 获取 星期 bak = (times >> 16) & 0x1f; // 获取 小时 hour_data[1]=bak / 10; hour_data[0]=bak % 10; bak = (times >> 8) & 0x3f; // 获取 分钟 minute_data[1]=bak / 10; minute_data[0]=bak % 10; bak = times & 0x3f; // 获取 秒钟 second_data[1]=bak / 10; second_data[0]=bak % 10; }

RTC 使用注意事项

由于RTC的时钟源为VPB时钟(pclk),时钟出现的任何中断都会导致时间值的偏
移。如果RTC初始化成这个时间值或从RTC激活后运行的一段时间内出现了一个错误,
它们带来的变化都将影响真实的时钟时间。
在断电时不能保持RTC的状态。如果时钟源丢失、中断或改变,RTC也无法维持时
间计数。芯片的断电将使RTC寄存器的内容完全丢失。进入掉电模式会使时间的更新
出现误差。在系统操作过程中(重新配置PLL、VPB定时器或RTC预分频器)改变RTC
的时间基准会使累加时间出现错误。
中断的产生由中断位置寄存器(ILR)、计数器递增中断寄存器(CIIR)、报警寄存
器和报警屏蔽寄存器(AMR) 控制。只有转换到中断状态才能产生中断。ILR单独使能
CIIR和AMR中断。CIIR中的每个位都对应一个时间计数器。如果CIIR使能用于一个特
定的计数器,那么该计数器的值每增加一次就产生一个中断。报警寄存器允许用户
设定产生中断的日期或时间。AMR提供一个屏蔽报警比较的机制。如果所有非屏蔽报
警寄存器与它们对应的时间计数器的值相匹配时,则会产生中断。
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 55
NewMsg Tech http://www.rfinchina.com

第三部分 基于LPC2132 嵌入式无线应用

时代需要速度更快、互操作更方便以及更安全可靠的无线网络,Nordic VLSI
ASA、Freascale、Atmel等具有国际影响力的IC生厂商都相继推出了新一代短距离无
线数据通信收发芯片,以nRF905、CC1100 为主流的无线芯片性能得到了很大提高,
最新的无线收发芯片将全部无线通信需要的调制/解调芯片、高/低频放大器等全部
集成在芯片中,使外围器件大幅度减少,很容易与各种型号微控制器连接实现高可
靠性无线通信,使开发无线产品成本大大降低,开发难度更简单,应用更广泛,嵌
入式无线通信和无线网络将逐步取代现有的有线通信和有线网络,无线技术将展示
其巨大的影响力,必将掀起一场的新的技术浪潮。

主流无线芯片汇总及特点解析

系列 A: 433/868/915MHZ 频段

1.NRF905 基本特性

工作电压:1.9-3.6V
调制方式: GFSK
接收灵敏度:-100dBm
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 56
NewMsg Tech http://www.rfinchina.com
最大发射功率: 10mW (+10dBm)
最大传输数率:50kbps
瞬间最大工作电流: <30mA
工作频率:(422.4-473.5MHZ)
1)接收发送功能合一,收发完成中断标志
2)433/868/915 工作频段,433MHZ 开放 ISM 频段免许可使用
3)发射速率 50Kbps,选用外置 433 天线,空旷通讯距离可达 300 米左右,加功放可
到 3000 米左右;室内通信仍有良好通信效果,3-6 层可实现可靠通信,抗干扰性能
强,很强的扰障碍穿透性能;
4)每次最多可发送接收 32 字节,并可软件设置发送/接收缓冲区大小 1/2/4/8/16/32
5)170 个频道,可满足多点通讯和跳频通讯需求,实现组网通讯,TDMA,CDMA,FDMA;
6)内置硬件 8/16 位 CRC 校验,开发更简单,数据传输可靠稳定。
7)1.9-3.6V 工作,低功耗,待机模式仅 2.5uA.
8)内置 SPI 接口,也可通过 I/O 口模拟 SPI 实现。最高 SPI 时钟可达 10M。

2.SI4432 基本特性

1)完整的 FSK 收发器,
2)工作频率范围 430.24~439.75MHz;发射功率最大 17dBm,接收灵敏度-115 dBm(波
特率 9.6Kbps);空旷通讯距离 800 米左右(波特率 9.6Kbps)
3)工作频率范围 900.72~929.27MHz;发射功率最大 17dBm;接收灵敏度-115 dBm(波
特率 9.6Kbp);空旷通讯距离 800 米左右(波特率 9.6Kbps)
4)传输速率最大 128Kbps
5)FSK 频偏可编程(15~240KHz)
6)接收带宽可编程(67~400KHz)
7)SPI 兼容的控制接口,低功耗任务周期模式,自带唤醒定时器
8)+20dB,低的接收电流(18.5mA),最大发射功率的电流(73mA)
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 57
NewMsg Tech http://www.rfinchina.com

3.CC1100 芯片特性

工作电压:1.8-3.6V
接收灵敏度:在 1200 波特率下-110dBm
最大发射功率: 10mW (+10dBm)
最大传输数率:500kbps
瞬间最大工作电流: <30mA
工作频率:(387-464MHZ)
1)315、433、868、915Mh 的 ISM 和 SRD 频段
2)最高工作速率 500kbps,支持 2-FSK、GFSK 和 MSK 调制方式
选用外置 433 天线,直线通讯距离可达 300 米左右,降低通信波特率距离更远,
我公司也提供高精度参数 RF1100SE 模块,性能更佳,室内通信仍有良好通信效
果,3-6 层可实现可靠通信,抗干扰性能强,很强的扰障碍穿透性能;
3)高灵敏度(1.2kbps 下-110dDm,1%数据包误码率)
4)内置硬件 CRC 检错和点对多点通信地址控制
5)较低的电流消耗(RX 中,15.6mA,2.4kbps,433MHz)
6)可编程控制的输出功率,对所有的支持频率可达+10dBm
7)支持低功率电磁波激活功能,支持载波侦听系统
8)模块可软件设地址,软件编程非常方便
9)单独的 64 字节 RX 和 TX 数据 FIFO

4.CC1020 芯片特性

1)频率范围为 402 MHz -470MHz 工作
2)高灵敏度(对 12.5kHz 信道可达-118dBm)
3)可编程输出功率,最大 10dBm
4)低电流消耗(RX:19.9mA)
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 58
NewMsg Tech http://www.rfinchina.com
5)低压供电(2.3V 到 3.6V)
6)数据率最高可以达到 153.6Kbaud
7)SPI 接口配置内部寄存器
8)比相同功率下,NRF905- CC1100 远 1/3

5.A7102 基本特性

1)433Mhz 开放 ISM 频段免许可证使用
2)最高工作速率 50kbps,高效 GFSK 调制,抗干扰能力强,适合工业控制场合
3)125 频道,满足多点通信和跳频通信需要
4)内置硬件 CRC 检错和点对多点通信地址控制
5)低功耗 3-3.6V 工作,待机模式下状态仅为 2.5uA
6)收发模式切换时间 < 650us
7)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接
与各种单片机使用,软件编程非常方便
8)TX Mode: 在+10dBm 情况下,电流为 40mA; RX Mode: 14mA
9)增加了电源切断模式,可以实现硬件冷启动功能!
10)SPI 接口、功能强大、编程简单,与 RF905SE 编程接口类似。
11)增加了 RSSI 功能,通过 SPI 接口可以获取当前接收到的信号强度(0-255)

系列 B: 2.4GHZ 频段类

1.NRF24L01 芯片特性

工作电压:1.9-3.6V
调制方式: GFSK
最大发射功率: 1mW (0dBm)
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 59
NewMsg Tech http://www.rfinchina.com
最大传输数率:2Mkbps
瞬间最大工作电流: <15mA
工作频率:(2.400-2.524GHZ)
1)接收发送功能合一,收发完成中断标志
2)工作频率 2.4~2.524GHZ,2.4GHZ 开放 ISM 频段免许可使用
3)发射速率最高可达 2Mbps,内置 PCB 天线,空旷通讯距离可达 100 米左右,室内
在 50 米左右;抗干扰性能强。
4)每次最多可发送接收 32 字节,并可软件设置发送/接收缓冲区大小 1/2/4/8/16/32
5)125 个频道,可满足多点通讯和跳频通讯需求,可组网通讯,TDMA,CDMA,FDMA;
6)内置硬件 8/16 位 CRC 校验,开发更简单,数据传输可靠稳定。
7)2Mbit/s 速率下@0dBm 输出时的峰值电流 11mA,掉电模式下的功耗 400nA,待机
模式下的功耗 32uA,130us 的快速切换和唤醒时间,世界领先的低功耗 nRF24L01
特别适合采用钮扣电池供电的 2.4G 应用,和蓝牙技术相比在提供更高速率的同时只
需花更小的功耗。
8)具有片内稳压器,内置 SPI 接口,也可通过 I/O 口模拟 SPI 实现。最高 SPI 时钟
可达 10M。

2.NRF2401A 基本特性

工作电压:1.9-3.6V
调制方式: GFSK
最大发射功率: 1mW (0dBm)
最大传输数率:1Mkbps
瞬间最大工作电流: <15mA
工作频率:(2.400-2.524GHZ)
1)2.4Ghz 全球开放 ISM 频段免许可证使用;
2)最高工作速率 1Mbps,高效 GFSK 调制,抗干扰能力强,适合工业控制场合;
3)125 频道,满足多点网络通信需要;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 60
NewMsg Tech http://www.rfinchina.com
4)内置硬件 8/16 位 CRC 校验和点对多点通信地址控制,结合 TDMA-CDMA-FDMA 原理,
可实现无线网络通讯。;
5)低功耗 1.9 - 3.6V 工作,待机模式下状态仅为 1uA ;
模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可和各种
单片机使用,软件编程非常方便;
6)收发完成状态提示,每次最多可发 28 字节;
内置专门稳压电路,使用各种电源包括 DC/DC 开关电源均有很好的通信效果;
7)双通道数据接收,内置环行天线,开阔无干扰条件通信距离在 100 米左右。

3.CC2500 基本特性

工作电压:1.8-3.6V
最大发射功率: 1mW (10dBm)
最大传输数率:500kbps
瞬间最大工作电流: <20mA
工作频率:(2.4GHZ-2.484GHZ)
1)2.4GHZ 免费的 ISM 和 SRD 频段
2)最高工作速率 500kbps,支持 2-FSK、GFSK 和 MSK 调制方式
3)高灵敏度
4)内置硬件 CRC 检错和点对多点通信地址控制
5)较低的电流消耗
6)可编程控制的输出功率,对所有的支持频率可达+10dBm
7)支持低功率电磁波激活功能,支持载波侦听系统
8)模块可软件设地址,软件编程非常方便
9)单独的 64 字节 RX 和 TX 数据 FIFO

系列 C: ZIGBEE 协议类

联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 61
NewMsg Tech http://www.rfinchina.com

1.CC2420/CC2520 基本特性

(1) 工作在 2400-2483.5 MHz 的 ISM 和 SRD 频段.
-采用直接序列扩频方式.
-工作速率 250kbps,码片速率 2 MChip/s.
-使用 O-QPSK 调制方式.
-高灵敏度(-95dBm).
-较低的电流消耗(RX :13.3 mA TX:17.4 mA).
-相邻频道干扰能力强(39dB)
-内部集成有 VCO、LNA、PA 以及电源整流器.
-采用低电压供电(2.1~3.6V).
-输出功率编程可控.
(2) IEEE802.15.4-2003 标准 MAC 层硬件支持.
-前导码与同步字段自动生成与检测.
-CRC-16 自动生成与检测.
-空闲信道检测.
-能量检测、接收信号强度与链路质量指示.
-MAC 层具有安全保护(CTR,CBC-MAC,CCM)支持.
(3) 采用 4 线 SPI 标准接口,便于 MCU 配置.
(4) 独立的 128 字节 RX 和 128 字节 TX 数据 FIFO.
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 62
NewMsg Tech http://www.rfinchina.com

基于 LPC2132 无线应用案例解析

案例一: 无线双向遥控

功能概述

传统智能控制中一般离不开人机交互操作,随着时代发展,越来越多场合需要
应用到以无线方式来完成远程控制,而射频技术的飞速发展也使无线应用的可靠性
不再是问题,尤其收发功能合一的无线芯片的出现,让无线传输方式可以实现带反
馈式传输,而且无线芯片内部集成 CRC 校验功能,使现代无线通信稳定性和抗干扰
性能有了质的飞跃。

实验准备

(1)硬件:JASk2132 开发板 1 套
(2 软件:Keil,ADS1.2,串口助手软件
(3)开发工具:J-LINK,USB-TTL 模块,串口线

实验目的:

实现两个设备之间相互无线控制,可广泛应用工业遥控等场合

基本工作流程

联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 63
NewMsg Tech http://www.rfinchina.com
A: 主/从
B: 主/从

操作步骤:

1.程序烧写
将该案例开发包配套的 51-JASK2000 代码下载到 JASK2000;
将该案例开发包配套的 ARM-JASK2132 代码下载 JASK2132 开发板中;
2.硬件连接
A:无线模块与 JASK2000 中 RF 接口对接后上电
B:无线模块与 JASK2132 中 RF 接口对接后上电
3.检测
当按 JASK2000 底板上的 KEY0,数码管会显示 1,按 KEY1 会显示 2,当 JASK2000
开发板检测到有 KEY0 或 KEY1 时,发送数据,而 JASK2132 测试接收数据,当正确收
到数据后对蜂鸣器进行开关操作,TFT 显示不同图片画面。
同理,按 JASK2132 地板上的 S0,S1 按键,JASK2000 开发板收到信息,并显示。
详细请参考 JASK2132 配套光盘实验程序和说明
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 64
NewMsg Tech http://www.rfinchina.com

案例二: 无线 232/485 通信设计

功能概述

RS-232 接口设备随处可见,适用于工业数据传输替代传统有线传输,而 RS-232
标准协议也有潜在的不足,主要是距离不能太远,而且在诸多场合布线不方便,所
以,无线 232 概念油然而生。
实际应用中,典型的应用:传感器数据采集-单片机处理-无线数据传送-无
线接收-单片机读取接收数据-232 串口上传 PC 数据显示及相关数据库。
添加无元素,某种程度上增加 RS-232 协议通信距离,使用高功率无线数传模块,
通讯距离可以高达 1KM 以上,可以替代传统有线 232、485 总线,并且免去布线的麻
烦,也降低了总体成本,而且维护简单,费用也更低。诚然,232、485 以其简单、
稳定、可靠等优势仍发挥着巨大作用,无线通信技术也不能完全取代有线通信的价
值,无线更多是起到弥补和完善的作用。

实验准备:

(1)硬件:JASk2132 开发板 1 套
(2 软件:Keil,ADS1.2,串口助手软件
(4)开发工具:J-LINK,USB-TTL 模块,串口线

实验目的:

实现两个电脑之间双向通信,可以应用于 2 个 232 接口设备之间双向通信,任何
一方都可以成为主机。

基本该工作流程

联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 65
NewMsg Tech http://www.rfinchina.com
A: 主/从
B: 主/从

操作步骤:

1.程序烧写
将该案例开发包配套的 51-JASK2000 代码下载到 JASK2000;
将该案例开发包配套的 ARM-JASK2132 代码下载 JASK2132 开发板中;
2.硬件连接
A:按照 PC--USB/TTL 模块--JASK2000 方式连接
B:按照 PC--USB/TTL 模块--JASK2132 方式连接
3.检测
按照打开串口助手软件,按照截图进行操作,可以看到电脑之间无线通信
详细请参考 JASK2132 配套光盘实验程序和说明

案例三: 无线温度数据采集

功能概述

温度是诸多领域敏感的参数,温度监控已成了典型应用,本设计具有完全可以
应用与实际工程中,并可以根据实际工程应用要要增加相应功能。如机房温度监控、
药品库房温度监控、粮库温湿度监控,在各检测点安置无线湿度传感器,并制定温
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 66
NewMsg Tech http://www.rfinchina.com
湿度阈值,接受温度并进行判断,根据采集温湿度的不同范围,并确定相应控制方
式,比如湿度大于 50%,可以自动打开除湿机,温度高于 40 可以自动打开空调,
以达到智能化管理。并可结合历史温湿度,做出应急措施,以保证粮食的最佳存储。
此外,在实际应用中可以增加各类数据传感器,结合无线模块地址设置和频道选择,
结合 TDMA,FDMA 以及 CDMA 等网络通信原理以实现无线传感器网络。

实验准备:

(1)硬件:JASk2132 开发板 1 套
(2 软件:Keil,ADS1.2,串口助手软件
(4)开发工具:J-LINK,USB-TTL 模块,串口线

基本工作流程:

A:采集端
B:接收监控端
发送端,采用 DS18B20 温度传感器,并通过单片机 89C52 对 DS18B20 进行温度
采集,采集完后单片机对采集的数据进行转换成有效数字信息,并通过无线模块将
采集得到的温度数字数据发送出去;
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 67
NewMsg Tech http://www.rfinchina.com
接收端,通过无线模块接收发送端发送出的温度信息,当数据接收完成后产生
接收完成中断信号,单片机确认有中断信息后读取无线接收缓冲区中的数据,根据
数据包协议将接收到的信息通过数码管动态扫描方式显示当前温度,同时也将温度
信息通过 232 串口上传给 PC 机,并对温度信息进行数据统计和数据存储。以下是上
位机界面效果

操作步骤:

1.程序烧写
将该案例开发包配套的 51-JASK2000 代码下载到 JASK2000;
将该案例开发包配套的 ARM-JASK2132 代码下载 JASK2132 开发板中;
2.硬件连接
A:无线模块与 JASK2000 中 RF 接口对接后上电
B: 按照 PC--USB/TTL 模块--JASK2132 方式连接
3.检测
按照打开温度采集检测软件,按照截图进行操作,可以看到电脑之间无线通信
详细请参考 JASK2132 配套光盘实验程序和说明
无线温度采集主界面
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 68
NewMsg Tech http://www.rfinchina.com
无线温度采集曲线

案例四:无线 AD 传感器应用

功能概述

虽然现在很多传感器已经都数字化,但模拟类传感器依然大量存在,LPC2132
拥有1个10位8路AD转换器,启动 AD 转换方式很灵活,既可以单路采集,也可以
审核制 BURST 方式对多路信号逐次循环采样,为构建无线传感器网络打下基础。

实验准备:

(1)硬件:JASk2132 开发板 1 套
(2 软件:Keil,ADS1.2,串口助手软件
(4)开发工具:J-LINK,USB-TTL 模块,串口线
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 69
NewMsg Tech http://www.rfinchina.com

基本工作流程:

A:采集端
B:接收端
发送端,LPC2132 通过片上 AD 功能采集电位器电压,采集完后将采集到数据转
化为十进制数,并通过无线模块发送出去;
接收端,通过无线模块接收发送端发送出的温度信息,当数据接收完成后产生
接收完成中断信号,单片机确认有中断信息后读取无线接收缓冲区中的数据,根据
数据包协议将接收到的信息通过数码管动态扫描方式显示电压值大小。

操作步骤:

1.程序烧写
将该案例开发包配套的 51-JASK2000 代码下载到 JASK2000;
将该案例开发包配套的 ARM-JASK2132 代码下载 JASK2132 开发板中;
2.硬件连接
A: 无线模块与 JASK2132 中 RF 接口对接后上电
B: 无线模块与 JASK2000 中 RF 接口对接后上电
3.检测
按照打开温度采集检测软件,按照截图进行操作,可以看到电脑之间无线通信
详细请参考 JASK2132 配套光盘实验程序和说明
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 70
NewMsg Tech http://www.rfinchina.com

无线应用注意事项

(1) 无线模块的 VCC 电压范围为 1.8V-3.6V 之间,不能在这个区间之外,超过 3.6V
将会烧毁模块。推荐电压 3.3V 左右。
(2) 除电源 VCC 和接地端,其余脚都可以直接和普通的 51 单片机 IO 口直接相连,
无需电平转换。当然对 3V 左右的单片机更加适用了。
(3) 硬件上面没有 SPI 的单片机也可以控制本模块,用普通单片机 IO 口模拟 SPI
不需要单片机真正的串口介入,只需要普通的单片机 IO 口就可以了,当然用串口也
可以了。
模块按照接口提示和母板的逻辑地连接起来
(4) 标准 DIP 插针,如需要其他封装接口,或者其他形式的接口,可联系我们定做。
(5) 与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,与其余口连接不需要。
其他系列的单片机,比如 AVR,PIC,由于输入输出电流很大如果是 5V 的,请参考
该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联 2-5K 电阻分压,否则 容易烧毁模块! 如果是 3.3V 的,可以直接.
(6) 任何单片机都可实现对无线模块的数据收发控制,并可根据我们提供的程序,
然后结合自己擅长的单片机型号进行移植;
(7) 频道的间隔的说明:实际要想 2 个模块同时发射不相互干扰,两者频道间隔应
该至少相差 1MHZ,这在组网时必须注意,否则同频比干扰。
(8) 实际用户可能会应用其他自己熟悉的单片机做为主控芯片,所以,建议大家在
移植时注意以下 4 点:
A:确保 IO 是输入输出方式,且必须设置成数字 IO;
B:注意与使用的 IO 相关的寄存器设置,尤其是带外部中断、带 AD 功能的 IO,
相关寄存器一定要设置好;
C:调试时先写配置字,然后控制数据收发
D:注意工作模式切换时间
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Page 71
NewMsg Tech http://www.rfinchina.com
最后,欢迎您使用我们的产品,产品在应用中有技术问题请及时向
我们联系,我们会予以技术知道,同时运输中出现产品问题我们会全面
责任并予以更换。
进步就是永不停步
愿与您一起走向成功!
联系电话:024-62397375 13704018223 E-mail: chj_006@sina.com 在线咨询:QQ:35625400 474882985 MSN:ll88mm88@hotmail.com
Loading...