M3 LPC1768 基础教程
NXP Cortex----M3 LPC1768
NXP Cortex
基础教程
M3 LPC1768
NXP Cortex
NXP Cortex
M3 LPC1768
基础教程
基础教程
活活活活生变改技科
生变改技科
生变改技科
生变改技科
好好好好美更活生让子电
美更活生让子电
美更活生让子电
美更活生让子电
作者作者作者作者::::天下的人
天下的人
天下的人天下的人
时间时间时间时间::::2010
2010 年年年年 9999 月月月月 2222 日日日日
20102010
邮箱邮箱邮箱邮箱::::zdeh726@163.com
zdeh726@163.com
zdeh726@163.com
zdeh726@163.com
电子让生活更美好
写在前面
写在前面
写在前面
写在前面
首先说一说为什么写这个教程,转眼间就毕业了,学校的日子还没
有过够。就要工作了,由于需要想要搞一搞 ARM M3,很显然芯片选型
落在了 STM32 和 NXP 的 LPC17XX 上了。最后选择了 LPC1768 这款型号,
买开发板、学习(以前我只用过单片机和一点点 STM32),学习的过程
还算顺利,找到了 ZLG 翻译的中文资料和 3 个版本的例程。学习开始
了,从 LED 灯、串口、AD、到内部定时器等等。学习的过程夹杂着
心酸和喜悦,在学习的过程中发现网络上还没有现成的学习资料。市
场上的开发板的一部分不是自己开发的都是参考的 NXP 和 ARM 公司的
官方版本,其实这本身并没有什么不好,但是后面的问题出来了,程
序注释不详细,除了手册就没有参考资料了。所以在学习的过程中就
在想要是把自己学习的过程总结一下,出一点资料,为那些奋斗在学
习一线的电子爱好者出一份力,这是一件多么令人高兴的事呀!于是
有了今天这个教程的诞生。在这里首先要感谢的是 ZLG 公司为这个系
列芯片提供了中文参考资料,其次感谢该公司注释比较详尽的程序,
为我的学习和应用提供了不少帮助。
关于同是 ARM M3 内核的 STM32 和 LPC17XX 比较,我想大家争论最大
的地方是价格。我想说的是 LPC17XX 是 NXP 公司推出的基于 M3 内核比
较高端的芯片。应该拿 STM32 中高端芯片和 LPC17XX 比较。我曾经买
过几片 stm32f103VET6 是 100 脚 512KB flash、64KB SRAM、72MHz、AD、
DA、定时器、USB 从机和 FSMC。而 LPC1768,100 脚、512KB flash、
64KB SRAM、100MHz、AD、DA、32 位定时器、USB 主/从/OTG、以太网、
天下的人(红豆电子)与贞明电子协同打造
1
电子让生活更美好
电机控制 PWM、正交编码器接口等。STM32 有 FSMC 的优势,LPC1768
有以太网、USB 主机等优势。可能你要说 stm32F105 和 stm32f107 也有
带 USB 主机,以太网的。可是看看价格也差不多,这几个芯片目前的
价格都在 40 元左右。还有编程,stm32 有库,而 NXP 没有,但是我觉
得 NXP 的寄存器操作也很简单,不信试试就知道了。
下面说说本教程的主要内容安排:第一部分主要介绍 LPC1768 的特
点。第二部分介绍本教程使用的最小系统版的硬件电路。第三部分是
编译环境和下载程序介绍。第四部分是芯片编程介绍,第五部分是实
例详解。芯片内部功能和操作详解会柔和在实例的每一个实验中。最
后感谢一下辛苦的我自己,没有自己的辛勤劳动就没有这个教程。期
待早一点完成这个教程。
注意注意注意注意:本教程叙述语言力求简洁大方,例程力求通俗易懂,可以不
深入追究的东西(如协议内容)就不深入追究。本教程适合的对象是
学过或致力于学习单片机或对 ARM7、ARM cortex m3 有所了解的人或
想学 LPC17XX 的初学者适用。高手绕行。
天下的人(红豆电子)与贞明电子协同打造
2
电子让生活更美好
第一部第一部第一部第一部分分分分 LPC1768
LPC1768 介绍介绍介绍介绍
LPC1768
LPC1768
1.11.11.11.1 简介简介简介简介
LPC1768 是 NXP 公司推出的基于 ARM Cortex-M3 内核的微控制器
LPC17XX 系列中的一员。LPC17XX 系列 Cortex-M3 微处理器用于处
理要求高度集成和低功耗的嵌入式应用。LPC1700 系列微控制器的
操作频率可达 100MHz(新推出的 LPC1769 和 LPC1759 可达 120MHz)。
ARM Cortex-M3 CPU 具有 3 级流水线和哈佛结构。LPC17XX 系列微
控制器的外设组件包含高达 512KB 的 flash 存储器、64KB 的数据
存储器、以太网 MAC、USB 主机/从机/OTG 接口、8 通道 DMA 控制
器、4 个 UART、2 条 CAN 通道、2 个 SSP 控制器、SPI 接口、3 个
IIC 接口、2 输入和 2 输出的 IIS 接口、8 通道的 12 位 ADC、10
位 DAC、电机控制 PWM、正交编码器接口、4 个通用定时器、6 输
出的通用 PWM、带有独立电池供电的超低功耗 RTC 和多大 70 个的
通用 IO 管脚。
1.2 特性(部分)
64KB 片内 SRAM 包括:
32KB 可供高性能 CPU 通过本地代码/数据总线访问;
2 个 16KB SRAM 模块、带独立访问路径、可进行更高吞吐量的操
作。这些 SRAM 可用于以太网、USB、DMA 存储器,以及通用指令和
数据存储。
串行接口:
以太网 MAC 带 RMII 接口和相关的 DMA 控制器;
天下的人(红豆电子)与贞明电子协同打造
3
电子让生活更美好
USB 2.0 全速从机/主机/OTG 控制器,带有用于从机、主机功能
的片内 PHY 和相关的 DMA 控制器;
4 个 UART、带小数波特率发生功能、内部 FIFO、DMA 支持和 RS-485
支持。1 个 UART 带有 modem 控制 IO 并支持 RS-485,全部的 UART
都支持 IrDA;
CAN 控制器,带有 2 个通道;
SPI 控制器,具有同步、串行、全双工通信和可编程的数据长度;
2 个 SSP 控制器,带有 FIFO,可按多种协议进行通信。其中一
个可选择用于 SPI,并且和 SPI 公用中断。SSP 接口可以与 GPDMA
控制器一起使用。
3 个增强型的 IIC 总线接口。
IIS 接口,用于数字音频输入和输出,具有小数速率控制功能。
IIS 接口可与 GPDMA 一起使用。IIS 接口支持 3 线数据发送和接收
或 4 线组合发送和接收连接,以及主机时钟输入输出;
其他外设:
4 个通用定时/计数器,共有 8 个捕获输入和 10 个比较输出。每
个定时器都有一个外部计数输入。
一个电机控制 PWM,支持三相的电机控制;
通过片内 PLL,没有高频晶振,CPU 页可以以最高频率运转。
第二个专用的 PLL 可用于 USB 接口,以允许增加主PLL的灵
活性;
天下的人(红豆电子)与贞明电子协同打造
4
电子让生活更美好
器件选型表:
方框图:
天下的人(红豆电子)与贞明电子协同打造
5
电子让生活更美好
第二部分 最小板硬件电路
第二部分
最小板硬件电路
最小板硬件电路
第二部分第二部分
最小板硬件电路
2.12.12.12.1 硬件电路简介
硬件电路简介
硬件电路简介
硬件电路简介
硬件电路基本结构图:
EEPROM
JTAG
UART
KEY
微控制器
电源
图 1 硬件电路基本结构图
硬件电路原理图:
3V3
12
PLED
LED_POWER
LED供电电电
R12
680
R11
680
R10
680
R9
680
D1
LED2
D2
LED2
D3
LED2
D4
LED2
3V3
D5
LED2
R8
680
P2.0
P2.1
LED
P2.2
P2.3
GND
POWER_LED
3V3
GND
3V3
R6
10K
R5
10K
R4
10K
R3
10K
R2
10K
R1
10K
3V3
R13
10K
S2
P2.10
3V3
R14
10K
S3
P2.11
3V3
R15
10K
S4
P2.12
12
SW-PB
INT0
INT0
GND
SW-PB
key1
GND
INT0&KEY
SW-PB
key2
GND
3V3
供电供电电电
P_BATT
12
VDDA
VSSA
VREF+
VREF-
BT1
Battery
3V3
R7
10K
C10
S1
0.1uF
SW-PB
GND
GND
RSTOUT
VREF-
RESET
P1.31
P1.30
P0.28
P0.27
TRST
TDI
TMS
TCK
RTCK
TDO
RESET
JTAG
1
3
5
7
9
11
13
15
17
19
2
4
6
8
10
12
14
16
18
20
JTAG
P0.26
P0.25
P0.24
P0.23
VDDA
VSSA
VREF+
P0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
IO&PIN
TDO
TDI
TMS
TRST
TCK
P0.26
P0.25
P0.24
P0.23
VDDA
VSSA
VREF+
RSTOUT
VREF-
RX1
RESET
RX2
VBAT
P1.31
P1.30
X1
X2
P0.28
P0.27
P3.26
P3.25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
U1
TDO/SWO
TDI
TMS/SWDIO
TRST
TCK/SWDCLK
P0.26/AD0.3/AOUT/RXD3
P0.25/AD0.2/I2SRX_SDA/TXD3
P0.24/AD0.1/I2SRX_WS/CAP3.1
P0.23/AD0.0/I2SRX_CLK/CAP3.0
VDDA
VSSA
VREF+
NC
RSTOUT
VREF-
RTCX1
RESET
RTCX2
VBAT
P1.31/SCK1/AD0.5
P1.30/VBUS/AD0.4
XTAL1
XTAL2
P0.28/SCL0/USB_SCL
P0.27/SDA0/USB_SDA
P3.26/STCLK/MAT0.1/PWM1.3
P3.25/MAT0.0/PWM1.2
C21
0.1uF
C22
0.1uF
U3
C1+
C1-
C2+
C2-
1
3
4
5
P0.10
11
P0.2
10
P0.11
12
P0.3
9
15
GND
V-
MAX3232CSE
3V3
0.1uF
VCC
V+
16
2
C24
C23
GND
3V3
3V3
VDDIO_1
P0.29
P0.30
VSS_1
28
29
30
31
C15
0.1uF
VDDIO_1
P0.29/USB_D+
P0.30/USB_D-
VSS_1
0.1uF
14
RXD2
7
13
TXD2
8
6
C25
0.1uF
GND
RXD2
S_COM
1
3
5
2
4
6
3,5;4,6选选选电0
1,3;2,4选选选电2
P0.2
P0.3
P2.10
RESET
ISP
1
2
3
4
TXD2
COM
1
6
2
7
RTS
3
8
4
9
5
DTR
11
10
D Connector 9
GND
P3.26
P3.25
VDDIO_1
P0.29
P0.30
VSS_1
P1.18
P1.19
P1.20
P1.21
P1.22
P1.23
P1.24
P1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
IO&PIN
P1.25
P1.26
VSS_2
VDDREG_1
P1.27
P1.28
P1.29
P0.0
P0.1
P0.10
P0.11
P2.13
GND
GND
C16
0.1uF
3V3
P1.18
P1.19
P1.20
P1.21
P1.22
P1.23
P1.24
P1.25
P1.26
32
33
34
35
36
37
38
39
40
P1.18/USB_UP_LED/PWM1.1/CAP1.0
P1.19/MC0A/USB_PPWR/CAP1.1
P1.20/MCFB0/PWM1.2/SCK0
P1.21/MCABORT/PWM1.3/SSEL0
P1.22/MC0B/USB_PWRD/MAT1.0
P1.23/MCFB1/PWM1.4/MISO0
P1.24/MCFB2/PWM1.5/MOSI0
P1.25/MC1A/MAT1.1
P1.26/MC1B/PWM1.6/CAP0.0
VSS_2
41
VDDREG_1
42
VSS_2
VDDREG_1
P1.27
P1.28
P1.29
P0.0
P0.1
P0.10
P0.11
P2.13
43
44
45
46
47
48
49
50
P1.27/CLKOUT/USB_OVRCR/CAP0.1
P1.28/MC2A1.0/MAT0.0
P1.29/MC2B/PCAP1.1/MAT0.1
P0.0/RD1/TXD3/SDA1
P0.1/TD1/RXD3/SCL1
P0.10/TXD2/SDA2/MAT3.0
P0.11/RXD2/SCL2/MAT3.0
P2.13/EINT3/I2STX_SDA
LPC1768
UART&ISP
3V3
R18
10K
RTC
IO口
LED
USB
P2.12/EINT2/I2STX_WS
P2.11/EINT1/I2STX_CLK
P2.10/EINT0/NMI
VDDIO_2
VSS_3
P0.22/RTS1/TD1
P0.21/RI1/RD1
P0.20/DTR1/SCL1
P0.19/DSR1/SDA1
P0.18/DCD1/MOSI0/MOSI
P0.17/CTS1/MISO0/MISO
P0.15/TXD1/SCK0/SCK
P0.16/RXD1/SSEL0/SSEL
P2.9/USB_CONNECT/RXD2
P2.8/TD2/TXD2
P2.7/RD2/RTS1
P2.6/PCAP1.0/RI1/TRACECLK
P2.5/PWM1.6/DTR1/TRACEDATA0
P2.4/PWM1.5/DSR1/TRACEDATA1
P2.3/PWM1.4/DCD1/TRACEDATA2
VDDIO_3
VSS_4
P2.2/PWM1.3/CTS1/TRACEDATA3
P2.1/PWM1.2/RXD1
P2.0/PWM1.1/TXD1
P0.9/I2STX_SDA/MOSI1/MAT2.3
P0.8/I2STX_WS/MISO1/MAT2.2
P0.7/I2STX_CLK/SCK1/MAT2.1
P0.6/I2SRX_SDA/SSEL1/MAT2.0
P0.5/I2SRX_WS/TD2/CAP2
P0.4/I2SRX_CLK/RD2/CAP2.0
P4.28/RX_MCLK/MAT2.0/TXD3
VSS_6
VDDREG_2
P4.29/TX_MCLK/MAT2.1/RXD3
P1.17/ENET_MDIO
P1.16/ENET_MDC
P1.15/ENET_REF_CLK
P1.14/ENET_RX_ER
P1.10/ENET_RXD1
P1.9/ENET_RXD0
P1.8/ENET_CRS
P1.4/ENET_TX_EN
P1.1/ENET_TXD1
P1.0/ENET_TXD0
VDDIO_4
VSS_5
P0.3/RXD0/AD0.6
P0.2/TXD0/AD0.7
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
99
98
P2.12
P2.11
P2.10
VDDIO_2
VSS_3
P0.22
P0.21
P0.20
P0.19
P0.18
P0.17
P0.15
P0.16
P2.9
P2.8
P2.7
P2.6
P2.5
P2.4
P2.3
VDDIO_3
VSS_4
P2.2
P2.1
P2.0
P0.9
P0.8
P0.7
P0.6
P0.5
P0.4
P4.28
VSS_6
VDDREG_2
P4.29
P1.17
P1.16
P1.15
P1.14
P1.10
P1.9
P1.8
P1.4
P1.1
P1.0
VDDIO_4
VSS_5
P0.3
P0.2
RTCK
100
RTCK
3V3
C20
0.1uF
GND
3V3
C19
0.1uF
GND
GND
C18
0.1uF
3V3
3V3
C17
0.1uF
GND
P2.12
P2.11
P2.10
VDDIO_2
VSS_3
P0.22
P0.21
P0.20
P0.19
P0.18
P0.17
P0.15
P0.16
P3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
IO&PIN
P0.9
P0.8
P0.7
P0.6
P0.5
P0.4
P4.28
VSS_6
VDDREG_2
P4.29
P1.17
P1.16
P2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
IO&PIN
RX1
C14
1
Y1
10PF
2
RX2
C13
X1
C12
1
Y2
2
X2
C11
10PF
22PF
22PF
P2.9
P2.8
P2.7
P2.6
P2.5
P2.4
P2.3
VDDIO_3
VSS_4
P2.2
P2.1
P2.0
P1.15
P1.14
P1.10
P1.9
P1.8
P1.4
P1.1
P1.0
VDDIO_4
VSS_5
P0.3
P0.2
GND
GND
ISP
P2.10
RESET
S_d
1
3
2
4
Q1
8050
D6
R17
33K
RTS
使使选电0下下下下,1,2;3,4一一一一电
Diode 1N4148
GND
3V3
R26
4.7K
R25
4.7K
P0.28
P0.27
8
6
5
4
U4
VCC
SCL
SDA
GND
24C02
WP
A0
A1
A2
7
1
2
3
GND
Q2
8050
D7
DTR
R16
33K
GND
Diode 1N4148
GND
USB_D-
P0.30
USB_D+
P0.29
C27
20pF
C28
20pF
R19
22
R20
22
3V3
GND
Q3
PNP_8550
R23
10k
R24
2K
GND
Power_1
123
1,2USB供供
2,3供电电电供供
LPC1768_1
VCC
VUSB
P1.30
R21
4k7
C26
0.1uF
J1
1
2
3
4
VBUS
D-
D+
GND
787780-1
R22
1K5
USB_DEVICE
USB_CONNECT
P2.9
S_USB
1
2
3
GND
2,3直电电电
1,2芯芯电电
power
1
3
2
C8
220uF
C6
0.01uF
C5
0.1uF
U2
3
1
IN
GND
OUT
OUT
REG1117-3.3
2
4
3V3
C9
220uF
C7
0.1uF
GND
MINA_POWER
L1
10uH
L3
10uH
3V3
GND
VDDA
C1
0.1uF
C2
1uF
VSSA
L2
10uH
L4
10uH
VREF+
C3
0.1uF
C4
1uF
VREF-
POWER_S
天下的人(红豆电子)与贞明电子协同打造
6
图 2 硬件电路原理图
电子让生活更美好
2.22.22.22.2 电源电路
电源电路
电源电路电源电路
Power_1
123
1,2USB供供
2,3供电电电供供
VCC
power
1
3
2
C8
220uF
C6
0.01uF
C5
0.1uF
3
1
U2
IN
GND
OUT
OUT
REG1117-3.3
2
4
3V3
C9
220uF
C7
0.1uF
GND
MINA_POWER
L1
10uH
L3
10uH
3V3
GND
VDDA
C1
0.1uF
C2
1uF
VSSA
L2
10uH
L4
10uH
VREF+
C3
0.1uF
C4
1uF
VREF-
POWER_S
LPC17XX 系列微控制器在电源部分需要五种电压源对其供电,分
别是:
A、 内核和外部通路所需的 3.3V 电源 VDD(3V3);
B、 内部稳压器所需的 3.3V 电源 VDD(REG)(3V3);
C、 模拟部分(如片上 ADC 和 DAC)所需的 3.3V 电源;
D、 模数转换器 ADC 所需的参考电源 VREFP;
E、 实时时钟 RTC 所需的 3.3V 电源 VBAT;
在本设计中电源采用外部 5V 供电,可以是 USB 取电也可以是电
源适配器供电。通过 Power_1 短路冒选择,若短路 1、2 则是 USB
取电。若短路 2、3 则是电源接口取电!电源进入目标板后首先经
过一个开关 POWER_S,控制电源的通断。然和经过 C5、C6、C8 三
个电容滤波,输入 1117-3.3 以获得 3.3V 电源。LPC1768 具有独立
的模拟电源和 AD 输入参考电压,为了降低噪声和出错几率,模拟
电源和数字电源需要隔离,本设计的 L1-L4 就是将数字电源的高
频噪声和模拟电源隔离。1117-3.3 是 3.3V 稳压芯片输出电流高达
800mA。实时时钟 RTC 部分本部分采用纽扣电池供电,供电管脚连
接短路冒,不用时可以取掉。
天下的人(红豆电子)与贞明电子协同打造
7