SWM180 系列
ARM®CortexTM-M0
32 位微处理器
SWM180 系列 MCU
数据手册
华芯微特科技有限公司
Synwit Technology Co., Ltd.
1
SWM180 系列
目
1
2
3
4
5
6
7
8
录
概述........................................................................................................................................... 5
特性........................................................................................................................................... 5
选型指南................................................................................................................................... 7
功能方框图............................................................................................................................... 8
管脚配置................................................................................................................................... 9
5.1
LQFP32 ......................................................................................................................... 9
5.2
LQFP48 ....................................................................................................................... 10
5.3
LQFP64 ....................................................................................................................... 11
5.4
管脚定义..................................................................................................................... 12
功能描述................................................................................................................................. 17
6.1
存储器映射................................................................................................................. 17
6.2
中断控制器................................................................................................................. 19
6.3
系统定时器................................................................................................................. 25
6.4
系统控制器................................................................................................................. 26
6.5
SYSCON ..................................................................................................................... 29
6.6
INTCON ..................................................................................................................... 43
6.7
PORTCON .................................................................................................................. 49
6.8
GPIO ........................................................................................................................... 78
6.9
TIMER ........................................................................................................................ 82
6.10 WDT ........................................................................................................................... 93
6.11 UART .......................................................................................................................... 96
6.12 I2C ............................................................................................................................. 101
6.13 SPI ............................................................................................................................. 111
6.14 PWM ......................................................................................................................... 118
6.15 SAR ADC.................................................................................................................. 135
6.16 SIGMA-DELTA ADC ............................................................................................... 144
6.17 DMA ......................................................................................................................... 156
6.18 CAN .......................................................................................................................... 166
6.19 CORDIC ................................................................................................................... 187
6.20 DIV ........................................................................................................................... 190
6.21 SLCD ........................................................................................................................ 194
6.22 CACHE ..................................................................................................................... 199
6.23 FLASH 控制器与 ISP 操作 ..................................................................................... 203
电气特性............................................................................................................................... 205
7.1
绝对最大额定值....................................................................................................... 205
7.2
DC 电气特性 ............................................................................................................. 206
7.3
AC 电气特性 ............................................................................................................. 207
7.4
模拟器件特性........................................................................................................... 209
封装尺寸............................................................................................................................... 212
8.1
LQFP32 ..................................................................................................................... 212
8.2
LQFP48 ..................................................................................................................... 213
2
SWM180 系列
9
8.3
LQFP64 ..................................................................................................................... 214
版本记录............................................................................................................................... 215
图目录
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
4-1 功能方框图 ................................................................................................................. 8
5-1 LQFP32 封装管脚配置................................................................................................ 9
5-2 LQFP48 封装管脚配置.............................................................................................. 10
5-3 LQFP64 封装管脚配置图.......................................................................................... 11
6-1 时钟连接图 ............................................................................................................... 30
6-2 端口唤醒示意图 ....................................................................................................... 32
6-3 比较器结构示意图 ................................................................................................... 33
6-4 IRQ 0~15 选择示意图 ............................................................................................... 44
6-5 IRQ 16~31 选择示意图 ............................................................................................. 45
6-6 引脚复用配置示意图 ............................................................................................... 50
6-7 IO 输入上拉下拉 ....................................................................................................... 51
6-8 推挽输出 ................................................................................................................... 51
6-9 开漏输出 ................................................................................................................... 52
6-10 定时器工作示意图 ................................................................................................. 83
6-11 计数器工作示意图.................................................................................................. 84
6-12 级联模式工作示意图 ............................................................................................. 84
6-13 高电平捕捉示意图 ................................................................................................. 85
6-14 低电平捕捉示意图 ................................................................................................. 86
6-15 Hall 双边沿记录示意图........................................................................................... 87
6-16 WDT 配置为 RESET 模式波形图 .......................................................................... 93
6-17 WDT 配置为中断模式波形图 ................................................................................ 94
6-18 UART 结构图 ........................................................................................................... 96
6-19 I2C 通信示意图 ...................................................................................................... 101
6-20 主机发送/从机接收流程 ...................................................................................... 104
6-21 主机接收/从机发送流程 ...................................................................................... 105
6-22 SPI 结构示意图...................................................................................................... 111
6-23 CPOL=0,CPHA=0 输出波形 .............................................................................. 112
6-24 CPOL=0,CPHA=1 输出波形 .............................................................................. 112
6-25 CPOL=1,CPHA=0 输出波形 .............................................................................. 112
6-26 CPOL=1,CPHA=1 输出波形 .............................................................................. 113
6-27 模式单次输出波形 ............................................................................................... 113
6-28 SSI 模式连续输出波形.......................................................................................... 113
6-29 独立模式下初始电平配置示意图........................................................................ 118
6-30 互补模式下初始电平设置示意图........................................................................ 119
6-31 PWM 普通模式波形示意图 .................................................................................. 120
6-32 未开启死区的互补模式 ....................................................................................... 120
6-33 开启死区的互补模式 ........................................................................................... 120
6-34 中心对称模式 ....................................................................................................... 121
3
SWM180 系列
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
图
6-35 中心对称互补模式 ............................................................................................... 121
6-36 PWM 触发 ADC 采样示意图 ............................................................................... 122
6-37 输出屏蔽功能示意图 ........................................................................................... 123
6-38 PWM 触发 ADC 采样示意图 ............................................................................... 136
6-39 SAR ADC 连续采样示意图 .................................................................................. 137
6-40 差分输入管脚配置示意图 ................................................................................... 145
6-41 单端输入、REFM 为 AGND 管脚配置示意图 .................................................. 146
6-42 单端输入、REFM 为 AINREF 管脚配置示意图 ............................................... 147
6-43 Flash 内数据写入到内存 ....................................................................................... 157
6-44 SAR ADC 中 FFDATA 内数据写入到内存 .......................................................... 158
6-45 SLCD 驱动波形 1/4duty&1/3bias ......................................................................... 195
6-46 SLCD 驱动波形 1/3duty&1/2bias ......................................................................... 196
6-47 CACHE 内部结构示意图 ...................................................................................... 199
6-48 内部 RAM 与外部 FLASH SLOT 对应图 ........................................................... 200
8-1 LQFP32 封装尺寸图................................................................................................ 212
8-2 LQFP48 封装尺寸图................................................................................................ 213
8-3 LQFP64 封闭尺寸图................................................................................................ 214
表格目录
表格
表格
表格
表格
表格
表格
表格
表格
表格
表格
3-1 SWM180 系列 MCU 选型表 ................................................................................... 7
6-1 存储器映射 ........................................................................................................... 17
6-2 中断编号及对应外设 ........................................................................................... 19
6-3 IRQx_SRC(x = 0~15)中断源编号 ......................................................................... 43
6-4 IRQx_SRC(x = 16~31)中断源编号 ....................................................................... 44
6-5 功能配置表 ........................................................................................................... 50
6-6 DMA 各通道操作明细 ........................................................................................ 156
7-1 绝对最大额定值 .................................................................................................. 205
7-2 DC 电气特性( Vdd-Vss = 3.3V, Tw =25℃) ........................................................ 206
7-3 内部 48MHZ 振荡器特征值............................................................................... 207
4
SWM180 系列
1 概述
SWM180 系列 32 位 MCU(以下简称 SWM180)内嵌 ARM® CortexTM-M0 内核,凭借
其出色的性能以及高可靠性、低功耗、代码密度大等突出特点,可应用于工业控制、电机控
制、白色家电等多种领域。
SWM180 支持片上包含精度为 1%以内的 24MHz、48MHz 时钟,并提供最大为 248K
字节的 FLASH 和最大 24K 字节的 SRAM。此外,芯片支持 ISP(在系统编程)操作及 IAP
(在应用编程)
。
SWM180 外设串行总线包括 1 个 CAN 接口,多个 UART 接口、SPI 通信接口(支持主
/从选择)及 I2C 接口(支持主/从选择)
,此外还具有 1 个 32 位看门狗定时器,4 组 32 位通
用定时器(其中 1 组支持 Hall 接口)
,4 组(8 通道)PWM 控制模块,1 个 8 通道 12 位、
1MSPS 的逐次逼近型 ADC 模块,1 个 6 通道、支持单端及差分输入的 16 位 SIGMA-DELTA
ADC,32 位除法模块,段码式液晶驱动模块,角度计算模块,以及 3 路比较器模块,同时
提供欠压检测及低电压复位功能。
2 特性
内核
32 位 ARM® Cortex™-M0 内核
24 位系统定时器
工作频率最高 50MHz
硬件单周期乘法
集成嵌套向量中断控制器(NVIC),提供最多 32 个、4 级可配置优先级的中断
通过 SWD 接口烧录
内置 LDO
供电电压范围 2.7V 至 3.6V
SRAM 存储器
16KB/24KB
FLASH 存储器
120KB/248KB
支持用户定制 ISP(在系统编程)更新用户程序
串行接口
UART*4,具有独立 8 字节 FIFO,最高支持主时钟 16 分频
SPI*2,具有 8 字节独立 FIFO,支持 SPI、SSI 协议,支持 master/slave 模式
I2C*2,支持 8 位、10 位地址方式,支持 master/slave 模式
CAN*1,支持协议 2.0A(11bit 标识符)和 2.0B(29bit 标识符)
PWM 控制模块
8 通道 16 位 PWM 产生器
可设置高电平结束或周期开始两种条件触发中断
具有普通、互补、中心对称等多种输出模式
死区控制
由硬件完成与 ADC 的交互
定时器模块
5
SWM180 系列
4 路 32 位通用定时器,可做计数器使用,1 路支持 HALL 接口
32 位看门狗定时器,溢出后可配置触发中断或复位芯片
内置低功耗定时器模块,使用内部 32KB 时钟,休眠计数并自唤醒
DMA 模块
支持 SAR ADC/SIGMA-DELTA ADC/CAN 模块与 SRAM 间数据搬运
除法器模块
支持 32 位整数除法、整数求余、整数或小数开方运算
除法实现约 30 个时钟周期
整数开方约 16 个时钟周期,小数开方约 30 个时钟周期
旋转坐标计算模块
已知角度计算 sin/cos/arctan 值,结果为 14bit,可保证 11bit 有效值
LCD 驱动模块
工作电压范围:2.4V~3.6V
静态电流:<1uA
最大支持 4*32 段 LCD 面板
支持 1/4duty+1/3bias 或 1/3duty+1/2bias 可选
GPIO
最多可达 56 个 GPIO
可配置 4 种 IO 模式
上拉输入
下拉输入
推挽输出
开漏输出
灵活的中断配置
触发类型设置(边沿检测、电平检测)
触发电平设置(高电平、低电平、双电平)
模拟外设
12 位 8 通道高精度 SAR ADC
采样率高达 1MSPS
支持 single/scan 两种模式
独立结果寄存器
提供独立 FIFO
可由软件/PWM/TIMER 触发
支持 DMA
16 位 6 通道高精度 SIGMA-DELTA ADC
采样率 16KSPS,单通道快速模式可达 50KSPS
支持 single/scan 两种模式
独立结果寄存器
提供独立 FIFO
可由软件或 TIMER 触发
3 路模拟比较器
可以灵活选择片内、片外参考电压
比较结果可以触发中断通知 MCU 进行处理
欠压检测
6
SWM180 系列
支持 2.7V 欠压检测
支持欠压中断和复位选择
时钟源
24MHz、48MHz 精度可达 1%的片内时钟源
32KHZ 片内时钟源
片外 2~32Mhz 片外晶振
其他
可定制 ISP 程序
可定制 128BIT 独立 ID
低功耗
正常模式:20mA@48MHZ
浅睡眠:100uA
深睡眠:20uA
环境
工作温度:-40℃~85℃
保存温度:-40℃~150℃
湿度等级:MSL3
封装
LQFP32
LQFP48
LQFP64
其他
可定制 ISP 程序
可定制 96BIT 独立 ID
应用范围
仪器仪表
工业控制
电机驱动
白色家电
可穿戴设备
3 选型指南
表格 3-1 SWM180 系列 MCU 选型表
Voltage
Flash
SRAM
(V)
(KB)
(KB)
SWM180KCT6-80
2.7~3.6
248
16
25
4+1
8
1(3)
0
SWM180CBT6-50
2.3~3.6
120
16
40
4+1
8
1(4)
SWM180RCT6-50
2.7~3.6
248
16
53
4+1
8
1(6)
Part Number
SD
I/O
Tim
PWM
SAR
SLCD
UART
I2C
SPI
CAN
Package
1(6)
4
2
2
1
LQFP32
1(4*25)
1(6)
4
2
2
1
LQFP48
1(4*32)
1(8)
4
2
2
1
LQFP64
ADC
7
ADC
SWM180 系列
4 功能方框图
SWM1800S
SWCLK
SWDIO
CLOCK
GENERATION,
POWER CONTROL,
SYSTEM
FUNCTIONS
POR
SERIAL WIRE
IRC
ARM
CORTEX-M0
FLASH
120/240 KB
SRAM
16/24KB
XTAL OUT
XTAL IN
RESET
ROM
AHB-LITE
SYSTEM
CONTROL
AHB TO APB
BRIDGE
AHB TO APB
BRIDGE
IN[2:0]
CREF[2:0]
COMPARATOR/
AMPLIFIER
GPIO A
GPIO A[15:0]
GPIO B
GPIO B[15:0]
GPIO C
GPIO C[7:0]
GPIO D
GPIO D[7:0]
GPIO E
GPIO E[7:0]
OUT[2:0]
AD[5:7]
AD[7:0]
12-bit SAR ADC
AD[3:0]
PWM[7:0]
PWM
CH[5:0]N
COUNTER 0
COUNTER 1
COUNTER 2
COUNTER 3
16-bit SD ADC
APB
CH[5:0]P
APB
UART x4
I2C x2
TIMER 0/
COUNTER 0
TIMER 1/
COUNTER 1
TIMER 2/
COUTER 2
TIMER 3/
COUNTER 3
CAN
RXD
TXD
SCL
SDA
CANH
CANL
SDI
SSI x2
WDT
SDO
SCLK
SS
图 4-1 功能方框图
8
SWM180 系列
5 管脚配置
RESETn
B0/FUNCTION
B1/FUNCTION
B2/CP1N/FUNCTION
B3/CP1P/FUNCTION
B4/FUNCTION
B5/FUNCTION
C2/ADC1_CH3_P/FUNCTION
32
31
30
29
28
27
26
25
5.1 LQFP32
A3/SWDIO/FUNCTION
5
20
C6/MOSI1/ADC0_CH6/ADC1_CH0_P/FUNCTION
A2/SWCLK/FUNCTION
6
19
C7/SCLK1/ADC0_CH5/ADC1_CH0_N/FUNCTION
A1/FUNCTION
7
18
AVSS33
A0/WAKEUP_IO/FUNCTION
8
17
AVDD33
16
VDD33
A12/SS_N0/ADC0_CH4/FUNCTION
21
15
4
A13/CP2N/MISO0/ADC0_CH3/FUNCTION
A4/FUNCTION
14
C5/MISO1/ADC1_CH1_N/FUNCTION
A14/CP2P/MOSI0/ADC0_CH2/FUNCTION
22
13
3
A15/SCLK0/ADC0_CH1/FUNCTION
A5/CP0N/FUNCTION
12
C4/SS_N1/ADC1_CH1_P/FUNCTION
VDD33
23
11
2
VSS33
A6/CP0P/FUNCTION
10
C3/ADC1_CH3_N/FUNCTION
XO
24
9
1
C1/XI/FUNCTION
A7/FUNCTION
图 5-1 LQFP32 封装管脚配置
9
SWM180 系列
B0/SEG0/FUNCTION
B1/SEG1/FUNCTION
B2/SEG2/CP1N/FUNCTION
B3/CP1P/SEG3/FUNCTION
B4/SEG4/FUNCTION
B5/SEG5/FUNCTION
B6/SEG6/FUNCTION
B7/SEG7/FUNCTION
B8/SEG8/FUNCTION
B9/SEG9/FUNCTION
C2/ADC1_CH3_P/FUNCTION
C3/ADC1_CH3_N/FUNCTION
48
47
46
45
44
43
42
41
40
39
38
37
5.2 LQFP48
RESETn
1
36
C4/SS_N1/ADC1_CH1_P/SEG10/FUNCTION
A11/SCLK0/SEG21/FUNCTION
2
35
C5/MISO1/ADC1_CH1_N/SEG11/FUNCTION
A10/MOSI0/SEG20/FUNCTION
3
34
D0/ADC1_CH4_P/SEG14/FUNCTION
A9/MISO0/SEG19/FUNCTION
4
33
D1/ADC1_CH4_N/SEG15/FUNCTION
A8/SS_N0/SEG18/FUNCTION
5
32
VDD33
A7/COM3/FUNCTION
6
31
VSS33
A6/CP0P/COM2/FUNCTION
7
30
D2/SEG16/FUNCTION
A5/CP0N/COM1/FUNCTION
8
29
D3/SEG17/FUNCTION
A4/COM0/FUNCTION
9
28
D4/SEG26/FUNCTION
D5/SEG27/FUNCTION
A3/SWDIO/FUNCTION
10
27
A2/SWCLK/FUNCTION
11
26
D6/SEG28/FUNCTION
A1/FUNCTION
12
25
C6/MOSI1/ADC0_CH6/ADC1_CH0_P/SEG12/FUNCTION
24
AVSS33
C7/SCLK1/ADC0_CH5/ADC1_CH0_N/SEG13/FUNCTION
AVDD33
23
A12/SS_N0/ADC0_CH4/FUNCTION
A13/CP2N/MISO0/ADC0_CH3/FUNCTION
22
20
21
19
VSS33
A15/SCLK0/ADC0_CH1/FUNCTION
C1/XI/FUNCTION
A14/CP2P/MOSI0/ADC0_CH2/FUNCTION
16
18
15
A0/WAKEUP_IO/FUNCTION
XO
VDD33
14
17
13
图 5-2 LQFP48 封装管脚配置
10
SWM180 系列
B10/SEG22/FUNCTION
B11/SEG23/FUNCTION
B12/SEG24/FUNCTION
B13/SEG25/FUNCTION
B14/ADC1_CH5_P/FUNCTION
B15/ADC1_CH5_N/FUNCTION
52
51
50
49
B9/SEG9/FUNCTION
55
53
B8/SEG8/FUNCTION
56
54
B6/SEG6/FUNCTION
B7/SEG7/FUNCTION
B5/SEG5/FUNCTION
59
57
B4/SEG4/FUNCTION
60
58
B2/CP1N/SEG2/FUNCTION
B3/CP1P/SEG3/FUNCTION
61
B1/SEG1/FUNCTION
63
62
B0/SEG0/FUNCTION
64
5.3 LQFP64
RESETn
1
48
C2/ADC1_CH3_P/FUNCTION
E3/FUNCTION
2
47
C3/ADC1_CH3_N/FUNCTION
E2/FUNCTION
3
46
C4/SS_N1/ADC1_CH1_P/SEG10/FUNCTION
E1/SEG31/FUNCTION
4
45
C5/MISO1/ADC1_CH1_N/SEG11/FUNCTION
D0/ADC1_CH4_P/SEG14/FUNCTION
E0/SEG30/FUNCTION
5
44
A11/SCLK0/SEG21/FUNCTION
6
43
D1/ADC1_CH4_N/SEG15/FUNCTION
A10/MOSI0/SEG20/FUNCTION
7
42
ADC1_CH2_P
A9/MISO0/SEG19/FUNCTION
8
41
ADC1_CH2_N
A8/SS_N0/SEG18/FUNCTION
9
40
VDD33
A7/COM3/FUNCTION
10
39
VSS33
A6/CP0P/COM2/FUNCTION
11
38
D2/SEG16/FUNCTION
A5/CP0N/COM1/FUNCTION
12
37
D3/SEG17/FUNCTION
21
22
23
24
25
26
27
28
29
30
31
32
VDD33
E4/ADC0_CH0/FUNCTION
A15/SCLK0/ADC0_CH1/FUNCTION
A14/CP2P/MOSI0/ADC0_CH2/FUNCTION
A13/CP2N/MISO0/ADC0_CH3/FUNCTION
A12/SS_N0/ADC0_CH4/FUNCTION
AVDD33
AVSS33
ADC0_CH7
C7/SCLK1/ADC0_CH5/ADC1_CH0_N/SEG13/FUNCTION
C6/MOSI1/ADC0_CH6/ADC1_CH0_P/SEG12/FUNCTION
D7/SEG29/FUNCTION
E5/FUNCTION
D6/SEG28/FUNCTION
33
20
34
16
VSS33
15
A1/FUNCTION
19
A2/SWCLK/FUNCTION
A0/WAKEUP_IO/FUNCTION
D5/SEG27/FUNCTION
18
D4/SEG26/FUNCTION
35
17
36
14
XO
13
C1/XI/FUNCTION
A4/COM0/FUNCTION
A3/SWDIO/FUNCTION
图 5-3 LQFP64 封装管脚配置图
11
SWM180 系列
5.4 管脚定义
管脚号
LQFP32
LQFP48
LQFP64
可复用功能
类
管脚名称
32
1
1
RESET
——
I
/
/
2
E3
FUNCTION
I/O
型
描述
RESET:芯片复位功能引脚,低电平复位;
E3:数字 GPIO 功能引脚;
FUNCTION:数字模块功能引脚;
/
/
3
E2
FUNCTION
I/O
E2:数字 GPIO 功能引脚;
FUNCTION:数字模块功能引脚;
/
/
4
E1
SEG31/
I/O
E1:数字 GPIO 功能引脚;
SEG31:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
/
5
E0
SEG30/
I/O
E0:数字 GPIO 功能引脚;
SEG30:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
2
6
A11
SEG21/
I/O
A11:数字 GPIO 功能引脚;
SEG21:断码屏 LCD 驱动功能引脚;
SCLK0/
SCLK0:SPI0 模块的时钟线引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
3
7
A10
SEG20/
I/O
A10:数字 GPIO 功能引脚;
SEG20:断码屏 LCD 驱动功能引脚;
MOSI0/
MOSI0:SPI0 模块的主机发送功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
4
8
A9
SEG19/
I/O
A9:数字 GPIO 功能引脚;
SEG19:断码屏 LCD 驱动功能引脚;
MISO0/
MISO0:SPI0 模块的主机接收功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
5
9
A8
SEG18/
I/O
A8:数字 GPIO 功能引脚;
SEG18:断码屏 LCD 驱动功能引脚;
SSN0/
SSN0:SPI0 模块的片选功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
1
6
10
A7
COM3/
I/O
A7:数字 GPIO 功能引脚;
COM3:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
2
7
11
A6
CP0P/
I/O
A6:数字 GPIO 功能引脚;
COM2/
CP0P:比较器 0 的同相输入端引脚;
FUNCTION
COM2:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
12
SWM180 系列
3
8
12
A5
CP0N/
I/O
A5:数字 GPIO 功能引脚;
COM1/
CP0N:比较器 0 的反相输入端引脚;
FUNCTION
COM1:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
4
9
13
A4
COM0/
I/O
A4:数字 GPIO 功能引脚;
COM0:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
5
10
14
A3
SWDIO/
I/O
A3:数字 GPIO 功能引脚;
SWDIO:SWD 下载接口的数据线引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
6
11
15
A2
SWCLK/
I/O
A2:数字 GPIO 功能引脚;
SWCLK:SWD 下载接口的时钟线引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
7
12
16
A1
FUNCTION
I/O
A1:数字 GPIO 功能引脚;
FUNCTION:数字模块功能引脚;
10
14
17
XO
——
O
XO:外部晶振输出引脚;
9
15
18
C1
XI/
I/O
C1:数字 GPIO 功能引脚;
FUNCTION
XI:外部晶振输入引脚;
FUNCTION:数字模块功能引脚;
8
13
19
A0
WAKEUP_IO/
I/O
FUNCTION
A0:数字 GPIO 功能引脚;
WAKEUP_IO:深睡眠模式唤醒引脚;
FUNCTION:数字模块功能引脚;
11
16
20
VSS33
——
S
VSS33:芯片主地功能引脚;
12
17
21
VDD33
——
S
VDD33:芯片主电源功能引脚;
/
/
22
E5
FUNCTION
I/O
E5:数字 GPIO 功能引脚;
FUNCTION:数字模块功能引脚;
/
/
23
E4
ADC0_CH0/
I/O
E4:数字 GPIO 功能引脚;
ADC0_CH0:ADC0 模块的输入通道 0 引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
13
18
24
A15
ADC0_CH1/
I/O
A15:数字 GPIO 功能引脚;
ADC0_CH1:ADC0 模块的输入通道 1 引脚;
SCLK0/
SCLK0:SPI0 模块的时钟线引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
14
19
25
A14
ADC0_CH2/
I/O
A14:数字 GPIO 功能引脚;
ADC0_CH2:ADC0 模块的输入通道 2 引脚;
CP2P/
MOSI0/
CP2P:比较器 2 的同相输入端引脚;
FUNCTION
MOSI0:SPI0 模块的主机发送引脚;
FUNCTION:数字模块功能引脚;
15
20
26
A13
ADC0_CH3/
I/O
A13:数字 GPIO 功能引脚;
CP2N/
ADC0_CH3:ADC0 模块的输入通道 3 引脚;
MISO0/
CP2N:比较器 2 的反相输入端引脚;
FUNCTION
MISO0:SPI0 模块的主机接收引脚;
FUNCTION:数字模块功能引脚;
13
SWM180 系列
16
21
27
A12
ADC0_CH4/
I/O
A12:数字 GPIO 功能引脚;
ADC0_CH4:ADC0 模块的输入通道 4 引脚;
SSN0/
SSN0:SPI0 模块的片选引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
17
22
28
AVDD33
——
S
AVDD33:模拟模块的电源引脚;
18
23
29
AVSS33
——
S
AVSS33:模拟模块的地线引脚;
30
ADC0_CH7
——
I
ADC0_CH7:ADC0 模块的输入通道 7 引脚;
31
C7
ADC1_CH0N/
I/O
19
24
C7:数字 GPIO 功能引脚;
ADC1_CH0N:ADC1 模块的输入通道 0 差分输
ADC0_CH5/
SEG13/
入 N 端引脚;
SCLK1/
ADC0_CH5:ADC0 模块的输入通道 5 引脚;
SEG13:断码屏 LCD 驱动功能引脚;
FUNCTION
SCLK1:SPI1 模块的时钟线引脚;
FUNCTION:数字模块功能引脚;
20
25
32
C6
ADC1_CH0P/
I/O
C6:数字 GPIO 功能引脚;
ADC1_CH0P:ADC1 模块的输入通道 0 差分输
ADC0_CH6/
SEG12/
入 P 端引脚;
MOSI1/
ADC0_CH6:ADC0 模块的输入通道 6 引脚;
SEG12:断码屏 LCD 驱动功能引脚;
FUNCTION
MOSI1:SPI1 模块的主机发送引脚;
FUNCTION:数字模块功能引脚;
/
/
33
D7
SEG29/
I/O
D7:数字 GPIO 功能引脚;
SEG29:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
26
34
D6
SEG28/
I/O
D6:数字 GPIO 功能引脚;
SEG28:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
27
35
D5
SEG27/
I/O
D5:数字 GPIO 功能引脚;
SEG27:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
28
36
D4
SEG26/
I/O
D4:数字 GPIO 功能引脚;
SEG26:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
29
37
D3
SEG17/
I/O
D3:数字 GPIO 功能引脚;
SEG17:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
30
38
D2
SEG16/
I/O
D2:数字 GPIO 功能引脚;
SEG16:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
31
39
VSS33
——
S
VSS33:芯片主地功能引脚;
21
32
40
VDD33
——
S
VDD33:芯片主电源功能引脚;
/
/
41
ADC1_CH2N
——
I
ADC1_CH2N:ADC1 模块的输入通道 2 差分输
入 N 端引脚;
14
SWM180 系列
/
/
42
ADC1_CH2P
——
I
ADC1_CH2P:ADC1 模块的输入通道 2 差分输
入 P 端引脚;
/
33
43
D1
ADC1_CH4N/
I/O
D1:数字 GPIO 功能引脚;
ADC1_CH4N:ADC1 模块的输入通道 4 差分输
SEG15/
入 N 端引脚;
FUNCTION
SEG15:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
/
34
44
D0
ADC1_CH4P/
I/O
D0:数字 GPIO 功能引脚;
ADC1_CH4P:ADC1 模块的输入通道 4 差分输
SEG14/
入 P 端引脚;
FUNCTION
SEG14:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
22
35
45
C5
ADC1_CH1N/
I/O
C5:数字 GPIO 功能引脚;
SEG11/
ADC1_CH1N:ADC1 模块的输入通道 1 差分输
MISO1/
入 N 端引脚;
SEG11:断码屏 LCD 驱动功能引脚;
FUNCTION
MISO1:SPI1 模块的主机接收引脚;
FUNCTION:数字模块功能引脚;
23
36
46
C4
ADC1_CH1P/
I/O
C4:数字 GPIO 功能引脚;
SEG10/
ADC1_CH1P:ADC1 模块的输入通道 1 差分输
SSN1/
入 P 端引脚;
SEG10:断码屏 LCD 驱动功能引脚;
FUNCTION
SSN1:SPI1 模块的片选引脚;
FUNCTION:数字模块功能引脚;
24
37
47
C3
ADC1_CH3N/
I/O
C3:数字 GPIO 功能引脚;
ADC1_CH3N:ADC1 模块的输入通道 3 差分输
FUNCTION
入 N 端引脚;
FUNCTION:数字模块功能引脚;
25
38
48
C2
ADC1_CH3P/
I/O
C2:数字 GPIO 功能引脚;
ADC1_CH3P:ADC1 模块的输入通道 3 差分输
FUNCTION
入 P 端引脚;
FUNCTION:数字模块功能引脚;
/
/
49
B15
ADC1_CH5N/
I/O
B15:数字 GPIO 功能引脚;
ADC1_CH5N:ADC1 模块的输入通道 5 差分输
FUNCTION
入 N 端引脚;
FUNCTION:数字模块功能引脚;
/
/
50
B14
ADC1_CH5P/
I/O
B14:数字 GPIO 功能引脚;
ADC1_CH5P:ADC1 模块的输入通道 5 差分输
FUNCTION
入 P 端引脚;
FUNCTION:数字模块功能引脚;
/
/
51
B13
SEG25/
I/O
B13:数字 GPIO 功能引脚;
SEG25:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
15
SWM180 系列
/
/
52
B12
SEG24/
I/O
B12:数字 GPIO 功能引脚;
SEG24:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
/
53
B11
SEG23/
I/O
B11:数字 GPIO 功能引脚;
SEG23:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
/
54
B10
SEG22/
I/O
B10:数字 GPIO 功能引脚;
SEG22:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
39
55
B9
SEG9/
I/O
B9:数字 GPIO 功能引脚;
SEG9:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
40
56
B8
SEG8/
I/O
B8:数字 GPIO 功能引脚;
SEG8:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
/41
57
B7
SEG7/
I/O
B7:数字 GPIO 功能引脚;
SEG7:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
/
42
58
B6
SEG6/
I/O
B6:数字 GPIO 功能引脚;
SEG6:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
26
43
59
B5
SEG5/
I/O
B5:数字 GPIO 功能引脚;
SEG5:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
27
44
60
B4
SEG4/
I/O
B4:数字 GPIO 功能引脚;
SEG4:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
28
45
61
B3
CP1P/
I/O
B3:数字 GPIO 功能引脚;
SEG3/
CP1P:比较器 1 的同相输入端引脚;
FUNCTION
SEG3:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
29
46
62
B2
CP1N/
I/O
B2:数字 GPIO 功能引脚;
SEG2/
CP1N:比较器 1 的反相输入端引脚;
FUNCTION
SEG2:断码屏 LCD 驱动功能引脚;
FUNCTION:数字模块功能引脚;
30
47
63
B1
SEG1/
I/O
B1:数字 GPIO 功能引脚;
SEG1:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
31
48
64
B0
SEG0/
I/O
B0:数字 GPIO 功能引脚;
SEG0:断码屏 LCD 驱动功能引脚;
FUNCTION
FUNCTION:数字模块功能引脚;
注:
I=输入,O=输出,S=电源
FUNCTION :可配置为 UART/I2C/PWM/TIMER/CAN/HALL 功能
16
SWM180 系列
6 功能描述
6.1 存储器映射
SWM180 控制器为 32 位通用控制器,提供了 4G 字节寻址空间,如下表所示。数据格
式仅支持小端格式(Little-Endian)
,各模块具体寄存器排布及操作说明在后章节有详细描述。
表格 6-1 存储器映射
起始
结束
描述
0x00000000
-
FLASH
0x20000000
-
SRAM
0x40000000
0x40FFFFFF
SYSCON
0x41000000
0x41FFFFFF
DMA
0x45000000
0x45FFFFFF
INTCTL
0x46000000
0x46FFFFFF
DIV
0x47000000
0x47FFFFFF
CORDIC
0x50000000
0x50000FFF
PORTCON
0x50001000
0x50001FFF
GPIOA
0x50002000
0x50002FFF
GPIOB
0x50003000
0x50003FFF
GPIOC
0x50004000
0x50004FFF
GPIOD
0x50005000
0x50005FFF
GPIOE
0x50007000
0x50007FFF
TIMER/COUNTER/HALL
0x50009000
0x50009FFF
WDT
0x5000A000
0x5000AFFF
PWM
0x5000D000
0x5000DFFF
SARADC
0x50010000
0x50010FFF
UART0
0x50011000
0x50011FFF
UART1
0x50012000
0x50012FFF
UART2
0x50013000
0x50013FFF
UART3
0x50018000
0x50018FFF
I2C0
0x50019000
0x50019FFF
I2C1
存储器
AHB 总线外设
APB 总线外设
17
SWM180 系列
0x5001C000
0x5001CFFF
SPI0
0x5001D000
0x5001DFFF
SPI1
0x50020000
0x50020FFF
CAN
0x50040000
0x50040FFF
SDADC
0x50050000
0x50050FFF
LCD
0xE000E010
0xE000E01F
系统定时控制寄存器
0xE000E100
0xE000E4EF
NVIC 中断控制寄存器器
0xE000ED00
0xE000ED3F
系统控制寄存器器
核内部控制器
18
SWM180 系列
6.2 中断控制器
6.2.1 概述
Cortex-M0 提供了―嵌套向量中断控制器(NVIC)‖用以管理中断事件。其具有如下特性
支持嵌套及向量中断
硬件完成现场的保存和恢复
动态改变优先级
确定的中断时间
中断优先级分为 4 级,可通过中断优先级配置寄存器(IRQn)进行配置。中断发生时,
内核比较中断优先级,并自动获取入口地址,并保护环境,将指定寄存器中数据入栈,无需
软件参与。中断服务程序结束后,由硬件完成出栈工作。同时支持“尾链”模式及“迟至”模式,
有效的优化了中断发生及背对背中断的执行效率,提高了中断的实时性。
更多细节请参阅“CortexTM-M0 技术参考手册”及“ARM® CoreSight 技术参考手册”。
6.2.2 中断向量表
SWM180 提供了 32 个中断供外设与核交互,其排列如表格 6-2 所示。可以通过中断配
置模块,将任意模块或具体 IO 的中断连接至指定中断编号。具体使用参考中断配置模块。
表格 6-2 中断编号及对应外设
中断(IRQ 编号)
描述
0
IRQ0
1
IRQ1
2
IRQ2
3
IRQ3
4
IRQ4
5
IRQ5
6
IRQ6
7
IRQ7
8
IRQ8
9
IRQ9
10
IRQ10
11
IRQ11
12
IRQ12
13
IRQ13
14
IRQ14
19
SWM180 系列
15
IRQ15
16
IRQ16
17
IRQ17
18
IRQ18
19
IRQ19
20
IRQ20
21
IRQ21
22
IRQ22
23
IRQ23
24
IRQ24
25
IRQ25
26
IRQ26
27
IRQ27
28
IRQ28
29
IRQ29
30
IRQ30
31
IRQ31
6.2.3 寄存器映射
NVIC
BASE 0xE000E000
名称
偏移量
位宽
类型
复位值
描述
NVIC_ISER
0x100
32
R/W
0x00
中断使能寄存器
NVIC_ICER
0x180
32
R/W
0x00
清除使能寄存器
NVIC_ISPR
0x200
32
R/W
0x00
设置挂起寄存器
NVIC_ICPR
0x280
32
R/W
0x00
清除挂起寄存器
NVIC_IPR0
0x400
32
R/W
0x00
IRQ0—IRQ3 优先级控制
NVIC_ IPR1
0x404
32
R/W
0x00
IRQ4—IRQ7 优先级控制
NVIC_ IPR2
0x408
32
R/W
0x00
IRQ8—IRQ11 优先级控制
NVIC_ IPR3
0x40C
32
R/W
0x00
IRQ12—IRQ15 优先级控制
NVIC_ IPR4
0x410
32
R/W
0x00
IRQ16—IRQ19 优先级控制
NVIC_ IPR5
0x414
32
R/W
0x00
IRQ20—IRQ23 优先级控制
NVIC_ IPR6
0x418
32
R/W
0x00
IRQ24—IRQ27 优先级控制
NVIC_ IPR7
0x41C
32
R/W
0x00
IRQ28—IRQ31 优先级控制
20
SWM180 系列
6.2.4 寄存器描述
ADDR:0xE000E100
NVIC_ISER
位域
名称
类型
复位值
描述
31:0
SETENA
R/W
0x00
中断使能,向对应位写 1 使能相应中断号中断,写 0 无
效。
读返回目前使能状态。
ADDR:0xE000E180
NVIC_ ICER
位域
名称
类型
复位值
描述
31:0
CLRENA
R/W
0x00
中断清除,向对应位写 1 清除相应中断号中断使能位,
写 0 无效。
读返回目前使能状态。
ADDR:0xE000E200
NVIC_ ISPR
位域
名称
类型
复位值
描述
31:0
SETPEND
R/W
0x00
中断挂起,向对应位写 1 挂起相应中断号中断,写 0 无
效。
读返回目前挂起状态。
ADDR:0xE000E280
NVIC_ ICPR
位域
名称
类型
复位值
描述
31:0
CLRPEND
R/W
0x00
中断挂起清除,向对应位写 1 清除相应中断号中断挂起
标志,写 0 无效。
读返回目前挂起状态。
ADDR:0xE000E400
NVIC_ IPR0
位域
名称
类型
复位值
描述
31:30
PRI_3
R/W
0x00
IRQ3 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_2
R/W
0x00
IRQ2 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_1
R/W
0x00
IRQ1 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_0
R/W
0x00
IRQ0 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E404
NVIC_ IPR1
位域
名称
类型
复位值
描述
31:30
PRI_7
R/W
0x00
IRQ7 优先级,0 为最高,3 为最低
21
SWM180 系列
29:24
REVERSED
—
—
保留
23:22
PRI_6
R/W
0x00
IRQ6 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_5
R/W
0x00
IRQ5 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_4
R/W
0x00
IRQ4 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E408
NVIC_ IPR2
位域
名称
类型
复位值
描述
31:30
PRI_11
R/W
0x00
IRQ11 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_10
R/W
0x00
IRQ10 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_9
R/W
0x00
IRQ9 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_8
R/W
0x00
IRQ8 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E40C
NVIC_ IPR3
位域
名称
类型
复位值
描述
31:30
PRI_15
R/W
0x00
IRQ15 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_14
R/W
0x00
IRQ14 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_13
R/W
0x00
IRQ13 优先级,0 为最高,3 为最低
22
SWM180 系列
13:8
REVERSED
—
—
保留
7:6
PRI_12
R/W
0x00
IRQ12 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E410
NVIC_ IPR4
位域
名称
类型
复位值
描述
31:30
PRI_19
R/W
0x00
IRQ19 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_18
R/W
0x00
IRQ18 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_17
R/W
0x00
IRQ17 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_16
R/W
0x00
IRQ16 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E414
NVIC_ IPR5
位域
名称
类型
复位值
描述
31:30
PRI_23
R/W
0x00
IRQ23 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_22
R/W
0x00
IRQ22 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_21
R/W
0x00
IRQ21 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_20
R/W
0x00
IRQ20 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E418
NVIC_ IPR6
位域
名称
类型
复位值
描述
23
SWM180 系列
31:30
PRI_27
R/W
0x00
IRQ27 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_26
R/W
0x00
IRQ26 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_25
R/W
0x00
IRQ25 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_24
R/W
0x00
IRQ24 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
ADDR:0xE000E41C
NVIC_ IPR7
位域
名称
类型
复位值
描述
31:30
PRI_31
R/W
0x00
IRQ31 优先级,0 为最高,3 为最低
29:24
REVERSED
—
—
保留
23:22
PRI_30
R/W
0x00
IRQ30 优先级,0 为最高,3 为最低
21:16
REVERSED
—
—
保留
15:14
PRI_29
R/W
0x00
IRQ29 优先级,0 为最高,3 为最低
13:8
REVERSED
—
—
保留
7:6
PRI_28
R/W
0x00
IRQ28 优先级,0 为最高,3 为最低
5:0
REVERSED
—
—
保留
24
SWM180 系列
6.3 系统定时器
6.3.1 概述
CortexTM-M0 核内部提供了一个 24 位系统定时器。该定时器使能后装载当前值寄存器
(SYST_CVR)内数值并向下递减至 0,并在下个时钟沿重新加载重载寄存器(SYST_RVR)
内数值。计数器再次递减至 0 时,计数器状态寄存器(SYST_CSR)中标识位 COUNTERFLAG
置位,读该位可清零。
复位后,SYST_CVR 寄存器与 SYST_RVR 寄存器值均未知,因此使用前需初始化,向
SYST_CVR 写入任意值,清零同时复位状态寄存器,保证装载值为 SYST_RVR 寄存器中数
值。
当 SYST_RVR 寄存器值为 0 时,重新装载后计时器保持为 0,并停止重新装载。
细节请参阅―CortexTM-M0 技术参考手册‖及―ARM® CoreSight 技术参考手册‖。
6.3.2 寄存器映射
SYSTIC:0xE000E010
名称
偏移量
位宽
类型
复位值
描述
SYST_CSR
0x10
32
R/W
0x04
状态寄存器
SYST_RVR
0x14
32
R/W
—
重载寄存器
SYST_CVR
0x18
32
R/W
—
当前值寄存器
6.3.3 寄存器描述
SYST_CSR
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留位
16
COUNTERFL
AG
R
0
计数器递减到 0 且该过程中本寄存器未被读取,本位返
回1
15:2
REVERSED
—
—
保留位
1
TINKINT
R/W
0
1:中断触发使能
0:中断触发禁能
0
ENABLE
R/W
0
1:定时器使能
0:定时器禁能
25
SWM180 系列
SYST_RVR
位域
名称
类型
复位值
描述
31:24
REVERSED
—
—
保留位
23:0
RELOAD
R/W
—
计数器达到 0 时加载本寄存器值,写 0 终止继续加载
位域
名称
类型
复位值
描述
31:24
REVERSED
—
—
保留位
23:0
CURRENT
R/W
—
读操作返回当前计数器值,写操作清 0 该寄存器,同时
清除 COUNTERFLAG 位
SYST_CVR
6.4 系统控制器
CrotexTM-M0 系统控制器主要负责内核管理,包括 CUPID,内核核资源中断优先级设置
及内核电源管理。
更多细节请参阅―CortexTM-M0 技术参考手册‖及―ARM®CoreSight 技术参考手册‖。
6.4.1 寄存器映射
SYSCTRL:0xE000ED00
名称
偏移量
位宽
类型
复位值
描述
CPUID
0x00
32
R
0x410CC200
CPUID 寄存器
ICSR
0x04
32
R/W
0x00000000
中断控制状态寄存器
AIRCR
0x0C
32
R/W
0xFA050000
中断与复位控制寄存器
SCR
0x10
32
R/W
0x00000000
系统控制寄存器
SHPR2
0x1C
32
R/W
0x00000000
系统优先级控制寄存器 2
SHPR3
0x20
32
R/W
0x00000000
系统优先级控制寄存器 3
6.4.2 寄存器描述
CPUID
位域
名称
类型
复位值
描述
31:24
IMPLEMENTER
R
0x41
ARM 分配执行码
23:20
REVERSED
—
—
保留位
19:16
PART
R
0xC
ARMV6-M
26
SWM180 系列
15:4
PARTNO
R
0xC20
读返回 0xC20
3:0
REVISION
R
0x00
读返回 0x00
位域
名称
类型
复位值
描述
31:29
REVERSED
—
—
保留位
28
PENDSVSET
R/W
0
挂起 PendSV 中断,1 有效
27
PENDSVCLR
WO
—
写 1 清 PendSV 中断,仅写有效
26
PENDSTSET
R/W
0
挂起 SysTick 中断,1 有效
25
PENDSTCLR
—
—
写 1 清 SysTick 中断,仅写有效
24
REVERSED
—
—
保留位
23
ISRPREEMPT
RO
0
置位代表异常挂起生效效,调试停止状态退出
22
ISRPENDING
RO
0
外部配置中断是否挂起
21
REVERSED
—
—
保留位
20:12
VECTPENDING
R/W
0
优先级最高的挂起异常向量号
11:9
REVERSED
—
—
保留位
8:0
VECTACTIVE
RO
0
0:线程模式
其它:当前执行异常处理向量号
位域
名称
类型
复位值
描述
31:16
VECTORKEY
WO
—
写入时须保证 0x05FA
15:3
REVERSED
—
—
保留位
2
SYSRESETREQ
WO
0
写 1 时复位芯片,复位时自动清除
1
VECTCLRACTIVE
WO
0
置 1 时清除所有异常活动状态
0
REVERSED
—
—
保留位
位域
名称
类型
复位值
描述
31:5
REVERSED
—
—
保留位
4
SWVONPEND
R/W
0
使能后,可将中断挂起过程作为唤醒事件
3
REVERSED
—
—
保留位
2
SLEEPDEEP
R/W
0
深睡眠提醒
ICSR
AIRCR
SCR
27
SWM180 系列
1
SLEEPONEXIT
R/W
0
置 1 后,内核从异常状态返回后进入睡眠模式
0
REVERSED
—
—
保留位
位域
名称
类型
复位值
描述
31:30
PRI_11
R/W
0
系统处理器优先级 11:SVCall
0 为最高,3 为最低
29:0
REVERSED
—
—
保留位
位域
名称
类型
复位值
描述
31:30
PRI_15
R/W
0
系统处理器优先级 15:SysTick
0 为最高,3 为最低
29:24
REVERSED
—
—
保留位
23:22
PRI_14
R/W
0
系统处理器优先级 14:PendSV
0 为最高,3 为最低
21:0
REVERSED
—
—
保留位
SHPR2
SHPR3
28
SWM180 系列
6.5 SYSCON
6.5.1 特性
时钟控制
工作模式选择
休眠使能
低功耗计数器设置
端口唤醒设置
BOD 掉电检测控制
比较器设置
复位控制及状态
UID
6.5.2 功能描述
时钟控制
SWM180 有 3 个时钟源可供使用:
内部高频振荡器(RCHF):内部高频振荡器为片内时钟源,无需连接任何外部器
件。频率为 24MHz 或 48MHz,通过 HRCCR 寄存器进行切换,精度为百分之一,
可提供较精确的固定频率时钟.
内部低频振荡器(RCLF)
:内部低频振荡器为片内时钟源,无需连接任何外部器件。
频率为 32KHz。
外部振荡器(XTAH)
:外部振荡器可接 2MHz ~ 32MHz 频率.
时钟连接图如图 6-1 所示
29
SWM180 系列
LRCCR[0] = 1
CLKSEL[2] = 0
CLKSEL[0] = 0
CLKSEL[0]
Internal
32KHz Oscillator
(RCLF)
1
CLKSEL[2]
0
CPU
DIV
0
SYSCLK
XTALCR[1] = 1
CLKSEL[2] = 0
CLKSEL[0] = 1
AHB
Sleep Mode
APB
External
2~32MHz Crystal
(XTAL)
GPIO
PWM
TIMER
CLKSEL[3]
CLKSEL[1] = 1
/4
UART
SPI
1
/8
ADC0CLK
/4
I2C
ADC0
0
CLKSEL[3]
HRCCR[1] = 1
HRCCR[0] = 1
CLKSEL[2] = 1
WDT
1
/8
HRCCR[0] = 0
ADC1CLK
/2
CAN
LCD
Sleep Mode
Internal
48MHz Oscillator
(RCHF)
CORDIC
1
/8
ADC1
0
Sleep Mode
图 6-1 时钟连接图
对于主时钟选择,通过 CLKSEL 寄存器 BIT[2:0],选择内部高频时钟或其他时钟。
CLKSEL 寄存器 BIT[2] = 1,选择内部高频时钟(RCHF),时钟源为 24MHZ 或 48MHZ
(通过 HRCCR 寄存器切换)
,此时 CLKSEL 寄存器 BIT[1]有效:
CLKSEL 寄存器 BIT[1] = 0 时,选择内部 RCHF 时钟不分频
CLKSEL 寄存器 BIT[1] = 1 时,选择内部 RCHF 时钟 4 分频
CLKSEL 寄存器 BIT[2] = 0,选择其他时钟,时钟源为外部时钟(XTAH)或内部低速
时钟(RCLF)
,此时 CLKSEL 寄存器 BIT[0]有效:
CLKSEL 寄存器 BIT[0] = 0 时,选择内部低速时钟 32KHZ 时钟;
CLKSEL 寄存器 BIT[0] = 1 时,选择片外时钟。选择片外时钟前,需将 C0 及 C1
引脚输入使能通过 INEN_C 寄存器打开,并通过寄存器 PORTC_SEL 将 C0 及 C1
引脚换至外接晶振功能,且将 XTALCR 寄存器 BIT[0] = 1 使能外接晶振。完成上
述操作后,需根据外部晶振起振时间,使用软件产生一定时间时间,确保晶振稳定
震荡,最后将 CLKSEL 寄存器 BIT[2:0]设置为 001。
注意:执行时钟切换时,需要保证目标时钟使能及通路打开,在 24MHZ 与 48MHZ 相
互切换时,需要先切换至 32KHZ 时钟
对于 ADC 时钟,通过 CLKSEL 寄存器 BIT[3]配置:
CLKSEL 寄存器 BIT[3] = 1,选择使用内部高频时钟,SAR ADC 默认 4 分频,SD
ADC 默认 8 分频;
CLKSEL 寄存器 BIT[3] = 0,
选择使用外部时钟,SAR ADC 和 SD ADC 均默认 8 分频。
30
SWM180 系列
内部 RCHF 及 RCLF 可通过 HRCCR 寄存器 BIT[0]位与 LRCCR 寄存器 BIT[0]位进行关闭操作,关
闭前需确认时钟已切换,并未使用即将执行关闭操作的时钟。
外设时钟控制功能可控制以下外设时钟打开及关闭:
GPIO
TIMER
UART
I2C
SPI
WDT
SAR ADC
PWM
SIGMA-DELTA ADC
ANACON
LCD
DIV
CORDIC
CAN
上电后,以上模块均处于时钟关闭状态,需要通过设置 CLKEN 寄存器进行时钟使能,
否则访问对应模块寄存器操作无效。
休眠与唤醒设置
SWM180 系列提供深睡眠及浅睡眠两种模式,通过 SLEEP 寄存器进行使能操作。
深睡眠模式下,所有功能全部关断,进入低功耗模式,此状态下功耗最小。唤醒操作只
能通过指定 wakeup 引脚进行,下降沿唤醒。向 SLEEP 寄存器 BIT[1]写入 1,进入深睡眠模
式,执行该操作的时间点以及休眠过程中,需保证 wakeup 引脚电平为高。唤醒后,程序从
起始处开始执行,与上电相同。
浅睡眠模式下,芯片进入保持状态,所有时钟关闭,在功耗较低的前提下保持数据。可
以通过配置任意 I/O 引脚进行唤醒操作,也可以通过低功耗定时器进行操作。IO 唤醒操作
同样为下降沿唤醒。唤醒后,程序从睡眠使能语句继续执行。
注意:浅睡眠模式使能前需保证 RCLF(32KHZ)时钟为使能状态,且将所有不需要唤
醒操作的 IO 输入使能关闭(PORTCON 模块中 INEN_x 寄存器)。
定时器唤醒。浅睡眠模式下,通过 SYSCON 模块中 TWKTIM 寄存器及 TWKCR 寄存
器进行定时器唤醒操作。流程如下:
1)
确认 RCLF(32KHZ 时钟)为使能状态
31
SWM180 系列
2)
设置唤醒时间,单位为 32KHZ 时钟个数,即 TIM_WK_DATA*1/32000 秒
3)
使能定时器,设置 TWKCR 寄存器 TIM_WK_EN 位为 1 (使能前需通过写 1 清除
TIM_WK_ST 位)
4)
关闭所有不需要唤醒功能的 IO 输入使能(PORTCON 模块中 INEN_x 寄存器)
5)
SLEEP 寄存器 BIT[0] = 1 后,芯片进入浅睡眠模式,定时器开始计数,记到设置值
后唤醒
6)
唤醒后,TWKCR 寄存器 TIM_WK_ST 位为 1(可通过对该位写 1 进行清除)
端口唤醒。浅睡眠模式下,可指定任意 IO 进行唤醒操作。示意图如图 6-2 所示。具体
流程如下:
1)
确认 RCLF(32KHZ 时钟)为使能状态
2)
将需要执行唤醒操作的引脚对应 PxWKEN 寄存器及 INEN_x 寄存器指定位配置为
1,使能相应端口对应位输入使能及唤醒功能
3)
SLEEP 寄存器 BIT[0] = 1 后,芯片进入浅睡眠模式
4)
唤醒端口可配置为 GPIO 端口,以及 UART 模块 RX 端口或 I2C 模块 DAT 端口,
当配置端口对应位产生下降沿时,芯片被唤醒,继续执行程序。使用通讯接口进行
唤醒时,需保证通讯采样速率低于 32KHZ,避免出现数据丢失现象
5)
唤醒后,端口对应 PxWKSR 寄存器对应位被至 1,可通过对该位写 1 进行清除(该
位对进入休眠无影响)
注意:所有配置为唤醒功能的引脚,执行唤醒过程时只能有一个产生下降沿,其他引脚
必须保证为高电平。为保证功耗最低,需确认所有输入使能引脚无悬空输入状态
图 6-2 端口唤醒示意图
比较器
芯片提供了 3 个独立比较器,结构示意图如图 6-3 图 A-3 所示。操作方式如下:
正端可选择片外输入或内部基准电平,通过 CMPCR 寄存器 BIT[12:10]进行选择。
当配置为片外输入时,需配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能,
同时通过 PORT_SEL 寄存器将指定引脚切换为比较器输入。当正端选择片内基准
时,通过 CMPCR 寄存器 OP_PREF 位进行参考电平配置。
负端为片外输入。需配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能,同时
32
SWM180 系列
通过 PORT_SEL 寄存器将指定引脚切换为比较器输入。
配置完成后,使能比较器,可通过 CMPSR 寄存器查询结果,或通过配置该寄存器
使能比较器中断,当对应比较器结果为 1 时,产生中断。
CMPCR[10]
CMPCR[4]
(Enable Comparator)
PA6
CMPSR[4]
(Enable Interrupt)
1
+
0
COMP1
VREF
PA5
CMPSR[0]
(Output)
-
CMPCR[3:0]
4R
CMPCR[7]
(Hysteresis)
CMPCR[11]
R
CMPCR[5]
(Enable Comparator)
1111
R
1110
PB3
R
…
…
1101
CMPSR[5]
(Enable Interrupt)
1
+
CRV output
0
COMP2
0010
R
PB2
CMPSR[1]
(Output)
-
0001
R
0000
CMPCR[8]
(Hysteresis)
4R
CMPCR[12]
CMPCR[6]
(Enable Comparator)
PA14
CMPSR[6]
(Enable Interrupt)
1
+
0
COMP3
CMPSR[2]
(Output)
-
PA13
CMPCR[9]
(Hysteresis)
图 6-3 比较器结构示意图
BOD 掉电检测
芯片提供了低电压检测功能,通过 BODCR 寄存器进行配置。当使能 BOD_EN 位后,
BOD 低电平复位功能开启,电压低于 2.3V 时,将产生 BOD 复位,复位整个芯片。使能
BOD_POWER_INT_ST 后,当电压低于 2.7V 时,将产生 BOD 中断信号(沿触发),该信号
可通过 NVIC 触发 BOD 中断,
可通过向 BOD_POWER_INT_ST 位写 1 进行中断清除。
同时,
可通过查询 BOD_ST 位查询主电源电平状态,当低于 2.7V 时,该位为 1,高于 2.7V 后变为
0。
用户 ID
芯片可以提供客户指定的唯一 ID 号用于加密使用,每个芯片对应唯一 ID。具体需求请
联系销售人员。
6.5.3 寄存器映射
33
SWM180 系列
SYSCON
BASE:0x40000000
名称
偏移量
类型
复位值
描述
CLKSEL
0x00
R/W
0x04
时钟选择控制寄存器
CLKEN
0x08
R/W
0x00
时钟门控控制寄存器
SLEEP
0x10
R/W
0x00
系统模式控制寄存器
TWKCR
0x14
R/W
0x00
定时唤醒使能控制寄存器
TWKTIM
0x18
R/W
0x00
定时唤醒时间控制寄存器
CHIP_ID0
0x100
RO
0x00
芯片 128 位 ID 寄存器 0
CHIP_ID1
0x104
RO
0x00
芯片 128 位 ID 寄存器 1
CHIP_ID2
0x108
RO
0x00
芯片 128 位 ID 寄存器 2
CHIP_ID3
0x10C
RO
0x00
芯片 128 位 ID 寄存器 3
PAWKEN
0x200
R/W
0x00
PORTA 唤醒使能控制寄存器
PBWKEN
0x204
R/W
0x00
PORTB 唤醒使能控制寄存器
PCWKEN
0x208
R/W
0x00
PORTC 唤醒使能控制寄存器
PDWKEN
0x20C
R/W
0x00
PORTD 唤醒使能控制寄存器
PEWKEN
0x210
R/W
0x00
PORTE 唤醒使能控制寄存器
PAWKSR
0x218
R/W1C
0x00
PORTA 唤醒状态寄存器
PBWKSR
0x21C
R/W1C
0x00
PORTB 唤醒状态寄存器
PCWKSR
0x220
R/W1C
0x00
PORTC 唤醒状态寄存器
PDWKSR
0x224
R/W1C
0x00
PORTD 唤醒状态寄存器
PEWKSR
0x228
R/W1C
0x00
PORTA 唤醒状态寄存器
ANACON
BASE:0x5000C000
名称
偏移量
类型
复位值
描述
HRCCR
0x00
R/W
0x1
内部高频 RC 振荡器配置寄存器
BODCR
0x10
R/W
0
BOD 控制寄存器
CMPCR
0x14
R/W
0
放大器/比较器控制寄存器
CMPSR
0x18
R/W
0
比较器状态标志寄存器
XTALCR
0x1C
R/W
0
晶体振荡器控制寄存器
LRCCR
0x20
R/W
0x1
内部低频 RC 振荡器配置寄存器
34
SWM180 系列
6.5.4 寄存器描述
CLKSEL
ADDR:0x40000000
位域
名称
类型
复位值
描述
31:4
REVERSED
—
0
保留位
3
ADC
R/W
1’b0
2
SYS
R/W
1’b1
1
HFCK
R/W
1’b0
0
LFCK
R/W
1’b0
ADC 时钟选择
0:RCHF(ADC0=4 分频,ADC1=8 分频)
1:XTAH 外部高频晶振
(ADC0=ADC1=8 分频)
系统时钟选择
0:其他时钟
1:内部高频时钟
内部高频时钟选择
0:RCHF
1:RCHF 的 4 分频
其他时钟选择
0:RCLF(内置 10K)
1:XTAH 外部高频晶振
CLKEN
ADDR:0x40000008
位域
名称
类型
复位值
描述
31
REVERSED
—
0
保留位
30
CORDIC
R/W
1’b0
CORDIC 时钟使能
29
DIV
R/W
1’b0
DIV 时钟使能
28
REVERSED
—
0
保留位
27
SLCD
R/W
1’b0
SLCD 时钟使能
26
SDADC
R/W
1’b0
SDADC 时钟使能
25
CAN
R/W
1’b0
CAN 时钟使能
24:23
REVERSED
—
0
保留位
22
OSC
R/W
1’b0
模拟控制单元时钟使能
21:19
REVERSED
—
0
保留位
18
I2C1
R/W
1’b0
I2C1 时钟使能
17
I2C0
R/W
1’b0
I2C0 时钟使能
35
SWM180 系列
16
SPI0
R/W
1’b0
SPI0 时钟使能
15
SPI1
R/W
1’b0
SPI1 时钟使能
14
UART3
R/W
1’b0
UART3 时钟使能
13
UART2
R/W
1’b0
UART2 时钟使能
12
UART1
R/W
1’b0
UART1 时钟使能
11
UART0
R/W
1’b0
UART0 时钟使能
10
REVERSED
—
0
保留位
9
PWM
R/W
1’b0
PWM 时钟使能
8
ADC
R/W
1’b0
ADC0 时钟使能
7
WDT
R/W
1’b0
WDT 时钟使能
6
TIMR
R/W
1’b0
TIMER 时钟使能
5
REVERSED
—
0
保留位
4
GPIOE
R/W
1’b0
GPIO E 时钟使能
3
GPIOD
R/W
1’b0
GPIO D 时钟使能
2
GPIOC
R/W
1’b0
GPIO C 时钟使能
1
GPIOB
R/W
1’b0
GPIO B 时钟使能
0
GPIOA
R/W
1’b0
GPIO A 时钟使能
SLEEP
ADDR:0x40000010
位域
名称
类型
复位值
描述
31:2
REVERSED
—
0
保留位
1
STOP
R/W
1’b0
将该位置 1 后,系统将进入 STOP 模式
0
SLEEP
R/W
1’b0
将该位置 1 后,系统将进入 SLEEP 模式
类型
复位值
描述
TWKCR
ADDR:0x40000014
位域
名称
36
SWM180 系列
31:2
REVERSED
—
0
保留位
1
ST
R/W
0
唤醒状态标志位。硬件置 1,软件写 1 清
0
EN
R/W
0
0:禁止定时唤醒功能
1:使能定时唤醒功能
TWKTIM
ADDR:0x40000018
位域
名称
类型
复位值
描述
31:24
REVERSED
—
0
保留位
23:0
TWKTIM
R/W
0
定时唤醒时间= TWKTIM *32K
CHIP_ID0
ADDR:0x40000100
位域
名称
类型
复位值
描述
31:0
ID0
RO
0
ID0
CHIP_ID1
ADDR:0x40000104
位域
名称
类型
复位值
描述
31:0
ID1
RO
0
ID1
CHIP_ID2
ADDR:0x40000108
位域
名称
类型
复位值
描述
31:0
ID2
RO
0
ID2
CHIP_ID3
ADDR:0x4000010C
位域
名称
类型
复位值
描述
31:0
ID3
RO
0
ID3
类型
复位值
描述
PAWKEN
ADDR:0x40000200
位域
名称
37
SWM180 系列
31:16
REVERSED
—
0
保留位
15:0
PAWKEN
R/W
0
Port A 输入唤醒使能
PBWKEN
ADDR:0x40000204
位域
名称
类型
复位值
描述
31:16
REVERSED
—
0
保留位
15:0
PBWKEN
R/W
0
Port B 输入唤醒使能
PCWKEN
ADDR:0x40000208
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PCWKEN
R/W
0
Port C 输入唤醒使能
PDWKEN
ADDR:0x4000020C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PDWKEN
R/W
0
Port D 输入唤醒使能
PEWKEN
ADDR:0x40000210
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PEWKEN
R/W
0
Port E 输入唤醒使能
PAWKSR
ADDR:0x40000218
位域
名称
类型
复位值
描述
31:16
REVERSED
—
0
保留位
38
SWM180 系列
15:0
PAWKSR
R/W1C
0
Port A 输入唤醒状态标志位。
硬件置 1,软件写 1 清
PBWKSR
ADDR:0x4000021C
位域
名称
类型
复位值
描述
31:16
REVERSED
—
0
保留位
15:0
PBWKSR
R/ W1C
0
Port B 输入唤醒状态标志位。
硬件置 1,软件写 1 清
PCWKSR
ADDR:0x40000220
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PCWKSR
R/ W1C
0
Port C 输入唤醒状态标志位。
硬件置 1,软件写 1 清
PDWKSR
ADDR:0x40000224
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PDWKSR
R/ W1C
0
Port D 输入唤醒状态标志位
硬件置 1,软件写 1 清
PEWKSR
ADDR:0x40000228
位域
名称
类型
复位值
描述
31:8
REVERSED
—
0
保留位
7:0
PEWKSR
R/ W1C
0
Port E 输入唤醒状态标志位
硬件置 1,软件写 1 清
HRCCR
ADDR: 0x5000C000
位域
名称
类型
复位值
描述
31:2
REVERSED
—
—
保留
1
DBLF
R/W
0
内部高频 RC 振荡器倍频
0:24MHz
1:48MHz
39
SWM180 系列
0
EN
R/W
1
内部高频 RC 振荡器使能
0:关闭
1:开启
BODCR
ADDR: 0x5000C010
位域
名称
类型
复位值
描述
31:9
REVERSED
—
—
保留
8
IF
R/W1C
0
低压检测中断状态,写 1 清中断
1:触发中断
0:中断未触发
7:4
REVERSED
—
—
保留
3
IE
R/W
0
低压检测中断使能,BOD_EN 使能后有效
1:使能中断
0:禁能中断
2
REVERSED
—
—
保留
1
ST
RO
0
0
EN
R/W
0
类型
复位值
描述
—
保留
低压检测状态,BOD_EN 使能后有效
1:主电源电平低于 2.7V
0:主电源电平高于 2.7V
低压检测使能
1:使能;
0:禁能
CMPCR
ADDR: 0x5000C014
位域
名称
31:13
REVERSED
12
CMP2INP
R/W
0
0:比较器 2 正输入端选择内部参考源
1:比较器 2 正输入端选择外部引脚
11
CMP1INP
R/W
0
0:比较器 1 正输入端选择内部参考源
1:比较器 1 正输入端选择外部引脚
10
CMP0INP
R/W
0
0:比较器 0 正输入端选择内部参考源
1:比较器 0 正输入端选择外部引脚
9
CMP2HYS
R/W
0
0:比较器 2 无迟滞
1:比较器 2 有迟滞
8
CMP1HYS
R/W
0
0:比较器 1 无迟滞
1:比较器 1 有迟滞
7
CMP0HYS
R/W
0
0:比较器 0 无迟滞
1:比较器 0 有迟滞
6
CMP2EN
R/W
0
0:比较器 2 关闭
1:比较器 2 使能
5
CMP1EN
R/W
0
0:比较器 1 关闭
1:比较器 1 使能
4
CMP0EN
R/W
0
0:比较器 0 关闭
1:比较器 0 使能
—
40
SWM180 系列
3:0
VREF
R/W
1111
正输入端内部基准寄存器
0000:0.3v
0001:0.45v
0010:0.6v
0011:0.75v
0100:0.9v
0101:1.05v
0110:1.2v
0111:1.35v
1000:1.5v
1001:1.65v
1010:1.8v
1011:1.95v
1100:2.1v
1101:2.25v
1110:2.4v
1111:2.55v
CMPSR
ADDR: 0x5000C018
位域
名称
类型
复位值
描述
31:11
REVERSED
—
—
保留
10
CMP2IF
R/W
0
9
CMP1IF
R/W
0
8
CMP0IF
R/W
0
7
REVERSED
—
—
6
CMP2IE
R/W
0
5
CMP1IE
R/W
0
4
CMP0IE
R/W
0
3
REVERSED
—
—
2
CMP2OUT
R/W
0
1
CMP1OUT
R/W
0
0
CMP0OUT
R/W
0
比较器 2 中断标志
1:输出发生变化(包括从 0 到 1 和从 1 到 0)
0:写 0 清除
比较器 1 中断标志
1:输出发生变化(包括从 0 到 1 和从 1 到 0)
0:写 0 清除
比较器 0 中断标志
1:输出发生变化(包括从 0 到 1 和从 1 到 0)
0:写 0 清除
保留
比较器 2 中断使能
0:关闭
1:开启
比较器 1 中断使能
0:关闭
1:开启
比较器 0 中断使能
0:关闭
1:开启
保留
比较器 2 结果输出
1:N 端电平>P 端电平
0:P 端电平>N 端电平
比较器 1 结果输出
1:N 端电平>P 端电平
0:P 端电平>N 端电平
比较器 0 结果输出
1:N 端电平>P 端电平
0:P 端电平>N 端电平
41
SWM180 系列
XTALCR
ADDR: 0x5000C01C
位域
名称
类型
复位值
描述
31:2
REVERSED
—
—
保留
1
EN
R/W
0
高频晶振使能
0:关闭
1:开启
0
REVERSED
—
—
保留
LRCCR
ADDR: 0x5000C020
位域
名称
类型
复位值
描述
31:1
REVERSED
—
—
保留
0
EN
R/W
1
低频 RC 使能
0:关闭
1:开启
42
SWM180 系列
6.6 INTCON
6.6.1 特性
指定模块中断可配置至任意中断向量。
所有 IO 中断均可独立产生中断。
最多可配置 48 个中断源。
6.6.2 功能描述
中断控制模块主要包括中断配置功能,将指定中断配置至对应向量表位置。SWM180
系列所有型号 INTCON 模块操作均相同,部分型号无对应模块时,对应中断号为空。
注意:此模块与 NVIC 控制器为两个独立模块,NVIC 用于控制指定中断源使能及优先
级,本模块用于配置模块与中断源的链接。使用中断前,需要先配置此模块,将对应中断配
置至指定中断号,然后使能 NVIC 中断。
6.6.3 中断配置
中断配置模块可以灵活配置外设中断源与 NVIC 模块 32 个中断向量表对应关系。配置
方式如下:
对于 IRQ0_SRC~IRQ15_SRC 寄存器,将对应外设中断编号配置至 IRQx_SRC 寄存器
BIT[6:0]后,外设中断将连接至指定中断号。外设中断产生后,NVIC 模块对应 IRQx 将接收
到中断信号,执行对应中断函数。清除外设中断后,本模块所输出信号将同时清除,无需单
独进行操作。中断编号配置如表格 6-3 所示。
表格 6-3 IRQx_SRC(x = 0~15)中断源编号
中断编号
中断源
中断编号
中断源
中断编号
中断源
中断编号
中断源
000_0000
GPIOA[0]
001_0000
GPIOB[0]
010_0000
GPIOC[0]
011_1000
GPIOE[0]
000_0001
GPIOA[1]
001_0001
GPIOB[1]
010_0001
GPIOC[1]
011_1001
GPIOE[1]
000_0010
GPIOA[2]
001_0010
GPIOB[2]
010_0010
GPIOC[2]
011_1010
GPIOE[2]
000_0011
GPIOA[3]
001_0011
GPIOB[3]
010_0011
GPIOC[3]
011_1011
GPIOE[3]
000_0100
GPIOA[4]
001_0100
GPIOB[4]
010_0100
GPIOC[4]
011_1100
GPIOE[4]
000_0101
GPIOA[5]
001_0101
GPIOB[5]
010_0101
GPIOC[5]
011_1101
GPIOE[5]
000_0110
GPIOA[6]
001_0110
GPIOB[6]
010_0110
GPIOC[6]
011_1110
GPIOE[6]
000_0111
GPIOA[7]
001_0111
GPIOB[7]
010_0111
GPIOC[7]
011_1111
GPIOE[7]
000_1000
GPIOA[8]
001_1000
GPIOB[8]
011_0000
GPIOD[0]
101_0000
SPI1
000_1001
GPIOA[9]
001_1001
GPIOB[9]
011_0001
GPIOD[1]
101_0001
CORDIC
000_1010
GPIOA[10]
001_1010
GPIOB[10]
011_0010
GPIOD[2]
101_0010
RTC
000_1011
GPIOA[11]
001_1011
GPIOB[11]
011_0011
GPIOD[3]
101_0011
SPI0
43
SWM180 系列
中断编号
中断源
中断编号
中断源
中断编号
中断源
中断编号
中断源
000_1100
GPIOA[12]
001_1100
GPIOB[12]
011_0100
GPIOD[4]
101_0100
TIMER
000_1101
GPIOA[13]
001_1101
GPIOB[13]
011_0101
GPIOD[5]
101_1000
UART0
000_1110
GPIOA[14]
001_1110
GPIOB[14]
011_0110
GPIOD[6]
101_1001
UART1
000_1111
GPIOA[15]
001_1111
GPIOB[15]
011_0111
GPIOD[7]
101_1010
UART2
101_1011
PWM
101_1111
ADC0
110_0100
CACHE
110_1000
ADC1
101_1100
I20
110_0000
BOD
110_0101
FLASH
110_1001
HALL
101_1101
I2C1
110_0001
UART3
110_0110
CAN
101_1110
WDT
110_0011
DMA
110_0111
CMP
选择结构如图 6-4 所示。
IQRx_SEL
BIT[6:0]
GPIOA_0
GPIOA_1
…
GPIOA_2
MUX
WDT
IRQx
(x=0~15)
PWM
UART0
图 6-4 IRQ 0~15 选择示意图
对于 IRQ16_SRC~IRQ31_SRC,可将两个外设中断源同时配置至 IRQx_SRC 寄存器
BIT[9:5]和 BIT[4:0]。当产生中断时,通过在对应中断程序中读取中断状态寄存器 IRQx_IF(x
= 16~31) 查询对应中断源。当外设中断清除后,IRQx_IF 自动清除。中断编号配置如表 B-2
所示。
表格 6-4 IRQx_SRC(x = 16~31)中断源编号
中断编号
中断源
中断编号
中断源
000_0000
GPIOA
001_0000
UART2
000_0001
GPIOB
001_0001
PWM
000_0010
GPIOC
001_0010
I20
000_0011
GPIOD
001_0011
I2C1
000_0100
GPIOE
001_0100
WDT
000_0101
保留
001_0101
ADC0
000_0110
SPI1
001_0110
BOD
000_0111
CORDIC
001_0111
UART3
44
SWM180 系列
000_1000
RTC
001_1000
保留
000_1001
SPI0
001_1001
DMA
000_1010
TIMER
001_1010
CACHE
000_1011
保留
001_1011
FLASH
000_1100
保留
001_1100
CAN
000_1101
HALL
001_1101
CMP
000_1110
UART0
001_1110
ADC1
000_1111
UART1
001_1111
保留
其选择结构如图 6-5 所示。
IQRx_SEL
BIT[4:0]
GPIOA
GPIOB
…
GPIOC
WDT
MUX
PWM
UART0
IRQx
(x=16~31)
IQRx_SEL
BIT[9:5]
GPIOA
GPIOB
…
GPIOC
WDT
IRQx
MUX
PWM
UART0
图 6-5 IRQ 16~31 选择示意图
45
SWM180 系列
6.6.4 寄存器映射
IRQMUX
BASE:0x45000000
名称
偏移量
类型
复位值
描述
IRQ0_SRC
0x00
R/W
0x7F
IRQ0 中断源选择
IRQ1_SRC
0x04
R/W
0x7F
IRQ1 中断源选择
IRQ2_SRC
0x08
R/W
0x7F
IRQ2 中断源选择
IRQ3_SRC
0x0C
R/W
0x7F
IRQ3 中断源选择
IRQ4_SRC
0x10
R/W
0x7F
IRQ4 中断源选择
IRQ5_SRC
0x14
R/W
0x7F
IRQ5 中断源选择
IRQ6_SRC
0x18
R/W
0x7F
IRQ6 中断源选择
IRQ7_SRC
0x1C
R/W
0x7F
IRQ7 中断源选择
IRQ8_SRC
0x20
R/W
0x7F
IRQ8 中断源选择
IRQ9_SRC
0x24
R/W
0x7F
IRQ9 中断源选择
IRQ10_SRC
0x28
R/W
0x7F
IRQ10 中断源选择
IRQ11_SRC
0x2C
R/W
0x7F
IRQ11 中断源选择
IRQ12_SRC
0x30
R/W
0x7F
IRQ12 中断源选择
IRQ13_SRC
0x34
R/W
0x7F
IRQ13 中断源选择
IRQ14_SRC
0x38
R/W
0x7F
IRQ14 中断源选择
IRQ15_SRC
0x3C
R/W
0x7F
IRQ15 中断源选择
IRQ16_IF
0x140
RO
0x00
IRQ16 中断触发状态
IRQ17_IF
0x144
RO
0x00
IRQ17 中断触发状态
IRQ18_IF
0x148
RO
0x00
IRQ18 中断触发状态
IRQ19_IF
0x14C
RO
0x00
IRQ19 中断触发状态
IRQ20_IF
0x150
RO
0x00
IRQ20 中断触发状态
IRQ21_IF
0x154
RO
0x00
IRQ21 中断触发状态
IRQ22_IF
0x158
RO
0x00
IRQ22 中断触发状态
IRQ23_IF
0x15C
RO
0x00
IRQ23 中断触发状态
IRQ24_IF
0x160
RO
0x00
IRQ24 中断触发状态
IRQ25_IF
0x164
RO
0x00
IRQ25 中断触发状态
46
SWM180 系列
IRQ26_IF
0x168
RO
0x00
IRQ26 中断触发状态
IRQ27_IF
0x16C
RO
0x00
IRQ27 中断触发状态
IRQ28_IF
0x170
RO
0x00
IRQ28 中断触发状态
IRQ29_IF
0x174
RO
0x00
IRQ29 中断触发状态
IRQ30_IF
0x178
RO
0x00
IRQ30 中断触发状态
IRQ31_IF
0x17C
RO
0x00
IRQ31 中断触发状态
IRQ16_SRC
0x240
R/W
0x00
IRQ16 中断源选择
IRQ17_SRC
0x244
R/W
0x00
IRQ17 中断源选择
IRQ18_SRC
0x248
R/W
0x00
IRQ18 中断源选择
IRQ19_SRC
0x24C
R/W
0x00
IRQ19 中断源选择
IRQ20_SRC
0x250
R/W
0x00
IRQ20 中断源选择
IRQ21_SRC
0x254
R/W
0x00
IRQ21 中断源选择
IRQ22_SRC
0x258
R/W
0x00
IRQ22 中断源选择
IRQ23_SRC
0x25C
R/W
0x00
IRQ23 中断源选择
IRQ24_SRC
0x260
R/W
0x00
IRQ24 中断源选择
IRQ25_SRC
0x264
R/W
0x00
IRQ25 中断源选择
IRQ26_SRC
0x268
R/W
0x00
IRQ26 中断源选择
IRQ27_SRC
0x26C
R/W
0x00
IRQ27 中断源选择
IRQ28_SRC
0x270
R/W
0x00
IRQ28 中断源选择
IRQ29_SRC
0x274
R/W
0x00
IRQ29 中断源选择
IRQ30_SRC
0x278
R/W
0x00
IRQ30 中断源选择
IRQ31_SRC
0x27C
R/W
0x00
IRQ31 中断源选择
47
SWM180 系列
6.6.5 寄存器描述
IRQx_SRC (x = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
ADDR:0x45000000+0x04*x
位域
名称
类型
复位值
描述
31:7
REVERSED
R
0
保留位
6:0
IRQx_SRC
RW
0x7F
中断源选择,见表格 6-3
IRQx_IF (x = 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)
ADDR:0x45000140+0x04*(x-16)
位域
名称
类型
复位值
描述
31:2
REVERSED
R
0
保留位
1
INT1
RO
0
0
INT0
RO
0
中断源 1(IRQ16 – IRQ31)的中断状态
0:中断未触发
1:中断已触发
此位无需单独清除
中断源 0(IRQ16 – IRQ31)的中断状态
0:中断未触发
1:中断已触发
此位无需单独清除
IRQx_SRC (x = 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)
ADDR:0x45000240+0x04*(x-16)
位域
名称
类型
复位值
描述
31:10
REVERSED
R
0
保留位
9:5
INT1
R/W
0
中断源 1 选择,见表格 6-4
4:0
INT0
R/W
0
中断源 0 选择,见表格 6-4
48
SWM180 系列
6.7 PORTCON
6.7.1 特性
可将 UART/I2C/PWM/COUNTER/CAN 功能配置至任意 I/O 引脚
支持上拉/下拉/开漏功能
配置管脚输入使能
6.7.2 功能描述
端口控制模块主要包括管脚输入使能,管脚功能配置,I/O 上拉、下拉、开漏配置。
SWM180 系列所有型号 PORTCON 模块操作均相同,部分型号无对应管脚时,对应寄存器
位无效。
引脚输入使能
本芯片引脚作为输入或 I2C 相关功能使用时,需要打开引脚对应输入使能寄存器
(INEN_x)
,当引脚所在寄存器对应位设置为 1 时,输入使能打开,引脚可获取外部状态。
功能选择配置
对于部分数字输入输出功能,可以配置到任意 I/O 引脚,以方便板级布局。包括如下功
能:
UARTn_TX
UARTn_RX
I2Cn_SDA
I2Cn_CLK
PWMx_OUT
PWM_BREAK
COUNTERn_IN
CAPTURE_IN
CAN_RX
CAN_TX
端口复用通过 FUMUXn_x 寄存器进行配置,每个端口对应 2 到 3 个 FUMUX 寄存器,
通过将指定编号(见表格 6-5)配置至对应管脚所在寄存器,并在引脚复用寄存器将对应管
脚选择为复用功能配置项,则该引脚被配置为指定数字功能。
49
SWM180 系列
表格 6-5 功能配置表
编号
功能
编号
0_0000
UART0_RXD
0_1000
0_0001
UART0_TXD
0_0010
功能
编号
功能
编号
功能
I2C1_SCL
1_0000
COUNTER0_IN
1_1000
PWM3B_OUT
0_1001
I2C1_SDA
1_0001
COUNTER1_IN
1_1001
REVERSED
UART1_RXD
0_1010
PWM0A_OUT
1_0010
COUNTER2_IN
1_1010
PWM_BREAK
0_0011
UART1_TXD
0_1011
PWM1A_OUT
1_0011
COUNTER3_IN
1_1011
UART3_RXD
0_0100
UART2_RXD
0_1100
PWM2A_OUT
1_0100
CAN_RX
1_1100
UART3_TXD
0_0101
UART2_TXD
0_1101
PWM3A_OUT
1_0101
CAN_TX
1_1101
HALL_A_IN
0_0110
I2C0_SCL
0_1110
CAPTURE_IN
1_0110
PWM1B_OUT
1_1110
HALL_B_IN
0_0111
I2C0_SDA
0_1111
PWM0B_OUT
1_0111
PWM2B_OUT
1_1111
HALL_C_IN
引脚复用配置
端口复用通过端口复用寄存器 PORTA_SEL 寄存器、PORTB_SEL 寄存器、PORTC_SEL
寄存器、PORTD_SEL 寄存器及 PORTE_SEL 寄存器实现。当指定位配置为对应值时,引脚
功能实现切换。
每个端口可能具备以下功能:
通用输入输出接口:引脚作为通用输入输出功能,输入或输出指定数字电平。
外设接口:将对应引脚切换至指定外围功能(该功能为此引脚独有,如 SPI 或 LCD
功能)
。
模拟接口:将对应引脚切换至模拟功能,如模数转换器/比较器等。
复用功能配置项:将引脚切换至复用功能项,具体哪个功能取决于该引脚对应的
FUMUX 寄存器配置。
配置示意图如图 6-6 所示。
FUMUX
PWM_0
PORTx_SEL
UART_RX
…
CAN_TX
I2C_SDA
COUNTER_IN
MUX
GPIO
LCD
MUX
PINx
SPI
ADC/CMP
图 6-6 引脚复用配置示意图
50
SWM180 系列
上拉/下拉/推挽/开漏配置
本芯片每个引脚均可配置为以下模式:
上拉输入。
下拉输入。
推挽输出。
开漏输出。
作为输入功能使用时,GPIO DIR 寄存器对应位为 0,该状态位上电默认状态。此时可
以开启内部上拉和下拉功能,通过配置 PULLU 及 PULLD 寄存器实现,将引脚所对应寄存
器指定位配置为 1,即可实现该功能。如图 6-7 所示。
VCC
PULLU
IN
PIN
PULLD
GND
图 6-7 IO 输入上拉下拉
作为输出功能使用时,GPIO DIR 寄存器对应位为 1,此时可配置引脚状态为推挽输出
或开漏输出,,通过配置 OPEND 寄存器实现。
作为推挽输出时,GPIO OPEND 寄存器对应位为 0,芯片具备拉/灌电流的能力,GPIO
DATA 寄存器配置值将反映到对应引脚电平。如图 6-8 所示。
VCC
PIN
DATA
GND
图 6-8 推挽输出
作为开漏输出时,GPIO OPEND 寄存器对应位为 1,芯片只具备灌电流的能力,不具备
拉电流能力。GPIO DATA 寄存器配置为 0 时,对应引脚将输出 0,配置为 1 时,输出高阻。
51
SWM180 系列
若需要输出 1 时,需要将外部引脚接上拉电阻,通过外部上拉实现高电平输出。示意图如图
6-9 所示。
PIN
DATA
图 6-9 开漏输出
6.7.3 寄存器映射
POTRG
BASE:0x50000000
名称
偏移量
类型
复位值
描述
PORTA_SEL1
0x00
R/W
0xF0
端口 A 功能配置寄存器 1
PORTA_SEL2
0x04
R/W
0x00
端口 A 功能配置寄存器 2
PORTB_SEL
0x10
R/W
0x00
端口 B 功能配置寄存器
PORTC_SEL
0x20
R/W
0x00
端口 C 功能配置寄存器
PORTD_SEL
0x30
R/W
0x00
端口 D 功能配置寄存器
PORTE_SEL
0x40
R/W
0x00
端口 E 功能配置寄存器
PORTn
BASE:0x50000000
名称
偏移量
类型
复位值
描述
FUNMUX0_A
0x100
R/W
0x00
端口 A 功能配置项寄存器 0
FUNMUX1_A
0x104
R/W
0x00
端口 A 功能配置项寄存器 1
FUNMUX2_A
0x108
R/W
0x00
端口 A 功能配置项寄存器 2
FUNMUX0_B
0x110
R/W
0x00
端口 B 功能配置项寄存器 0
FUNMUX1_B
0x114
R/W
0x00
端口 B 功能配置项寄存器 1
FUNMUX2_B
0x118
R/W
0x00
端口 B 功能配置项寄存器 2
FUNMUX0_C
0x120
R/W
0x00
端口 C 功能配置项寄存器 0
FUNMUX1_C
0x124
R/W
0x00
端口 C 功能配置项寄存器 1
FUNMUX0_D
0x130
R/W
0x00
端口 D 功能配置项寄存器 0
FUNMUX1_D
0x134
R/W
0x00
端口 D 功能配置项寄存器 1
52
SWM180 系列
FUNMUX0_E
0x140
R/W
0x00
端口 E 功能配置项寄存器 0
FUNMUX1_E
0x144
R/W
0x00
端口 E 功能配置项寄存器 1
PULLU_A
0x200
R/W
0x00
端口 A 上拉使能控制寄存器
PULLU_B
0x210
R/W
0x00
端口 B 上拉使能控制寄存器
PULLU_C
0x220
R/W
0x00
端口 C 上拉使能控制寄存器
PULLU_D
0x230
R/W
0x00
端口 D 上拉使能控制寄存器
PULLU_E
0x240
R/W
0x00
端口 E 上拉使能控制寄存器
PULLD_A
0x300
R/W
0x00
端口 A 下拉使能控制寄存器
PULLD_B
0x310
R/W
0x00
端口 B 下拉使能控制寄存器
PULLD_C
0x320
R/W
0x00
端口 C 下拉使能控制寄存器
PULLD_D
0x330
R/W
0x00
端口 D 下拉使能控制寄存器
PULLD_E
0x340
R/W
0x00
端口 E 下拉使能控制寄存器
OPEND_A
0x400
R/W
0x00
端口 A 开漏使能控制寄存器
OPEND_B
0x410
R/W
0x00
端口 B 开漏使能控制寄存器
OPEND_C
0x420
R/W
0x00
端口 C 开漏使能控制寄存器
OPEND_D
0x430
R/W
0x00
端口 D 开漏使能控制寄存器
OPEND_E
0x440
R/W
0x00
端口 E 开漏使能控制寄存器
INEN_A
0x600
R/W
0x00
端口 A 输入使能控制寄存器
INEN_B
0x610
R/W
0x00
端口 B 输入使能控制寄存器
INEN_C
0x620
R/W
0x00
端口 C 输入使能控制寄存器
INEN_D
0x630
R/W
0x00
端口 D 输入使能控制寄存器
INEN_E
0x640
R/W
0x00
端口 E 输入使能控制寄存器
6.7.4 寄存器描述
PORTA_SEL1
ADDR:0x50000000
位域
名称
类型
复位值
描述
31:16
REVERSED
—
—
保留
53
SWM180 系列
15:14
PIN7
R/W
0x0
13:12
PIN6
R/W
0x0
11:10
PIN5
R/W
0x0
9:8
PIN4
R/W
0x0
7:6
PIN3
R/W
0x3
5:4
PIN2
R/W
0x3
3:2
PIN1
R/W
0x0
1:0
PIN0
R/W
0x0
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 COM3
Port 功能选择
00:GPIO
01:功能配置项
10:比较器 0P
11:LCD 驱动 COM2
Port 功能选择
00:GPIO
01:功能配置项
10:比较器 0N
11:LCD 驱动 COM1
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 COM0
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:SW_IO
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:SW_CLK
Port 功能选择
00:GPIO
01:功能配置项
10/11:保留
Port 功能选择
00:GPIO
01:功能配置项
10/11:保留
PORTA_SEL2
ADDR:0x50000004
位域
名称
类型
复位值
描述
31:20
REVERSED
—
—
保留
0x0
Port 功能选择
000:GPIO
001:功能配置项
010:ADC0 CH1
011:保留
100:SPI0 SCLK
其他保留
19:17
PIN15
R/W
54
SWM180 系列
Port 功能选择
000:GPIO
001:功能配置项
010:比较器 2P/ ADC0 CH2
011:保留
100:SPI0 MOSI
其他保留
Port 功能选择
000:GPIO
001:功能配置项
010:比较器 2N/ ADC0 CH3
011:保留
100:SPI0 MISO
其他保留
Port 功能选择
000:GPIO
001:功能配置项
010:ADC0 CH4
011:保留
100:SPI0 SSN
其他保留
Port 功能选择
00:GPIO
01:功能配置项
10:SPI0 SCLK
11:LCD 驱动 SEG21
Port 功能选择
00:GPIO
01:功能配置项
10:SPI0 MOSI
11:LCD 驱动 SEG20
Port 功能选择
00:GPIO
01:功能配置项
10:SPI0 MISO
11:LCD 驱动 SEG19
Port 功能选择
00:GPIO
01:功能配置项
10:SPI0 SSN
11:LCD 驱动 SEG18
16:14
PIN14
R/W
0x0
13:11
PIN13
R/W
0x0
10:8
PIN12
R/W
0x0
7:6
PIN11
R/W
0x0
5:4
PIN10
R/W
0x0
3:2
PIN9
R/W
0x0
1:0
PIN8
R/W
0x0
类型
复位值
描述
00
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1 CH5N
11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1 CH5P
11:保留
PORTB_SEL
ADDR:0x50000010
位域
31:30
29:28
名称
PIN15
PIN14
R/W
R/W
55
SWM180 系列
27:26
25:24
23:22
21:20
19:18
17:16
15:14
13:12
PIN13
PIN12
PIN11
PIN10
PIN9
PIN8
PIN7
PIN6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG25
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG24
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG23
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG22
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG9
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG8
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG7
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG6
11:10
PIN5
R/W
00
9:8
PIN4
R/W
00
7:6
PIN3
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG5
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG4
Port 功能选择
00:GPIO
01:功能配置项
10:比较器 1 P
11:LCD 驱动 SEG3
56
SWM180 系列
5:4
PIN2
R/W
00
3:2
PIN1
R/W
00
1:0
PIN0
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:比较器 1 N
11:LCD 驱动 SEG2
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG1
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG0
PORTC_SEL
ADDR:0x50000020
位域
名称
类型
复位值
描述
31:20
REVERSED
R
0
保留位
00
Port 功能选择
000:GPIO
001:功能配置项
010:ADC1CH0N/ ADC0 CH5
011:LCD 驱动 SEG13
100:SPI1 SCLK
其他保留
19:17
PIN7
R/W
16:14
PIN6
R/W
00
13:11
PIN5
R/W
00
10:8
PIN4
R/W
00
7:6
PIN3
R/W
00
Port 功能选择
000:GPIO
001:功能配置项
010:ADC1CH0P/ ADC0 CH6
011:LCD 驱动 SEG12
100:SPI1 MOSI
其他保留
Port 功能选择
000:GPIO
001:功能配置项
010:ADC1CH1N
011:LCD 驱动 SEG11
100:SPI1 MISO
其他保留
Port 功能选择
000:GPIO
001:功能配置项
010:ADC1CH1P
011:LCD 驱动 SEG10
100:SPI1 SSN
其他保留
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1CH3N
11:保留
57
SWM180 系列
5:4
PIN2
R/W
00
3:2
PIN1
R/W
00
1:0
PIN0
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1CH3P
11:保留
Port 功能选择
00:GPIO
01:功能配置项
10:XTALH_IN
11:保留
Port 功能选择
00:GPIO
01:功能配置项
10:XTALH_OUT
11:保留
PORTD_SEL
ADDR:0x50000030
位域
名称
类型
复位值
描述
31:20
REVERSED
R
0
保留位
19:17
PIN7
R/W
00
16:14
PIN6
R/W
00
13:11
PIN5
R/W
00
10:8
PIN4
R/W
00
7:6
PIN3
R/W
00
5:4
PIN2
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG29
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG28
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG27
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG26
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG17
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG16
58
SWM180 系列
3:2
PIN1
R/W
00
1:0
PIN0
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1CH4N
11:LCD 驱动 SEG15
Port 功能选择
00:GPIO
01:功能配置项
10:ADC1CH4P
11:LCD 驱动 SEG14
PORTE_SEL
ADDR:0x50000040
位域
名称
类型
复位值
描述
31:20
REVERSED
R
0
保留位
00
Port 功能选择
00:GPIO
01:功能配置项
10/11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10:ADC0 CH0
11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10/11:保留
00
Port 功能选择
00:GPIO
01:功能配置项
10/11:保留
19:17
16:14
13:11
10:8
7:6
5:4
PIN7
PIN6
PIN5
PIN4
PIN3
PIN2
R/W
R/W
R/W
R/W
R/W
R/W
3:2
PIN1
R/W
00
1:0
PIN0
R/W
00
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG31
Port 功能选择
00:GPIO
01:功能配置项
10:保留
11:LCD 驱动 SEG30
59
SWM180 系列
PORTA 端口复用功能寄存器 FUNMUX0_A
ADDR:0x50000100
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN5
R/W
00
PIN5 功能配置,对应编号见功能配置表
24:20
PIN4
R/W
00
PIN4 功能配置,对应编号见功能配置表
19:15
PIN3
R/W
00
PIN3 功能配置,对应编号见功能配置表
14:10
PIN2
R/W
00
PIN2 功能配置,对应编号见功能配置表
9:5
PIN1
R/W
00
PIN1 功能配置,对应编号见功能配置表
4:0
PIN0
R/W
00
PIN0 功能配置,对应编号见功能配置表
PORTA 端口复用功能寄存器 FUNMUX1_A
ADDR:0x50000104
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN11
R/W
00
PIN11 功能配置,对应编号见功能配置表
24:20
PIN10
R/W
00
PIN10 功能配置,对应编号见功能配置表
19:15
PIN9
R/W
00
PIN9 功能配置,对应编号见功能配置表
14:10
PIN8
R/W
00
PIN8 功能配置,对应编号见功能配置表
9:5
PIN7
R/W
00
PIN7 功能配置,对应编号见功能配置表
4:0
PIN6
R/W
00
PIN6 功能配置,对应编号见功能配置表
PORTA 端口复用功能寄存器 FUNMUX2_A
ADDR:0x50000108
位域
名称
类型
复位值
描述
31:20
REVERSED
R
0
保留位
60
SWM180 系列
19:15
PIN15
R/W
00
PIN15 功能配置,对应编号见功能配置表
14:10
PIN14
R/W
00
PIN14 功能配置,对应编号见功能配置表
9:5
PIN13
R/W
00
PIN13 功能配置,对应编号见功能配置表
4:0
PIN12
R/W
00
PIN12 功能配置,对应编号见功能配置表
PORTB 端口复用功能寄存器 FUNMUX0_B
ADDR:0x50000110
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN5
R/W
00
PIN5 功能配置,对应编号见功能配置表
24:20
PIN4
R/W
00
PIN4 功能配置,对应编号见功能配置表
19:15
PIN3
R/W
00
PIN3 功能配置,对应编号见功能配置表
14:10
PIN2
R/W
00
PIN2 功能配置,对应编号见功能配置表
9:5
PIN1
R/W
00
PIN1 功能配置,对应编号见功能配置表
4:0
PIN0
R/W
00
PIN0 功能配置,对应编号见功能配置表
PORTB 端口复用功能寄存器 FUNMUX1_B
ADDR:0x50000114
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN11
R/W
00
PIN11 功能配置,对应编号见功能配置表
24:20
PIN10
R/W
00
PIN10 功能配置,对应编号见功能配置表
19:15
PIN9
R/W
00
PIN9 功能配置,对应编号见功能配置表
14:10
PIN8
R/W
00
PIN8 功能配置,对应编号见功能配置表
61
SWM180 系列
9:5
PIN7
R/W
00
PIN7 功能配置,对应编号见功能配置表
4:0
PIN6
R/W
00
PIN6 功能配置,对应编号见功能配置表
PORTB 端口复用功能寄存器 FUNMUX2_B
ADDR:0x50000118
位域
名称
类型
复位值
描述
31:20
REVERSED
R
0
保留位
19:15
PIN15
R/W
00
PIN15 功能配置,对应编号见功能配置表
14:10
PIN14
R/W
00
PIN14 功能配置,对应编号见功能配置表
9:5
PIN13
R/W
00
PIN13 功能配置,对应编号见功能配置表
4:0
PIN12
R/W
00
PIN12 功能配置,对应编号见功能配置表
PORTC 端口复用功能寄存器 FUNMUX0_C
ADDR:0x50000120
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN5
R/W
00
PIN5 功能配置,对应编号见功能配置表
24:20
PIN4
R/W
00
PIN4 功能配置,对应编号见功能配置表
19:15
PIN3
R/W
00
PIN3 功能配置,对应编号见功能配置表
14:10
PIN2
R/W
00
PIN2 功能配置,对应编号见功能配置表
9:5
PIN1
R/W
00
PIN1 功能配置,对应编号见功能配置表
4:0
PIN0
R/W
00
PIN0 功能配置,对应编号见功能配置表
PORTC 端口复用功能寄存器 FUNMUX1_C
ADDR: 0x50000124
位域
名称
类型
复位值
描述
31:10
REVERSED
R
0
保留位
9:5
PIN7
R/W
00
PIN7 功能配置,对应编号见功能配置表
62
SWM180 系列
4:0
PIN6
R/W
00
PIN6 功能配置,对应编号见功能配置表
PORTD 端口复用功能寄存器 FUNMUX0_D
ADDR:0x50000130
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN5
R/W
00
PIN5 功能配置,对应编号见功能配置表
24:20
PIN4
R/W
00
PIN4 功能配置,对应编号见功能配置表
19:15
PIN3
R/W
00
PIN3 功能配置,对应编号见功能配置表
14:10
PIN2
R/W
00
PIN2 功能配置,对应编号见功能配置表
9:5
PIN1
R/W
00
PIN1 功能配置,对应编号见功能配置表
4:0
PIN0
R/W
00
PIN0 功能配置,对应编号见功能配置表
PORTD 端口复用功能寄存器 FUNMUX1_D
ADDR: 0x50000134
位域
名称
类型
复位值
描述
31:10
REVERSED
R
0
保留位
9:5
PIN7
R/W
00
PIN7 功能配置,对应编号见功能配置表
4:0
PIN6
R/W
00
PIN6 功能配置,对应编号见功能配置表
PORTE 端口复用功能寄存器 FUNMUX0_E
ADDR:0x50000140
位域
名称
类型
复位值
描述
31:30
REVERSED
R
0
保留位
29:25
PIN5
R/W
00
PIN5 功能配置,对应编号见功能配置表
24:20
PIN4
R/W
00
PIN4 功能配置,对应编号见功能配置表
19:15
PIN3
R/W
00
PIN3 功能配置,对应编号见功能配置表
14:10
PIN2
R/W
00
PIN2 功能配置,对应编号见功能配置表
63
SWM180 系列
9:5
PIN1
R/W
00
PIN1 功能配置,对应编号见功能配置表
4:0
PIN0
R/W
00
PIN0 功能配置,对应编号见功能配置表
PORTE 端口复用功能寄存器 FUNMUX1_E
ADDR: 0x50000144
位域
名称
类型
复位值
描述
31:10
REVERSED
R
0
保留位
9:5
PIN7
R/W
00
PIN7 功能配置,对应编号见功能配置表
4:0
PIN6
R/W
00
PIN6 功能配置,对应编号见功能配置表
PORTA 端口上拉功能寄存器 PULLU
ADDR:0x50000200
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 上拉电阻使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 上拉电阻使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 上拉电阻使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 上拉电阻使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 上拉电阻使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 上拉电阻使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 上拉电阻使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 上拉电阻使能
0:禁能
1:使能
7
PIN7
R/W
00
PIN7 上拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 上拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 上拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 上拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 上拉电阻使能
0:禁能
1:使能
64
SWM180 系列
2
PIN2
R/W
00
PIN2 上拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 上拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 上拉电阻使能
0:禁能
1:使能
PORTB 端口上拉功能寄存器 PULLU
ADDR:0x50000210
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 上拉电阻使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 上拉电阻使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 上拉电阻使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 上拉电阻使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 上拉电阻使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 上拉电阻使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 上拉电阻使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 上拉电阻使能
0:禁能
1:使能
7
PIN7
R/W
00
PIN7 上拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 上拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 上拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 上拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 上拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 上拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 上拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 上拉电阻使能
0:禁能
1:使能
65
SWM180 系列
PORTC 端口上拉功能寄存器 PULLU
ADDR:0x50000220
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 上拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 上拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 上拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 上拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 上拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 上拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 上拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 上拉电阻使能
0:禁能
1:使能
PORTD 端口上拉功能寄存器 PULLU
ADDR:0x50000230
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 上拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 上拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 上拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 上拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 上拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 上拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 上拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 上拉电阻使能
0:禁能
1:使能
66
SWM180 系列
PORTE 端口上拉功能寄存器 PULLU
ADDR: 0x50000240
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 上拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 上拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 上拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 上拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 上拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 上拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 上拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 上拉电阻使能
0:禁能
1:使能
PORTA 端口下拉功能寄存器 PULLD_A
ADDR:0x50000300
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 下拉电阻使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 下拉电阻使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 下拉电阻使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 下拉电阻使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 下拉电阻使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 下拉电阻使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 下拉电阻使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 下拉电阻使能
0:禁能
1:使能
67
SWM180 系列
7
PIN7
R/W
00
PIN7 下拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 下拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 下拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 下拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 下拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 下拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 下拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 下拉电阻使能
0:禁能
1:使能
PORTB 端口下拉功能寄存器 PULLD_B
ADDR:0x50000310
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 下拉电阻使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 下拉电阻使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 下拉电阻使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 下拉电阻使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 下拉电阻使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 下拉电阻使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 下拉电阻使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 下拉电阻使能
0:禁能
1:使能
7
PIN7
R/W
00
PIN7 下拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 下拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 下拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 下拉电阻使能
0:禁能
1:使能
68
SWM180 系列
3
PIN3
R/W
00
PIN3 下拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 下拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 下拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 下拉电阻使能
0:禁能
1:使能
PORTC 端口下拉功能寄存器 PULLD_C
ADDR:0x50000320
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 下拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 下拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 下拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 下拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 下拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 下拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 下拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 下拉电阻使能
0:禁能
1:使能
PORTD 端口下拉功能寄存器 PULLD_D
ADDR:0x50000330
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 下拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 下拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 下拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 下拉电阻使能
0:禁能
1:使能
69
SWM180 系列
3
PIN3
R/W
00
PIN3 下拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 下拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 下拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 下拉电阻使能
0:禁能
1:使能
PORTE 端口下拉功能寄存器 PULLD_E
ADDR:0x50000340
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 下拉电阻使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 下拉电阻使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 下拉电阻使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 下拉电阻使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 下拉电阻使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 下拉电阻使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 下拉电阻使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 下拉电阻使能
0:禁能
1:使能
PORTA 端口开漏功能寄存器 OPEND_A
ADDR:0x50000400
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
14
PIN14
R/W
00
13
PIN13
R/W
00
PIN15 开漏使能
0:推挽模式
1:开漏模式
PIN14 开漏使能
0:推挽模式
1:开漏模式
PIN13 开漏使能
0:推挽模式
1:开漏模式
70
SWM180 系列
PIN12 开漏使能
0:推挽模式
1:开漏模式
PIN11 开漏使能
0:推挽模式
1:开漏模式
PIN10 开漏使能
0:推挽模式
1:开漏模式
PIN9 开漏使能
0:推挽模式
1:开漏模式
PIN8 开漏使能
0:推挽模式
1:开漏模式
PIN7 开漏使能
0:推挽模式
1:开漏模式
PIN6 开漏使能
0:推挽模式
1:开漏模式
PIN5 开漏使能
0:推挽模式
1:开漏模式
PIN4 开漏使能
0:推挽模式
1:开漏模式
12
PIN12
R/W
00
11
PIN11
R/W
00
10
PIN10
R/W
00
9
PIN9
R/W
00
8
PIN8
R/W
00
7
PIN7
R/W
00
6
PIN6
R/W
00
5
PIN5
R/W
00
4
PIN4
R/W
00
3
PIN3
R/W
00
PIN3 开漏使能
0:推挽模式
1:开漏模式
2
PIN2
R/W
00
PIN2 开漏使能
0:推挽模式
1:开漏模式
1
PIN1
R/W
00
PIN1 开漏使能
0:推挽模式
1:开漏模式
0
PIN0
R/W
00
PIN0 开漏使能
0:推挽模式
1:开漏模式
PORTB 端口开漏功能寄存器 OPEND_B
ADDR:0x50000410
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
14
PIN14
R/W
00
PIN15 开漏使能
0:推挽模式
1:开漏模式
PIN14 开漏使能
0:推挽模式
1:开漏模式
71
SWM180 系列
13
PIN13
R/W
00
12
PIN12
R/W
00
11
PIN11
R/W
00
10
PIN10
R/W
00
9
PIN9
R/W
00
8
PIN8
R/W
00
7
PIN7
R/W
00
6
PIN6
R/W
00
5
PIN5
R/W
00
4
PIN4
R/W
00
3
PIN3
R/W
00
2
PIN2
R/W
00
1
PIN1
R/W
00
0
PIN0
R/W
00
PIN13 开漏使能
0:推挽模式
1:开漏模式
PIN12 开漏使能
0:推挽模式
1:开漏模式
PIN11 开漏使能
0:推挽模式
1:开漏模式
PIN10 开漏使能
0:推挽模式
1:开漏模式
PIN9 开漏使能
0:推挽模式
1:开漏模式
PIN8 开漏使能
0:推挽模式
1:开漏模式
PIN7 开漏使能
0:推挽模式
1:开漏模式
PIN6 开漏使能
0:推挽模式
1:开漏模式
PIN5 开漏使能
0:推挽模式
1:开漏模式
PIN4 开漏使能
0:推挽模式
1:开漏模式
PIN3 开漏使能
0:推挽模式
1:开漏模式
PIN2 开漏使能
0:推挽模式
1:开漏模式
PIN1 开漏使能
0:推挽模式
1:开漏模式
PIN0 开漏使能
0:推挽模式
1:开漏模式
PORTC 端口开漏功能寄存器 OPEND_C
ADDR:0x50000420
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
6
PIN6
R/W
00
PIN7 开漏使能
0:推挽模式
1:开漏模式
PIN6 开漏使能
0:推挽模式
1:开漏模式
72
SWM180 系列
5
PIN5
R/W
00
4
PIN4
R/W
00
3
PIN3
R/W
00
2
PIN2
R/W
00
1
PIN1
R/W
00
0
PIN0
R/W
00
PIN5 开漏使能
0:推挽模式
1:开漏模式
PIN4 开漏使能
0:推挽模式
1:开漏模式
PIN3 开漏使能
0:推挽模式
1:开漏模式
PIN2 开漏使能
0:推挽模式
1:开漏模式
PIN1 开漏使能
0:推挽模式
1:开漏模式
PIN0 开漏使能
0:推挽模式
1:开漏模式
PORTD 端口开漏功能寄存器 OPEND_D
ADDR:0x50000430
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
6
PIN6
R/W
00
5
PIN5
R/W
00
4
PIN4
R/W
00
3
PIN3
R/W
00
2
PIN2
R/W
00
1
PIN1
R/W
00
0
PIN0
R/W
00
PIN7 开漏使能
0:推挽模式
1:开漏模式
PIN6 开漏使能
0:推挽模式
1:开漏模式
PIN5 开漏使能
0:推挽模式
1:开漏模式
PIN4 开漏使能
0:推挽模式
1:开漏模式
PIN3 开漏使能
0:推挽模式
1:开漏模式
PIN2 开漏使能
0:推挽模式
1:开漏模式
PIN1 开漏使能
0:推挽模式
1:开漏模式
PIN0 开漏使能
0:推挽模式
1:开漏模式
PORTE 端口开漏功能寄存器 OPEND_E
ADDR:0x50000440
位域
名称
类型
复位值
描述
73
SWM180 系列
31:16
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 开漏使能
0:推挽模式
1:开漏模式
6
PIN6
R/W
00
PIN6 开漏使能
0:推挽模式
1:开漏模式
5
PIN5
R/W
00
PIN5 开漏使能
0:推挽模式
1:开漏模式
4
PIN4
R/W
00
3
PIN3
R/W
00
2
PIN2
R/W
00
1
PIN1
R/W
00
0
PIN0
R/W
00
PIN4 开漏使能
0:推挽模式
1:开漏模式
PIN3 开漏使能
0:推挽模式
1:开漏模式
PIN2 开漏使能
0:推挽模式
1:开漏模式
PIN1 开漏使能
0:推挽模式
1:开漏模式
PIN0 开漏使能
0:推挽模式
1:开漏模式
PORTA 端口输入使能功能寄存器 INTEN_A
ADDR:0x50000600
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 输入使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 输入使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 输入使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 输入使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 输入使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 输入使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 输入使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 输入使能
0:禁能
1:使能
74
SWM180 系列
7
PIN7
R/W
00
PIN7 输入使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 输入使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 输入使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 输入使能
0:禁能
1:使能
3
PIN3
R/W
01
PIN3 输入使能
0:禁能
1:使能
2
PIN2
R/W
01
PIN2 输入使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 输入使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 输入使能
0:禁能
1:使能
PORTB 端口输入使能功能寄存器 INTEN_B
ADDR:0x50000610
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位
15
PIN15
R/W
00
PIN15 输入使能
0:禁能
1:使能
14
PIN14
R/W
00
PIN14 输入使能
0:禁能
1:使能
13
PIN13
R/W
00
PIN13 输入使能
0:禁能
1:使能
12
PIN12
R/W
00
PIN12 输入使能
0:禁能
1:使能
11
PIN11
R/W
00
PIN11 输入使能
0:禁能
1:使能
10
PIN10
R/W
00
PIN10 输入使能
0:禁能
1:使能
9
PIN9
R/W
00
PIN9 输入使能
0:禁能
1:使能
8
PIN8
R/W
00
PIN8 输入使能
0:禁能
1:使能
7
PIN7
R/W
00
PIN7 输入使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 输入使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 输入使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 输入使能
0:禁能
1:使能
75
SWM180 系列
3
PIN3
R/W
00
PIN3 输入使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 输入使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 输入使能
0:禁能
1:使能
0
PIN0
R/W
01
PIN0 输入使能
0:禁能
1:使能
PORTC 端口输入使能功能寄存器 INTEN_C
ADDR:0x50000620
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 输入使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 输入使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 输入使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 输入使能
0:禁能
1:使能
3
PIN3
R/W
00
PIN3 输入使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 输入使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 输入使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 输入使能
0:禁能
1:使能
PORTD 端口输入使能功能寄存器 INTEN_D
ADDR:0x50000630
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
PIN7 输入使能
0:禁能
1:使能
6
PIN6
R/W
00
PIN6 输入使能
0:禁能
1:使能
5
PIN5
R/W
00
PIN5 输入使能
0:禁能
1:使能
4
PIN4
R/W
00
PIN4 输入使能
0:禁能
1:使能
76
SWM180 系列
3
PIN3
R/W
00
PIN3 输入使能
0:禁能
1:使能
2
PIN2
R/W
00
PIN2 输入使能
0:禁能
1:使能
1
PIN1
R/W
00
PIN1 输入使能
0:禁能
1:使能
0
PIN0
R/W
00
PIN0 输入使能
0:禁能
1:使能
PORTE 端口输入使能功能寄存器 INTEN_E
ADDR:0x50000640
位域
名称
类型
复位值
描述
31:8
REVERSED
R
0
保留位
7
PIN7
R/W
00
6
PIN6
R/W
00
5
PIN5
R/W
00
4
PIN4
R/W
00
3
PIN3
R/W
00
2
PIN2
R/W
00
1
PIN1
R/W
00
0
PIN0
R/W
00
PIN7 输入使能
0:禁能
1:使能
PIN6 输入使能
0:禁能
1:使能
PIN5 输入使能
0:禁能
1:使能
PIN4 输入使能
0:禁能
1:使能
PIN3 输入使能
0:禁能
1:使能
PIN2 输入使能
0:禁能
1:使能
PIN1 输入使能
0:禁能
1:使能
PIN0 输入使能
0:禁能
1:使能
77
SWM180 系列
6.8 GPIO
6.8.1 特性
最高 56 个独立 IO。
每个 IO 均可触发中断。
中断触发条件可配置,支持电平触发/沿触发。
沿触发中断可配置为上升沿/下降沿/双沿触发。
每个 IO 均支持上拉/下拉/开漏功能。
6.8.2 功能描述
通用输入输出模块主要功能包括数据控制、中断控制功能。
SWM180 系列所有型号 GPIO
操作均相同。使用前需使能对应 GPIO 模块时钟。
数据控制
除 SWD 引脚与 B0 脚外,所有引脚上电后默认状态均为 GPIO 浮空输入(DIR = 0)
。
SWD 引脚可在加密章节进行修改,B0 默认下拉使能,保证浮空状态不会进入 ISP 模式。
GPIO 方向寄存器(DIRx)用来将每个独立的管脚配置为输入模式或者输出模式:
当数据方向寄存器(DIRx)端口对应位设为 0 时,GPIO 对应引脚配置为输入,通
过读取相应数据寄存器(DATAx)对应位获取指定 GPIO 端口当前状态值。
当数据方向寄存器(DIRx)端口对应位设为 1 时,GPIO 对应引脚配置为输出,通
过向对应端口数据寄存器(DATAx)对应位写入值改变对应位输出,0 输出低电平,
1 输出高电平。此时对数据寄存器(DATAx)对应位进行读取时,返回值为上次写
入的输出值。
中断控制
可根据需求将 GPIO 端口对应引脚配置为中断模式,并通过相关寄存器配置中断极性及
触发方式。触发方式分为边沿触发和电平触发两种模式。
对于边沿触发中断,可以设置为上升沿触发,下降沿触发或双沿触发。中断发生后,
标志位具备保持特性,必须通过软件对中断位进行清除
对于电平触发中断,当外部引脚输入为指定电平时,中断发生。当电平翻转后,中
断信号消失,无需软件进行清除。使用电平触发中断,需保证外部信号源保持电平
稳定,以便有效中断电平能被端口识别
使用以下寄存器来对产生中断触发方式和极性进行定义:
GPIO 中断触发方式寄存器(INTLVLTRG),用于配置电平触发或沿触发
78
SWM180 系列
GPIO 中断触发极性寄存器(INTRISEEN),用于配置电平或沿触发极性
GPIO 中断沿触发配置寄存器寄存器(INTBE),选择为沿触发后,用于配置单沿触
发或双沿触发
通过 GPIO 中断使能寄存器(INTEN)可以使能或者禁止相应端口对应位中断,GPIO
原始中断状态(RAWINTSTAUS)不受使能位影响。当产生中断时,可以在 GPIO 原始中断
状态(RAWINTSTAUS)获取中断信号的状态。当中断使能寄存器(INTEN)对应位为 1
时,中断状态(INTSTAUS)寄存器可读取到对应中断信号,且中断信号会进入中断配置模
块及 NVIC 模块,执行中断程序。
通过写 1 到 GPIO 中断清除寄存器(INTCLR)指定位可以清除相应位中断。
6.8.3 寄存器映射
BASE:0x50001000+0x1000*n(n 为端口值)
GPIO
名称
偏移量
类型
复位值
描述
DATA
0x00
R/W
0x00
GPIO Data Register
DIR
0x04
R/W
0x00
GPIO data direction register
INTLVLTRG
0x08
R/W
0x00
GPIO interrupt sense register
INTBE
0x0c
R/W
0x00
GPIO interrupt both edges register
INTRISEEN
0x10
R/W
0x00
GPIO interrupt event register
INTEN
0x14
R/W
0x00
GPIO interrupt enable
INTRAWSTAT
0x18
R/W
0x00
GPIO raw interrupt status
INTSTAT
0x1c
R/W
0x00
GPIO masked interrupt status
INTCLR
0x20
R/W
0x00
GPIO interrupt clear
6.8.4 寄存器描述
GPIO 数据寄存器 DATAx
ADDR:0x50001000+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
DATA
R/W
0
读 GPIO 的输入数据,写入 GPIO 的输出数据
GPIO 方向寄存器 DIRx
ADDR:0x50001004+0x1000*n(n 为端口值)
79
SWM180 系列
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
DIR
R/W
0
设置 GPIO 管脚方向:
1:相应位为输出管脚
0:相应位为输入管脚
GPIOx 中断触发条件寄存器 INTLVLTRG
ADDR:0x50001008+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
INTLVLTRG
R/W
0
配置中断敏感条件:
1:相应位为电平检测
0:相应位为沿检测
GPIOx 中断沿触发配置寄存器 INTBE
ADDR:0x5000100C+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
0
1:相应位为双沿触发中断,即上升沿和下降沿都会
触发中断
0:相应位为单沿触发中断,由 GPIOIEV 寄存器相应位
确定是上升沿/下降沿触发
x-1:0
INTBE
R/W
GPIOx 中断事件寄存器 INTRISEEN
ADDR:0x50001010+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
INTRISEEN
R/W
0
1:相应位为上升沿/高电平触发中断
0:相应位为下降沿/低电平触发中断
GPIOx 中断使能寄存器 INTEN
ADDR:0x50001014+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
INTEN
R/W
0
1:相应位为中断使能
0:相应位为中断禁止
GPIOx 原始中断状态寄存器 INTRAWSTAT
ADDR:0x50001018+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
80
SWM180 系列
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
INTRAWSTAT
R
0
1:表示检测到中断触发条件(不受使能影响)
0:没有检测到中断触发条件(不受使能影响)
GPIOx 屏蔽中断状态寄存器 INTSTAT
ADDR:0x5000101C+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:x
REVERSED
R
0
保留位(x 为位宽)
x-1:0
INTSTAT
R
0
相应管脚的产生中断(使能条件下)
GPIOx 中断清除寄存器 INTCLR
ADDR:0x50001020+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:16
REVERSED
R
0
保留位(x 为位宽)
15:0
INTCLR
W1C
0
写 1 清除沿中断
81
SWM180 系列
6.9 TIMER
6.9.1 特性
4 路 32 位通用定时器
1 路 32 位脉冲宽度测量计数器
可单独配置计时触发条件为内部时钟或者外部输入
检测脉冲极性可配
支持级联功能,最高支持 128bit 定时器
Timer0 可配置为连续脉宽测量功能及 HALL 功能
Timer2 和 Timer3 可硬件触发启动 SAR ADC 采样
Timer3 可硬件触发启动 SIGMA-DELTA ADC 采样
6.9.2 功能描述
SWM180 系列所有型号 TIMER 操作均相同。使用前需使能 TIMER 模块时钟。
每个 TIMER 模块均具备定时器功能(使用片内时钟作为计数基准)和计数器功能(使
用片外时钟作为计数基准)
。
4 路 TIMER 模块支持级联操作,TIMER1 可使用 TIMER0 溢出作为计数源,扩展计数
周期,以此类推,即最高可支持 128bit 位宽定时器。
1 路 32 位脉宽捕捉计数器,针对外部输入信号实现捕捉功能。
TIMER0 支持 Hall 功能及连续脉宽捕捉功能。
TIMER2 与 TIMER3 支持 ADC 触发功能。
定时器
使用 TIMERx 作为定时器时,为递减计数。流程如下:
将控制寄存器(CTRLx)模式选择位(CLKSRCx)配置为 0,此时使用系统时钟
作为计数源。
通过装载值寄存器(LDVALx)设置计数目标值。
使能控制寄存器(CTRLx)使能位(ENx)
。
对应 TIMERx 开始递减计数,计数到 0 时,产生中断,同时重新装载计数值,进
行下一周期计数。
在计数过程中,可通过对当前值寄存器(CVALx)进行读取,获取当前计数值。
定时器计数过程中改变装载值寄存器(LDVALx)值,将在下个计数周期(计数到 0 重新装载)
82
SWM180 系列
生效,不会改变本周期计数值。
定时器计数过程中,可以通过 HALT 寄存器控制位置 1 暂停指定通道计数,置 0 后继
续计数。
示意图如图 6-10 所示。
图 6-10 定时器工作示意图
计数器
使用 TIMERx 作为定时器时,为递减计数。流程如下:
将控制寄存器(CTRLx)模式选择位(CLKSRCx)配置为 2。此时,对应 TIMER
将以配置为 CNT 引脚外部输入的上升沿作为计数目标。
针对外部信号输入引脚进行如下操作:
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能。
通过 PORT_SEL 寄存器将引脚切换为数字功能。
通过 FUNMUX 寄存器将引脚配置为 CNT 功能。
通过装载值寄存器(LDVALx)设置计数目标值。
使能控制寄存器(CTRLx)使能位(ENx)
,对应 TIMERx 开始递减计数,计数到
0 时,产生中断,同时重新装载计数值,进行下一周期计数。
在计数过程中,可通过对当前值寄存器(CVALx)进行读取,获取当前计数值。
定时器计数过程中改变装载值寄存器(LDVALx)值,将在下个计数周期(计数到 0 重新装载)
生效,不会改变本周期计数值。
计数器使用过程中,可以通过 HALT 寄存器控制位置 1 暂停指定通道计数,置 0 后继
续计数。
示意图如图 6-11 所示。
注意:作为计数器使用时,计数到 0 中断产生后,只有当外部计数信号再次产生数据沿,
执行计数值 RELOAD 操作后,方可执行清除中断。因此当外部计数信号较慢或无后续沿产
生时,建议进入后关闭中断使能,清除中断后再次打开。
83
SWM180 系列
图 6-11 计数器工作示意图
级联
当 32 位 TIMER 无法满足计数宽度或时间长度时,可以通过级联方式,使计数周期为
TIMER 位宽相乘的关系。使用方式如下:
TIMERn 根据需要设置为定时器或计数器模式(CLKSRCx = 0x00 或 0x10)
TIMERn+1 设置为级联模式(CLKSRCx = 0x01)
LDVALn = 目标计数值 A
LDVALn+1 = 目标计数值 B,总计数周期为 A*B
使能 TIMERn+1 中断
使能 TIMERn+1
使能 TIMERn
TIMERn+1 中断产生,在中断程序中使能 TIMERn 中断
TIMERn 中断产生,计数周期完成
示意图如图 6-12 所示。
图 6-12 级联模式工作示意图
84
SWM180 系列
单脉冲捕捉
SWM180 提供了一个用于捕捉外部脉宽的模块,可记录外部单个脉冲宽度。该计数器
为向上计数。使用方式如下:
针对外部信号输入引脚进行如下操作
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能
通过 PORT_SEL 寄存器将引脚切换为数字功能
通过 FUNMUX 寄存器将引脚配置为 CAPTURE_IN 功能
设定脉宽测量控制寄存器(PCTRL)HIGH 位,配置脉冲类型,支持高电平脉冲和
低电平脉冲捕捉
设置中断使能寄存器(IE)PIE 位,使能中断
使能脉宽测量控制寄存器(PCTRL)EN 位,启动捕捉功能
当指定引脚出现所配置的脉冲类型时,脉宽测量当前值寄存器(PCVAL)将记录
脉冲宽度,记录单位为 TIMER 模块使用时钟频率。记录完成后,产生中断,捕捉
模块停止工作
进入中断,读取脉宽测量当前值寄存器(PCVAL),获取脉冲宽度
如需继续测量,需要重新使能脉宽测量控制寄存器(PCTRL)EN 位
捕捉高电平示意图如图 6-13 所示。
图 6-13 高电平捕捉示意图
低电平示意图如图 6-14 所示。
85
SWM180 系列
图 6-14 低电平捕捉示意图
霍尔接口
TIMER0 模块提供了 HALL 接口功能,能够自动记录脉冲变化间隔,并产生中断,使用
方式如下:
针对外部信号输入引脚进行如下操作:
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能
通过 PORT_SEL 寄存器将引脚切换为数字功能
通过 FUNMUX 寄存器将引脚配置为 HALL_x 功能
配置 HALLCR 寄存器,设置对应管脚计数及中断产生条件,支持上升沿/下降沿/
双沿产生中断
配置 TIMER0 装载值寄存器(LDVALx)为 0xFFFFFFFF
使能使能控制寄存器(CTRL0)使能位(EN0)
当外部 HALL_X 引脚产生指定电平变化时,TIMER0 计数值自动装载至 HALL_X
(本次覆盖上次)
,并产生 TIMER 中断。同时 HALLSR 寄存器 STx 将产生对应标
示位,标识该对应引脚产生电平变化。同时,也可通过 HALLSR 寄存器 STx 位查
看对应 HALL_X 引脚目前电平值。
当 TIMER0 记载至 0 时,将重新从 0xFFFFFFFF 计数
双边沿记录示意图如图 6-15 所示。
86
SWM180 系列
图 6-15 Hall 双边沿记录示意图
ADC 采样触发功能
TIMER2 与 TIMER3 支持 SAR ADC 触发功能。TIMER3 支持 SIGMA-DELTA ADC 采样
对于 SAR ADC,配置 ADC 完成后,将寄存器(CTRL)中 TRIG(BIT[15:14])设置为
2(TIMER2 触发)或 3(TIMER3 触发),则当对应 TIMER 计数值减置 0 时,将触发 SAR ADC
配置寄存器(CTRL)中选中的通道进行采样。可以通过 ADC 采样完成中断进行结果获取。
对于 SIGMA-DELTA ADC,配置 ADC 完成后,将寄存器(CTRL)中 TRIG(BIT[21])
设置为 1(TIMER3 触发)
,则当 TIMER3 计数值减置 0 时,将触发 SIGMA-DELTA ADC 配
置寄存器(CTRL)中选中的通道进行采样。可以通过 ADC 采样完成中断进行结果获取。
中断
4 路 TIMER 共用一个中断源,通过中断使能寄存器 IE 进行各 TIMER 中断使能。通过
中断状态寄存器 IF 进行中断查询及清除。当需要多个 TIMER 共同工作时,可在 TIMER 中
断进入后根据所需优先级,查询中断状态寄存器 IF,同时较早清除中断,以便中断嵌套。
87
SWM180 系列
6.9.3 寄存器映射
Timer
BASE:0x50007000
名称
偏移量
类型
复位值
描述
LDVAL0
0x00
R/W
0x00
Timer0 装载值寄存器
CVAL0
0x04
RO
0x00
Timer0 当前计数值寄存器
CTRL0
0x08
R/W
0x00
Timer0 控制寄存器
LDVAL1
0x0C
R/W
0x00
Timer1 装载值寄存器
CVAL1
0x10
RO
0x00
Timer1 当前计数值寄存器
CTRL1
0x14
R/W
0x00
Timer1 控制寄存器
LDVAL2
0x18
R/W
0x00
Timer2 装载值寄存器
CVAL2
0x1C
RO
0x00
Timer2 当前计数值寄存器
CTRL2
0x20
R/W
0x00
Timer2 控制寄存器
LDVAL3
0x24
R/W
0x00
Timer3 装载值寄存器
CVAL3
0x28
RO
0x00
Timer3 当前计数值寄存器
CTRL3
0x2C
R/W
0x00
Timer3 控制寄存器
PCTRL
0x60
R/W
0x00
脉宽测量控制寄存器
PCVAL
0x64
RO
0x00
脉宽测量当前值寄存器
IE
0x70
R/W
0x00
中断使能寄存器
IF
0x74
R/W
0x00
中断状态寄存器
HALT
0x78
R/W
0x00
停止计数控制寄存器
HALLCR
0x80
R/W
0x00
霍尔信号配置寄存器
HALLSR
0x84
R/W
0x00
霍尔信号状态寄存器
HALL_A
0x90
R/W
0x00
霍尔信号 A 触发时刻数值
HALL_B
0x94
R/W
0x00
霍尔信号 B 触发时刻数值
HALL_C
0x98
R/W
0x00
霍尔信号 C 触发时刻数值
6.9.4 寄存器描述
装载值寄存器 LDVALx(x=0,1,2,3)
ADDR:0x50007000+0xC*x(x 为端口值)
88
SWM180 系列
位域
名称
31:3
LDVALx
类型
RW
复位值
描述
0xFFFFFFFF
定时器通道 x 的起始值
当前值寄存器 CVALx(x=0,1,2,3)
ADDR:0x50007004+0xC*x(x 为端口值)
位域
名称
31:3
CVALx
类型
RO
复位值
描述
0xFFFFFFFF
定时器通道 x 的计数当前值
控制寄存器 CTRLx(x=0,1,2,3)
ADDR:0x50007008+0xC*x(x 为端口值)
位域
名称
31:3
REVERSED
类型
—
复位值
描述
—
保留
2:1
CLKSRCx
R/W
00
0
ENx
R/W
0
定时器通道 x 模式选择
00:定时器模式(使用内部时钟计数)
01:级联模式(使用 T(x-1)溢出计数)
10:保留
11:计数器模式(外部信号计数,频率必须低于
内部时钟)
定时器通道 x 使能
0:禁能
1:使能,从设置值开始递减计数
脉宽测量控制寄存器 PCTRL
ADDR:0x50007060
位域
名称
类型
复位值
描述
31:3
REVERSED
—
—
保留
1
HIGH
R/W
0
测量脉冲极性选择
0:测量从下降沿到上升沿长度
1:测量从上升沿到下降沿长度
0
EN
R/W
0
测量脉宽使能
0:禁能
1:使能,从 0 开始递增计数
脉宽测量当前值寄存器 PCVAL
ADDR:0x50007064
位域
名称
类型
复位值
描述
31:0
PCVAL
RO
0
当前脉宽测量计数器的值
中断使能寄存器 IE
ADDR:0x50007070
89
SWM180 系列
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
16
PULSE
R/W
0
脉宽测量计数器中断使能
1:使能
0:不使能
15:4
REVERSED
—
—
保留
3
TIMER3
R/W
0
2
TIMER2
R/W
0
1
TIMER1
R/W
0
0
TIMER0
R/W
0
定时器通道 3 中断使能
1:使能
0:禁能
定时器通道 2 中断使能
1:使能
0:禁能
定时器通道 1 中断使能
1:使能
0:禁能
定时器通道 0 中断使能
1:使能
0:禁能
中断状态寄存器 IF
ADDR:0x50007074
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
16
PULSE
R/W,W
1C
0
脉宽测量计数器的中断状态,写 1 清除
1:中断发生
0:中断未发生
15:4
REVERSED
—
—
保留
3
TIMER3
R/W1C
0
2
TIMER2
R/W1C
0
1
TIMER1
R/W1C
0
0
TIMER0
R/W1C
0
定时器通道 3 中断状态,写 1 清除
1:中断发生
0:中断未发生
定时器通道 2 中断状态,写 1 清除
1:中断发生
0:中断未发生
定时器通道 1 中断状态,写 1 清除
1:中断发生
0:中断未发生
定时器通道 0 中断状态,写 1 清除
1:中断发生
0:中断未发生
停止计数控制寄存器 HALT
ADDR:0x50007078
位域
名称
类型
复位值
描述
31:4
REVERSED
—
—
保留
90
SWM180 系列
3
2
1
0
TIMER3
TIMER2
TIMER1
TIMER0
R/W
R/W
R/W
R/W
0
定时器通道 3 计数停止
1:计数停止,此时计数器的计数值停止在当前值
上
0:计数正常
0
定时器通道 2 计数停止
1:计数停止,此时计数器的计数值停止在当前值
上
0:计数正常
0
定时器通道 1 计数停止
1:计数停止,此时计数器的计数值停止在当前值
上
0:计数正常
0
定时器通道 0 计数停止
1:计数停止,此时计数器的计数值停止在当前值
上
0:计数正常
霍尔信号状态寄存器 HALLCR
ADDR:0x50007080
位域
名称
类型
复位值
描述
31:6
REVERSED
—
—
保留
5:4
IEC
R/W
0
3:2
IEB
R/W
0
1:0
IEA
R/W
0
霍尔信号 C 触发模式:
00:禁止霍尔信号 C 产生中断;
01:霍尔信号 C 在上升沿产生中断;
10:霍尔信号 C 在下降沿产生中断;
11:霍尔信号 C 在变化沿产生中断;
霍尔信号 B 触发模式:
00:禁止霍尔信号 B 产生中断
01:霍尔信号 B 在上升沿产生中断
10:霍尔信号 B 在下降沿产生中断
11:霍尔信号 B 在变化沿产生中断
霍尔信号 A 触发模式:
00:禁止霍尔信号 A 产生中断
01:霍尔信号 A 在上升沿产生中断
10:霍尔信号 A 在下降沿产生中断
11:霍尔信号 A 在变化沿产生中断
霍尔信号配置寄存器 HALLSR
ADDR:0x50007084
位域
名称
类型
复位值
描述
31:6
REVERSED
—
—
保留
5
STC
RO
0
霍尔信号线 C 当前电平状态
4
STB
RO
0
霍尔信号线 B 当前电平状态
3
STA
RO
0
霍尔信号线 A 当前电平状态
91
SWM180 系列
2
IFC
R/
W1C
0
霍尔信号 C 中断标志位
写 1 清除
1
IFB
R/
W1C
0
霍尔信号 B 中断标志位
写 1 清除
0
IFA
R/
W1C
0
霍尔信号 A 中断标志位
写 1 清除
霍尔信号触发时刻数值寄存器 HALL_x(x=0,1,2)
ADDR:0x50007090+0x4*x
位域
名称
类型
复位值
描述
31:0
HALL_x
RO
0
霍尔信号 A/B/C 触发时刻 TIMER0 值
92
SWM180 系列
6.10 WDT
6.10.1 特性
产生计数器溢出复位信号,复位信号使能可配
具有 32 位计数位宽,可配置灵活宽范围的溢出周期
具有中断功能
6.10.2 功能描述
看门狗定时器(WDT)主要用于控制程序流程正确。SWM180 系列所有型号 WDT 操
作均相同。使用前需使能对应 WDT 模块时钟。
看门狗定时器(WDT)主要用于控制程序流程正确,在程序流长时间未按既定流程执
行指定程序的情况下复位芯片。配置方式如下:
配置初值寄存器 LOAD,设置计数值,该值以系统时钟为单位递减
配置控制寄存器 CR 中 RSTEN 位,设置递减至 0 时产生中断或产生复位
将控制寄存器 CR 中 EN 位置 1,使能 WDT 模块
程序执行过程中通过向 FEED 寄存器写入 0x55 喂狗,重启计数
若当 VALUE 寄存器减至 0,依然未执行喂狗操作,则根据 CR 寄存器设置,产生
中断或复位信号
控制寄存器 CR 中 RSTEN 位配置为 1 时,使能后波形如图 6-16 所示,其中,T_load
为 LOAD 寄存器配置值。
图 6-16 WDT 配置为 RESET 模式波形图
控制寄存器 CR 中 RSTEN 位配置为 0 时,使能后波形如图 6-17 所示,其中,T_load
为 LOAD 寄存器配置值。中断产生后,通过 IF 寄存器进行清除。
93
SWM180 系列
图 6-17 WDT 配置为中断模式波形图
6.10.3 存器映射
下表列出了 WDT 模块的相关寄存器,所列偏移量都是寄存器相对于 WDT 模块基址的
16 进制增量:
WDT
BASE:0x50009000
名称
偏移量
类型
复位值
描述
LOAD
0x00
R/W
0x00
WDT 初值寄存器
VALUE
0x04
R/W
0x00
WDT 当前计数值寄存器
CR
0x08
R/W
0x00
WDT 控制寄存器
IF
0x0C
R/W
0x00
WDT 中断状态寄存器
FEED
0x10
W
0x00
WDT 重启计数器寄存器
6.10.4 寄存器描述
WDT 初值寄存器 LOAD
ADDR: 0x50009000
位域
31:0
名称
LOAD
类型
R/W
复位值
描述
0
WDT 计数器的初始值。WDT 启动时,计数
器自动装载 Load 值,开始递减计数。当计
数器值计到 0 时,将根据 CR 寄存器配置进
行执行:
RSTEN 选择中断使能时,产生复位信号,
WDTLoad 寄存器中的值再次装载到计数器
中,继续计数
RSTEN 选择复位使能时,芯片将直接复位
WDT 启动后此寄存器配置无效
WDT 当前值寄存器 VALUE
ADDR: 0x50009004
位域
名称
类型
复位值
描述
31:0
VALUE
R/W
0
只读,返回计数器的当前计数值
94
SWM180 系列
WDT 控制寄存器 CR
ADDR: 0x50009008
位域
名称
类型
复位值
描述
31:2
REVERSED
—
—
保留
1
RSTEN
R/W
0
0
EN
R/W
0
类型
复位值
描述
—
保留
R/W0C
0
WDT 中断位,高有效
硬件置位,写 0 清除,写 1 无效
类型
复位值
描述
—
保留
0
看门狗重启计数器寄存器
当向该寄存器写入 8’h55 后会重启看门狗
计数器(喂狗操作)
WDT 结果设置输位,使能后配置无效
1:复位使能
0:中断使能
WDT 启动位
1:启动 WDT 计数
0:停止计数
WDT 中断状态寄存器 IF
ADDR: 0x5000900C
位域
名称
31:1
REVERSED
0
IF
—
WDT 重启寄存器 FEED
ADDR: 0x50009010
位域
名称
31:8
REVERSED
7:0
FEED
—
W
95
SWM180 系列
6.11 UART
6.11.1 特性
支持标准的 UART 协议
支持全双工模式
支持波特率可配置
深度为 8 字节的发送和接收 FIFO
支持 break 操作自动检测
支持接收超时中断
6.11.2 功能描述
不同型号具备 UART 数量可能不同。使用前需使能对应 UART 模块时钟。
UART 模块支持波特率配置,
最高速度可达到模块时钟 16 分频。具备深度为 8 的 FIFO,
同时提供了多种中断供选择。
结构图如图 6-18 所示。
APB_BUS
UART Interrupt
Status&Control
Status&Control
RX_FIFO
FIFO & Line
Control and Status
Register
RX Shift Register
MODEM
Control and Status
Register
Baud Out
TX_FIFO
Interrupt
Control & Status
TX Shift Register
Baud Out
Baud Rate Generator
RXD
TXD
UART_CLK
图 6-18 UART 结构图
96
SWM180 系列
波特率配置
UART 模块使用前,需将控制及状态寄存器(CTRL)BIT[13]位(FLEXBAUDEN)置
1,使能波特率配置。
使能完成后,对波特率寄存器(BAUD)BIT[13:0]写入特定值,配置波特率。配置方式
如下:
配置值 = 主时钟 / (目标波特率*16 ) – 1
当写入 0 时,为最高速率,速度为模块时钟 16 分频。配置完成后,将控制及状态寄存
器(CTRL)BIT[9]位(EN)置 1,开启通道接收及发送功能。
FIFO 及中断设置
UART 模块包含深度为 8 的接收 fifo 及发送 fifo,同时提供了与 fifo 相配合的状态位中
断,供操作中使用。使用方式如下:
通过 FIFO 寄存器配置中断触发条件,并获取 fifo 内部数据数量
BIT[31:24] TXTHR 位发送 fifo 阈值设置,当 TXFIFO 中数据量小于等于设置值时,
触发中断,当配置为 0 且使能中断时,UART 使能后即触发发送中断
BIT[23:16] RXTHR 位接收 fifo 阈值设置,当 RXFIFO 中数据量大于等于设置值时,
触发中断,当配置为 0 且使能中断时,UART 使能后接收到 1 个数据值即触发接收
中断
通过控制及状态寄存器(CTRL)RXIE 位(BIT[4])及 TXIE 位(BIT[2]),使能
fifo 中断
通过查询波特率寄存器(BAUD)BIT[21:19]获取 fifo 状态
使用 fifo 阈值中断及 GPIO 输入/输出功能,可实现流控功能。
数据发送及接收
将控制及状态寄存器(CTRL)EN 位置 1 后,对应 UART 模块使能。
对于发送操作:
向 DATA 寄存器写入数据,数据发送至 UART_TX 线
通过读取 CTRL 寄存器中 TXIDLE 位,获取当前发送状态,判断上次写入 DATA
寄存器的值是否完成
可通过读取 BAUD 寄存器 TXD 位,获取当前 TX 线实时状态
可通过向 CTRL 寄存器 GENBRK 位置 1,拉低 TX 线,发送 break 信号至总线。该
位保持为 1 时,TX 将持续保持低电平,直至该位清除。发送 BREAK 信号时,向
DATA 寄存器写入数据,数据同样会执行发送操作,但数据电平不会体现到 TX 线
上,除非发送数据期间清除 CTRL 寄存器 GENBRK 位
对于接收操作:
通过判断 DATA 寄存器中 VAILD 位,判断是否接收到有效数据
97
SWM180 系列
读取 DATA 寄存器,可获得 UART_RX 线接收的数据
可通过读取 BAUD 寄存器 RXD 位,获取当前 RX 线实时状态
可通过设置 CTRL 寄存器 TOTIME 位及 TOIE 位,使能接收超时中断。使能后,
当接收相邻两个数据间隔时长超过设置时长时,将触发中断。
可通过设置 CTRL 寄存器 BRKIE 位及 BRKDET 位,使能 break 信号检测中断,使
能后,当 RX 线接收到 break 信号时,将触发中断
6.11.3 寄存器映射
BASE: 0x50010000+0x1000*n(n 为端口值)
UARTn
名称
偏移量
类型
复位值
描述
DATA
0x00
R/W
0x00
接收到的数据及发送的数据访问接口
CTRL
0x04
R/W
0x01
控制及状态寄存器
BAUD
0x08
R/W
0x00
控制 BAUDRATE 的选择,以及中断状态
等
FIFO
0x0C
R/W
0x00
FIFO 内数据量及警告标志水位设置
6.11.4 寄存器描述
数据接口寄存器 DATA
ADDR:0x50010000+0x1000*n(n 为端口值)
位域
名称
31:9
REVERSED
8
VALID
7:0
DATA
类型
复位值
描述
—
保留
RO
0
当 DATA 字段有有效的接收数据时,该位为 1
R/W
0
读操作返回缓存中接收的数据,
写操作将待发送的数据写入缓存中
—
控制及状态寄存器 CTRL
ADDR:0x50010004+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:24
TOTIME
R/W
0
接收数据超时中断的触发条件
TimeOut 时长 = TOTIME*10/BAUDRAUD 秒
23:18
REVERSED
—
—
保留
17
GENBRK
R/W
0
0:正常发送数据
1:将 UART_TX_OUT 管脚拉低
16
BRKIE
R/W
0
break 中断使能
0:禁能
1:使能
98
SWM180 系列
15
BRKDET
R/W1C
0
1:RX 数据线接收到 BREAK 信号
0:RX 数据线未接收 BREAK 信号
14
TOIE
R/W
0
超时中断使能,使能后两次接收间隔大于 TOTIME
将产生中断
0:禁能
1:使能
13
BAUDEN
R/W
0
使用 UART 前,需要将此位配置为 1
12:11
REVERSED
—
—
保留
10
LOOP
R/W
0
1:LOOP 使能
0:取消 LOOP 功能
9
EN
R/W
0
1:UART 通道开启
0:UART 通道关闭
8:6
REVERSED
—
—
保留
5
RXOV
RO
0
1:接收缓存满
0:接收缓存不满
4
RXIE
R/W
0
RXFIFO 中断使能
0:禁能
1:使能
3
RXNE
RO
0
1:接收数据缓存非空
0:接收数据缓存空
2
TXIE
R/W
0
TXFIFO 中断使能
0:禁能
1:使能
1
TXF
RO
0
1:发送数据缓存内的数据满
0:发送数据缓存内的数据不满
1
1:数据发送处于空闲状态,且发送数据缓存内没
有待发送数据
0:数据发送不空闲,或者发送数据缓存内有待发
送的数据
0
TXIDLE
RO
波特率寄存器 BAUD
ADDR:0x50010008+0x1000*n(n 为端口值)
位域
名称
31:23
REVERSED
22
RXIF
21
类型
复位值
描述
—
保留
RO
0
当 RXIE 为使能状态,接收数据缓存达到预定数量
时,该位为 1
TOIF
RO
0
当 TOIE 为使能状态,接收数据超出 TOTIME 确定
的时间时,该位为 1。
20
TXTHRF
RO
0
当发送数据缓存达到预定数量时,该位为 1,无论
中断是否使能
19
RXTHRF
RO
0
当接收数据缓存达到预定数量时,该位为 1,无论
中断是否使能
18
BRKIF
RO
0
当接收到 BREAK 字符时,如果使能 break 中断,
则该位置 1,通过 CTRL 寄存器 BRKDET 位清除
17
TXIF
RO
0
当 TXIE 为使能状态时,如果发送数据缓存内的数
据少于预定的数量时,该位为 1
—
99
SWM180 系列
16
RXTOIF
RO
0
当 RXIF 或 TOIF 为 1 时,该位为 1
15
RXD
RO
0
直接读取接收线状态
14
TXD
RO
0
直接读取发送线状态
13:0
BAUD
R/W
0
用于控制 UART 工作的波特率
设置波特率方式为:(f/(16*波特率))-1
配置 0 时为主时钟 16 分频
FIFO 寄存器
ADDR:0x5001000C+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:24
TXTHR
R/W
0
23:16
RXTHR
R/W
0
15:8
TXLVL
R/W
0
发送 FIFO 中实际数据数量
7:0
RXLVL
R/W
0
接收 FIFO 中实际数据数量
设置发送 FIFO 中断(TXIF)阈值,当发送 FIFO 内
数据数量小于设置值产生中断
设置接收 FIFO 中断(RXIF)阈值,当接收 FIFO 内
数据数量大于设置值产生中断,最大设置值为 7
100
SWM180 系列
6.12 I2C
6.12.1 特性
支持最高 1MHZ 速率主机模式
支持最高 400KHZ 速率从机模式
支持 7 位或 10 位地址
波特率可配置
支持中断功能
6.12.2 功能描述
SWM180 系列所有型号 I2C 操作均相同,不同型号 I2C 模块数量可能不同。使用前需使
能对应 I2C 模块时钟。
I2C 模块提供了 MASTER 模式及 SLAVE 模式,基本操作及配置流程如下。
基本操作
总线设置
I2C 总线采用串行数据线(SDA)和串行时钟线(SCL)传输数据。I2C 总线的设备端口为开
漏输出,所以必须在接口外接上拉电阻。
数据在主从设备之间通过 SCL 时钟信号在 SDA 数据线上逐字节同步传输。每一个 SCL
时钟脉冲发送一位数据,高位在前。每发送一个字节的数据产生一个应答信号。在时钟线
SCL 高电平期间对数据的每一位进行采样。数据线 SDA 在时钟线 SCL 为低改变,在时钟线
SCL 为高电平时必须保持稳定。
协议介绍
通常情况下,一个标准的通信包含四个部分:开始信号、从机地址、数据传输、停止信
号。如图 6-19 所示:
图 6-19 I2C 通信示意图
起始位发送
当总线空闲时,表示没有主机设备占用总线(SCL 和 SDA 都保持高电平),主机可以
通过发送一个起始信号启动传输。启动信号,通常被称为 S 位。SCL 为高电平时,SDA 由
高电平向低电平跳变。启动信号表示开始新的数据传输。
101
SWM180 系列
重新启动是没有先产生一个停止信号的启动信号。主机使用此方法与另一个从机或者在
不释放总线的情况下与相同的从机改变数据传输方向(例如从写入设备到写入设备的转换)
。
当命令寄存器的 STA 位被置位,同时 RD 或者 WR 位被置位时,系统核心产生一个启
动信号。根据 SCLK 的当前的不同状态,生成启动信号或重复启动信号。
地址发送
在开始信号后,由主机传输的第一个字节数据是从机地址。包含 7 位的从设备地址和 1
位的 RW 指示位。RW 指示位信号表示与从机的数据传输方向。在系统中的从机不可以具有
相同的地址。只有从机地址和主机发送的地址匹配时才能产生一个应答位(在第九个时钟周
期拉低 SDA)进行响应。对于 10 位从机地址,模块通过产生两个从机地址支持。
发送从机地址为一次写操作,在传输寄存器中保存从机地址并对 WR 位置位,从机地
址将被发送到总线上。
数据发送
一旦成功取得了从机地址,主机就可以通过 R/W 位控制逐字节的发送数据。每传输一
个字节都需要在第九个时钟周期产生一个应答位。
如果从机信号无效,主机可以生成一个停止信号中止数据传输或生成重复启动的信号并
开始一个新的传输周期。如果从机返回一个 NACK 信号,主机就会产生一个停止信号放弃
数据传输,或者产生一个重新启动信号开始一个新的传输周期。
如果主机作为接收设备,没有应答从机,从机就会释放 SDA,主机产生停止信号或者
重新启动信号。
向从机写入数据,需把将要发送的数据存入传输寄存器中并设置 WR 位。从从机中读
取数据,需设置 RD 位。在数据传输过程中系统核心设置 TIP 提示标志,指示传输正在进行。
当传输完成后 TIP 提示标志会自动清除。当中断使能时,中断标志位 IF 被置位,并产生中
断。当中断标志位 IF 被置位后,接收寄存器收到有效数据。当 TIP 提示标志复位后,用户
可以发出新的写入或读取命令。
停止位发送
主机可以通过生成一个停止信号终止通信。停止信号通常被称为 P 位,被定义为 SCL
为高电平时,SDA 由低电平向高电平跳变。
主机发送模式
I2C 模块作为主机,初始化配置操作如下:
配置 PORTCON 模块中端口对应 PORTx_FUMUX 寄存器,将指定引脚配置为 I2C
功能
配置 PORTCON 模块中端口对应 PORTx_SEL 寄存器,将指定引脚切换为功能复用
配置 PORTCON 模块中端口对应 PULLU_x 上拉使能寄存器,使能端口内部上拉电
阻(也可使用外部上拉电阻)
配置 PORTCON 模块中端口对应 INEN_x 输入使能寄存器,使能 I2C 数据线输入功
102
SWM180 系列
能
置 CTRL 寄存器的 EN 位为 0,关闭 I2C 模块,确保配置寄存器过程中模块未工作
配置 SLACR 寄存器的 SLAVE 位为 0,将 I2C 模块设置为主机模式
配置 CLKDIV 寄存器的 CLKDIV 位,设置 I2C 传输速度,计算公式见寄存器描述
配置 MSTCMD 寄存器的 IF 位为 1,使能 I2C 中断前确保中断标志位为清除状态
配置 CTRL 寄存器的 MSTIE 位为 1,使能 I2C 中断
配置 CTRL 寄存器的 EN 位为 1,打开 I2C 模块
I2C 作为主机向从机发送数据操作流程如下:
主机发送从机器件地址:
将从机的 7 位器件地址写入 MSTDAT 寄存器的 DATA 位,
高 7 位为器件地址,最后一位为 0
置 MSTCMD 寄存器 STA 位和 WR 位为 1,发送起始信号和写命令
发送数据:将需要往从机发送的数据写入 MSTDAT 寄存器 DATA 位,同时置
MSTCMD 寄存器 WR 位为 1。数据发送完成后,MSTCMD 寄存器的 TIP 位变为 0,
可通过查询该位确认发送完成。从机成功接收到数据,后向主机返回 ACK,主机
接收到 ACK 后,MSTCMD 寄存器的 STA 位变为 0
主机按上步骤可重复发送数据,数据发送完成后置 MSTCMD 寄存器 STO 位为 1,
则总线发送 STOP 信号,停止写入数据
流程如图 6-20 所示
103
SWM180 系列
MT
S
ACK
NAK
MCMD.RXACK=0
MCMD.RXACK=1
ACK/
NAK
MCMD.RXACK=0
MCMD.RXACK=1
I2C_DAT
(Data)
ACK
NAK
I2C_DAT
(SLV+W)
ACK
NAK
ACK/
NAK
MDAT=ADDR
WR = 1
MDAT=ADDR
STA,WR = 1,1
Sr
MDAT=ADDR
STA,WR = 1,1
P
STP = 1
P
MCMD.ARBLST=1
I2C_DAT
(SLV+W)
S
STP = 1
MDAT=ADDR
STA,WR = 1,1
ACK/
NAK
MT
MR
释放总线
Master to Slave
Slave to Master
Arbitration Lost
MT
Master Tramsmitter
图 6-20 主机发送/从机接收流程
主机接收模式
I2C 作为主机接收模式,
需将 I2C 模块设置为 MASTER,初始化过程与主发送模式相同。
I2C 作为主机从从机读取数据操作流程如下(以 EEPROM 流程为例)
:
主机发送从机器件地址:把从机的 7 位器件地址给 MSTDAT 寄存器的 DATA 位,
高 7 位为器件地址,最后一位为 0
置 MSTCMD 寄存器 STA 位和 WR 位为 1,发送起始信号和写命令
主机发送读取数据的地址:把读取数据的地址写入 MSTDAT 寄存器 DATA 位,同
时置 MSTCMD 寄存器 WR 位为 1
主机再次发送从机器件地址:将从机的 7 位器件地址写入 MSTDAT 寄存器的 DATA
位,高 7 位为器件地址,最后一位为 1
置 MSTCMD 寄存器 WR 位为 1,启动写命令,DATA 中地址数据发送至总线
读取数据:向从机发送读取命令,置 MSTCMD 寄存器 RD 位为 1。数据传输完成
104
SWM180 系列
后 MSTCMD 寄存器的 TIP 位变为 0,主机可通过读取 MSTDAT 寄存器的 DATA
位来读取从机数据
主机按上述步骤可重复读取数据,当最后一个数据读取完成时,主机要向从机返回
NACK 和停止信号,通过将 MSTCMD 寄存器 STO、ACK 和 RD 位全部置 1 可完
成该操作
流程如图 6-21 所示。
MR
S
ACK
NAK
MCMD.RXACK=0
MCMD.RXACK=1
ACK/
NAK
MDAT=ADDR
STA,WR =
1,1
MCMD.RXACK=0
MCMD.RXACK=1
I2C_DAT
(Data)
ACK
NAK
I2C_DAT
(SLV+R)
ACK
NAK
ACK/
NAK
MDAT=ADDR
WR = 1
Sr
MDAT=ADDR
STA,WR = 1,1
P
STP = 1
P
MCMD.ARBLST=1
I2C_DAT
(SLV+R)
S
STP = 1
MDAT=ADDR
STA,WR = 1,1
ACK/
NAK
MT
MR
释放总线
Master to Slave
Slave to Master
Arbitration Lost
MR
Master Receiver
图 6-21 主机接收/从机发送流程
从发送模式
I2C 作为从发送模式,需将 I2C 模块设置为 SLAVE,具体软件配置操作如下:
配置 PORTCON 模块中端口对应 PORTx_FUMUX 寄存器,将指定引脚配置为 I2C
功能
配置 PORTCON 模块中端口对应 PORTx_SEL 寄存器,将指定引脚切换为功能复用
配置 PORTCON 模块中端口对应 PULLU_x 上拉使能寄存器,使能端口内部上拉电
阻
配置 PORTCON 模块中端口对应 INEN_x 输入使能寄存器,使能 I2C 数据线输入功
能
105
SWM180 系列
置 CTRL 寄存器的 EN 位为 0,关闭 I2C 模块,确保配置寄存器过程中模块未工作
配置 SLACR 寄存器的 SLAVE 位为 1,将 I2C 模块设置为从机模式
配置 SLACR 寄存器的 ACK 位 1,设置 I2C 作为从机时接收数据后返回 ACK
配置 SLACR 寄存器的 ADDR7b 位 1,设置 I2C 地址模式为 7 位地址
配置 SLACR 寄存器的 ADDR 位,设置 I2C 的从机地址
配置 SLACR 寄存器的 IE_STADET、IE_TXEND、IE_RXEND 和 IE_STODET 位为
1,使能 I2C 从机的起始信号中断、发送完成中断、接收完成中断和停止信号中断
I2C 中断函数使能
配置 CTRL 寄存器的 EN 位为 1,打开 I2C 模块。
I2C 作为从机向主机发送数据操作流程如下:
等待 I2C 主机读取数据命令,I2C 主机读取数据过程见上述主接收模式描述,当主
机发送完从机地址和读数据地址后,从机 SLAVIF 寄存器 RXEND 位置 1 时,表示
接收完成中断触发,从机需要将第一次发出的数据写入 SLVTX 寄存器中
当从机第一次读取发送完成后,进入到发送完成中断。主机若继续读取数据,则从
机需在发送完成中断中将下次需发送的数据写入 SLVTX 寄存器中,直至所有数据
传输完成
流程图可参考图 6-21。
注意:从机在发送完成中断中写入 SLVTX 寄存器的数据将在主机下次读取时发出,从
机发送的第一笔数据需要在收到主机发送的读取地址后写入 SLVTX 寄存器
从接收模式
I2C 作为从接收模式,需将 I2C 模块设置为 SLAVE,配置过程与从发送模式相同
I2C 作为从机接收主机发送数据操作流程如下:
等待 I2C 主机向从机写入数据,I2C 主机读取数据过程见上述主发送模式描述,主
机向从机写入一字节数据后,从机的寄存器 SLVIF 的 RXEND 位置 1 时,表示接
收完成中断触发,从机通过读取 SLVTX 寄存器,接收主机发送的数据
当从机成功接收到主机传输数据后,自动向主机返回 ACK(SLACR 寄存器的 ACK
位为 1 时),主机数据传输完成后发送 STOP 信号,从机检测到后进入停止信号中
断,停止接收数据
流程图可参考图 6-20。
106
SWM180 系列
6.12.3 寄存器映射
BASE: 0x50018000+0x1000*n(n 为端口值)
I2C
名称
偏移量
类型
复位值
描述
CLKDIV
0x00
R/W
0xFFFF
分频控制寄存器。
CTRL
0x04
R/W
0
控制寄存器
MSTDAT
0x08
R/W
0
Master 数据寄存器
MSTCMD
0x0C
R/W
0
Master 命令寄存器
SLVCR
0x10
R/W
0
Slave 控制寄存器
SLVIF
0x14
R/W1C
0
Slave 状态寄存器
SLVTX
0x18
R/W
0
Slave 发送数据缓存寄存器
SLVRX
0x1c
R/W
0
Slave 接收数据缓存寄存器
6.12.4 寄存器描述
分频控制寄存器 CLKDIV
ADDR: 0x50018000+0x1000*n(n 为端口值)
位域
名称
31:16
REVERSED
15:0
CLKDIV
类型
—
R/W
复位值
描述
—
保留
0xFFFF
分频控制寄存器
需将内部工作频率设置为 SCL 频率的 5 倍,此寄存
器修改必须在 EN 为 0 的时候才能进行
例如:
主时钟频率为 32MHz,SCL 频率为 100KHz,则需要
设置 CLKDIV = 32*1000/5*100-1 = 0x3F
控制寄存器 CTRL
ADDR: 0x50018004+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
EN
R/W
0
6
MSTIE
R/W
0
5:0
REVERSED
—
—
模块使能
1:使能
0:禁能
中断使能
1:使能中断
0:禁能中断
保留
107
SWM180 系列
数据寄存器 MSTDAT
ADDR: 0x50018008+0x1000*n(n 为端口值)
位域
名称
31:8
REVERSED
RDATA
类型
复位值
描述
—
—
保留
RO
0
从 I2C 总线上接收的最后一个字节
—
BIT [7:1] : 发送到 I2C 总线上的下一个数据
BIT [0] : 在数据传输过程中,为数据最低位
在地址传输过程中,为 R/W 指示位
1 表示从 slave 读数据
0 表示向 slave 写数据
7:0
WDATA
WO
命令寄存器 MSTCMD
ADDR: 0x5001800C+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
ACK
RO
0
接收到从设备发送的 ACK 位:
0:收到 ACK
1:收到 NACK
STA
WO
—
产生 START,自动清零
BUSY
RO
0
当检测到 START 之后,这一位变 1
当检测到 STOP 之后,这一位变 0
STO
WO
—
产生 STOP,自动清零
RD
RO
0
当 I2C 模块失去总线的访问权时硬件置 1
ARB
WO
—
需从 Slave 读数据时,将该位置 1,自动清零
4
WR
WO
0
向 Slave 写数据时,向该位写 1,自动清零
3
ACK
R/W
0
接收模式下:
0:向总线反馈 ACK
1:向总线反馈 NACK
2
REVERSED
—
—
保留
1
TIP
R/W
0
1:传输正在进行中
0:传输已经结束
0
当该位为 1 时,表示中断等待处理,写 1 清零
有两种情况下此位硬件置位:
1.一个字节传输完成
2.总线访问权丢失
7
6
5
0
IF
R/
W1C
108
SWM180 系列
Slave 控制寄存器 SLVCR
ADDR: 0x50018010+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:30
REVERSED
—
—
保留
29:20
ADDR
R/W
0
从机地址
19
DEBOUNCE
R/W
0
去抖动使能
18
SLAVE
R/W
0
0: 主机模式
1: 从机模式
17
ACK
R/W
0
0:
1:
应答 NACK
应答 ACK
16
ADDR7b
R/W
0
0:
1:
10 位地址模式
7 位地址模式
15:6
REVERSED
—
—
保留
5
IE_WRREQ
R/W
0
接收到写请求中断使能
4
IE_RDREQ
R/W
0
接收到读请求中断使能
3
IE_STODET
R/W
0
检测到停止中断使能
2
IE_STADET
R/W
0
检测到起始中断使能
1
IE_TXEND
R/W
0
发送完成中断使能
0
IE_RXEND
R/W
0
接收完成中断使能
Slave 状态寄存器 SLVIF
ADDR: 0x50018014+0x1000*n(n 为端口值)
位域
名称
类型
复位值
描述
31:7
REVERSED
—
—
保留
6
ACTIVE
R/W
0
slave 有效
5
WRREQ
RO
0
写请求中断标志
4
RDREQ
RO
0
读请求中断标志
3
STODET
R/
W1C
0
检测到停止中断标志
写 1 清零
109
SWM180 系列
2
STADET
R/
W1C
0
检测到起始中断标志
写 1 清零
1
TXEND
R/
W1C
0
发送完成中断标志
写 1 清零
0
RXEND
R/
W1C
0
接收完成中断标志
写 1 清零
Slave 发送数据缓存寄存器 SLVTX
ADDR: 0x50018018+0x1000*n(n 为端口值)
位域
名称
31:8
REVERSED
7:0
SLVTX
类型
复位值
描述
—
—
保留
R/W
0
发送数据缓存寄存器
Slave 接收数据缓存寄存器 SLVRX
ADDR: 0x5001801C+0x1000*n(n 为端口值)
位域
名称
31:8
REVERSED
7:0
SLVRX
类型
复位值
描述
—
—
保留
R/W
0
接收数据缓存寄存器
110
SWM180 系列
6.13 SPI
6.13.1 特性
全双工串行同步收发
可编程时钟极性和相位
支持 SPI 模式及 SSI 模式
支持 MASTER 模式和 SLAVE 模式
最高传输速度支持模块时钟 4 分频
数据宽度支持 4BIT 至 16BIT
具备深度为 8 的接收和发送 FIFO
6.13.2 功能描述
SWM180 系列所有型号 SPI 模块操作均相同,不同型号 SPI 模块数量可能不同。使用前
需使能对应 SPI 模块时钟。
SPI 模块支持 SPI 模式及 SSI 模式。SPI 模式下支持 MASTER 模式及 SLAVE 模式。具
备深度为 8 的 FIFO,速率及帧宽度可灵活配置。其结构图如图 6-22 所示。
SCK
ck_generate
MOSI
APB
BUS
apb_reg
shift register
Control
logic
MISO
txfifo
rxfifo
图 6-22 SPI 结构示意图
位速率的产生
SPI 模块包含一个可编程的位速率时钟分频器来生成串行输出时钟。串行位速率通过设
置控制寄存器(CTRL)CLKDIV 位域对输入时钟进行分频来获得。分频值的范围为 4~512
分频值。计算公式如下 Fsclk_out = FHCLK/SCKDIV。
作为主设备时,SPI_CLK 最高支持模块输入时钟 4 分频,即当时钟为 48MHZ 时,最高
可支持输出 12MHZ 时钟。
111
SWM180 系列
作为从设备时,SPI_CLK 最高支持模块输入时钟 6 分频,即当时钟为 48MHz 时,最高
支持输入 8MHz 时钟。
帧宽度
使能 SPI 模块前,可通过设置控制寄存器(CTRL)DSS 选择数据帧长度,支持 4~16
位,并且从最高有效位(MSB)开始发送。设置该寄存器位时,需保证 SPI 处于关闭状态。
SPI 模式
使能 SPI 模块前,可通过设置控制寄存器(CTRL)中 FFS 位域选择输出模式,当该位
配置为 0 时,选择为 SPI 模式。此时,可通过控制寄存器(CTRL)中 CPOL 和 CPHA 配置
SPI 模块时钟空闲状态极性与数据采样时间点。
当 CPOL=0,CPHA=0 时,时钟空闲状态为低电平,起始采样点为时钟上升沿。输出波
形如下:
图 6-23 CPOL=0,CPHA=0 输出波形
当 CPOL=0,CPHA=1 时,时钟空闲状态为低电平,起始采样点为时钟下降沿。输出波
形如下:
图 6-24 CPOL=0,CPHA=1 输出波形
当 CPOL=1,CPHA=0 时,时钟空闲状态为高电平,起始采样点为时钟下降沿。输出波
形如下:
图 6-25 CPOL=1,CPHA=0 输出波形
112
SWM180 系列
当 CPOL=1,CPHA=1 时,时钟空闲状态为高电平,起始采样点为时钟上升沿。输出波
形如下:
图 6-26 CPOL=1,CPHA=1 输出波形
所有模式下,片选线均为发送一个数据后自动拉高,第二个数据再次拉低,因此当需要
使用连续片选时,需使用 GPIO 模拟片选线。
SSI 模式
可通过设置控制寄存器(CTRL)中 FFS 位域选择输出模式,当该位配置为 1 时,选择
为 SSI 模式。单次输出波形如下:
图 6-27 模式单次输出波形
连续输出波形如下
图 6-28 SSI 模式连续输出波形
主设备操作
当 SPI 模块作为主模块工作时,操作流程如下:
通过 CTRL 寄存器 CLKDIV [2:0]位定义串行时钟波特率
设置 CTRL 寄存器 DSS 位来选择数据位数
选择 CTRL 寄存器 CPOL 和 CPHA 位,定义数据传输和串行时钟间的相位关系。
主、从设备的 CPOL 和 CPHA 位必须一致
配置 CTRL 寄存器 FFS 位定义数据帧格式,主、从设备的数据帧格式必须一致。
113
SWM180 系列
设置 CTRL 寄存器 MSTR 位为 1
使能 CTRL 寄存器 EN 位
在配置中,MOSI 引脚是数据输出,而 MISO 引脚是数据输入。
注意:当选择硬件提供的 CS 引脚作为从设备片选使能时,每传输一个字节的数据,CS
引脚均会变高。因此,当从设备需要连续拉低的片选信号时,需要使用 GPIO 模拟 CS 信号。
从设备操作
在从模式下,SCK 引脚用于接收从主设备来的串行时钟。对 CTRL 寄存器中 CLKDIV
[2:0]的设置不影响数据传输速率。
操作流程:
1)
设置 CTRL 寄存器 DSS 位来定义数据位数选择。
2)
选择 CTRL 寄存器 CPOL 和 CPHA 位,与主设备一致。
3)
配置 CTRL 寄存器 FFS 位定义数据帧格式。
4)
设置 CTRL 寄存器 MSTR 位为 0
在从设备配置中,MOSI 引脚是数据输入,MISO 引脚是数据输出。
FIFO 操作
发送 FIFO:通用发送 FIFO 是一个 16 位宽、8 单元深、先进先出的存储缓冲区。通过
写数据 (DATA)寄存器来将数据写入发送 FIFO,数据在由发送逻辑读出之前一直保存在发
送 FIFO 中。并行数据在进行串行转换并通过 MOSI 管脚分别发送到相关的从机之前先写入
发送 FIFO。
接收 FIFO:通用接收 FIFO 是一个 16 位宽、8 单元深、先进先出的存储缓冲区。从串
行接口接收到的数据在读出之前一直保存在缓冲区中,通过读 DATA 寄存器来访问读 FIFO。
从 MISO 管脚接收到的串行数据在分别并行加载到相关的主机接收 FIFO 之前先进行记录。
可通过中断使能寄存器 IE、中断状态寄存器 IF、状态寄存器 STAT 对 FIFO 状态及中断
进行查询与控制。
6.13.3 寄存器映射
BASE: 0x5001C000+0x1000*n(n 为端口值)
SPI
名称
偏移量
类型
复位值
CTRL
0x00
R/W
0x170
SPI 控制寄存器
DATA
0x04
R/W
0
SPI 数据寄存器
STAT
0x08
R/W
0x6
SPI 状态寄存器
IE
0x0C
R/W
0
SPI 中断使能寄存器
IF
0x10
R/W
0
SPI 中断状态寄存器
114
描述
SWM180 系列
6.13.4 寄存器描述
控制寄存器 CTRL
ADDR: 0x5001C000+0x1000*n(n 为端口值)
位域
名称
类型
31:13
REVERSED
12
MSTR
R/W
1
11:10
FFS
R/W
0
9
CPOL
R/W
0
8
CPHA
R/W
1
7:4
DSS
R/W
0x7
3
EN
RW
0x0
2:0
CLKDIV
RW
0x2
—
复位值
描述
—
保留
主从模式选择
1 = SPI 系统配置为主器件模式
0 = SPI 系统配置为从器件模式
数据帧格式选择
00:SPI 模式
01:SSI 模式
1x:保留
时钟极性选择
0 = 串行时钟空闲状态为低电平,有效电平为高电
平
1 = 串行时钟空闲状态为高电平,有效电平为低电
平
时钟相位选择
0 = 在串行时钟的第一个跳变沿采样数据
1 = 在串行时钟的第二个跳变沿采样数据
数据位数选择
0000:保留
0001:保留
0010:保留
0011:4bit 数据
0100:5bit 数据
0101:6bit 数据
0110:7bit 数据
0111:8bit 数据
1000:9bit 数据
1001:10bit 数据
1010:11bit 数据
1011:12bit 数据
1100:13bit 数据
1101:14bit 数据
1110:15bit 数据
1111:16bit 数据
SPI 使能位
0:关闭
1:开启
波特率选择
000:主时钟 4 分频
001:主时钟 8 分频
010:主时钟 16 分频
011:主时钟 32 分频
100:主时钟 64 分频
101:主时钟 128 分频
110:主时钟 256 分频
111:主时钟 512 分频
数据寄存器 DATA
ADDR: 0x5001C004+0x1000*n(n 为端口值)
115
SWM180 系列
位域
名称
31:16
REVERSED
15:0
DATA
类型
—
RW
复位值
描述
—
保留
0x0
SPI 接收/发送数据寄存器
读操作从接收 FIFO 中读出接收到的数据
写操作将数据写入发送 FIFO 中
状态寄存器 STAT
ADDR: 0x5001C008+0x1000*n(n 为端口值)
位域
名称
31:12
REVERSED
类型
—
复位值
描述
—
保留
11:9
RFLVL
RO
0
8:6
TFLVL
RO
0
5
RFOVF
RW
0
4
RFF
RO
0
3
RFNE
RO
0
2
TFNF
RO
1
1
TFE
RO
1
0
TC
RW
0
接收 FIFO 数据深度位标志
000:RFF 为 1 时,表示 FIFO 内有 8 组数据;RFF 为
0 时,表示 FIFO 内没有数据;
001:表示 FIFO 内有 1 组数据;
010:表示 FIFO 内有 2 组数据;
011:表示 FIFO 内有 3 组数据;
100:表示 FIFO 内有 4 组数据;
101:表示 FIFO 内有 5 组数据;
110:表示 FIFO 内有 6 组数据;
111:表示 FIFO 内有 7 组数据;
发送 FIFO 数据深度位标志
000:TFNF 为 0 时,表示 FIFO 内有 8 组数据;TFNF
为 1 时,表示 FIFO 内没有数据;
001:表示 FIFO 内有 1 组数据;
010:表示 FIFO 内有 2 组数据;
011:表示 FIFO 内有 3 组数据;
100:表示 FIFO 内有 4 组数据;
101:表示 FIFO 内有 5 组数据;
110:表示 FIFO 内有 6 组数据;
111:表示 FIFO 内有 7 组数据;
接收 FIFO 溢出标志,软件清零,写清零
0:没溢出
1:溢出
接收 FIFO 满标志
0:非满
1:满
接收 FIFO 非空标志
0:空
1:非空
发送 FIFO 非满标志
0:满
1:非满
发送 FIFO 空标志
0:非空
1:空
SPI 传输结束标志
每次数据帧传输结束后,该标志会被置位。
软件清零,写 1 清零。
中断使能寄存器 IE
ADDR: 0x5001C00C+0x1000*n(n 为端口值)
116
SWM180 系列
位域
名称
类型
复位值
描述
31:5
REVERSED
—
—
保留
4
TFHF
RW
0x0
发送 FIFO 半满
3
TFE
RW
0x0
发送 FIFO 空中断使能
2
RFHF
RW
0x0
接收 FIFO 半满
1
RFF
RW
0x0
接收 FIFO 满中断使能
0
RFOVF
RW
0x0
接收 FIFO 溢出中断使能
中断状态寄存器 IF
ADDR: 0x5001C010+0x1000*n(n 为端口值)
位域
名称
31:5
REVERSED
4
TFHF
3
TFE
2
RFHF
1
RFF
0
RFOVF
类型
—
R/
W1C
R/
W1C
R/
W1C
R/
W1C
R/
W1C
复位值
描述
—
保留
0x0
发送 FIFO 半满
写 1 清中断状态
0x0
发送 FIFO 空中断使能
写 1 清中断状态
0x0
接收 FIFO 半满
写 1 清中断状态
0x0
接收 FIFO 满中断使能
写 1 清中断状态
0x0
接收 FIFO 溢出中断状态
写 1 清中断状态
117
SWM180 系列
6.14 PWM
6.14.1 特性
4 组 16 位宽 PWM 控制,最多可产生 8 路 PWM 信号
支持互补、中心对称、单步模式
提供高电平起始中断及周期结束中断
支持硬件死区设置
可选择初始输出电平选择
支持刹车功能
支持硬件自动触发 ADC 采样
6.14.2 功能描述
SWM180 系列所有型号 PWM 操作均相同。使用前需使能 PWM 模块时钟。
PWM 模块提供了 8 路(4 组)输出,支持独立、互补、中心对称等模式,支持死区生
成及初始电平配置。
初始电平配置与时钟分频
通过配置 BCTRLx 寄存器,可配置各路 PWM 初始电平。ENABLE 寄存器 EN 位使能
后,对应通道起始输出电平即为该寄存器对应通道配置电平。如图 6-29 所示。
Initial State PWM Starts
CYCLE
PWM_A
PWM Starts Initial State
Hduty
InitLevelA = 1
Hduty
PWM_A
InitLevelA = 0
Initial State:模块EN=0时引脚电平状态
PWM Starts:模块EN=1时引脚电平状态
InitLevel:初始电平配置
图 6-29 独立模式下初始电平配置示意图
互补模式时,EN 使能前,初始电平配置有效,使能后,该寄存器配置对 B 路输出电平
无效。示意图如图 K-2 所示。
118
SWM180 系列
通过 CLKDIV 寄存器,可进行 PWM 计数时钟周期配置,支持计数周期最多为 PWM 模块时钟
周期的 128 倍。
注意:分频寄存器需要在初始电平设置完成后进行配置。
PWM 模块建议按照如下顺序配置
配置初始电平
配置周期及中断相关寄存器
初始化时钟分频
引脚功能切换
PWM 使能
PWM Starts Initial State
Initial State PWM Starts
CYCLE
PWM_A
Hduty
InitLevelA = 1
InitLevelB = 1
PWM_B
CYCLE
PWM_A
Hduty
InitLevelA = 0
InitLevelB = 1
PWM_B
CYCLE
PWM_A
Hduty
InitLevelA = 1
InitLevelB = 0
PWM_B
CYCLE
PWM_A
Hduty
PWM_B
Initial State:模块EN=0引脚电平状态
PWM Starts:模块EN=1引脚电平状态
InitLevel:初始电平
阴影部分:死区周期
图 6-30 互补模式下初始电平设置示意图
119
InitLevelA = 0
InitLevelB = 0
SWM180 系列
模式选择
通过配置 MODEx 寄存器,配置 PWM 输出模式,包括独立/互补/中心对称/单步模式。
普通模式下,每一路 PWM 独立配置,彼此间相互无影响,起始输出电平根据 BCTRLx
寄存器配置而定,可选择高电平或低电平,波形如下图所示。
PWM_CH0A
PWM_CH0B
图 6-31 PWM 普通模式波形示意图
互补模式下,同组 A 路及 B 路输出为一组,B 路输出为 A 路输出的反向,并可配置死
区发生器,波形如下图所示。
PWM_CH0A
PWM_CH0B
图 6-32 未开启死区的互补模式
死区效果为将上升沿推后指定周期,通过 DZAx 及 DZBx 寄存器进行配置,配置值不
可大于高电平值。死区示意图如下图所示。
PWM_CH0A
without Dead-Time
PWM_CH0B
without Dead-Time
PWM_CH0A
with Dead-Time
PWM_CH0B
with Dead-Time
Dead-Time interval
图 6-33 开启死区的互补模式
中心对称模式下,周期数为一个对称单元,周期长度寄存器(PERAx 及 PERBx)设置
120
SWM180 系列
长度为所需周期长度的一半(cycle/2),高电平长度寄存器(HIGHAx 及 HIGHBx)设置长
度同样为所需长度一半(high_cycle/2)
。波形如下图所示。
图 6-34 中心对称模式
中心对称互补模式下,B 路输出为 A 路输出反向,同时可配置死区寄存器(DZAx 及
DZBx)
,产生死区,如下图所示。
图 6-35 中心对称互补模式
单步模式下,PWM 波形与普通模式相同,但输出周期个数为 1。输出 1 个周期后,自
动停止 PWM 通道。
触发 SAR ADC 采样
使用 PWM 触发时,需将 PWM 配置为中心对称互补模式。将 SAR ADC 配置寄存器
(CTRL)中 TRIG(BIT[15:14])设置为 01。每路 PWM 对应一个 VALUE 寄存器值,当 PWM
计数到指定值,可触发 ADC 进行采样。当 8 路 PWM 工作在中心对称互补模式下时,最多
可触发 8 次 ADC 采样。具体配置方式如下(以 ADTRG0A 为例):
配置 EVEN 位,确认为前半周期或后半周期触发(前半周期与后半周期以中心点
为界)
配置 VALUE 位数值,该数值为触发延时时长,前半周期从周期起始记,后半周期
从中心点记
置 EN 位为 1,使能 0_A 通道触发功能
使能 PWM 模块 EN 位,当计数值到达 VALUE 设置值时,触发 ADC 配置寄存器
(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生 EOC 标志位,并
产生 ADC 中断
示意图如下图所示,其中 A 路位前半周期触发,B 路为后半周期触发。
121
SWM180 系列
图 6-36 PWM 触发 ADC 采样示意图
中断
PWM 模块提供了高电平结束中断与周期起始中断,每一路均可单独进行使能、屏蔽及
查询操作。通过 IE 寄存器、IF 寄存器、IMASK 寄存器、IRAWST 寄存器进行操作。IRAWST
寄存器只受 EN 寄存器影响,当 IMASK 寄存器使能后,IF 寄存器对应位将被屏蔽。不同模
式下工作方式如下:
所有模式下,均通过对 IRAWST 寄存器写 1 清除对应中断
对于独立模式,每路均可单独产生这两种中断
对于中心对称模式,周期起始中断只在前半周期产生,中心点不产生,高电平结束
中断根据波形产生
对于中心对称互补模式,A 路与 B 路周期起始中断同时产生,高电平结束中断可
根据波形分别产生
注意:在中心对称模式下,当占空比为 100%时,需要在该周期内将高电平结束中断关
闭
刹车与暂停功能
PWM 发生器模块支持外部信号输入与内部软件操作对输出进行暂停。
软件可以通过配置 FORCEH 寄存器,使对应 PWM 通道引脚输出为 1。此时,PWM 模
块计数依然继续进行,当禁能该寄存器对应位时,PWM 可继续输出。波形如下图所示。
122
SWM180 系列
PWMMSK
0x0
0x1(CH0/1)
0x4(CH4/5)
0x2(CH2/3)
0x8(CH6/7)
0x0
CH0
CH1
CH2
CH3
CH4
CH5
CH6
CH7
图 6-37 输出屏蔽功能示意图
外部信号可通过 PWM_BREAK 引脚输入指定电平对 PWM 模块进行刹车操作,使用前
配置如下:
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能
通过 PORT_SEL 寄存器将引脚切换为数字功能
通过 FUNMUX 寄存器将引脚配置为 PWM_BREAK 功能
对 HALT 寄存器进行设置,配置刹车输入有效电平、刹车过程中输出电平、刹车
后 PWM 是否继续计数、该功能影响的通道
配置 HALT 寄存器 BIT[0]进行使能。使能后,当外部输入指定电平时,对应通道
执行刹车功能
刹车电平恢复后,将根据 HALT 寄存器配置决定 PWM 波形是否继续输出
6.14.3 寄存器映射
PWM
BASE:0x5000A000
名称
偏移量
类型
复位值
描述
MODE0
0x00
R/W
0
第 0 组 PWM 的工作模式控制
PERA0
0x04
R/W
0
HIGHA0
0x08
R/W
0
DZA0
0x0C
R/W
0
PERB0
0x10
R/W
0
HIGHB0
0x14
R/W
0
DZB0
0x18
R/W
0
123
第 0 组 A 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 0 组 A 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 0 组 A 路死区长度控制。必须小于
HIGHA0
第 0 组 B 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 0 组 B 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 0 组 B 路死区长度控制。
SWM180 系列
INIOUT0
0x1C
R/W
0
第 0 组 PWM 输出起始值控制
MODE1
0x20
R/W
0
第 1 组 PWM 的工作模式控制
PERA1
0x24
R/W
0
HIGHA1
0x28
R/W
0
DZA1
0x2C
R/W
0
PERB1
0x30
R/W
0
HIGHB1
0x34
R/W
0
DZB1
0x38
R/W
0
第 1 组 B 路死区长度控制。
INIOUT1
0x3C
R/W
0
第 1 组 PWM 输出起始值控制
MODE2
0x40
R/W
0
第 2 组 PWM 的工作模式控制
PERA2
0x44
R/W
0
HIGHA2
0x48
R/W
0
DZA2
0x4C
R/W
0
PERB2
0x50
R/W
0
HIGHB2
0x54
R/W
0
DZB2
0x58
R/W
0
第 2 组 B 路死区长度控制。
INIOUT2
0x5C
R/W
0
第 2 组 PWM 输出起始值控制
MODE3
0x60
R/W
0
第 3 组 PWM 的工作模式控制
PERA3
0x64
R/W
0
HIGHA3
0x68
R/W
0
DZA3
0x6C
R/W
0
PERB3
0x70
R/W
0
HIGHB3
0x74
R/W
0
124
第 1 组 A 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 1 组 A 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 1 组 A 路死区长度控制。必须小于
HIGHA1
第 1 组 B 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 1 组 B 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 2 组 A 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 2 组 A 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 2 组 A 路死区长度控制。必须小于
HIGHA2
第 2 组 B 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 2 组 B 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 3 组 A 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 3 组 A 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
第 3 组 A 路死区长度控制。必须小于
HIGHA3
第 3 组 B 路 PWM 的计数周期,最小为
1,对应一个计数时钟周期
第 3 组 B 路 PWM 的高电平持续周期,
最小为 0,对应一直输出低电平
SWM180 系列
DZB3
0x78
R/W
0
第 3 组 B 路死区长度控制。
INIOUT3
0x7C
R/W
0
第 3 组 PWM 输出起始值控制
CLKDIV
0x170
R/W
0
PWM 输出分频寄存器
INIOUT
0x180
R/W
0
将相应组的 PWM 输出置为 1
ADTRG0A
0x184
R/W
0
组 0 的 trigger 控制寄存器 A
ADTRG0B
0x188
R/W
0
组 0 的 trigger 控制寄存器 B
ADTRG0A
0x18C
R/W
0
组 1 的 trigger 控制寄存器 A
ADTRG1B
0x190
R/W
0
组 1 的 trigger 控制寄存器 B
ADTRG2A
0x194
R/W
0
组 2 的 trigger 控制寄存器 A
ADTRG2B
0x198
R/W
0
组 2 的 trigger 控制寄存器 B
ADTRG3A
0x19C
R/W
0
组 3 的 trigger 控制寄存器 A
ADTRG3B
0x1A0
R/W
0
组 3 的 trigger 控制寄存器 B
HALT
0x1C0
R/W
0
刹车控制寄存器
CHEN
0x1C4
R/W
0
PWM 使能
IE
0x1C8
R/W
0
中断使能寄存器
IF
0x1CC
RO
0
中断状态
IMASK
0x1D0
R/W
0
中断屏蔽寄存器
IRAWST
0x1D4
R/W1C
0
中断原始状态
6.14.4 寄存器描述
PWM 工作模式寄存器 MODEx(x=0,1,2,3)
ADDR: 0x5000A000+0x20*x(x 为端口值)
位域
名称
31:3
REVERSED
2:0
MODEx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 PWM 的工作模式控制
00:普通模式,每一组 PWM 中的 A、B 两路互相独
立。
01:互补模式,每一组中的 A、B 两路互补,由死区
长度寄存器控制推迟上升沿
11:对称模式,每一组中的 A、B 两路互相独立,两
个计数周期为一个对称单元
10:单步模式,和普通模式相似,区别在于一个计
数周期后自动停止
100:对称互补模式,综合对称模式及互补模式
125
SWM180 系列
PWM_A 路计数周期 PERAx(x=0,1,2,3)
ADDR: 0x5000A0040x20*x(x 为端口值)
位域
名称
31:16
REVERSED
15:0
PERAx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 A 路 PWM 的计数周期,最小为 1,对应一个
计数时钟周期
PWM_A 路高电平持续时长 HIGHAx(x=0,1,2,3)
ADDR: 0x5000A008+0x20*x(x 为端口值)
位域
名称
31:16
REVERSED
15:0
HIGHAx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 A 路 PWM 的高电平持续周期。最小为 0,对
应一直输出低电平
PWM_A 路死区长度 DZAx(x=0,1,2,3)
ADDR: 0x5000A00C+0x20*x(x 为端口值)
位域
名称
31:6
REVERSED
5:0
DZAx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 A 路死区长度控制。必须小于 HIGHAx
PWM_B 路计数周期 PERBx(x=0,1,2,3)
ADDR: 0x5000A010+0x20*x(x 为端口值)
位域
名称
31:16
REVERSED
15:0
PERBx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 B 路 PWM 的计数周期,最小为 1,对应一个
计数时钟周期
PWM_B 路高电平持续时长 HIGHBx(x=0,1,2,3)
ADDR: 0x5000A014+0x20*x(x 为端口值)
位域
名称
31:16
REVERSED
15:0
HIGHBx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 B 路 PWM 的高电平持续周期。最小为 0,对
应一直输出低电平
PWM_B 路死区长度 DZBx(x=0,1,2,3)
ADDR: 0x5000A018+0x20*x(x 为端口值)
126
SWM180 系列
位域
名称
31:6
REVERSED
5:0
DZBx
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 B 路死区长度控制。必须小于 HIGHBx
PWM 输出起始值控制 INIOUTx(x=0,1,2,3)
ADDR: 0x5000A01C+0x20*x(x 为端口值)
位域
名称
31:2
REVERSED
1
PWMBx
0
PWMAx
类型
复位值
描述
—
保留
R/W
0
1:第 x 组 B 路输出从高电平开始,空闲时低电平
0:第 x 组 B 路输出从低电平开始,空闲时高电平
R/W
0
1:第 x 组 A 路输出从高电平开始,空闲时低电平
0:第 x 组 A 路输出从低电平开始,空闲时高电平
类型
复位值
描述
—
CLKDIV
ADDR: 0x5000A170
位域
名称
31:4
REVERSED
—
—
保留
2:0
PWM_DIV
RW
0x0
PWM 计数时钟频率选择:
000:系统时钟 1 分频
001:系统时钟 2 分频
010:系统时钟 4 分频
011:系统时钟 8 分频
100:系统时钟 16 分频
101:系统时钟 32 分频
110:系统时钟 64 分频
111:系统时钟 128 分频
FORCEH
ADDR: 0x5000A180
位域
名称
类型
31:4
REVERSED
3
PWM3
R/W
0
2
PWM2
R/W
0
1:第 2 组输出强制为高电平
0:第 2 组输出正常
1
PWM1
R/W
0
1:第 1 组输出强制为高电平
0:第 1 组输出正常
—
复位值
描述
—
保留
1:第 3 组输出强制为高电平
0:第 3 组输出正常
127
SWM180 系列
0
PWM0
R/W
0
1:第 0 组输出强制为高电平
0:第 0 组输出正常
PWM_A 路触发 ADC 控制 ADTRGxA (x=0,1,2,3)
ADDR: 0x5000A184+0x20*x(x 为端口值)
位域
名称
31:18
REVERSED
17
EN
类型
—
R/W
复位值
描述
—
保留
0
第 x 组 trigger 控制寄存器 A 是否有效
1:有效
0:无效
16
EVEN
R/W
0
15:0
VALUE
R/W
0
第 x 组 trigger 控制寄存器 A 发生在单周期还是双周
期
1:后半周期生效
0:前半周期生效
在对称互补模式下,PWM 触发 ADC 采样的周期条
件
例如:设置为后半周期生效且 EN 为 1,则中心点后,
当对应 PWM 计数器的值和 TRIGGER 值相等时,输
出 ADC 触发脉冲
PWM_B 路触发 ADC 控制 ADTRGxB(x=0,1,2,3)
ADDR: 0x5000A188+0x20*x(x 为端口值)
位域
名称
类型
31:18
REVERSED
17
EN
R/W
0
16
EVEN
R/W
0
15:0
VALUE
R/W
0
—
复位值
描述
—
保留
第 x 组 trigger 控制寄存器 B 是否有效
1:有效
0:无效
第 x 组 trigger 控制寄存器 B 发生在单周期还是双周
期
1:后半周期生效
0:前半周期生效
在对称互补模式下,PWM 触发 ADC 采样的周期条
件
例如:设置为后半周期生效且 EN 为 1,则中心点后,
当对应 PWM 计数器的值和 TRIGGER 值相等时,输
出 ADC 触发脉冲
PWM 刹车控制寄存器 HALT
ADDR: 0x5000A1C0+0x20*x(x 为端口值)
位域
名称
31:11
REVERSED
10
STAT
9
VALIDO
类型
复位值
描述
—
保留
R/W
0
当前刹车的状态
1:正在刹车
0:没有刹车
R/W
0
1:刹车过程中输出高电平
0:刹车过程中输出低电平
—
128
SWM180 系列
8
VALIDI
R/W
0
1:刹车输入高电平有效
0:刹车输入低电平有效
7
STOPCNT
R/W
0
1:刹车时将 PWM 计数器清零,停止计数
0:刹车时,PWM 计数器继续计数
6:5
REVERSED
—
保留
4:1
PWMx
R/W
0
1:刹车影响该组 PWM
0:刹车不影响该组 PWM
第 4 位对应第 3 组,第 1 位对应第 0 组,以此类推
0
EN
R/W
0
1:刹车功能生效
0:屏蔽刹车功能
复位值
描述
—
保留
—
PWM 使能控制寄存器 CHEN
ADDR: 0x5000A1C4
位域
名称
类型
31:8
REVERSED
7
PWM3B
R/W
0
6
PWM3A
R/W
0
5
PWM2B
R/W
0
4
PWM2A
R/W
0
3
PWM1B
R/W
0
2
PWM1A
R/W
0
1
PWM0B
R/W
0
0
PWM0A
R/W
0
—
第 3 组 B 路 PWM 使能
1:使能
0:禁能
第 3 组 A 路 PWM 使能
1:使能
0:禁能
第 2 组 B 路 PWM 使能
1:使能
0:禁能
第 2 组 A 路 PWM 使能
1:使能
0:禁能
第 1 组 B 路 PWM 使能
1:使能
0:禁能
第 1 组 A 路 PWM 使能
1:使能
0:禁能
第 0 组 B 路 PWM 使能
1:使能
0:禁能
第 0 组 A 路 PWM 使能
1:使能
0:禁能
PWM 中断使能寄存器 IE
ADDR: 0x5000A1C8
位域
名称
31:25
REVERSED
24
HALT
类型
—
R/W
复位值
描述
—
保留
0
刹车中断使能
1:使能
0:禁能
129
SWM180 系列
23:20
REVERSED
—
19
HEND3B
18
HEND3A
17
HEND2B
R/W
0
16
HEND2A
R/W
0
15
HEND1B
R/W
0
14
HEND1A
R/W
0
13
HEND0B
R/W
0
12
HEND0A
R/W
0
11:8
REVERSED
7
NEWP3B
R/W
0
6
NEWP3A
R/W
0
5
NEWP2B
R/W
0
4
NEWP2A
R/W
0
3
NEWP1B
R/W
0
2
NEWP1A
R/W
0
1
NEWP0B
R/W
0
0
NEWP0A
R/W
0
—
—
—
保留
第 3 组 B 路高电平结束中断使能
1:使能
0:禁能
第 3 组 A 路高电平结束中断使能
1:使能
0:禁能
第 2 组 B 路高电平结束中断使能
1:使能
0:禁能
第 2 组 A 路高电平结束中断使能
1:使能
0:禁能
第 1 组 B 路高电平结束中断使能
1:使能
0:禁能
第 1 组 A 路高电平结束中断使能
1:使能
0:禁能
第 0 组 B 路高电平结束中断使能
1:使能
0:禁能
第 0 组 A 路高电平结束中断使能
1:使能
0:禁能
保留
第 3 组 B 路新周期中断使能
1:使能
0:禁能
第 3 组 A 路新周期中断使能
1:使能
0:禁能
第 2 组 B 路新周期中断使能
1:使能
0:禁能
第 2 组 A 路新周期中断使能
1:使能
0:禁能
第 1 组 B 路新周期中断使能
1:使能
0:禁能
第 1 组 A 路新周期中断使能
1:使能
0:禁能
第 0 组 B 路新周期中断使能
1:使能
0:禁能
第 0 组 A 路新周期中断使能
1:使能
0:禁能
PWM 中断状态寄存器 IF
ADDR: 0x5000A1CC
130
SWM180 系列
位域
名称
31:25
REVERSED
24
HALT
23:20
REVERSED
19
HEND3B
R/W
0
18
HEND3A
R/W
0
17
HEND2B
R/W
0
16
HEND2A
R/W
0
15
HEND1B
R/W
0
14
HEND1A
R/W
0
13
HEND0B
R/W
0
12
HEND0A
R/W
0
11:8
REVERSED
7
6
NEWP3B
NEWP3A
类型
—
R/W
—
—
R/W
R/W
复位值
描述
—
保留
0
刹车中断状态
1:中断已发生
0:中断未发生
—
保留
第 3 组 B 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 3 组 A 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 2 组 B 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 2 组 A 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 1 组 B 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 1 组 A 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 0 组 B 路高电平结束中断状态
1:中断已发生
0:中断未发生
第 0 组 A 路高电平结束中断状态
1:中断已发生
0:中断未发生
—
保留
0
第 3 组 B 路新周期开始中断状态
1:中断已发生
0:中断未发生
0
第 3 组 A 路新周期开始中断状态
1:中断已发生
0:中断未发生
第 2 组 B 路新周期开始中断状态
1:中断已发生
0:中断未发生
5
NEWP2B
R/W
0
4
NEWP2A
R/W
0
3
NEWP1B
R/W
0
2
NEWP1A
R/W
0
第 2 组 A 路新周期开始中断状态
1:中断已发生
0:中断未发生
第 1 组 B 路新周期开始中断状态
1:中断已发生
0:中断未发生
第 1 组 A 路新周期开始中断状态
1:中断已发生
0:中断未发生
131
SWM180 系列
1
NEWP0B
R/W
0
0
NEWP0A
R/W
0
第 0 组 B 路新周期开始中断状态
1:中断已发生
0:中断未发生
第 0 组 A 路新周期开始中断状态
1:中断已发生
0:中断未发生
PWM 中断屏蔽寄存器 IMSK
ADDR: 0x5000A1D0
位域
名称
类型
31:25
REVERSED
24
HALT
23:20
REVERSED
19
HEND3B
R/W
0
18
HEND3A
R/W
0
17
HEND2B
R/W
0
第 2 组 B 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
16
HEND2A
R/W
0
第 2 组 A 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
第 1 组 B 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
—
R/W
—
复位值
描述
—
保留
0
刹车中断屏蔽
1:屏蔽
0:未屏蔽
—
保留
15
HEND1B
R/W
0
14
HEND1A
R/W
0
13
HEND0B
R/W
0
12
HEND0A
R/W
0
11:8
REVERSED
7
NEWP3B
R/W
0
6
NEWP3A
R/W
0
5
NEWP2B
R/W
0
—
—
第 3 组 B 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
第 3 组 A 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
第 1 组 A 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
第 0 组 B 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
第 0 组 A 路高电平结束中断屏蔽
1:屏蔽
0:未屏蔽
保留
第 3 组 B 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 3 组 A 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 2 组 B 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
132
SWM180 系列
4
NEWP2A
R/W
0
3
NEWP1B
R/W
0
2
NEWP1A
R/W
0
1
NEWP0B
R/W
0
0
NEWP0A
R/W
0
第 2 组 A 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 1 组 B 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 1 组 A 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 0 组 B 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
第 0 组 A 路新周期中断屏蔽
1:屏蔽
0:未屏蔽
PWM 原始状态寄存器 IRAWST
ADDR: 0x5000A1D4
位域
名称
31:25
REVERSED
类型
—
R/
W1C
复位值
描述
—
保留
0
刹车原始中断状态,写 1 清除
1:中断已发生
0:中断未发生
—
保留
24
HALT
23:20
REVERSED
19
HEND3B
R/
W1C
0
18
HEND3A
R/
W1C
0
17
HEND2B
R/
W1C
0
16
HEND2A
R/
W1C
0
15
HEND1B
R/
W1C
0
14
HEND1A
R/
W1C
0
13
HEND0B
R/
W1C
0
12
HEND0A
R/
W1C
0
11:8
REVERSED
—
—
—
第 3 组 B 路高电平结束原始中断状态,写 1 清除
1:中断已发生
0:中断未发生
第 3 组 A 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 2 组 B 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 2 组 A 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 1 组 B 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 1 组 A 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 0 组 B 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
第 0 组 A 路高电平结束原始中断状态
1:中断已发生
0:中断未发生
保留
133
SWM180 系列
7
NEWP3B
R/
W1C
0
6
NEWP3A
R/
W1C
0
5
NEWP2B
R/
W1C
0
4
NEWP2A
R/
W1C
0
3
NEWP1B
R/
W1C
0
2
NEWP1A
R/
W1C
0
1
NEWP0B
R/
W1C
0
0
NEWP0A
R/
W1C
0
第 3 组 B 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 3 组 A 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 2 组 B 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 2 组 A 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 1 组 B 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 1 组 A 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 0 组 B 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
第 0 组 A 路新周期开始原始中断状态
1:中断已发生
0:中断未发生
134
SWM180 系列
6.15 SAR ADC
6.15.1 特性
12-bits 分辨率
最多 8 路输入通道
最高 1MSPS 转换速率
支持单次模式和连续模式
具备深度为 8 的 FIFO
灵活的转换启动方式,支持软件、PWM、TIMER 启动
每个通道都有自己独立的转换结果数据寄存器和转换完成、数据溢出状态寄存器
支持 DMA 传输
6.15.2 功能描述
SWM180 系列所有型号 SAR ADC 操作均相同,不同型号 ADC 通道数量可能不同,最
多支持 8 通道。使用前需使能 SAR ADC 模块时钟。
操作说明
使用 SAR ADC 前,需针对对应引脚及模块进行如下操作:
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能
通过 PORT_SEL 寄存器将引脚切换为 SAR ADC CHx 功能
通过 CTRL 寄存器中 TRIG 位配置触发方式
通过 CTRL 寄存器中 CONT 位配置采样方式
通过 CTRL 寄存器中 DMAEN 位配置是否需要 DMA 读取
通过 CTRL 寄存器中 AVG 位配置是否需要硬件计算平均值
如需使用中断,通过 IE 寄存器使能对应中断
配置 CTRL 寄存器中对应通道(CHx)选通
使能 CTRL 寄存器中 EN 位
使用软件使能 START 寄存器 GO 位触发采样或使用 TIMER、PWM 模块触发采样
工作过程中,START 寄存器将被硬件置 1,采样完成后,自动清 0
SAR ADC 支持 PWM 触发,TIMER 触发及软件触发。通过将 SAR ADC 配置寄存器
(CTRL)中 TRIG(BIT[15:14])进行设置,该设置对所有选中通道均有效,当不同通道需
135
SWM180 系列
要不同触发方式时,需要在采样间隔配置 TRIG 位进行切换。
各模式触发操作方式如下:
使用 PWM 触发:
需将 PWM 配置为中心对称互补模式。将 SAR ADC 配置寄存器(CTRL)
中 TRIG(BIT[15:14])设置为 01。每路 PWM 对应一个 TRIGGERx 寄存器值,当 PWM 计
数到指定值,可触发 ADC 进行采样。当 8 路 PWM 工作在中心对称互补模式下时,最多可
触发 8 次 ADC 采样。PWM 触发仅支持单次模式,每次触发选中通道采样一次(支持求平
均)
。具体配置方式如下(以 TRIGGERA0 为例):
配置 TRIGGERAEVEN0 位,确认为前半周期或后半周期触发(前半周期与后半周
期以中心点为界)
配置 TRIGGERA0 数值,该数值为触发延时时长,前半周期从周期起始记,后半
周期从中心点记
置 TRIGGERAEN0 位为 1,使能 0_A 通道触发功能
使能 PWM 模块 EN 位,当计数值到达 TRIGGERA0 设置值时,触发 ADC 配置寄
存器(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生 EOC 标志位,
并产生 ADC 中断
示意图如下图所示。
图 6-38 PWM 触发 ADC 采样示意图
使用 TIMER 触发:将 SAR ADC 配置寄存器(CTRL)中 TRIG(BIT[15:14])设置为 2
(TIMER2 触发)或 3(TIMER3 触发)。TIMER 可作为定时器或计数器(支持级联)使用。
当对应 TIMER 计数值减置 0 时,将触发 ADC 配置寄存器(CTRL)中选中的通道(CHx)
进行采样。可以通过 ADC 采样完成中断进行结果获取。TIMER 触发仅支持单次模式,每次
触发选中通道采样一次(支持求平均)。
使用软件触发:将配置寄存器(CTRL)中 TRIG(BIT[15:14])设置为 0。ADC 配置完
136
SWM180 系列
成后,通过程序将 START 寄存器 GO 位置 1 触发采样。采样完成后,该位自动清 0。可以
通过 ADC 采样完成中断或标志位查询进行结果获取。软件触发支持单次模式及多次模式。
数据处理
SAR ADC 支持针对采样数据硬件自动完成平均值计算。通过配置 CTRL 寄存器中 AVG
位设置结果取平均。支持 2 到 16 次取平均。设置 N 次平均,则采集完成 N 次后 EOC 标志
有效,同时取平均结果被送至对应通道数据寄存器。
模式说明
单次模式。单次模式在所有选通通道上执行一次转换,然后自动停止,其运作流程如下:
1)
启动 ADC 采样前,CTRL 寄存器 CONT 位配置为 0
2)
START 寄存器写 1 启动转换,也可以用 PWM 和 Timer 触发启动
3)
所有 CTRL 寄存器中选通通道从小到大依次完成一次转换,并将转换结果和转换
完成 EOC 标志存入通道对应的数据和状态寄存器
4)
每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC
中断使能,则该通道转换完成时会触发中断处理程序
5)
所有通道转换完成后,START 寄存器自动清零,停止转换,ADC 进入 Idle 模式。
连续模式。连续模式下 ADC 会不断的重复在所有选通通道上执行转换,直到软件向
START 寄存器写 0,示意图如图 L-2 所示。具体操作步骤如下:
1)
启动 ADC 采样前,CTRL 寄存器 CONT 位配置为 1
2)
START 寄存器写 1 启动转换,也可以用 PWM 和 Timer 触发启动
3)
所有 CTRL 寄存器中选通通道从小到大依次完成一次转换,转换完成后 EOC 标志
将存入通道对应的状态寄存器
4)
使用 FIFO 时,采样结果及对应通道将存至 FIFO,未使用 FIFO 时,转换结果存入
通道对应的数据寄存器
5)
每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC
中断使能,则该通道转换完成时会触发中断处理程序
6)
重复采样及结果存储,直到 START 寄存器写 0,A/D 转换停止,A/D 转换器进入
空闲状态。
图 6-39 SAR ADC 连续采样示意图
137
SWM180 系列
6.15.3 寄存器映射
SAR-ADC
BASE:0x5000D000
名称
偏移量
类型
复位值
描述
CTRL
0x00
R/W
0
ADC 配置寄存器
START
0x04
R/W
0
ADC 启动寄存器
IE
0x08
R/W
0
ADC 中断使能寄存器
IF
0x0C
R/W
0
ADC 中断状态寄存器
STAT0
0x10
R/W
0
ADC 通道 0 状态寄存器
DATA0
0x14
R/W
0
ADC 通道 0 数据寄存器
STAT1
0x20
R/W
0
ADC 通道 1 状态寄存器
DATA1
0x24
R/W
0
ADC 通道 1 数据寄存器
STAT2
0x30
R/W
0
ADC 通道 2 状态寄存器
DATA2
0x34
R/W
0
ADC 通道 2 数据寄存器
STAT3
0x40
R/W
0
ADC 通道 3 状态寄存器
DATA3
0x44
R/W
0
ADC 通道 3 数据寄存器
STAT4
0x50
R/W
0
ADC 通道 4 状态寄存器
DATA4
0x54
R/W
0
ADC 通道 4 数据寄存器
STAT5
0x60
R/W
0
ADC 通道 5 状态寄存器
DATA5
0x64
R/W
0
ADC 通道 5 数据寄存器
STAT6
0x70
R/W
0
ADC 通道 6 状态寄存器
DATA6
0x74
R/W
0
ADC 通道 6 数据寄存器
STAT7
0x80
R/W
0
ADC 通道 7 状态寄存器
DATA7
0x84
R/W
0
ADC 通道 7 数据寄存器
FFSTAT
0x90
R/W
0
ADC FIFO 状态寄存器
FFDATA
0x94
R/W
0
ADC 所有通道数据寄存器
138
SWM180 系列
6.15.4 寄存器描述
配置寄存器 CTRL
ADDR: 0x5000D000
位域
名称
类型
复位值
描述
31:19
REVERSED
—
—
保留
18
RES2FF
R/W
0
17
DMAEN
R/W
0
16
RST
R/W
0
ADC 复位,高电平有效
0:ADC 数据存储为通道模式;
1:ADC 数据存储为 FIFO 模式;
DMA 模式必须使用 FIFO 模式;
DMA 使能,高电平有效
仅支持单通道数据寄存器只读
0:只能通过 CPU 读取 FFDATA;
1:只能通过 DMA CH1 读取 FFDATA;
15:14
TRIG
R/W
0
ADC triger 方式选择
00:CPU 触发
01:PWM 触发
10:timer2 触发
11:timer3 触发
13
CONT
R/W
0
ADC 工作模式(只在 CPU 触发方式下有效)
0:单次模式
1:连续模式
12
EN
R/W
0
ADC 使能
11:8
AVG
R/W
0
一次启动 ADC 采样次数配置寄存器
0000:1 次采样
0001:2 次采样并取平均
0010:保留(不可配置)
0011:4 次采样并取平均
0100、0101、0110:保留(不可配置)
0111:8 次采样并取平均
1000、1001、1010、1011、1100、1101、1110:保
留(不可配置)
1111:16 次采样并取平均
7
CH7
R/W
0
ADC 通道 7 选择控制
0:通道未选中 1:通道选中
6
CH6
R/W
0
ADC 通道 6 选择控制
0:通道未选中 1:通道选中
5
CH5
R/W
0
ADC 通道 5 选择控制
0:通道未选中 1:通道选中
4
CH4
R/W
0
ADC 通道 4 选择控制
0:通道未选中 1:通道选中
3
CH3
R/W
0
ADC 通道 3 选择控制
0:通道未选中 1:通道选中
2
CH2
R/W
0
ADC 通道 2 选择控制
0:通道未选中 1:通道选中
1
CH1
R/W
0
ADC 通道 1 选择控制
0:通道未选中 1:通道选中
139
SWM180 系列
0
CH0
R/W
0
ADC 通道 0 选择控制
0:通道未选中 1:通道选中
类型
复位值
描述
启动寄存器 START
ADDR: 0x5000D004
位域
名称
31:5
REVERSED
—
—
保留
4
BUSY
RO
0
ADC 工作状态标识
3:1
REVERSED
—
—
保留
0
ADC 启动信号(只在 CPU 触发方式下有效)
该位写 1,则启动一次转换。
若 CONT 处于单次采样模式,则该位置 1 后,将对
有效通道依次轮询进行采样转换,并将转换的数据
保存在相应通道的 FIFO 或寄存器中。转换完成后硬
件会自动清零。
若 CONT 处于多次采样模式,则该位置 1 表示启动
ADC 转换,清零后表示停止 ADC 转换。启动 ADC 转
换后,将对有效通道依次轮询进行采样转换,并将
转换的数据保存在相应通道的 FIFO 或寄存器中。每
次转换完成后判断该位是否为 1,若为 1 则继续转
换,若为 0 则停止转换。
复位值
描述
—
保留
0
GO
R/W
中断寄存器 IE
ADDR: 0x5000D008
位域
名称
类型
31:19
REVERSED
18
FIFOF
R/W
0
ADC 数据 FIFO 满中断使能
17
FIFOHF
R/W
0
ADC 数据 FIFO 半满中断使能
16
FIFOOV
R/W
0
ADC 数据 FIFO 溢出中断使能
15
CH7OVF
R/W
0
ADC 通道 7 数据寄存器溢出中断使能
14
CH7EOC
R/W
0
ADC 通道 7 数据转换完成中断使能
13
CH6OVF
R/W
0
ADC 通道 6 数据寄存器溢出中断使能
12
CH6EOC
R/W
0
ADC 通道 6 数据转换完成中断使能
11
CH5OVF
R/W
0
ADC 通道 5 数据寄存器溢出中断使能
10
CH5EOC
R/W
0
ADC 通道 5 数据转换完成中断使能
—
140
SWM180 系列
9
CH4OVF
R/W
0
ADC 通道 4 数据寄存器溢出中断使能
8
CH4EOC
R/W
0
ADC 通道 4 数据转换完成中断使能
7
CH3OVF
R/W
0
ADC 通道 3 数据寄存器溢出中断使能
6
CH3EOC
R/W
0
ADC 通道 3 数据转换完成中断使能
5
CH2OVF
R/W
0
ADC 通道 2 数据寄存器溢出中断使能
4
CH2EOC
R/W
0
ADC 通道 2 数据转换完成中断使能
3
CH1OVF
R/W
0
ADC 通道 1 数据寄存器溢出中断使能
2
CH1EOC
R/W
0
ADC 通道 1 数据转换完成中断使能
1
CH0OVF
R/W
0
ADC 通道 0 数据寄存器溢出中断使能
0
CH0EOC
R/W
0
ADC 通道 0 数据转换完成中断使能
类型
复位值
描述
—
—
保留
中断寄存器 IF
ADDR: 0x5000D00C
位域
名称
31:19
REVERSED
18
FIFOF
R/W1C
0
ADC 数据 FIFO 满中断状态,写 1 清除
0:未产生 1:产生中断
17
FIFOHF
R/W1C
0
ADC 数据 FIFO 半满中断状态,写 1 清除
0:未产生 1:产生中断
16
FIFOOV
R/W1C
0
ADC 数据 FIFO 溢出中断状态,写 1 清除
0:未产生 1:产生中断
15
CH7OVF
R/W1C
0
ADC 通道 7 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
14
CH7EOC
R/W1C
0
ADC 通道 7 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
13
CH6OVF
R/W1C
0
ADC 通道 6 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
12
CH6EOC
R/W1C
0
ADC 通道 6 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
11
CH5OVF
R/W1C
0
ADC 通道 5 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
10
CH5EOC
R/W1C
0
ADC 通道 5 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
9
CH4OVF
R/W1C
0
ADC 通道 4 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
141
SWM180 系列
8
CH4EOC
R/W1C
0
ADC 通道 4 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
7
CH3OVF
R/W1C
0
ADC 通道 3 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
6
CH3EOC
R/W1C
0
ADC 通道 3 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
5
CH2OVF
R/W1C
0
ADC 通道 2 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
4
CH2EOC
R/W1C
0
ADC 通道 2 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
3
CH1OVF
R/W1C
0
ADC 通道 1 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
2
CH1EOC
R/W1C
0
ADC 通道 1 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
1
CH0OVF
R/W1C
0
ADC 通道 0 数据寄存器溢出中断状态,写 1 清除
0:未产生 1:产生中断
0
CH0EOC
R/W1C
0
ADC 通道 0 数据转换完成中断状态,写 1 清除
0:未产生 1:产生中断
复位值
描述
—
保留
通道状态寄存器 STATx(0~7)
ADDR: 0x5000D010+0x10*x
位域
名称
类型
31:2
REVERSED
1
OVF
R/W
0
ADC 通道 x 数据寄存器溢出标志
读数据寄存器清除
0
EOC
R/W
0
ADC 通道 x 数据转换完成标志,写 1 清除
1:ADC 对通道 x 一次采样转换完成
0:转换未完成
复位值
描述
—
保留
—
通道数据寄存器 DATAx(0~7)
ADDR: 0x5000D014+0x10*x
位域
名称
类型
31:15
REVERSED
14:12
CHNUM
R/W
0
ADC 数据对应的通道编号
11:0
VALUE
R/W
0
ADC 通道 x 数据寄存器
注:溢出后,再次转换的数据会覆盖旧数据
复位值
描述
—
FIFO 状态寄存器 FFSTAT
ADDR: 0x5000D090
位域
名称
类型
142
SWM180 系列
31:4
REVERSED
—
—
3
EMPTY
R/W
0
2
FULL
R/W
0
1
HFULL
R/W
0
0
OVF
R/W
0
保留
ADC 数据 FIFO 空标志
1:FIFO 空
0:FIFO 非空
ADC 数据 FIFO 满标志
1:FIFO 满
0:FIFO 非满
ADC 数据 FIFO 半满标志
1:FIFO 半满
0:FIFO 满或未达到半满
ADC 数据 FIFO 溢出标志
1:FIFO 出现溢出
0:FIFO 未溢出
所有通道 FIFO 数据寄存器 FFDATA
ADDR: 0x5000D094
位域
名称
31:15
REVERSED
14:12
CHNUM
11:0
VALUE
类型
复位值
描述
—
保留
R/W
0
ADC 数据对应的通道编号
R/W
0
ADC 通道 x 数据 FIFO 寄存器
注:溢出后,再次转换的数据会被丢掉
—
143
SWM180 系列
6.16 SIGMA-DELTA ADC
6.16.1 特性
16 位分辨率
最多 6 路单端或差分输入
支持自校准
支持 7 级增益设置
每个通道模式单独配置
具备单次模式和连续模式两种转换方式
具备深度为 8 的 FIFO
支持软件启动或定时器定时启动
支持 DMA 传输
6.16.2 功能描述
SWM180 系列部分型号不包括该模块。使用前需使能 SAR ADC 模块时钟。最多支持 6
通道差分输入。
开关控制
通过 CTRL 寄存器 EN 位来设置 SDADC 是否使能。
将 EN 位置 1 后 SDADC 模块使能,
结合需求,再通过 CTRL 寄存器 BIT0~BIT5 使能所要使用的通道,此时若有转换请求,可
通过相应通道进行数据转换。
当 CTRL 寄存器 EN 位清零,SDADC 模块将被关闭,SDADC 所有功能不能被继续使
用,停止所有正在进行的转换处理。
时钟控制
SDADC 有两个时钟源可选择:
内部高频 RC 振荡器的 8 分频(RCHF/8)
外部高频晶振的 8 分频(XTAH/8)
可以通过 SYSCON 章节的 CLKSEL 寄存器 ADC 位进行选择。
SDADC 默认工作在全速模式,工作时钟最高为 6MHz,可通过 CTRL 寄存器 LOWCLK
位切换成低速模式,以获得功耗减半的效果,低速模式下 SDADC 最高工作在 1.5MHz 下。
通道和输入
SDADC 模块有 6 个通道可供选择:CH0、CH1、CH2、CH3、CH4、CH5,每个通道拥
144
SWM180 系列
有两个不同的模拟信号输入引脚,即 ADC1_CHxP 端和 ADC1_CHxN 端。可自由独立的通
过 CFGn(n=A/B/C)寄存器 SE 位配置为差分输入或者单端输入。
通道配置为差分输入时,需要将 ADC1_CHxP 与 ADC1_CHxN 对应引脚切换为
SDADC 功能(通过 PORTCON 章节 PORTx_SEL 寄存器)
,被测信号的 P 端注入
到芯片 ADC1_CHxP 引脚,N 端注入到芯片 ADC1_CHxN 引脚
PAD
SDADC
Vin+
CH0P
Vin-
CH0N
Vin+
CH1P
Vin-
CH1N
Vin+
CH2P
Vin-
CH2N
Vin+
CH3P
Vin-
CH3N
Vin+
CH4P
Vin-
CH4N
Vin+
CH5P
Vin-
CH5N
图 6-40 差分输入管脚配置示意图
通道配置为单端输入时,仅需将 ADC1_CHxP 对应引脚切换为 SDADC 功能,被测
信号注入到芯片 ADC1_CHxP 引脚,芯片 ADC1_CHxN 引脚可通过 CFGx 寄存器
REFM 位选择内部模拟地或者外部输入负参考端
145
SWM180 系列
PAD
SDADC
Vin
CH0P
REFM
CH0N
Vin
CH1P
REFM
CH1N
Vin
CH2P
REFM
CH2N
Vin
CH3P
REFM
CH3N
Vin
CH4P
REFM
CH4N
Vin
CH5P
REFM
CH5N
图 6-41 单端输入、REFM 为 AGND 管脚配置示意图
146
SWM180 系列
PAD
SDADC
Vin
CH0P
REFM
CH0N
Vin
CH1P
REFM
CH1N
Vin
CH2P
REFM
CH2N
Vin
CH3P
REFM
CH3N
Vin
CH4P
REFM
CH4N
Vin
CH5P
REFM
CH5N
图 6-42 单端输入、REFM 为 AINREF 管脚配置示意图
模式配置
SIGMA-ADC 同时支持三种模式配置,通过 CFGA/B/C 寄存器配置:
SE 位用来配置输入模式为差分输入或者单端输入
如果选择单端输入,即 SE=1,通过 REFM 来选择负输入端,默认为模拟地
根据输入信号大小,通过 GAIN 位调节增益值,放大输入信号
如果使能了校准通道,校准结果产生后将存入到 OFFSET 位
6 个通道可以选择指定 3 种模式中的任意一种,在 CFGS 寄存器进行配置保存。
快速转换
SDADC 默认工作在普通模式,转换周期为 60us。当 SDADC 单通道工作时,可以将
CTRL 寄存器 FAST 位置 1,选择快速模式,快速模式下转换周期为 20us,为普通模式 3 倍。
147
SWM180 系列
操作流程
使用 SIGMA-DELTA ADC 前,需针对对应引脚及模块进行如下操作:
配置 PORTCON 模块中 INEN 寄存器使能引脚输入功能
通过 PORT_SEL 寄存器将引脚切换为 SIGMA-ADC CHxP 及 CHxN 功能
通过 CTRL 寄存器配置触发方式、采样方式、是否 DMA 读取
通过 CTRL 寄存器配置校准模式、速度模式、校准使能
通过 CFGA/B/C 寄存器,配置采样模式及增益大小,最多同时支持 3 种采样模式
通过 CFGS 寄存器,配置每个通道对应工作模式(CFGA/B/C 三选一)
如需使用中断,通过 IE 寄存器使能对应中断
配置 CTRL 寄存器中对应通道(CHx)选通
使能 CTRL 寄存器中 EN 位
使用软件使能 START 寄存器 GO 位触发采样或使用 TIMER 模块触发采样
工作过程中,START 寄存器将被硬件置 1,采样完成后,自动清 0
触发方式
SIGMA-DELTA ADC 支持 TIMER 触发及软件触发。通过配置寄存器(CTRL)中 TRIG
(BIT[21])进行设置,该设置对所有选中通道均有效,当不同通道需要不同触发方式时,
需要在采样间隔配置 TRIG 位进行切换。
各模式触发操作方式如下:
使用 TIMER 触发:将配置寄存器(CTRL)中 TRIG(BIT[21])设置为 1(TIMER3
触发)
。TIMER3 可作为定时器或计数器(支持级联)使用。当对应 TIMER3 计数
值减置 0 时,将触发配置寄存器(CTRL)中选中的通道(CHx)进行采样。可以
通过 ADC 采样完成中断进行结果获取。TIMER 触发只能设置为单次模式。
使用软件触发:将配置寄存器(CTRL)中 TRIG(BIT[21])设置为 0。ADC 配置
完成后,通过程序将 START 寄存器 GO 位置 1 触发采样。采样完成后,该位自动
清 0。可以通过 ADC 采样完成中断或标志位查询进行结果获取。软件触发可以设
置为单次模式或多次模式。
采样模式
单次模式。单次模式在所有选通通道上执行一次转换,然后自动停止,其运作流程如下:
启动 ADC 采样前,CTRL 寄存器 CONT 位配置为 0
START 寄存器写 1 启动转换,也可以用 PWM 和 Timer 触发启动
所有 CTRL 寄存器中选通通道从小到大依次完成一次转换,并将转换结果和转换
完成 EOC 标志存入通道对应的数据和状态寄存器
每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC
148
SWM180 系列
中断使能,则该通道转换完成时会触发中断处理程序
所有通道转换完成后,START 寄存器自动清零,停止转换,ADC 进入 Idle 模式
连续模式。连续模式下 ADC 会不断的重复在所有选通通道上执行转换,直到软件向
START 寄存器写 0。具体操作步骤如下:
启动 ADC 采样前,CTRL 寄存器 CONT 位配置为 1
START 寄存器写 1 启动转换,也可以用 PWM 和 Timer 触发启动
所有 CTRL 寄存器中选通通道从小到大依次完成一次转换,转换完成后 EOC 标志
将存入通道对应的状态寄存器
使用 FIFO 时,采样结果及对应通道将存至 FIFO,未使用 FIFO 时,转换结果存入
通道对应的数据寄存器
每个通道转换完成时对应通道状态寄存器的 EOC 标志会置位,如果该通道的 EOC
中断使能,则该通道转换完成时会触发中断处理程序
重复采样及结果存储,直到 START 寄存器写 0,A/D 转换停止,A/D 转换器进入
空闲状态
校正功能
校正功能可以用来确定当前 SDADC 的配置所产生的 OFFSET 值,即 CFGx 寄存器
BIT0~BIT11。OFFSET 值取决于 CFGx 寄存器其他位(包括 SE、REFM、GAIN)的配置情
况。校正 OFFSET 期间,SDADC 会连接到 CTRL 寄存器 CALIN 位给定的电压,选择 CFGx
寄存器 GAIN 位,并执行一次转换,以确定 OFFSET 的值。
校正的步骤顺序如下:
说明:校正成功后,需要恢复校正之前 CTRL 寄存器的值,因此校正之前需要定义变
量存储 CTRL 寄存器原始的数据,以备恢复时使用。
通过 CFGx 寄存器(CFGA/CFGB/CFGC 任选其一)
,配置采样模式及增益大小
将 CTRL 寄存器 CH9SEL 位置 1,使能校正通道
将 CTRL 寄存器 RST 清 0,禁止复位
将 CTRL 寄存器 EN 位置 1,使能 SDADC 模块
将 CTRL 寄存器 BIAS 位置 1,使能校正偏置电路
将 CTRL 寄存器 CONT 位清 0,选择单次转换
将 CTRL 寄存器 OUTCALI 位清 0,关闭校准输出
将 CTRL 寄存器 LOWCLK 位清 0,选择全速模式
通过 CTRL 寄存器 CALIN 位选择校准通道公共模式,
三种模式可选择:
GND、
VDD、
VDD/2
将 CTRL 寄存器 TRIG 位清 0,选择软件触发 ADC 转换的方式
149
SWM180 系列
将 CTRL 寄存器 DMAEN 位清 0,关闭 DMA 读取
通 过 CFGS 寄 存 器 CH9 位 选 择 要 校 准 哪 个 配 置 , 有 三 种 种 模 式 可 选 择 :
SDADC_CFG_A、SDADC_CFG_B、SDADC_CFG_C,此处的选择取决于 STEP1
中所配置了哪个 CFGx 寄存器
将 START 寄存器 GO 位置 1,启动一次转换
查询 STAT 寄存器 CALEOC 位,当等于 1 的时候,校正成功。恢复校正之前 CTRL
寄存器的值
参考电压
SDADC 参考电压默认是芯片内部 VDD,
当需要外部电压作为参考电压时,可以将 CTRL
寄存器 REFP 位置 1,选择外部电压作为 SDADC 参考电压。使用外部参考电压时,外部参
考电压不得大于芯片内部 VDD。
6.16.3 寄存器映射
SIGMA_DELTA ADC
BASE:0x50040000
名称
偏移量
类型
复位值
描述
CTRL
0x00
R/W
0
ADC 配置寄存器
START
0x04
R/W
0
ADC 启动寄存器
IE
0x08
R/W
0
ADC 中断使能寄存器
IF
0x0C
R/W
0
ADC 中断状态寄存器
CFGS
0x14
R/W
0
ADC 各通道配置选择寄存器
CFGA
0x20
R/W
0
ADC 通道配置 A 模式寄存器
CFGB
0x24
R/W
0
ADC 通道配置 B 模式寄存器
CFGC
0x28
R/W
0
ADC 通道配置 C 模式寄存器
STAT
0x40
R/W
0
ADC 数据状态寄存器
DATA
0x44
R/W
0
ADC 数据寄存器
6.16.4 寄存器描述
配置寄存器 CTRL
ADDR: 0x50040000
位域
名称
类型
复位值
描述
150
SWM180 系列
—
保留
R/W
0
DMA 使能,高电平有效
0:通过 CPU 读取 DATA;
1:通过 DMA CH2 读取 DATA;
TRIG
R/W
0
ADC triger 方式选择
0:CPU 触发
1:Timer3 触发
20:19
CALIN
R/W
0
校准通道公共模式
00:GND;01:VDD/2;10:VDD;
18
REFP
0
SDADC 参考源
0:内部参考源 AVDD
1:外部参考源 Vrefin
17:16
LOWCLK
R/W
0
01:低速模式,最高 1.5MHz,精度-2db,功耗减半;
00:全速模式,最高 6MHz;
15
OUTCALI
R/W
0
14
FAST
R/W
0
13
CONT
R/W
0
12
BIAS
R/W
0
ADC 矫正电路使能
1:使能
0:禁能
11
EN
R/W
0
ADC 使能
1:使能
10
RST
R/W
0
ADC 复位,高电平有效
9
CH9SEL
R/W
0
ADC 校正通道选择控制
1:使能
0:禁能
8:6
REVERSED
—
—
保留
5
CH5SEL
R/W
0
ADC 通道 5 选择控制
1:使能
0:禁能
4
CH4SEL
R/W
0
ADC 通道 4 选择控制
1:使能
0:禁能
3
CH3SEL
R/W
0
ADC 通道 3 选择控制
1:使能
0:禁能
2
CH2SEL
R/W
0
ADC 通道 2 选择控制
1:使能
0:禁能
1
CH1SEL
R/W
0
ADC 通道 1 选择控制
1:使能
0:禁能
0
CH0SEL
R/W
0
ADC 通道 0 选择控制
1:使能
0:禁能
31:23
REVERSED
22
DMAEN
21
—
R/W
ADC 输出校准模式使能
0:ADC 输出无校准
1:ADC 输出启动校准
ADC 速度模式
0:普通工作模式,转换周期约 60us
1:快速工作模式,转换周期约 20us
ADC 工作模式(只在 CPU 触发方式下有效)
0:单次采样
1:多次采样
启动寄存器 START
ADDR: 0x50040004
151
0:禁能
SWM180 系列
位域
名称
31:1
REVERSED
0
GO
类型
复位值
描述
—
保留
R/W
0
ADC 启动信号(只在 CPU 触发方式下有效)
该位写 1,则启动一次转换。
若 CONT 处于单次采样模式,则该位置 1 后,将对
有效通道依次轮询进行采样转换,并将转换的数据
保存在相应通道的 FIFO 或寄存器中。转换完成后硬
件会自动清零。
若 CONT 处于多次采样模式,则该位置 1 表示启动
ADC 转换,清零后表示停止 ADC 转换。启动 ADC 转
换后,将对有效通道依次轮询进行采样转换,并将
转换的数据保存在相应通道的 FIFO 或寄存器中。每
次转换完成后判断该位是否为 1,若为 1 则继续转
换,若为 0 则停止转换。
当校准通道使能时,启动信号将启动校准模式,其
他通道必须禁止。
类型
复位值
描述
—
保留
—
中断使能寄存器 IE
ADDR: 0x50040008
位域
名称
31:5
REVERSED
4
CALEOC
R/W
0
ADC 校准数据转换完成中断使能
1:使能
0:禁能
3
FFF
R/W
0
ADC 数据 FIFO 满中断使能
1:使能
0:禁能
2
FFHF
R/W
0
ADC 数据 FIFO 半满中断使能
1:使能
0:禁能
1
FFOV
R/W
0
ADC 数据 FIFO 溢出中断使能
1:使能
0:禁能
0
EOC
R/W
0
ADC 数据转换完成中断使能
1:使能
0:禁能
类型
复位值
描述
—
—
保留
—
中断状态寄存器 IF
ADDR: 0x5004000C
位域
名称
31:5
REVERSED
4
CALEOC
R/W1C
0
ADC 校准数据转换完成中断状态,写 1 清除
0:未触发 1:已触发
3
FFF
R/W1C
0
ADC 数据 FIFO 满中断状态,写 1 清除
0:未触发 1:已触发
2
FFHF
R/W1C
0
ADC 数据 FIFO 半满中断状态,写 1 清除
0:未触发 1:已触发
1
FFOV
R/W1C
0
ADC 数据 FIFO 溢出中断状态,写 1 清除
0:未触发 1:已触发
152
SWM180 系列
0
EOC
R/W1C
0
ADC 数据转换完成中断状态,写 1 清除
0:未触发 1:已触发
类型
复位值
描述
—
保留
R/W
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
—
—
保留
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
配置选择寄存器 CFGS
ADDR: 0x50040014
位域
名称
31:20
REVERSED
19:18
CH9
19:12
REVERSED
11:10
9:8
7:6
5:4
CH5
CH4
CH3
CH2
—
R/W
R/W
R/W
R/W
3:2
CH1
R/W
0
1:0
CH0
R/W
0
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
通道配置选择
00:通道选择配置模式 A;
01:通道选择配置模式 B;
10:通道选择配置模式 C;
11:保留;
配置模式寄存器 CFGA/B/C
ADDR: 0x50040020+0x4*n
位域
名称
31:23
REVERSED
类型
—
复位值
描述
—
保留
153
SWM180 系列
22
SE
R/W
0
21
REFM
R/W
0
20:19
REVERSED
18:16
GAIN
15:12
REVERSED
11:0
OFFSET
单端模式使能,高电平有效,
0:双端输入模式
1:单端输入模式
在单端模式下选择负输入端:
0:AGND
1:AINREF
—
保留
0
输入通道增益控制:
000=1x
001=2x
010=4x
011=8x
100=16x
101=32x
111=0.5x
—
保留
R/W
0
数据校准位
类型
复位值
描述
—
保留
ADC 工作状态标识
—
R/W
—
数据状态寄存器 STAT
ADDR: 0x50040040
位域
名称
31:7
REVERSED
6
BUSY
RO
0
5
CALEOC
R/W1C
0
4
FFEM
RO
1
3
FFF
RO
0
2
FFHF
RO
0
1
FFOV
RO
0
0
EOC
R/W1C
0
类型
复位值
描述
—
保留
—
ADC 校准通道数据转换完成标志,写 1 清除
1:校准通道一次采样转换完成
0:转换未完成或 ADC 未使能
ADC 数据 FIFO 空标志
1:FIFO 空
0:FIFO 非空
ADC 数据 FIFO 满标志
1:FIFO 满
0:FIFO 非满
ADC 数据 FIFO 半满标志
1:FIFO 半满
0:FIFO 未半满
ADC 数据 FIFO 溢出标志
1:FIFO 溢出
0:FIFO 未溢出
ADC 数据转换完成标志,写 1 清除
1:采样通道一次采样转换完成
0:转换未完成或 ADC 未使能
数据寄存器 DATA
ADDR: 0x50040044
位域
名称
31:20
REVERSED
—
154
SWM180 系列
19:16
CHNUM
R/W
0
ADC 数据对应的通道编号
15:0
VALUE
R/W
0
ADC 数据 FIFO 寄存器
注:溢出后,再次转换的数据会被舍弃
155
SWM180 系列
6.17 DMA
6.17.1 特性
支持 FLASH 与 SRAM 间数据搬运
支持 SAR ADC 采集数据至 SRAM 数据搬运
支持 SIGMA-DELTA 采集数据至 SRAM 数据搬运
支持 CAN 接收数据至 SRAM 搬运
6.17.2 功能描述
SWM180 系列所有型号 DMA 模块操作均相同,用来提供特定外设(ADC0、ADC1、
CAN)和存储器(SRAM)之间或者存储器(FLASH)和存储器(SRAM)之间的高速数据
传输,无需 CPU 干涉,数据可以快速的通过 DMA 移动,从而节省了 CPU 的资源来做其他
操作。
DMA 传输宽度为 12 位,传输规则为按字传输,单次可传输字数多达 1024Word。数据
交换过程中,无需软件参与。
通道选择
DMA 控制器有 5 个通道,
每个通道专门用来管理来自于一个特定外设对存储器(SRAM)
访问的请求,其中:
①通道 0 和通道 1 用于 FLASH 模块与存储器(SRAM)的数据交换
② 通道 2 用于将 ADC0(SAR-ADC)的转换数据搬入到存储器(SRAM)
③ 通道 4 用于将 ADC1(SIGMA DELTA-ADC)的转换数据搬入到存储器(SRAM)
④ 通道 5 用于将 CAN 模块接收 BUFF 搬入到存储器(SRAM)
表格 6-6 DMA 各通道操作明细
156
SWM180 系列
中断处理
DMA 控制器模块 5 个通道均支持传输结束中断。DMA 初始化时如果配置了中断使能
寄存器 IE,当所配置通道传输完指定数据长度时会产生中断,此时中断状态寄存器 IF 对应
位自动置 1,对该位写 1 则清除中断,用户可通过读此寄存器来判断是否产生了中断。
DMA 各个通道还具备中断屏蔽功能。当配置了中断屏蔽寄存器 IM 时,即使数据传输
结束,也不会产生中断。
接口时序
FLASH 读取数据至 SRAM 流程示意图如下图所示。
图 6-43 Flash 内数据写入到内存
ADC0 读取数据至 SRAM 流程示意图如下图所示。
157
SWM180 系列
图 6-44 SAR ADC 中 FFDATA 内数据写入到内存
操作流程
使用 DMA 各通道之前,需针对 DMA 模块进行如下初始化操作:
通道 0
通过寄存器 CH0SRC 设置 DMA 源地址,源地址为 SRAM 内 32 位地址
通过寄存器 CH0DST 设置 DMA 目的地址,目的地址为 FLASH 内 32 位地址
通过寄存器 CH0CR 的 LEN 位域设置 DMA 数据传输长度
根据所需,通过寄存器 IE 配置 DMA 传输结束中断
DMA 使能,寄存器 EN 置 1
启动 DMA 传输,寄存器 CH0CR 的 WEN 位域置 1
如果使能了中断,传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来
判断通道 0 是否传输完成;如果没有使能中断,通过查询寄存器 CH0CR.WEN 来
判断通道 0 是否传输完成
通道 1
通过寄存器 CH1SRC 设置 DMA 源地址,源地址为 FLASH 内 32 位地址
通过寄存器 CH1DST 设置 DMA 目的地址,目的地址为 SRAM 内 32 位地址
通过寄存器 CH1CR 的 LEN 位域设置 DMA 数据传输长度
158
SWM180 系列
根据所需,通过寄存器 IE 配置 DMA 传输结束中断
DMA 使能,寄存器 EN 置 1
启动 DMA 传输,寄存器 CH1CR 的 REN 位域置 1
如果使能了中断,传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来
判断通道 1 是否传输完成;如果没有使能中断,通过查询寄存器 CH1CR.REN 来判
断通道 1 是否传输完成
通道 2
通过寄存器 CH2SRC 设置 DMA 源地址,源地址为 ADC0 通道 FIFO 的 32 位地址
通过寄存器 CH2DST 设置 DMA 目的地址,目的地址为 SRAM 内 32 位地址
通过寄存器 CH2CR 的 LEN 位域设置 DMA 数据传输长度
根据所需,通过寄存器 IE 配置 DMA 传输结束中断
DMA 使能,寄存器 EN 置 1
启动 DMA 传输,寄存器 CH2CR 的 REN 位域置 1
如果使能了中断,传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来
判断通道 2 是否传输完成;如果没有使能中断,通过查询寄存器 CH2CR.REN 来判
断通道 2 是否传输完成
通道 4
通过寄存器 CH4SRC 设置 DMA 源地址,源地址为 ADC1 通道 FIFO 的 32 位地址
通过寄存器 CH4DST 设置 DMA 目的地址,目的地址为 SRAM 内 32 位地址
通过寄存器 CH4CR 的 LEN 位域设置 DMA 数据传输长度
根据所需,通过寄存器 IE 配置 DMA 传输结束中断
DMA 使能,寄存器 EN 置 1
启动 DMA 传输,寄存器 CH4CR 的 REN 位域置 1
如果使能了中断,传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来
判断通道 4 是否传输完成;如果没有使能中断,通过查询寄存器 CH4CR.REN 来判
断通道 4 是否传输完成
通道 5
通过寄存器 CH5SRC 设置 DMA 源地址,源地址为 CAN 接收 BUFF 的 32 位地址
通过寄存器 CH5DST 设置 DMA 目的地址,目的地址为 SRAM 内 32 位地址
通过寄存器 CH5CR 的 LEN 位域设置 DMA 数据传输长度
根据所需,通过寄存器 IE 配置 DMA 传输结束中断
159
SWM180 系列
DMA 使能,寄存器 EN 置 1
启动 DMA 传输,寄存器 CH5CR 的 REN 位域置 1
如果使能了中断,传输完成后进入中断处理部分,通过查询中断状态寄存器 IF 来
判断通道 5 是否传输完成;如果没有使能中断,通过查询寄存器 CH5CR.REN 来判
断通道 5 是否传输完成
6.17.3 寄存器映射
DMA
BASE:0x41000000
名称
偏移量
类型
复位值
描述
EN
0x00
R/W
0
DMA 使能,高有效
IE
0x04
R/W
0
DMA 各通道中断使能
IM
0x08
R/W
0
DMA 各通道中断屏蔽
IF
0x0C
R/W
0
DMA 各通道中断状态
CR0
0x10
R/W
0
CH0 控制寄存器(仅发送)
SRC0
0x14
R/W
0
CH0 源地址
DST0
0x18
R/W
0
CH0 目的地址
CR1
0x1C
R/W
0
CH1 控制寄存器(仅接收)
SRC1
0x20
R/W
0
CH1 源地址
DST1
0x24
R/W
0
CH1 目的地址
CR2
0x28
R/W
0
CH2 控制寄存器
SRC2
0x2C
R/W
0
CH2 源地址
DST2
0x30
R/W
0
CH2 目的地址
CR3
0x34
R/W
0
保留
SRC3
0x38
R/W
0
保留
DST3
0x3C
R/W
0
保留
CR4
0x40
R/W
0
CH4 控制寄存器
SRC4
0x44
R/W
0
CH4 源地址
DST4
0x48
R/W
0
CH4 目的地址
CR5
0x4C
R/W
0
CH5 控制寄存器
SRC5
0x50
R/W
0
CH5 源地址
160
SWM180 系列
DST5
0x54
R/W
CH5 目的地址
0
6.17.4 寄存器描述
DMA 使能寄存器 EN
ADDR: 0x41000000
位域
名称
31:1
REVERSED
0
EN
类型
—
R/W
复位值
描述
—
保留
0
DMA 使能
1:使能 0:禁能
复位值
描述
—
保留
通道 0 中断使能
1:使能 0:禁能
DMA 中断使能寄存器 IE
ADDR: 0x41000004
位域
名称
类型
31:6
REVERSED
5
WFLASH
R/W
0
4
RFALSH
R/W
0
3
REVERSED
2
ADC
1
0
—
通道 1 中断使能
1:使能
0:禁能
—
保留
R/W
0
通道 2 中断使能
1:使能 0:禁能
SDADC
R/W
0
通道 4 中断使能
1:使能 0:禁能
CAN
R/W
0
通道 5 中断使能
1:使能 0:禁能
复位值
描述
—
保留
通道 0 中断屏蔽
1:屏蔽 0:非屏蔽
—
DMA 中断屏蔽寄存器 IM
ADDR: 0x41000008
位域
名称
类型
31:6
REVERSED
5
WFLASH
R/W
0
4
RFALSH
R/W
0
3
REVERSED
2
ADC
—
—
R/W
通道 1 中断屏蔽
1:屏蔽
0:非屏蔽
—
保留
0
通道 2 中断屏蔽
1:屏蔽 0:非屏蔽
161
SWM180 系列
1
SDADC
R/W
0
通道 4 中断屏蔽
1:屏蔽 0:非屏蔽
0
CAN
R/W
0
通道 5 中断屏蔽
1:屏蔽 0:非屏蔽
复位值
描述
—
—
保留
通道 0 传输完成中断,写 1 清零
1:中断发生 0:中断未发生
DMA 中断状态寄存器 IF
ADDR: 0x4100000C
位域
名称
类型
31:6
REVERSED
5
WFLASH
R/W1C
0
4
RFALSH
R/W
0
3
REVERSED
2
ADC
1
0
通道 1 传输完成中断,写 1 清零
1:中断发生 0:中断未发生
—
保留
R/W
0
通道 2 传输完成中断,写 1 清零
1:中断发生 0:中断未发生
SDADC
R/W
0
通道 4 传输完成中断,写 1 清零
1:中断发生 0:中断未发生
CAN
R/W
0
通道 5 传输完成中断,写 1 清零
1:中断发生 0:中断未发生
—
通道 0 控制寄存器 CR0
ADDR: 0x41000010
位域
名称
类型
复位值
描述
31:18
REVERSED
—
—
保留
17
WEN
R/W
0
通道 0 发送使能位,传输完成自动清除
1:使能
0:禁能
16:12
REVERSED
—
—
保留
0
DMA 传输的长度—1,
0 对应 1 字节,最大为 4096 字节
单次传输需以字为单位,即需配置为 4 的倍数—1
如传输 4 个字,即配置为 16—1
11:0
LEN
R/W
通道 0 源地址寄存器 SRC0
ADDR: 0x41000014
位域
名称
类型
复位值
描述
31:0
SRC0
R/W
0
CH0 源地址,只能配置 RAM 地址
通道 0 目的地址寄存器 DST0
ADDR: 0x41000018
162
SWM180 系列
位域
名称
类型
复位值
描述
31:0
DST0
R/W
0
CH0 目的地址,只能配置 FLASH 地址
通道 1 控制寄存器 CR1
ADDR: 0x4100001C
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
16
REN
R/W
0
通道 1 接收使能位,传输完成自动清除
1:使能
0:禁能
15:12
REVERSED
—
—
保留
0
DMA 传输的长度—1,
0 对应 1 字节,最大为 4096 字节
单次传输需以字为单位,即需配置为 4 的倍数—1
如传输 4 个字,即配置为 16—1
11:0
LEN
R/W
通道 1 源地址寄存器 SRC1
ADDR: 0x41000020
位域
名称
类型
复位值
描述
31:0
SRC1
R/W
0
CH1 源地址,只能配置 FLASH 地址
通道 1 目的地址寄存器 DST1
ADDR: 0x41000024
位域
名称
类型
复位值
描述
31:0
DST1
R/W
0
CH1 目的地址,只能配置 RAM 地址
通道 2 控制寄存器 CR2
ADDR: 0x41000028
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
16
REN
R/W
0
通道 2 接收使能位,使能 ADC0 接收数据至 SRAM 通
道
传输完成自动清除
1:使能
0:禁能
15:12
REVERSED
—
—
保留
0
DMA 传输的长度—1,
4 字节对应 1 次 ADC0 采集
单次传输需以字为单位,即需配置为 4 的倍数—1
如传输 4 次采集,即配置为 16—1
11:0
LEN
R/W
163
SWM180 系列
通道 2 源地址寄存器 SRC2
ADDR: 0x4100002C
位域
名称
类型
复位值
描述
31:0
SRC2
R/W
0
通道 2 源地址,ADC0 通道 FIFO 地址
通道 2 目的地址寄存器 DST2
ADDR: 0x41000030
位域
名称
类型
复位值
描述
31:0
DST2
R/W
0
通道 2 目的地址,SRAM 地址
通道 4 控制寄存器 CR4
ADDR: 0x41000040
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
16
REN
R/W
0
通道 4 接收使能位,使能 ADC1 接收数据至 SRAM 通
道
传输完成自动清除
1:使能
0:禁能
15:12
REVERSED
—
—
保留
0
DMA 传输的长度—1,
4 字节对应 1 次 ADC1 采集
单次传输需以字为单位,即需配置为 4 的倍数—1
如传输 4 次采集,即配置为 16—1
11:0
LEN
R/W
通道 4 源地址寄存器 SRC4
ADDR: 0x41000044
位域
名称
类型
复位值
描述
31:0
SRC4
R/W
0
通道 4 源地址,ADC1 通道 FIFO 地址
通道 4 目的地址寄存器 DST4
ADDR: 0x41000048
位域
名称
类型
复位值
描述
31:0
DST4
R/W
0
通道 4 目的地址,RAM 地址
通道 5 控制寄存器 CR5
ADDR: 0x4100004C
位域
名称
类型
复位值
描述
31:17
REVERSED
—
—
保留
164
SWM180 系列
16
REN
R/W
0
通道 5 接收使能位,使能 CAN 接收数据至 SRAM 通
道
传输完成自动清除
1:使能
0:禁能
15:12
REVERSED
—
—
保留
0
DMA 传输的长度—1,
4 字节对应 1 次 CAN 数据接收
单次传输需以字为单位,即需配置为 4 的倍数—1
如传输 4 次接收数据,即配置为 16—1
11:0
LEN
R/W
通道 5 源地址寄存器 SRC5
ADDR: 0x41000050
位域
名称
类型
复位值
描述
31:0
SRC5
R/W
0
通道 5 源地址,CAN 接收 BUFF
通道 5 目的地址寄存器 DST5
ADDR: 0x41000054
位域
名称
类型
复位值
描述
31:0
DST5
R/W
0
通道 5 目的地址,SRAM 地址
165
SWM180 系列
6.18 CAN
6.18.1 特性
支持协议 2.0A(11bit 标识符)和 2.0B(29bit 标识符)
支持最大 1 Mbit/s 的比特率
支持接收 DMA 模式
提供 64 字节的接收 FIFO
提供两个 16 位或 1 个 32 位的滤波器
提供可掩蔽中断
为自检操作提供可编程环回模式
6.18.2 功能描述
SWM180 系列所有型号 CAN 模块操作均相同。使用前需使能 CAN 模块时钟。与物理
层相连需要连接额外的硬件收发器。
中断
CAN 模块支持如下中断:
接收中断
发送中断
错误中断
数据溢出中断
唤醒中断
被动错误中断
仲裁丢失中断
总线错误中断
触发中断前,首先需要设置相应位的中断使能(IE)。
各中断状态清除(除接收中断),均为读清除。对于接收中断,需要将 CMD 寄存器 RRB
位置 1 清除。
数据发送
发送报文需要设置发送 buffer (寄存器 INFO,DATA0—DATA11)。可以是标准帧或是扩
展帧格。数据位最大是 8 个字节,超过 8 字节,自动按 8 字节计算。写数据前,需要查看
166
SWM180 系列
SR 寄存器 TXRDY 位是否等于 1,如果不等于 1,则发送的数据将会被丢弃。发送数据请求
通过设置 CMD 寄存器 TXREQ 位为 1(发送请求) 或是 CMD. SRR=1(自接收请求)。当设置
发送请求后,状态寄存器 SR. TXBUSY = 1,发送请求位清除。
数据传输没有开始时,可以通过设置命令寄存器(CMD. ABTTX = 1)中止传输。如果开
始传输,不能中止。
数据接收
数据接收先通过滤波器,符合条件标识符的才可以接收。滤波器的设置详见接收滤波章
节。
数据接收可以采用 DMA 模式或是读取内部 64 字节 FIFO。
采用 DMA 模式。需要设置控制寄存器 CR. DMAEN = 1,IE. RXDA =0;然后配置 DMA
相关寄存器。等待 DMA 中断,然后读取数据。
采用非 DMA 模式。读取内部的接收 FIFIO,开始接收数据时,状态寄存器 SR.RXBUSY
= 1,当接收 FIFO (寄存器 INFO,DATA0—DATA11)接收到完整报文的时候,状态寄存器(SR.
RXDA = 1) ,中断状态 IF. RXDA = 1(如果中断使能寄存器 IE. RXDA = 1)。接收 FIFO 是 64
字节,最多允许接收 5 个完成的扩展帧报文。如果接收 FIFO 没有足够的内存,状态寄存器
SR. RXOV = 1,数据溢出,(如果中断使能 IE. RXOV =1),溢出中断置位(IF.RXOV = 1).
从接收 FIFO 中读取数据后,需要释放 FIFO(设置 CMD. RRB= 1)。如果没有读取的数
据,中断状态位(IE. RXDA)和接收 BUFFER(SR. RXDA)状态位清除.
自接收
自接收功能,数据可以自发自收,不发送应答位。通过设置自接收请求(CMD. SRR = 1),
根据配置,可以产生发送和接收中断。
如果自接收请求和发送请求同时设置,则自接收请求设置无效
接收滤波
验收滤波器有验收代码寄存器(ACR0—ACR3)和验收屏蔽寄存器(AMR0—AMR1)。
标准帧格式,单过滤模式:
接收 buffer
地址 0x44
0x48
ID28….ID21
ID20…ID18
RTR
0x4c
0x50
XXXX(不匹配)
数据字节 1
数据字节 2
过滤器
ACR0[7:0]
ACR1[7:4]
(ACR1[3:0]不使用)
ACR2[7:0]
ACR3[7:0]
AMR0[7:0]
AMR1[7:4]
(AMR1[3:0]不使用)
AMR2[7:0]
AMR3[7:0]
注意:如果不需要数据匹配,AMR2、AMR3 设置 0xFF
167
SWM180 系列
标准帧格式,双过滤模式:
接收 buffer
地址 0x44
0x48
ID28…ID21
ID20…ID18
过滤器 1:
ACR0[7:0]
AMR0[7:0]
过滤器 2:
ACR2[7:0]
AMR2[7:0]
0x4C
RTR
XX(不匹配)
0x50
数据字节 1[7:4]
ACR1[7:4]
AMR1[7:4]
ACR1[3:0]
AMR1[3:0]
数据字节 1[3:0]
数据字节 2
ACR3[3:0]
AMR3[3:0]
ACR3[7:4]
AMR3[7:4]
扩展帧格式,单过滤模式:
接收 buffer
地址:0x44
0x48
0x4c
0x50
ID28…ID21
ID20…ID13
ID12…ID5
ID4…ID0
过滤器:
ACR0[7:0]
AMR0[7:0]
ACR1[7:0]
AMR1[7:0]
ACR2[7:0]
AMR2[7:0]
ACR3[7:2]
AMR3[7:2]
RTR
XX(不匹配)
ACR3[1:0]不匹配
AMR3[1:0]不匹配
扩展帧格式,双过滤模式:
接收 buffer
地址:0x44
0x48
0x4C
0x50
ID28…ID21
ID20…ID13
ID12~ID5(不匹配)
ID4~ID0(不匹配)
过滤器 1:
ACR0[7:0]
AMR0[7:0]
ACR1[7:0]
AMR1[7:0]
过滤器 2:
ACR2[7:0]
AMR2[7:0]
ACR3[7:0]
AMR3[7:0]
波特率
通过 BTR0 和 BTR1 寄存器设置波特率。
168
RTR(不匹配)
XX(不匹配)
SWM180 系列
错误处理
CAN 模块包括两个错误计数器:接收错误计数器 RXERR 和发送错误计数器 TXERR.
当发生接收错误或是发送错误时,相应的寄存器会加 1;当成功接收或是成功发送,相应的寄
存器会减 1。
对于位错误、格式错误、填充错误或是其他错误,可以通过错误代码捕捉寄存器 ECC
查询。
错误报警限制寄存器 EWLIM 设置的是发生错误(接收或是发送)的最大次数,默认值是
96.当发送错误计数器或是接收错误计数器超过错误报警限制寄存器设置的值时,错误状态
寄存器(SR.6 = 1)置 1,如果错误中断使能(IE. ERR = 1),产生错误中断(IF. ERR = 1)。
如果任何一个错误计数器超过 127 是,CAN 进入错误主动状态,如果主动错误中断使
能(IE. ERRPASS = 1),产生错误主动中断(IE. ERRPASS = 1)。
如果错误计数器超过了 255,总线状态位(SR.7)会被置 1,总线关闭,CAN 就会进入复
位模式。当清除控制寄存器的复位模式(CR.0 ),CAN 退出复位模式。
睡眠模式
CAN 可以工作在低功耗的睡眠模式。通过设置控制寄存器 CR.SLEEP = 1,进入睡眠模
式。
唤醒睡眠模式可以通过以下三种方式:
总线上有活动
配置睡眠中断使能,触发睡眠唤醒中断
清除睡眠位(CR.SLEEP =0)
如果是总线上有活动唤醒睡眠模式,CAN 直到检测到总线空闲,并且接收到 11bit 后,
才接受报文。在复位模式下,CAN 不能进入睡眠模式。
仅听模式
配置 CR. LOM = 1,进入仅听模式。
(至少需要三个节点)
CAN 工作在仅听模式,只接收数据,不发送数据。即使接收成功,也不发送应答位。
初始化和配置
初始化:
1)
配置中断使能寄存器 (IE)
2)
选择单/双过滤模式(CR.3)和复位模式(CR.0 = 0)
3)
配置验收寄存器(ACR0—ACR3) 和验收屏蔽寄存器(AMR0—AMR3)
169
SWM180 系列
4)
配置总线定时寄存器 0(BTR0)和 1(BTR1),设置波特率
5)
配置 CR 寄存器,退出复位模式
设置发送数据:
1)
查看发送 buffer 状态位是否为 1(SR.2=1)
2)
如果 SR.2 =1,在发送 buffer 中写入数据 (配置寄存器 INFO,DATA0—DATA11)
3)
配置命令寄存器 CMD,设置 CMD.0=1,发送数据请求,或 CMD.4 = 1,自接收请
求
设置接收数据:
非 DMA 模式。查看接收中断状态 IE.0 = 1(使能接收中断)或是接收 buffer 状态寄存器
SR.0 = 1,当读取接收 buffer 里的数据后(寄存器 INFO,DATA0—DATA11),将 CMD.2 置 1,
释放接收 fifo 。
DMA 模式。查看 DMA 中断,读取数据。
6.18.3 寄存器映射
CAN
BASE:0x50020000
名称
偏移量
类型
复位值
描述
CR
0x00
R/W
0x01
控制寄存器
CMD
0x04
RO
0x00
命令寄存器
SR
0x08
RO
0x3C
状态寄存器
IF
0x0C
RC
0x00
中断状态
IE
0x10
R/W
0x00
中断使能
BT0
0x18
R/W
0x00
总线定时器 0
BT1
0x1C
R/W
0x00
总线定时器 1
ALC
0x2C
RO
0x00
仲裁丢失捕捉
ECC
0x30
RO
0x00
错误代码捕捉
EWLIM
0x34
RO
0x5A
错误报警限制
RXERR
0x38
RO
0x00
接收错误计数
TXERR
0x3C
RO
0x00
发送错误计数
ACR0
0x40
RO
0x00
验收码寄存器 0
ACR1
0x44
RO
0x00
验收码寄存器 1
ACR2
0x48
RO
0x00
验收码寄存器 2
170
SWM180 系列
ACR3
0x4C
RO
0x00
验收码寄存器 3
AMR0
0x50
RO
0x00
验收屏蔽寄存器 0
AMR1
0x54
RO
0x00
验收屏蔽寄存器 1
AMR2
0x58
RO
0x00
验收屏蔽寄存器 2
AMR3
0x5C
RO
0x00
验收屏蔽寄存器 3
INFO
0x40
RO
0x00
帧格式
DATA0
0x44
WO
0x00
数据 0 寄存器
DATA1
0x48
WO
0x00
数据 1 寄存器
DATA2
0x4C
WO
0x00
数据 2 寄存器
DATA3
0x50
WO
0x00
数据 3 寄存器
DATA4
0x54
WO
0x00
数据 4 寄存器
DATA5
0x58
WO
0x00
数据 5 寄存器
DATA6
0x5C
WO
0x00
数据 6 寄存器
DATA7
0x60
WO
0x00
数据 7 寄存器
DATA8
0x64
WO
0x00
数据 8 寄存器
DATA9
0x68
WO
0x00
数据 9 寄存器
DATA10
0x6C
WO
0x00
数据 10 寄存器
DATA11
0x70
WO
0x00
数据 11 寄存器
RMCNT
0x74
R/W
0x00
接收数据计数寄存器
TXRINFO
0x180
RO
0x00
读取发送帧格式寄存器
TXRDATA0
0x184
RO
0x00
读取发送数据 0 寄存器
TXRDATA1
0x188
RO
0x00
读取发送数据 1 寄存器
TXRDATA2
0x18C
RO
0x00
读取发送数据 2 寄存器
TXRDATA3
0x190
RO
0x00
读取发送数据 3 寄存器
TXRDATA4
0x194
RO
0x00
读取发送数据 4 寄存器
TXRDATA5
0x198
RO
0x00
读取发送数据 5 寄存器
TXRDATA6
0x19C
RO
0x00
读取发送数据 6 寄存器
TXRDATA7
0x1A0
RO
0x00
读取发送数据 7 寄存器
TXRDATA8
0x1A4
RO
0x00
读取发送数据 8 寄存器
171
SWM180 系列
TXRDATA9
0x1A8
RO
0x00
读取发送数据 9 寄存器
TXRDATA10
0x1AC
RO
0x00
读取发送数据 10 寄存器
TXRDATA11
0x1B0
RO
0x00
读取发送数据 11 寄存器
6.18.4 寄存器描述
控制寄存器 CR
addr:0x50020000
位域
名称
类型
复位值
描述
31:6
REVERSED
—
—
保留
5
DMAEN
R/W
0x0
1 :DMA 模式接收报文
0 :非 DMA 模式接收报文
4
SLEEP
R/W
0x0
1:进入睡眠模式,有总线活动或中断时唤醒并自动
清零此位
0 :正常模式
3
AFM
R/W
0x0
1 :单个验收滤波器(32 位)
0 :两个验收滤波器(16 位)
2
STM
R/W
0x0
1 :自测模式,使没有应答,CAN 控制器也可以成功
发送
0 :正常模式
1
LOM
R/W
0x0
1 :仅听模式
0 :正常模式
0
RST
R/W
0x1
1 :复位模式
0 :正常模式
注: CR.SLEEP 只能在正常模式下写
CR[3:1] 在正常模式和复位模式下都可以写
命令寄存器 CMD
addr: 0x50020004
位域
名称
类型
复位值
描述
31:6
REVERSED
—
—
保留
4
SRR
WO
0x0
1:自测模式下,自接收请求,数据可以同时发送和
接收
3
CLROV
WO
0x0
1:清除数据溢出状态位
2
RRB
WO
0x0
1:释放接收缓冲
1
ABTTX
WO
0x0
1:取消下一个发送请求
0
TXREQ
WO
0x0
1:工作模式下,发送数据请求
172
SWM180 系列
状态寄存器 SR
addr:0x50020008
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
BUSOFF
RO
0x0
1 :CAN 控制器处于总线关闭状态,没有参与到总线
活动
6
ERRWARN
RO
0x0
1:至少一个错误计数器达到 Warning Limit
5
TXBUSY
RO
0x1
1:正在发送报文
4
RXBUSY
RO
0x1
1:正在接收报文
3
TXOK
RO
0x1
1: 上一个报文发送成功完成
2
TXBR
RO
0x1
0 :正在处理前面的发送,现在不能写新的报文
1 :可以写入新的报文发送
1
RXOV
RO
0x0
1:新接收的报文由于接收 FIFO 已满而丢掉
0
RXDA
RO
0x0
1 : 接收 FIFO 中有完整消息可以读取
中断状态寄存器 IF
addr:0x5002000C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
BUSERR
RC
0x0
当 IE.BUSERR=1 时,CAN 控制器检测到总线错误时
硬件置位
6
ARBLOST
RC
0x0
当 IE.ARBLOST=1 时,CAN 控制器丢失仲裁变成接收
方时硬件置位
5
ERRPASS
RC
0x0
当 IE.ERRPASS=1 时,从被动错误进入主动错误,或是
至少一个错误计数器超过 127 时硬件置位
4
WKUP
RC
0x0
当 IE.WKUP=1 时,在睡眠模式下的 CAN 控制器检测
到总线活动时硬件置位
3
RXOV
RC
0x0
当 IE.RXOV = 1 时,如果 SR.RXOV = 1, 硬件置位
2
ERRWARN
RC
0x0
当 IE.ERR=1 时,
SR.ERR 或 SR.BUSOFF 0-to-1 或 1-to-0
将置位此位
1
TXBR
RC
0x0
当 IE.TXRDY=1 时,SR.TXRDY 由 0 变成 1 将置位此位,
并且此时 SR.TXDONE 肯定也变成了 1
0
RXDA
RO
W1C
0x0
当 IE.RXDA = 1 时,如果 SR.RXDA = 1,硬件置位
注:IF.RXDA 清除通过写 CMD RRB = 1 清除;
173
SWM180 系列
中断使能寄存器 IE
addr:0x50020010
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
BUSERR
WO
0x0
1:总线错误使能
6
ARBLOST
WO
0x0
1:丢失仲裁使能
5
ERRPASS
WO
0x0
1:主动错误使能
4
WKUP
WO
0x0
1:睡眠唤醒使能
3
RXOV
WO
0x0
1:接收报文溢出使能
2
ERRWARN
WO
0x0
1:错误使能
1
TXBR
WO
0x0
1:报文发送完成使能
0
RXDA
WO
0x0
1:报文成功接收使能
总线定时器 BTR0
addr:0x50020018
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:6
SJW
RW
0x0
同步跳变宽度
5:0
BRP
RW
0x0
波特率设置
CAN 时间单位=2*Tsysclk*(BRP+1)
总线定时器 BTR1
addr:0x5002001C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
SAM
RW
0x0
采样次数
0: 1 次
1: 3 次
6:4
TSEG2
RW
0x0
t_tseg2 = CAN 时间单位 * (TSEG2+1)
3:0
TSEG1
RW
0x0
t_tseg1 = CAN 时间单位 * (TSEG1+1)
174
SWM180 系列
仲裁丢失捕捉寄存器 ALC
addr:0x5002002C
位域
名称
类型
复位值
描述
31:5
REVERSED
—
—
保留
4:0
ERR_Code
RO
0x0
ALC[4:0]
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
十进制值
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
功能
仲裁丢失在识别码的 bit1(ID.28)
仲裁丢失在识别码的 bit2(ID.27)
仲裁丢失在识别码的 bit3(ID.26)
仲裁丢失在识别码的 bit4(ID.25)
仲裁丢失在识别码的 bit5(ID.24)
仲裁丢失在识别码的 bit6(ID.23)
仲裁丢失在识别码的 bit7(ID.22)
仲裁丢失在识别码的 bit8(ID.21)
仲裁丢失在识别码的 bit9(ID.20)
仲裁丢失在识别码的 bit10(ID.19)
仲裁丢失在识别码的 bit11(ID.18)
仲裁丢失在 SRTR 位
仲裁丢失在 IDE 位
仲裁丢失在识别码的 bit12(ID.17)
仲裁丢失在识别码的 bit13(ID.16)
仲裁丢失在识别码的 bit14(ID.15)
仲裁丢失在识别码的 bit15(ID.14)
仲裁丢失在识别码的 bit16(ID.13)
仲裁丢失在识别码的 bit17(ID.12)
仲裁丢失在识别码的 bit18(ID.11)
仲裁丢失在识别码的 bit19(ID.10)
仲裁丢失在识别码的 bit20(ID. 9)
仲裁丢失在识别码的 bit21(ID. 8)
仲裁丢失在识别码的 bit22(ID. 7)
仲裁丢失在识别码的 bit23(ID. 6)
仲裁丢失在识别码的 bit24(ID. 5)
仲裁丢失在识别码的 bit25(ID. 4)
仲裁丢失在识别码的 bit26(ID. 3)
仲裁丢失在识别码的 bit27(ID. 2)
仲裁丢失在识别码的 bit28(ID. 1)
仲裁丢失在识别码的 bit29(ID. 0)
仲裁丢失在 RTR 位
错误代码 ECC
addr:0x50020030
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
175
只存在扩展
帧格式
SWM180 系列
7:6
ERRCODE
RO
0x0
错误代码:
0 位错误
1 格式错误
2 填充错误
3 其它错误
5
DIR
RO
0x0
0 发送时发生错误
1 接收时发生错误
4:0
SEGCODE
RO
0x0
发生错误见下表
ECC[4:0]
功能
00011
帧开始
00010
ID28—ID21
00110
ID20—ID18
00100
00101
00111
01111
01110
01100
01101
01001
01011
01010
01000
11000
11001
11011
11010
10010
10001
10110
10011
10111
11100
SRTR 位
IDE 位
ID17—ID13
ID.12 – ID.5
ID.4 – ID.0
RTR 位
保留位 1
保留位 0
数据长度代码
数据区
CRC 序列
CRC 定义符
应答通道
应答定义符
帧结束
终止
积极错误标志
消极错误标志
支配(控制)位误差
错误定义符
溢出标志
错误报警限制 EWLIM
addr:0x50020034
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
EWLIM
RW(R0)
96
注意:在复位模式下可读可写
在正常模式下只读
接收错误计数器 RXERR
addr:0x50020038
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
176
SWM180 系列
7:0
RXERR
RW(R0)
0
注意:在复位模式下可读可写
在正常模式下只读
发送错误计数器 TXERR
addr:0x5002003C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
TXERR
RW (R0)
0
注意:在复位模式下可读可写
在正常模式下只读
帧信息寄存器 INFO
addr:0x50020040
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
FF
RW
0x0
6
RTR
RW
0x0
3:0
DLC
RW
0x0
帧格式
0 标准帧格式
1 扩展帧格式
帧格式
1 远程帧
0 数据帧
数据长度
标准帧格式(11 位 ID):
数据寄存器 0 DATA0
addr:0x50020044
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[28:21]
数据寄存器 1 DATA1
addr:0x50020048
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:5
ID
RW
0x0
标识符 ID[20:18]
4:0
REVERSED
—
—
保留
177
SWM180 系列
数据寄存器 2 DATA2
addr:0x5002004c
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 0
数据寄存器 3 DATA3
addr:0x50020050
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 1
数据寄存器 4 DATA4
addr:0x50020054
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 2
数据寄存器 5 DATA5
addr:0x50020058
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 3
数据寄存器 6 DATA6
addr:0x5002005C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 4
数据寄存器 7 DATA7
addr:0x50020060
178
SWM180 系列
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 5
数据寄存器 8 DATA8
addr:0x50020064
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 6
数据寄存器 9 DATA9
addr:0x50020068
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 7
扩展帧格式(29 位 ID):
数据寄存器 0 DATA0
addr:0x50020044
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[28:21]
数据寄存器 1 DATA1
addr:0x50020048
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[20:13]
数据寄存器 2 DATA2
addr:0x5002004C
位域
名称
类型
复位值
描述
179
SWM180 系列
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[12:5]
数据寄存器 3 DATA3
addr:0x50020050
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:3
ID
RW
0x0
标识符 ID[5:0]
2:0
REVERSED
—
—
保留
数据寄存器 4 DATA4
addr:0x50020054
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 0
数据寄存器 5 DATA5
addr:0x50020058
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 1
数据寄存器 6 DATA6
addr:0x5002005C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 2
数据寄存器 7 DATA7
addr:0x50020060
位域
名称
类型
复位值
描述
180
SWM180 系列
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 3
数据寄存器 8 DATA8
addr:0x50020064
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 4
数据寄存器 9 DATA9
addr:0x50020068
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 5
数据寄存器 10 DATA10
addr:0x5002006C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 6
数据寄存器 11 DATA11
addr:0x50020070
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 7
接收报文数目寄存器 RMCNT
addr:0x50020074
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
181
SWM180 系列
7:0
RMCNT
RW
0x0
每次接收到报文数目加 1,
释放接收缓冲数目减 1
读取发送帧信息寄存器 TXRDINFO
addr:0x50020180
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7
FF
RW
0x0
6
RTR
RW
0x0
3:0
DLC
RW
0x0
帧格式
0 标准帧格式
1 扩展帧格式
帧格式
1 远程帧
0 数据帧
数据长度
TXRDATA0
标准帧格式(11 位 ID):
读取发送数据寄存器 0 TXRDATA0
addr:0x50020184
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[28:21]
读取发送数据寄存器 1 TXRDATA 1
addr:0x50020188
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:5
ID
RW
0x0
标识符 ID[20:18]
4:0
REVERSED
—
—
保留
读取发送数据寄存器 2 TXRDATA 2
addr:0x5002018C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 0
读取发送数据寄存器 3 TXRDATA 3
addr:0x50020190
182
SWM180 系列
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 1
读取发送数据寄存器 4 TXRDATA 4
addr:0x50020194
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 2
读取发送数据寄存器 5 TXRDATA 5
addr:0x50020198
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 3
读取发送数据寄存器 6 TXRDATA 6
addr:0x5002019C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 4
读取发送数据寄存器 7 TXRDATA 7
addr:0x500201A0
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 5
读取发送数据寄存器 8 TXRDATA 8
addr:0x500201A4
位域
名称
类型
复位值
描述
183
SWM180 系列
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 6
读取发送数据寄存器 9 TXRDATA 9
addr:0x500201A8
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 7
扩展帧格式(29 位 ID):
读取发送数据寄存器 0 TXRDATA0
addr:0x50020184
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[28:21]
读取发送数据寄存器 1 TXRDATA1
addr:0x50020188
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[20:13]
读取发送数据寄存器 2 TXRDATA2
addr:0x5002018C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
ID
RW
0x0
标识符 ID[12:5]
读取发送数据寄存器 3 TXRDATA3
addr:0x50020190
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
184
SWM180 系列
7:3
ID
RW
0x0
标识符 ID[5:0]
2:0
REVERSED
—
—
保留
读取发送数据寄存器 4 TXRDATA4
addr:0x50020194
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 0
读取发送数据寄存器 5 TXRDATA5
addr:0x50020198
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 1
读取发送数据寄存器 6 TXR DATA6
addr:0x5002019C
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 2
读取发送数据寄存器 7 TXRDATA7
addr:0x500201A0
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 3
读取发送数据寄存器 8 TXRDATA8
addr:0x500201A4
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
185
SWM180 系列
7:0
DATA
RW
0x0
数据字节 4
读取发送数据寄存器 9 TXRDATA9
addr:0x500201A8
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 5
读取发送数据寄存器 10 TXRDATA10
addr:0x500201AC
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 6
读取发送数据寄存器 11 TXRDATA11
addr:0x500201B0
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
DATA
RW
0x0
数据字节 7
验收码寄存器 ACRx (x = 0,1,2,3 )
addr:0x50020040+0x4*n
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
IDx
RW
0x0
验收码
验收屏蔽器 AMRx (x = 0,1,2,3 )
addr:0x50020050+0x4*n
位域
名称
类型
复位值
描述
31:8
REVERSED
—
—
保留
7:0
IDx
RW
0x0
验收屏蔽
对应位写 1,不屏蔽
对应为写 0,屏蔽
186
SWM180 系列
6.19 CORDIC
6.19.1 特性
经过 14 轮迭代得到结果
计算 sin 和 cos 时,输入弧度范围建议在 0.01 ~1.56
计算 arctan 数值范围建议在 0.05 ~ 10000
输出结果支持查询和中断方式
6.19.2 功能描述
SWM180 系列部分型号可能不包括该模块。使用前需使能 CORDIC 模块时钟。
使用 CORDIC 计算 COS/SIN/ARCTAN 流程如下:
配置中断使能寄存器 IE
配置参数寄存器 INPUT
配置控制寄存器 CMD
结果查询
如果采用查询方式,根据需要,反复查询 COS、SIN 或者 ARCTAN,当 bit16 为 1 时,
得到有效的返回值;
如果采用中断方式,当中断来临,查询到 IF.CAL 状态为 1 时,根据需要,读 COS、SIN
或者 ARCTAN 寄存器即可。
注意:计算得到的结果会一直保持,直到下一次启动 CMD. START。START 启动后,
就可以开始配置下一次计算所需要的 INPUT 和 CMD,但 START 只有等到这次计算结束后才
能再次启动。
6.19.3 寄存器映射
CORDIC
BASE:0x47000000
名称
偏移量
类型
复位值
描述
CMD
0x00
R/W
0
控制寄存器
INPUT
0x04
R/W
0
参数寄存器
COS
0x08
R/W
0
COS 寄存器
SIN
0x0C
R/W
0
SIN 寄存器
ARCTAN
0x10
R/W
0
ARCTAN 寄存器
IF
0x14
R/W
0
中断状态寄存器
IE
0x18
R/W
0
中断使能寄存器
187
SWM180 系列
6.19.4 寄存器描述
控制寄存器 CMD
ADDR: 0x47000000
位域
名称
31:4
REVERSED
类型
—
复位值
描述
—
保留
Bit0 START,写 1 启动 CORDIC 计算,计算完成后自
动清零,计算过程中不可写。
Bit2:1 RANGE,控制计算 arctan 时(CALSIN 为 0)
,
3:0
CMD
R/W
0
待计算的值 x 的范围。如果在 0.05