CH579 数据手册
V1.4
概述
CH579 是集成 BLE 和 ZigBee 双模无线通讯的 ARM 内核 32 位微控制器。片上集成低功耗蓝牙 BLE
通讯模块、ZigBee 通讯模块、以太网控制器及收发器、全速 USB 主机和设备控制器及收发器、段式
LCD 驱动模块、ADC、触摸按键检测模块、RTC 等丰富的外设资源。
功能
l 内核 Core:
- 32 位 ARM Cortex-M0 内核
- 最高 40MHz 系统主频,最低 32KHz 主频
l 257K 字节非易失存储 FlashROM:
-
250KB 用户应用程序存储区 CodeFlash
2KB 用户非易失数据存储区 DataFlash
4KB 系统引导程序存储区 BootLoader
1KB 系统非易失配置信息存储区 InfoFlash
支持 ICP、ISP 和 IAP,支持 OTA 无线升级
l 32K 字节易失数据存储 SRAM:
- 16KB 仅主电源供电的存储区 RAM16K
- 14KB 双电源供电的睡眠保持存储区 RAM14K
- 2KB 双电源供电的睡眠保持存储区 RAM2K
l 电源管理和低功耗:
-
支持 3.3V 和 2.5V 电源,范围 2.1V~3.6V
内置 DC-DC 转换,0dBm 发送功率时电流 6mA
空闲模式 Idle:1.2mA
暂停模式 Halt:420uA
睡眠模式 Sleep:0.6uA~2.0uA 多档
下电模式 Shutdown:0.2uA~1.3uA 多档
电池电压低压监控
l 安全特性:AES-128 加解密,芯片唯一 ID
l 蓝牙 BLE 和 ZigBee 双模:
-
集成 2.4GHz RF 收发器和基带及链路控制
单端 RF 接口,无需外部电感,简化板级设计
接收灵敏度-93dBm,可编程+3dBm 发送功率
BLE 符合 Bluetooth Low Energy 4.2 规范
ZigBee 兼容 IEEE 802.15.4 规范
在 0dBm 发送功率时无线通讯距离约 100 米
提供优化的协议栈和应用层 API,支持组网
l 以太网 Ethernet:
- 内置 MAC 控制器,支持帧过滤,支持 DMA
- 集成 10Mbps 收发器 PHY,内置 50Ω匹配电阻
- 通讯距离 200 米,支持自动协商,支持节能
l 通用串行总线 USB:
l
内置 USB 控制器和 DMA,支持 64 字节数据包
集成 USB 2.0 全速收发器 PHY,无需外围
支持全/低速的 Host 主机和 Device 设备模式
支持 USB type-C 主从/电流检测
实时时钟 RTC:支持定时和触发两种模式
l 段式 LCD:支持 96 点(24×4)LCD 面板
l 模数转换 ADC:
- 12 位模数转换器,支持差分和单端输入
- 14 路外部模拟信号通道和 2 路内部信号
l 触摸按键检测模块 TouchKey:14 路通道
l 定时器 Timer 和脉宽调制 PWM:
- 4 组 26 位定时器,16MHz 主频定时可达 4.2S
- 4 路捕捉/采样,支持上升沿/下降沿/双边沿
- 4 路 26 位 PWM 输出,8 路 8 位 PWM 输出
l 异步串口 UART:
-
4 组独立 UART,兼容 16C550,内置 8 级 FIFO
23 位计数器,最高通讯波特率可达 5Mbps
UART0 支持 Modem,支持硬件自动流控
UART0 支持多机通讯时从机地址自动匹配
l 串行外设接口 SPI:
- 2 组独立 SPI,内置 FIFO
- SCK 串行时钟频率可达系统主频的一半
- SPI0 支持 Master 和 Slave 模式,支持 DMA
l LED 点阵屏接口:支持 1/2/4 路数据线
l 时钟:内置 32MHz 和 32KHz 时钟,内置 PLL
l 8 位被动并口
l 温度转感器 TS
l 通用输入输出端口 GPIO:
- 40 个 GPIO,其中 4 个支持 5V 信号输入
- 32 个中断输入,32 个唤醒输入
l 封装形式:QFN48_5X5、QFN28_4X4
1
第 1 章 引脚信息
ANT
VINTA
X32MI
X32MO
PB22/RXD2_
PB23/RST#/TXD2_/PWM11
PB4/RXD0
22
23
24
25
26
27
28
VDCIA
PB7/TXD0
PA4/RXD3/UCC1/AIN0
PB10/UD-/TMR1_
PA5/TXD3/UCC2/AIN1
PB11/UD+/TMR2_
CH579F
PA15/MISO/RXD0_/AIN5
PB12/ET-/SCS_
PA14/MOSI/TXD0_/UBUS/AIN4
PB13/ET+/SCK0_
PA13/SCK0/AIN3
PB14/ER-/MOSI_/PWM10
PA12/SCS/AIN2
PB15/ER+/MISO_
0
1
2
3
4
5
6
7
8
9
10
0
14
13
12
11
10
9
8
PA11/X32KO/TMR2
PA10/X32KI/TMR1
VDCID
VSW
VIO33/VBAT
PA8/RXD1/AIN12
PA9/TXD1/AIN13
24
23
22
21
20
19
18
17
16
15
14
13
12
11
1
2
3
4
5
6
7
PB0/CTS/PWM6
PB1/DSR/PWM7
PB2/RI/PWM8
PB3/DCD/PWM9
PB4/RXD0
PB5/DTR
PB6/RTS
CH579M
PB7/TXD0
PB10/UD-/TMR1_
PB11/UD+/TMR2_
PB12/ET-/SCS_
PB13/ET+/SCK0_
PB14/ER-/MOSI_/PWM10
PB15/ER+/MISO_
VDCID
VSW
VIO33/VBAT
PA7/TXD2/PWM5/AIN11
PA8/RXD1/AIN12
PA9/TXD1/AIN13
PB9/TXD1_/SLVW
PB8/RXD1_/SLVR
PB17/TCK
PB16/TIO
GND
VDCIA
PA4/RXD3/LEDC/UCC1/AIN0
PA5/TXD3/UCC2/AIN1
PA6/RXD2/PWM4/AIN10
PA0/SCK1/SLVA/LED0/AIN9
PA1/MOSI1/SLVS/LED1/AIN8
PA2/TMR3/MISO1/LED2/AIN7
PA3/TMR0/SLVI/LED3/AIN6
PA15/MISO/RXD0_/AIN5
PA14/MOSI/TXD0_/UBUS/AIN4
PA13/SCK0/AIN3
PA12/SCS/AIN2
PA11/X32KO/TMR2
PA10/X32KI/TMR1
GND
35
36
37
38
39
40
41
42
43
44
45
46
47
48
21
20
19
18
17
16
15
ANT
VINTA
X32MI
X32MO
PB18/TMR3_
PB19/TMR0_
PB20/RXD3_
PB21/TXD3_
PB22/RXD2_
PB23/RST#/TXD2_/PWM11
34
33
32
31
30
29
28
27
26
25
1.1 引脚排列
图 1-1 CH579M(QFN48_5X5)和 CH579F(QFN28_4X4)封装引脚排列
1.2 引脚描述
QFN48 QFN28
引脚号 引脚号
引脚
名称
引脚
类型
复用功能
在前优先
-
0
0
GND
电源
1
3
VDCID
电源
2
4
VSW
电源
3
5
VIO33
电源
4
无
PA7
I/O/A
5
6
PA8
I/O/A
6
7
PA9
I/O/A
7
无
PB9
I/O
功能描述
公共接地端,电压 0V 参考点。
内部数字电路 LDO 调整器的电源输入,需外接退耦电容。
启用 DC-DC 时建议 2.2uF,不启用时建议不小于 0.1uF。
内部 DC-DC 开关输出,启用 DC-DC 时必须贴近引脚串接
22uH 电感连接到 VDCID,不启用 DC-DC 时可以直连 VDCID。
I/O 和 DC-DC 或电池电源输入,需贴近引脚外接退耦电容。
VBAT
启用 DC-DC 时建议 2.2uF,不启用 DC-DC 时建议不小于 1uF。
PA7:通用双向数字 I/0 引脚。
TXD2
TXD2:UART2 串行数据输出。
/PWM5
PWM5:脉宽调制输出通道 5。
/AIN11
AIN11:ADC 模拟信号输入通道 11。
PA8:通用双向数字 I/0 引脚。
RXD1
RXD1:UART1 串行数据输入。
/AINT12
AIN12:ADC 模拟信号输入通道 12。
PA9:通用双向数字 I/0 引脚。
TXD1
TXD1:UART1 串行数据输出。
/AINT13
AIN13:ADC 模拟信号输入通道 13。
TXD1_ PB9:通用双向数字 I/0 引脚。
/SLVW TXD1_:UART1 的 TXD1 引脚映射。
-
2
8
无
PB8
I/O
RXD1_
/SLVR
9
无
PB17
I/O
TCK
10
无
PB16
I/O
TIO
11
8
PB15
I/O/A
/5VT
ER+
/MISO_
ER/MOSI_
/PWM10
12
9
PB14
I/O/A
/5VT
13
10
PB13
I/O/A
/5VT
ET+
/SCK0_
14
11
PB12
I/O/A
/5VT
ET/SCS_
15
12
PB11
I/O/A
UD+
/TMR2_
16
13
PB10
I/O/A
UD/TMR1_
17
14
PB7
I/O
TXD0
18
无
PB6
I/O
RTS
19
无
PB5
I/O
DTR
20
15
PB4
I/O
RXD0
21
无
PB3
I/O
DCD
/PWM9
22
无
PB2
I/O
RI
/PWM8
23
无
PB1
I/O
DSR
/PWM7
24
无
PB0
I/O
CTS
/PWM6
25
16
PB23
I/O
RST#
/TXD2_
SLVW:被动并口的写控制信号输入,低电平有效。
PB8:通用双向数字 I/0 引脚。
RXD1_:UART1 的 RXD1 引脚映射。
SLVR:被动并口的读控制信号输入,低电平有效。
PB17:通用双向数字 I/0 引脚。
TCK:两线仿真调试接口的串行时钟输入。
PB16:通用双向数字 I/0 引脚。
TIO:两线仿真调试接口的串行数据输入输出,内置上拉。
PB15:通用双向数字 I/0 引脚。
ER+:以太网接收 RX+信号。
MISO_:SPI0 的 MISO 引脚映射。
PB14:通用双向数字 I/0 引脚。
ER-:以太网接收 RX-信号。
MOSI_:SPI0 的 MOSI 引脚映射。
PWM10:脉宽调制输出通道 10。
PB13:通用双向数字 I/0 引脚。
ET+:以太网发送 TX+信号。
SCK0_:SPI0 的 SCK 引脚映射。
PB12:通用双向数字 I/0 引脚。
ET-:以太网发送 TX-信号。
SCS_:SPI0 的 SCS 引脚映射。
PB11:通用双向数字 I/0 引脚。
UD+:USB 总线的 D+数据线。
TMR2_:定时器 2 的 TMR2 引脚映射。
PB10:通用双向数字 I/0 引脚。
UD-:USB 总线的 D-数据线。
TMR1_:定时器 1 的 TMR1 引脚映射。
PB7:通用双向数字 I/0 引脚。
TXD0:UART0 串行数据输出。
PB6:通用双向数字 I/0 引脚。
RTS:UART0 的 MODEM 输出信号,请求发送。
PB5:通用双向数字 I/0 引脚。
DTR:UART0 的 MODEM 输出信号,数据终端就绪。
PB4:通用双向数字 I/0 引脚。
RXD0:UART0 串行数据输入。
PB3:通用双向数字 I/0 引脚。
DCD:UART0 的 MODEM 输入信号,载波检测。
PWM9:脉宽调制输出通道 9。
PB2:通用双向数字 I/0 引脚。
RI:UART0 的 MODEM 输入信号,振铃指示。
PWM8:脉宽调制输出通道 8。
PB1:通用双向数字 I/0 引脚。
DSR:UART0 的 MODEM 输入信号,数据装置就绪。
PWM7:脉宽调制输出通道 7。
PB0:通用双向数字 I/0 引脚。
CTS:UART0 的 MODEM 输入信号,清除发送。
PWM6:脉宽调制输出通道 6。
PB23:通用双向数字 I/0 引脚。
RST#:外部复位输入,低电平有效,内置上拉电阻。
3
/PWM11
26
17
PB22
I/O
RXD2_
27
无
PB21
I/O
TXD3_
28
无
PB20
I/O
RXD3_
29
无
PB19
I/O
TMR0_
30
无
PB18
I/O
TMR3_
31
32
33
34
18
19
20
21
X32MO
X32MI
VINTA
ANT
I/A
A
电源
A
-
35
22
VDCIA
电源
-
I/O/A
RXD3
/LEDC
/UCC1
/AIN0
36
23
PA4
37
24
PA5
I/O/A
TXD3
/UCC2
/AIN1
38
无
PA6
I/O/A
RXD2
/PWM4
/AIN10
I/O/A
SCK1
/SLVA
/LED0
/AIN9
I/O/A
MOSI1
/SLVS
/LED1
/AIN8
39
40
无
无
PA0
PA1
41
无
PA2
I/O/A
TMR3
/MISO1
/LED2
/AIN7
42
无
PA3
I/O/A
TMR0
/SLVI
TXD2_:UART2 的 TXD2 引脚映射。
PWM11:脉宽调制输出通道 11。
PB22:通用双向数字 I/0 引脚。
RXD2_:UART2 的 RXD2 引脚映射。
PB21:通用双向数字 I/0 引脚。
TXD3_:UART3 的 TXD3 引脚映射。
PB20:通用双向数字 I/0 引脚。
RXD3_:UART3 的 RXD3 引脚映射。
PB19:通用双向数字 I/0 引脚。
TMR0_:定时器 0 的 TMR0 引脚映射。
PB18:通用双向数字 I/0 引脚。
TMR3_:定时器 3 的 TMR3 引脚映射。
高频振荡器 HSE 的反相输出端,外接 32MHz 晶体的一端。
高频振荡器 HSE 的输入端,外接 32MHz 晶体的另一端。
内部模拟电路的电源节点,需贴近引脚外接 2.2uF 退耦电容。
RF 射频信号输入输出,建议直连天线。
内部模拟电路 LDO 调整器的电源输入,需外接退耦电容。
建议不小于 0.1uF,建议通过磁珠或直连 VDCID。
PA4:通用双向数字 I/0 引脚。
RXD3:UART3 串行数据输入。
LEDC:LED 屏接口串行时钟输出。
UCC1:USB type-C 双向配置通道 1。
AIN0:ADC 模拟信号输入通道 0。
PA5:通用双向数字 I/0 引脚。
TXD3:UART3 串行数据输出。
UCC2:USB type-C 双向配置通道 2。
AIN1:ADC 模拟信号输入通道 1。
PA6:通用双向数字 I/0 引脚。
RXD2:UART2 串行数据输入。
PWM4:脉宽调制输出通道 4。
AIN10:ADC 模拟信号输入通道 10。
PA0:通用双向数字 I/0 引脚。
SCK1:SPI1 串行时钟输出。
SLVA:被动并口的地址输入,高电平选择命令和状态端口,
低电平选择数据端口。
LED0:LED 屏接口串行数据输出 0。
AIN9:ADC 模拟信号输入通道 9。
PA1:通用双向数字 I/0 引脚。
MOSI1:SPI1 串行数据输出。
SLVS:被动并口的片选控制输入,低电平有效。
LED1:LED 屏接口串行数据输出 1。
AIN8:ADC 模拟信号输入通道 8。
PA2:通用双向数字 I/0 引脚。
TMR3:定时器 3 的捕捉输入 3 和 PWM 输出通道 3。
MISO:SPI1 串行数据输入,2 线模式下复用于输出。
LED2:LED 屏接口串行数据输出 2。
AIN7:ADC 模拟信号输入通道 7。
PA3:通用双向数字 I/0 引脚。
TMR0:定时器 0 的捕捉输入 0 和 PWM 输出通道 0。
4
/LED3
/AIN6
43
25
PA15
I/O/A
MISO
/RXD0_
/AIN5
44
26
PA14
I/O/A
MOSI
/TXD0_
/UBUS
/AIN4
45
27
PA13
I/O/A
SCK0
/AIN3
46
28
PA12
I/O/A
SCS
/AIN2
47
1
PA11
I/O/A
X32KO
/TMR2
48
2
PA10
I/O/A
X32KI
/TMR1
SLVI:被动并口的中断请求输出,低电平有效。
LED3:LED 屏接口串行数据输出 3。
AIN6:ADC 模拟信号输入通道 6。
PA15:通用双向数字 I/0 引脚。
MISO:SPI0 串行数据引脚,主机输入/从机输出。
RXD0_:UART0 的 RXD0 引脚映射。
AIN5:ADC 模拟信号输入通道 5。
PA14:通用双向数字 I/0 引脚。
MOSI:SPI0 串行数据引脚,主机输出/从机输入。
TXD0_:UART0 的 TXD0 引脚映射。
UBUS:USB type-C 总线电压检测输入。
AIN4:ADC 模拟信号输入通道 4。
PA13:通用双向数字 I/0 引脚。
SCK0:SPI0 串行时钟引脚,主机输出/从机输入。
AIN3:ADC 模拟信号输入通道 3。
PA12:通用双向数字 I/0 引脚。
SCS:SPI0 从机模式下的片选输入,低电平有效。
AIN2:ADC 模拟信号输入通道 2。
PA11:通用双向数字 I/0 引脚。
X32KO:低频振荡器的反相输出端,外接 32KHz 晶体的一端。
TMR2:定时器 2 的捕捉输入 2 和 PWM 输出通道 2。
PA10:通用双向数字 I/0 引脚。
X32KI:低频振荡器的输入端,外接 32KHz 晶体的另一端。
TMR1:定时器 1 的捕捉输入 1 和 PWM 输出通道 1。
复用于段式 LCD 驱动的引脚说明
引脚名称
PA0~PA3
类型
A
复用功能
COM0~COM3
PB0~PB23
A
SEG0~SEG23
功能描述
驱动段式 LCD 的各个公共端,根据需要选用部分或全部。
驱动段式 LCD 的各个段,根据需要选用部分或全部。
R16_PIN_ANALOG_IE 寄存器中有 6 位 RB_PIN_SEG*_IE,每个
位同时控制 4 个段引脚,该位为 0 时 4 个引脚用于数字输入
或其它非 LCD 功能,该位为 1 时 4 个引脚用于 LCD 段驱动。
注:
(1)、引脚类型:
I=TTL/CMOS 电平斯密特输入;
O=CMOS 电平三态输出;
A=模拟信号输入或输出;
5VT=支持 5V 信号电压输入。
(2)、引脚的复用功能及映射根据其优先级在表中按从高到底排列,其中 GPIO 功能为最低优先级。
5
第 2 章 系统结构及存储器
2.1 系统结构
下图为 CH579 芯片系统结构框图。
Battery
Monitor
Temperature
Sensor
PGA
AIN0~13
SYS/AUX
ADC
INT
Flash
Control
TouchKey
Timer*4
Capture/PWM
TMR*4
RXD*4,CTS
SCS
SCK*2
MISO*2
MOSI*2
32bits RISC Core
INT*4
SPI*2
INT*2
DMA
Watch-Dog
Timer
INT*n
INT
DMA
Ethernet
ETH Phy
USB
USB Phy
INT
DMA
INT
DMA
PWMx
PWM4~11
DRIVE
LCD
Drive
VIO33
LCD
Control
DMA
Arbiter
DMA
CK60M
CK48M
UD+
UD-
RAM14K
VDDR14K
RAM2K
VDDR2K
INT
BaseBand
BLE/ZigBee
AES
INT
DMA
RTC
INT
WAKE
RF transceiver
PMU
VDDR
ET+/ETER+/ER-
RAM16K
GPIO
CK32K
TIO
TCK
SWD
INT
LED
PA0~PA15,
PB0~PB23
ARM Cortex-M0
INT*4
DMA*2
UART*4
TXD*4,RTS
FlashROM
L&C
ANT
32KHz
Crystal
X32KI
X32KO
XT32M
SLEEP / WAKE
VDCIA
VINTA
LDO
HCLK
POWER
POR
MUX
CLK
Generator
CK32K
LDO
32KHz
RC OSC
LDO
CLK
Divider
VDCID
VSW
VIO33
DC/DC
ULP
LDO
VBAT
VDDR
CK48M CK60M
图 2-1 CH579 内部结构框图
2.2 存储器映射
32MHz
Crystal
Fpll
PLL
480MHZ
CK32M
32MHz
RC OSC
X32MI
X32MO
6
CH579 的寻址空间主要包括 CODE 区/FlashROM、DATA 区/SRAM、外设等几个不同区域,详见下图
所示。
图 2-2 存储器映射图
2.3 存储器映射表
各存储器映射区域地址范围如下表所示:
表 2-1 存储器映射区域地址
地址范围
0x00000000-0x0007FFFF
0x00080000-0x1FFFFFFF
0x20000000-0x20007FFF
0x20008000-0x3FFFFFFF
0x40000000-0x4000FFFF
0x40010000-0xDFFFFFFF
0xE0000000-0xE000FFFF
0xE0010000-0xFFFFFFFF
用途
片上 CODE 区域,非易失存储器
保留
片上 DATA 区域,易失存储器
保留
各种外设
保留
PPB
保留
描述
257KB,FlashROM
32KB,SRAM
多个外设模块
内部外设总线区域
-
7
2.3.1 片上 CODE 区域映射表
表 2-2 CODE 区域地址
地址范围
用途
0x00000000-0x0003E7FF
0x0003E800-0x0003EFFF
0x0003F000-0x0003FFFF
0x00040000-0x000403FF
0x00040400-0x0007FFFF
用户应用程序存储区 CodeFlash
用户非易失数据存储区 DataFlash
系统引导程序存储区 BootLoader
系统非易失配置信息存储区 InfoFlash
保留
描述
250KB
2KB
4KB
1KB
-
地址 0x00040010 的配置信息可以由用户通过工具设置。
表 2-3 用户级非易失配置信息说明
位地址
名称
用途
位 2~位 0
位3
位4
位5
位6
RESERVED
CFG_RESET_EN
CFG_DEBUG_EN
CFG_LONG_RST
CFG_BOOT_EN
位7
CFG_ROM_READ
位 27~位 8
位 31~位 28
RESERVED
VALID_SIG
保留
RST#外部手工复位输入引脚使能
两线仿真调试接口使能
上电复位期间的额外 64mS 延时复位使能
系统引导程序 BootLoader 使能
FlashROM 中的代码和数据保护模式:
0-禁止编程器读出,程序保密;1-允许读出
保留
配置信息有效标志,固定值
默认值
000b
0
0
0
1
0
0FFFFh
0101b
2.3.2 片上 DATA 区域映射表
表 2-4 DATA 区域地址
地址范围
0x20000000-0x20003FFF
0x20004000-0x200077FF
0x20007800-0x20007FFF
用途
仅主电源供电的存储区 RAM16K
主+辅双电源供电的可独立保持存储区 RAM14K
主+辅双电源供电的可独立保持存储区 RAM2K
描述
16KB
14KB
2KB
2.3.3 外设地址分配
CH579 主要包含以下外设,每个外设占用一定的地址空间,外设寄存器的实际访问地址为:基地
址+偏移地址。在后续章节中,寄存器的地址有详细说明。下表为各个外设基地址的分配表。
表 2-5 外设基地址分配表
外设编号
外设名称
外设基址
1
SYS(PMU/RTC/GPIO 等)
0x4000 1000
2
AUX(ADC/TKEY/PLL 等)
0x4000 1400
3
FlashROM-Control
0x4000 1800
4
TMR0
0x4000 2000
5
TMR1
0x4000 2400
6
TMR2
0x4000 2800
7
TMR3
0x4000 2C00
8
UART0
0x4000 3000
9
UART1
0x4000 3400
8
10
11
12
13
14
15
16
17
18
UART2
UART3
SPI0
SPI1
PWMx(PWM4~PWM11)
LCD
LED
USB
ETH
19
Radio:BLE/ZigBee
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
0x4000
3800
3C00
4000
4400
5000
6000
6400
8000
9000
C000
D000
下表为后续章节寄存器描述中“访问”的解释说明:
表 2-6 访问属性说明
缩写词
描述
RF
RO
WO
RZ
WZ
RW
RW1
WA
RWA
只读且读取值为固定值,不受复位影响。
只读。
只写,读取值为 0 或无效。
只读,读取完之后自动清 0。
写则清 0。
可读可写。
可读,写 1 则清 0。
只写且仅安全模式下,读取值为 0 或无效。
可读,仅安全模式下可写。
下表为后续章节中使用的缩写解释说明:
表 2-7 名词缩写说明
缩写词
描述
HSE
外部高频晶体振荡时钟源(建议 32MHz)
HSI
内部高频 RC 时钟振荡源(出厂校准后为 32MHz)
LSE
外部低频晶体振荡时钟源(建议 32KHz)
LSI
内部低频 RC 时钟振荡源(应用软件运行时校准后为 32KHz)
CK32M
高频时钟源(默认 32MHz)
CK32K
低频时钟源(默认 32KHz)
Fpll
PLL 输出时钟(默认频率为 480MHz)
HCLK
系统主频时钟
Fsys
系统主频时钟频率
Tsys
系统主频时钟周期(1/Fsys)
RAM2K
最高地址的 2KB SRAM
RAM14K
次高地址的 14KB SRAM
0x
以其开头的数据表示 16 进制数
H
以其结束的数据表示 16 进制数
B
以其结束的数据表示 2 进制数
9
第 3 章 中断
3.1 中断控制器
系统支持多达 20 组中断信号源,每个中断请求都有独立的触发和屏蔽控制位,有专用的状态位。
3.2 系统嘀嗒 SysTick 校准值
当系统嘀嗒时钟设定为 32MHz,系统嘀嗒校准值固定为 32000,将产生 1mS 时间基准。
3.3 中断和异常向量
下表列出了芯片系统的向量表
表 3-1 中断向量表
位置
-15
-14
-13
-5
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
优先
级
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
优先级
类型
固定
固定
固定
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
可设置
名称
Reset
NMI
Hard fault
SVCall
PendSV
SysTick
TMR0
GPIO
SLAVE
SPI0
BLEL
BLEB
USB
ETH
TMR1
TMR2
UART0
UART1
RTC
ADC
SPI1
LED
TMR3
UART2
UART3
WDOG_BAT
说明
地址
保留
复位
不可屏蔽中断
所有类型的失效
保留
通过 SWI 指令的系统服务调用
保留
可挂起系统服务
系统嘀嗒定时器
TMR0 定时器 0 中断
GPIO 通用 I/O 中断
被动并口中断
SPI0 中断
无线模块的 LLE 中断
无线模块的 BB 中断
USB 中断
以太网中断
TMR1 定时器 1 中断
TMR2 定时器 2 中断
UART0 异步串口 0 中断
UART1 异步串口 1 中断
RTC 实时时钟中断
ADC 中断
SPI1 中断
LED 屏控制中断
TMR3 定时器 3 中断
UART2 异步串口 2 中断
UART3 异步串口 3 中断
看门狗定时器中断/电池低电压中断
0x0000_0000
0x0000_0004
0x0000_0008
0x0000_000C
0x0000_002C
0x0000_0038
0x0000_003C
0x0000_0040
0x0000_0044
0x0000_0048
0x0000_004C
0x0000_0050
0x0000_0054
0x0000_0058
0x0000_005C
0x0000_0060
0x0000_0064
0x0000_0068
0x0000_006C
0x0000_0070
0x0000_0074
0x0000_0078
0x0000_007C
0x0000_0080
0x0000_0084
0x0000_0088
0x0000_008C
10
第 4 章 系统控制
4.1 复位控制
系统支持 6 种复位形式,分别为电源上电复位 RPOR(real power on reset)、外部手工复位
MR(manual reset)、内部软件复位 SR(software reset)、看门狗超时复位 WTR(watch-dog time-out
reset)、下电模式下唤醒导致的全局复位 GRWSM(global reset by waking under shutdown mode)、
常规唤醒导致的局部寄存器复位 LRW(local reset by waking)。
寄存器 R8_GLOB_RESET_KEEP 和 RB_ROM_CODE_OFS,只在 RPOR 和 GRWSM 复位时被复位,而不受其
它复位形式影响。
下图中时序参数和复位特性参数请参考第 20.5 节的时序参数表。
4.1.1 电源上电复位 RPOR
当电源上电时,芯片内部会产生上电复位并延时以等待电源稳定。下图为上电复位过程。
图 4-1 上电复位
4.1.2 外部手工复位 MR
外部手工复位由外部加到 RST#引脚的低电平触发,当复位低电平持续时间大于最小复位脉冲宽
度(Trst)时即触发系统进行复位。
图 4-2 外部复位
4.1.3 内部软件复位 SR
内部软件复位,用于不需要外部干预而自行复位。设置全局复位配置寄存器(R8_RST_WDOG_CTRL)
的位 RB_SOFTWARE_RESET 为 1,即可实现软件复位。该位会自动清 0。
11
4.1.4 看门狗超时复位 WTR
看门狗功能是基于一个 8 位的递增计数器,计数时钟周期为 131072/Fsys。当开启了看门狗超时
复位功能后,一旦此计数器溢出会复位整个系统。
4.1.5 下电模式唤醒后的复位 GRWSM
一旦系统进入下电模式(详见电源管理章节)后,在唤醒信号的作用下,系统将有序执行唤醒操
作,唤醒之后系统将执行全局复位,此复位效果类似于上电复位。
4.1.6 常规唤醒操作引起的复位 LRW
如果系统是从睡眠模式中被唤醒,则在相关电源准备就绪之后会产生复位,此复位为局部复位,
根据需要对睡眠模式下掉电的寄存器进行有选择的复位。
在睡眠模式下,各功能模块的寄存器分为三类:
第一种是属于需数据保持的功能模块的关键寄存器(例如配置/模式等)
,睡眠时由辅助电源继
续供电,数据不丢失,睡眠和唤醒对其数据无影响;
第二种是属于需数据保持的功能模块的可再生寄存器(例如计数器、FIFO 等)
,睡眠时断电,
唤醒后数据是随机数(例如 FIFO 存储单元)或者被复位(例如 FIFO 计数器)
;
第三种是属于无需数据保持的功能模块的寄存器,睡眠时断电,唤醒后数据是随机数(例如
FIFO 存储单元)或者被复位(例如 FIFO 计数器、配置/模式寄存器)
。
LRW 就是用于上述后两种被复位的寄存器。
4.2 安全访问
系统某些寄存器的属性是“RWA”或者“WA”
,表示当前寄存器为安全访问寄存器,可以直接读取
但是写入需要进入安全访问模式。
先写入 R8_SAFE_ACCESS_SIG 寄存器 0x57;
再写入 R8_SAFE_ACCESS_SIG 寄存器 0xA8;
即可进入安全访问模式,此时可以操作具有“RWA/WA”属性的寄存器,此后约 16 个系统主频周期(Tsys)
都处于安全模式下,该有效期内可以改写一个或多个安全类寄存器,超出上述有效期后将自动终止安
全模式。或者可提前向 R8_SAFE_ACCESS_SIG 寄存器写入 0x00 提前终止安全模式。
4.3 寄存器描述
名称
R8_SAFE_ACCESS_SIG
R8_CHIP_ID
R8_SAFE_ACCESS_ID
R8_WDOG_COUNT
R8_RESET_STATUS
R8_GLOB_CFG_INFO
R8_RST_WDOG_CTRL
R8_GLOB_RESET_KEEP
R8_CFG_FLASH
R32_FLASH_DATA
R32_FLASH_ADDR
R8_FLASH_COMMAND
R8_FLASH_PROTECT
R16_FLASH_STATUS
表 4-1 系统控制相关寄存器列表
访问地址
描述
0x40001040
0x40001041
0x40001042
0x40001043
0x40001044
0x40001045
0x40001046
0x40001047
0x4000104A
0x40001800
0x40001804
0x40001808
0x40001809
0x4000180A
安全访问标记寄存器
芯片 ID 寄存器
安全访问 ID 寄存器
看门狗计数器寄存器
复位状态寄存器
全局配置信息状态寄存器
看门狗及复位配置寄存器
复位保持寄存器
FlashROM 配置寄存器
FlashROM 数据寄存器
FlashROM 地址寄存器
FlashROM 命令寄存器
FlashROM 保护控制寄存器
FlashROM 状态寄存器
复位值
0x00
0x79
0x04
0x00
0x01
0xEX
0x00
0x00
0x0X
0xXXXXXXXX
0xXXXXXXXX
0x00
0x00
0x0X00
12
安全访问标记寄存器(R8_SAFE_ACCESS_SIG)
位
名称
访问
[7:0]
R8_SAFE_ACCESS_SIG
WO
7
[6:4]
Reserved
RB_SAFE_ACC_TIMER
R0
RO
3
RB_SAFE_ACC_ACT
RO
2
Reserved
R0
RB_SAFE_ACC_MODE
RO
[1:0]
描述
安全访问标记寄存器。
部分寄存器(访问属性为 RWA)为保护寄
存器,必须进入安全访问模式才能进行
写操作。对该寄存器先写入 0x57,再写
入 0xA8,即可进入安全访问模式,并且
限时约 16 个主时钟周期(Tsys),超过则
自动保护。可以写入其它任意值强制直
接退出安全访问模式,回到保护状态。
保留。
当前安全访问时间计数。
当前安全访问模式状态:
1:未锁定/安全访问模式下,可写;
0:锁定,RWA 属性寄存器不可改写。
保留。
当前安全访问模式状态:
11:安全模式,可写入属性 RWA 寄存器;
其他:非安全模式。
复位值
00h
0
000b
0
0
00b
芯片 ID 寄存器(R8_CHIP_ID)
位
[7:0]
名称
R8_CHIP_ID
访问
RF
描述
固定值 79h,用于识别芯片。
复位值
79h
安全访问 ID 寄存器(R8_SAFE_ACCESS_ID)
位
[7:0]
名称
R8_SAFE_ACCESS_ID
访问
RF
描述
复位值
04h
描述
可预置初值的看门狗计数器,一直自动
递增,可从 0xFF 循环到 0x00 再继续。
计数周期 = 131072/Fsys。
复位值
描述
复位值
000b
固定值 04h。
看门狗计数器寄存器(R8_WDOG_COUNT)
位
[7:0]
名称
R8_WDOG_COUNT
复位状态寄存器(R8_RESET_STATUS)
位
名称
[7:5] Reserved
访问
RW
访问
R0
4
RB_ROM_CODE_OFS
RWA
3
Reserved
R0
RB_RESET_FLAG
RO
[2:0]
保留。
选择用户程序代码在 FlashROM 的起始
偏移地址,该值不受 MR、SR 或 WTR 影响,
仅在 RPOR 和 GRWSM 有效时才能清零:
0:0x000000;
1:0x008000(跳过 ROM 中前 32KB)
。
保留。
最近一次复位状态:
000:软件复位 SR(RB_WDOG_RST_EN=0
时软件复位可产生此状态,否则可复位
但不产生此状态)
;
00h
0
0
001b
13
001:上电复位 RPOR;
010:看门狗超时复位 WTR;
011:外部手动复位 MR;
101:从下电模式唤醒时的复位 GRWSM;
100/110/111:唤醒复位 LRW,且此前的
上一次复位分别是 SR/WTR/MR。
全局配置信息状态寄存器(R8_GLOB_CFG_INFO)
位
[7:6]
名称
Reserved
访问
R0
5
RB_BOOT_LOADER
RO
4
RB_CFG_DEBUG_EN
RO
3
RB_CFG_BOOT_EN
RO
2
RB_CFG_RESET_EN
RO
1
Reserved
RO
0
RB_CFG_ROM_READ
RO
描述
保留。
Bootloader 状态:
1:当前处于 Bootloader 状态;
0:当前处于用户程序状态。
两线仿真调试接口使能状态:
1:可仿真调试,可读取 FlashROM;
0:禁止仿真调试。
系统引导程序 BootLoader 使能状态:
1:已启用;
0:未启用。
RST#外部手动复位输入使能状态:
1:已启用;
0:未启用。
保留。
FlashROM 代码和数据区保护状态:
1:外部编程器可读;
0:保护,外部不可访问,程序保密。
复位值
11b
1/0
0
1
0
0
0
看门狗及复位配置寄存器(R8_RST_WDOG_CTRL)
位
访问
描述
复位值
Reserved
RO
000b
4
RB_WDOG_INT_FLAG
RW1
3
Reserved
RO
2
RB_WDOG_INT_EN
RWA
1
RB_WDOG_RST_EN
RWA
0
RB_SOFTWARE_RESET
WA/
WZ
保留。
看门狗定时器中断标志:
1:发生了看门狗计数溢出,即检测到
R8_WDOG_COUNT 递增 0xFF 到 0x00;
0:看门狗计数未溢出。
标志写 1 清 0,或者重新加载看门狗计
数器值(R8_WDOG_COUNT) 清 0,或者执
行__SEV() 清 0。
保留。
看门狗定时器中断使能位:
1:使能,看门狗计数溢出后产生中断;
0:关闭看门狗定时器中断。
看门狗超时复位使能位:
1:使能,看门狗计数溢出后系统复位;
0:仅作为看门狗定时器。
注:此位置 1 后软件复位操作将不影响
RB_RESET_FLAG 状态。
系统软件复位控制,复位后将自动清零:
1:执行系统软件复位;
0:空闲,无动作。
[7:5]
名称
复位保持寄存器(R8_GLOB_RESET_KEEP)
0
0
0
0
0
14
位
[7:0]
名称
R8_GLOB_RESET_KEEP
访问
RW
描述
复位保持寄存器,该寄存器值不受手动
复位、软件复位、看门狗复位或者普通
唤醒复位的影响。
复位值
描述
FlashROM 突发访问时忙使能位:
1:有等待(建议);0:无等待。
保留。
FlashROM 配置数据,写入时必须保持原
值不变。
复位值
00h
FlashROM 配置寄存器(R8_CFG_FLASH)
位
7
名称
访问
RB_FLASH_BUSY_EN
RWA
[6:4]
Reserved
RO
[3:0]
RB_CFG_FLASH_X
RWA
FlashROM 数据寄存器(R32_FLASH_DATA)
位
名称
访问
[31:0]
R32_FLASH_DATA
RW
FlashROM 地址寄存器(R32_FLASH_ADDR)
位
名称
访问
[31:0] R32_FLASH_ADDR
RW
0
000b
XXXXb
描述
复位值
FlashROM 数据寄存器。
XXXXXXXXh
描述
FlashROM 地址寄存器。
复位值
XXXXXXXXh
FlashROM 命令寄存器(R8_FLASH_COMMAND)
位
[7:0]
名称
R8_FLASH_COMMAND
访问
WO
描述
0x9A:FlashROM 编程操作命令;
0xA6:FlashROM 扇区擦除操作命令。
复位值
00h
FlashROM 保护控制寄存器(R8_FLASH_PROTECT)
位
[7:6]
[5:4]
名称
RB_ROM_WE_MUST_10
Reserved
访问
WO
RO
3
RB_ROM_CODE_WE
RW
2
RB_ROM_DATA_WE
RW
Reserved
RO
[1:0]
FlashROM 状态寄存器(R16_FLASH_STATUS)
位
名称
访问
[15:11] Reserved
RO
[10:9]
Reserved
RO
8
RB_ROM_READ_FREE
RO
7
6
Reserved
RB_ROM_ADDR_OK
RO
RO
描述
必须写 10b,否则无法写入。
保留。
FlashROM 程序存储区 CodeFlash 的擦除
/编程使能位:
1:允许擦除/编程; 0:擦写保护。
FlashROM 数据存储区 DataFlash 的擦除
/编程使能位:
1:允许擦除/编程; 0:擦写保护。
保留。
复位值
10b
00b
描述
复位值
00000b
01b
保留。
保留。
FlashROM 代码和数据区保护状态:
1:外部编程器可读;
0:保护,外部不可访问,程序保密。
保留。
FlashROM 擦除/编程操作地址有效标志,
0
0
00b
0
0
0
15
[5:2]
Reserved
RO
1
RB_ROM_CMD_ERR
RO
0
RB_ROM_CMD_TOUT
RO
操作前后都可以进行确认:
1:地址有效;
0:地址无效。
保留。
FlashROM 命令响应错误:
1:未知命令;
0:命令被接受。
FlashROM 操作结果:
1:超时;
0:成功。
0000b
0
0
4.4 Flash-ROM 操作步骤
1.擦除 Flash-ROM,将目标扇区中全部数据位变为 1:
(1)
、设置 R8_FLASH_PROTECT 寄存器,开启擦除/编程使能 RB_ROM_DATA_WE 或 RB_ROM_CODE_WE
位,对应 DataFlash 或 CodeFlash,InfoFlash 则需要 RB_ROM_DATA_WE 和 RB_ROM_CODE_WE 都开启;
(2)
、设置地址寄存器 R32_FLASH_ADDR,写入 32 位地址,低 8 位无效,一次擦除整块 512 字节;
(3)
、设置命令寄存器 R8_FLASH_COMMAND,写入 0A6H,执行扇区擦除操作,操作期间 MCU 自动
暂停运行;
(4)
、操作完成后程序恢复运行,此时查询状态寄存器 R16_FLASH_STATUS 查看此次操作状态;
如果要擦除多个扇区,则循环(2)~(4)步骤;
(5)
、再次设置 R8_FLASH_PROTECT 寄存器,关闭擦除/编程使能控制位(RB_ROM_DATA_WE=0 或
RB_ROM_CODE_WE=0)
。
2.写 Flash-ROM,将目标字中的部分数据位从 1 变为 0(无法将位数据从 0 变为 1)
:
(1)
、设置 R8_FLASH_PROTECT 寄存器,开启擦除/编程使能 RB_ROM_DATA_WE 或 RB_ROM_CODE_WE
位,对应 DataFlash 或 CodeFlash,InfoFlash 则需要 RB_ROM_DATA_WE 和 RB_ROM_CODE_WE 都开启;
(2)
、设置地址寄存器 R32_FLASH_ADDR,写入 32 位地址,需要 4 字节对齐;
(3)
、设置数据寄存器 R32_FLASH_DATA 为要写入的 4 字节数据;
(4)
、设置命令寄存器 R8_FLASH_COMMAND,写入 09AH,执行编程/写操作,操作期间 MCU 自动暂
停运行;
(5)
、操作完成后程序恢复运行,此时查询状态寄存器 R16_FLASH_STATUS 查看此次操作状态;
如果要写多个数据,则循环(2)~(4)步骤;
(5)
、再次设置 R8_FLASH_PROTECT 寄存器,关闭擦除/编程使能控制位(RB_ROM_DATA_WE=0 或
RB_ROM_CODE_WE=0)
。
3.读 Flash-ROM:
通过指向程序存储空间的指针,读取目标地址的 code 或 data。
4.5 芯片唯一 ID 号
每个芯片出厂时都具有唯一的 ID 号,即芯片身份识别号。该 ID 数据及其校验和共 8 字节,存储
于芯片内部只读区域中,具体操作请参考例子程序。
16
第 5 章 电源控制
5.1 电源管理
CH579 内置有电源管理单元 PMU。系统电源从 VIO33 输入,通过内置的多个 LDO 电压调整器为系
统的 FlashROM、系统的数字电路(包括内核、USB、以太网和 LED 等)和系统的模拟电路(包括高频
振荡器、PLL、ADC 和 RF 收发器等)提供所需的电源。
正常工作时的电源供电分为两种方式:直接电源和 DC-DC 转换。在正常工作之外,CH579 提供了
4 种低功耗模式:空闲模式、暂停模式、睡眠模式、下电模式。
上电后默认不启用 DC-DC,而是提供直通电源,其电压纹波较小。为了降低正常运行时的系统功
耗,可以选择启用 DC-DC 提升电源能耗利用率,工作电流通常将下降到直通方式的 60%左右。
为了降低睡眠时的系统功耗,可以选择关闭系统主 LDO,切换成由系统内置的超低功耗 ULP-LDO
提供辅助电源。当系统进入睡眠或下电模式时,除了电源管理和 RTC 寄存器等常供电单元外,系统的
高 2KB 和 14KB 的 SRAM、内核及所有的外设皆可选择是否维持供电,LSE/LSI 可选择是否开启。
图 5-1 电源系统
5.2 寄存器描述
名称
R16_SLP_CLK_OFF
R8_SLP_CLK_OFF0
R8_SLP_CLK_OFF1
R8_SLP_WAKE_CTRL
R8_SLP_POWER_CTRL
表 5-1 功耗管理相关寄存器列表
访问地址
描述
0x4000100C
睡眠时钟控制寄存器
0x4000100C
睡眠时钟控制寄存器 0
0x4000100D
睡眠时钟控制寄存器 1
0x4000100E
唤醒事件配置寄存器
0x4000100F
外设睡眠电源控制寄存器
复位值
0x0000
0x00
0x00
0x20
0x08
17
R16_POWER_PLAN
R8_AUX_POWER_ADJ
R8_BAT_DET_CTRL
R8_BAT_DET_CFG
R8_BAT_STATUS
0x40001020
0x40001022
0x40001024
0x40001025
0x40001026
睡眠时钟控制寄存器 0(R8_SLP_CLK_OFF0)
位
名称
访问
7
RB_SLP_CLK_UART3
RWA
6
RB_SLP_CLK_UART2
RWA
5
RB_SLP_CLK_UART1
RWA
4
RB_SLP_CLK_UART0
RWA
3
RB_SLP_CLK_TMR3
RWA
2
RB_SLP_CLK_TMR2
RWA
1
RB_SLP_CLK_TMR1
RWA
0
RB_SLP_CLK_TMR0
RWA
睡眠时钟控制寄存器 1(R8_SLP_CLK_OFF1)
位
名称
访问
7
RB_SLP_CLK_BLE
RWA
6
RB_SLP_CLK_LED
RWA
5
RB_SLP_CLK_ETH
RWA
4
RB_SLP_CLK_USB
RWA
3
RB_SLP_CLK_LCD
RWA
2
RB_SLP_CLK_PWMX
RWA
1
RB_SLP_CLK_SPI1
RWA
0
RB_SLP_CLK_SPI0
RWA
唤醒事件配置寄存器(R8_SLP_WAKE_CTRL)
位
名称
访问
[7:6] Reserved
RO
5
RB_SLP_BAT_WAKE
RWA
睡眠电源管理寄存器
辅助电源调整控制寄存器
电池电压检测控制寄存器
电池电压检测配置寄存器
电池状态寄存器
描述
串口 3 时钟源:
1:关闭;
0:开启。
串口 2 时钟源:
1:关闭;
0:开启。
串口 1 时钟源:
1:关闭;
0:开启。
串口 0 时钟源:
1:关闭;
0:开启。
定时器 3 时钟源:
1:关闭;
0:开启。
定时器 2 时钟源:
1:关闭;
0:开启。
定时器 1 时钟源:
1:关闭;
0:开启。
定时器 0 时钟源:
1:关闭;
0:开启。
描述
BLE 控制器时钟源:
1:关闭;
0:开启。
LED 控制器时钟源:
1:关闭;
0:开启。
ETH 控制器时钟源:
1:关闭;
0:开启。
USB 控制器时钟源:
1:关闭;
0:开启。
LCD 控制器时钟源:
1:关闭;
0:开启。
PWMx 时钟源:
1:关闭;
0:开启。
SPI1 时钟源:
1:关闭;
0:开启。
SPI0 时钟源:
1:关闭;
0:开启。
描述
保留。
使能电池低压事件唤醒系统:
0x01DF
0xXX
0x00
0x01
0x00
复位值
0
0
0
0
0
0
0
0
复位值
0
0
0
0
0
0
0
0
复位值
00b
1
18
4
RB_SLP_GPIO_WAKE
RWA
3
RB_SLP_RTC_WAKE
RWA
2
Reserved
RO
1
RB_SLP_ETH_WAKE
RWA
0
RB_SLP_USB_WAKE
RWA
1:使能;
0:关闭。
使能 GPIO 事件唤醒系统:
1:使能;
0:关闭。
使能 RTC 事件唤醒系统:
1:使能;
0:关闭。
保留。
使能以太网事件唤醒系统:
1:使能;
0:关闭。
使能 USB 事件唤醒系统:
1:使能;
0:关闭。
外设睡眠电源控制寄存器(R8_SLP_POWER_CTRL)
位
名称
访问
[7:6]
Reserved
RO
5
RB_SLP_CLK_RAM2K
RWA
4
RB_SLP_CLK_RAMX
RWA
3
RB_SLP_ROM_PWR_DN
RWA
2
Reserved
RO
1
RB_SLP_ETH_PWR_DN
RWA
0
Reserved
RO
0
0
0
0
0
描述
复位值
保留。
RAM2K 的 SRAM 时钟控制:
1:关闭;
0:开启。
主 SRAM(RAM16K+RAM14K)的时钟控制:
1:关闭;
0:开启。
在暂停模式下,FlashROM 掉电使能:
1:暂停模式下使 ROM 进入停用状态;
0:暂停模式下使 ROM 保持待机状态。
保留。
以太网收发器 ETH PHY 掉电使能:
1:掉电/禁用; 0:保持供电。
保留。
00b
描述
睡眠电源规划控制使能:
1:开启规划; 0:关闭或结束规划。
开启电源规划,用于稍后进入睡眠或下
电模式时执行,执行后该位自动清 0。
保留,必须写 0010b。
DC-DC 偏置电路使能(即时生效)
:
1:使能;
0:禁止。
DC-DC 使能位(即时生效)
:
1:DC-DC 使能,直通电源关闭;
0:DC-DC 禁止,直通电源开启。
保留,必须写 1。
系统电源控制(睡眠规划)
:
1:提供系统电源(在 VSW 引脚)
;
0:关闭系统电源,规划将进入睡眠模式
或者下电模式。
保留,必须写 0。
保留。
RAM14K 的 SRAM 供电(睡眠规划)
:
1:双供电;
0:不用辅助电源。
USB 和 RF 配置供电(睡眠规划)
:
复位值
0
0
1
0
0
0
睡眠电源管理寄存器(R16_POWER_PLAN)
位
名称
访问
RB_PWR_PLAN_EN
RWA/
WZ
[14:11]
RB_PWR_MUST_0010
RWA
10
RB_PWR_DCDC_PRE
RWA
9
RB_PWR_DCDC_EN
RWA
8
RB_PWR_MUST_1
RWA
7
RB_PWR_SYS_EN
RWA
6
5
Reserved
Reserved
RWA
RO
4
RB_PWR_RAM14K
RWA
3
RB_PWR_EXTEND
RWA
15
0
0000b
0
0
1
1
1
0
1
1
19
1:双供电;
0:不用辅助电源。
内核和基本外设供电(睡眠规划)
:
1
2
RB_PWR_CORE
RWA
1:双供电;
0:不用辅助电源。
RAM2K 的 SRAM 供电(睡眠规划)
:
1
1
RB_PWR_RAM2K
RWA
1:双供电;
0:不用辅助电源。
0
Reserved
RO
保留。
1
此寄存器除 RB_PWR_DCDC_PRE 和 RB_PWR_DCDC_EN 之外均为睡眠规划预置,其电源配置在进入低功耗
的睡眠模式和下电模式后生效。
辅助电源调整控制寄存器(R8_AUX_POWER_ADJ)
位
名称
访问
[7:6]
[5:3]
Reserved
Reserved
RO
RWA
[2:0]
RB_ULPLDO_ADJ
RWA
描述
复位值
保留。
保留,写入时必须保持原值不变。
超低功耗 LDO 的辅助电源输出电压调节
值(数值仅供参考,不建议修改):
000:0.908V; 001:0.931V;
010:0.954V; 011:0.977V;
100:1.000V; 101:1.023V;
110:1.046V; 111:1.069V。
00b
1XXb
XXXb
(100b)
电池电压检测控制寄存器(R8_BAT_DET_CTRL)
位
[7:4]
名称
Reserved
访问
描述
复位值
RO
保留。
0000b
电池低电压中断使能:
3
RB_BAT_LOW_IE
RWA
0
1:使能;
0:关闭。
电池超低电压中断使能:
2
RB_BAT_LOWER_IE
RWA
0
1:使能;
0:关闭。
1
Reserved
RO
保留。
0
电池电压检测功能使能:
1:使能低压检测,同时开启基准电压等
0
0
RB_BAT_DET_EN
RWA
模块,睡眠模式下电流 210uA;
0:关闭。
注:如果电池电压达到超低电压检测阈值,且 RB_BAT_LOWER_IE 和 RB_BAT_LOW_IE 都使能(正常情况
下只使能其中之一)
,那么将产生 NMI 不可屏蔽中断,等效于提高中断优先级。
电池电压检测配置寄存器(R8_BAT_DET_CFG)
位
名称
访问
[7:2] Reserved
RO
[1:0]
RB_BAT_LOW_VTH
电池状态寄存器(R8_BAT_STATUS)
位
名称
[7:2] Reserved
RWA
访问
RO
描述
保留。
设置低电压及超低电压的检测阈值:
(超低电压参考阈值,低电压参考阈值)
00:1.97V
, 2.25V;
01:2.05V
, 2.33V;
10:2.13V
, 2.41V;
11:2.21V
, 2.49V。
描述
保留。
复位值
000000b
01b
复位值
000000b
20
1
RB_BAT_STAT_LOW
RO
0
RB_BAT_STAT_LOWER
RO
电池电压处于低电压状态:
1:低于低电压阈值;
0:否。
电池电压处于超低电压状态:
1:低于超低电压阈值; 0:否。
0
0
5.3 低功耗模式
在系统复位后,微控制器处于正常运行状态。当 MCU 不需要运行时,可以选择适当的低功耗模式
来节省功耗。用户需要根据最低电源消耗、最快启动时间和可用唤醒事件等条件,选定一个合适的低
功耗模式。
芯片提供以下 4 种主要的低功耗模式:
l 空闲模式(Idle)
所有外设保持正常供电,内核停止运行,时钟系统运转。检测到唤醒事件后,可以立即唤醒。
l 暂停模式(Halt)
在空闲模式的基础上,时钟系统停止,可将 FlashROM 进入停机模式,进一步降低功耗。检测到
唤醒事件后,首先时钟运转,然后唤醒内核运行。
l 睡眠模式(Sleep):
主 LDO 关闭,由超低功耗 ULP-LDO 维持 PMU、内核和基本外设供电,LSE 或 LSI 可以选择是否开
启,RAM2K、RAM14K、USB 和 RF 配置可以选择是否维持供电。检测到唤醒事件后,首先主 LDO 开
启,然后时钟运转,最后唤醒内核,程序继续运行,需要时可以重新设置到更高主频。
l 下电模式(Shutdown)
:
在睡眠模式的基础上,关闭了内核和基本外设以及 USB 和 RF 配置,LSE 或 LSI 可以选择是否开
启,RAM2K、RAM14K 可以选择是否维持供电。检测到唤醒事件后,PMU 将执行 GRWSM 复位,软件
可根据复位标志 RB_RESET_FLAG 和可选的 RAM 中的保持数据区分于 RPOR。
下表详细描述了几种低功耗模式的特征及唤醒途径:
表 5-2 低功耗模式
模式
空闲模式
Idle
暂停模式
Halt
睡眠模式
Sleep
下电模式
Shutdown
特征
外设均正常供电,内核停止运行,
时钟系统运转,但可以通过外设时
钟控制位选择关闭各外设的时钟。
进入条件
唤醒事件
设置内核控制位 SCR=0, I/O 或 RTC
设 置 唤 醒 条 件 后 执 行 或 BAT 或
USB 或 ETH
__WFI()或__WFE()。
功耗
外设均正常供电,内核停止运行,
时钟系统停止
(PLL/HSE/HSI 停止)
。
可以选择 FlashROM 待机或停用。
主 LDO 关闭,超低功耗 ULP-LDO 维
持 PMU、内核和基本外设供电,
LSE 或 LSI 可以选择是否开启,
RAM2K、RAM14K、USB 和 RF 配置可
以选择是否维持供电。
超低功耗 LDO 维持 PMU 供电,
LSE 或 LSI 可以选择是否开启,
RAM2K、RAM14K 可以选择是否维持
供电,用于保持数据。
设置内核控制位 SCR=1, I/O 或 RTC
设 置 唤 醒 条 件 后 执 行 或 BAT 或
__WFI()或__WFE()。
USB 或 ETH
420uA~
470uA
设置内核控制位 SCR=1,
设置 POWER_PLAN,
设置唤醒条件后执行
__WFI()或__WFE()。
I/O 或 RTC
或 BAT。
芯片唤醒后
会继续运行
0.6uA~
2.0uA
设置内核控制位 SCR=1,
设置 POWER_PLAN,
设置唤醒条件后执行
__WFI()或__WFE()。
I/O 或 RTC
或 BAT。
芯片唤醒后
会自动复位
0.2uA~
1.3uA
1.15mA~
1.5mA
下表描述了几种低功耗模式的详细配置:
表 5-3 低功耗模式详细配置示例
规划配置
SYS_EN
RAM2K RAM14K
CK32K
CORE
EXTEND 功耗(仅供参考)
维持供电 系统电源 数据区 数据区 LSE/LSI 二选一 M0 内核和 USB 和 PMU 和 RTC 寄存器
的功能
VSW
2KB
14KB
RTC 唤醒
基本外设 RF 配置 常供电,约 0.2uA
21
下电模式
常用配置
睡眠模式
常用配置
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0.2uA
0.5uA
0.5uA~0.6uA
0.8uA~0.9uA
0.6uA
0.9uA~1.0uA
1.1uA
1.4uA~1.5uA
1.8uA~2.0uA
5.4 DC-DC 操作步骤
启用 DC-DC 电源模式(启用前需确认外部硬件电路上存在 DC-DC 所需的电感和电容)
(1)
、进入安全访问模式:寄存器 R8_SAFE_ACCESS_SIG 先写入 0x57,再写入 0xA8;
(2)
、打开 DC-DC 偏置电路:将寄存器 R16_POWER_PLAN 的 RB_PWR_DCDC_PRE 置 1;
(3)
、延时至少 10uS;
(4)
、再次进入安全访问模式:寄存器 R8_SAFE_ACCESS_SIG 先写入 0x57,再写入 0xA8;
(5)
、打开 DC-DC 电源:将寄存器 R16_POWER_PLAN 的 RB_PWR_DCDC_EN 置 1,启用 DC-DC。
关闭 DC-DC,切换到直通电源模式
(1)
、进入安全访问模式:寄存器 R8_SAFE_ACCESS_SIG 先写入 0x57,再写入 0xA8;
(2)
、清零寄存器 R16_POWER_PLAN 的 RB_PWR_DCDC_EN 和 RB_PWR_DCDC_PRE 控制位。
22
第 6 章 系统时钟及 RTC
6.1 系统时钟简介
以下几种不同的时钟源可被选择来驱动系统时钟 HCLK(Fsys)
— HSE 或 HSI 原始时钟 CK32M。
— HSE 或 HSI 之分频。
— 内部 PLL(默认 480MHz)分频。
— LSE 或 LSI 原始时钟 CK32K。
任意一个时钟源都可以被独立地启动或关闭,由此可以优化系统功耗。
6.1.1 时钟结构
图 6-1 时钟树框图
23
上图是系统内部的时钟树结构,其中的 RTC 和 LCD 功能使用的是 32KHz 时钟源 CK32K,所以使用
这些功能必须打开低频时钟;USB 和以太网的数据传输依靠 PLL 分频后产生的时钟源;其他的外设驱
动时钟以及数字控制逻辑由系统时钟或者再分频驱动。
6.2 RTC 简介
实时时钟(RTC)是一个独立的定时器,包含一组连续计数的计数器。在相应软件配置下,可提
供简单日历功能。修改计数器的值可以重新设置当前的时间和日期。
RTC 寄存器与 PMU 一样常供电,在系统复位或从低功耗模式唤醒后,RTC 的设置和时间维持不变。
6.2.1 主要特性
l 可配置 2 种模式:
— 定时模式:软件可选择固定周期时间(定时)产生中断通知。
— 触发模式:匹配一个软件预设的目标闹钟时间,产生中断通知。
l 3 组 16 位计数器,提供了 CK32K 原始周期、2 秒周期、1 天周期的计数。
6.3 寄存器描述
表 6-1 时钟及振荡器控制相关寄存器列表
名称
R16_CLK_SYS_CFG
R8_HFCK_PWR_CTRL
R16_INT32K_TUNE
R8_XT32K_TUNE
R8_CK32K_CONFIG
R8_INT32M_CALIB
R8_XT32M_TUNE
R16_OSC_CAL_CNT
R8_OSC_CAL_CTRL
R8_PLL_CONFIG
R8_RTC_FLAG_CTRL
R8_RTC_MODE_CTRL
R32_RTC_TRIG
R16_RTC_CNT_32K
R16_RTC_CNT_2S
R32_RTC_CNT_DAY
访问地址
0x40001008
0x4000100A
0x4000102C
0x4000102E
0x4000102F
0x4000104C
0x4000104E
0x40001050
0x40001052
0x4000104B
0x40001030
0x40001031
0x40001034
0x40001038
0x4000103A
0x4000103C
系统时钟配置寄存器(R16_CLK_SYS_CFG)
位
名称
访问
15
RB_XO_DI
RO
[14:10] Reserved
RO
9
RB_CLK_OSC32M_XT
RWA
8
Reserved
RO
RB_CLK_SYS_MOD
RWA
[7:6]
描述
系统时钟配置寄存器
高频时钟模块电源控制寄存器
内部 32KHz 时钟校准寄存器
外部 32KHz 时钟谐振控制寄存器
32KHz 振荡器配置寄存器
内部 32MHz 时钟校准寄存器
外部 32MHz 时钟谐振控制寄存器
振荡器频率校准计数值寄存器
振荡器频率校准控制寄存器
PLL 配置寄存器
RTC 标志和控制寄存器
RTC 模式配置寄存器
RTC 触发数值寄存器
RTC 基于 32768Hz 计数值寄存器
RTC 以 2S 为单位的计数值寄存器
RTC 以天为单位的计数值寄存器
描述
X32MO 引脚的输入状态采样值。
保留。
CK32M(32MHz)时钟源选择位:
1:外部 32MHz 振荡器;
0:内部 32MHz 振荡器。
保留。
HCLK 系统时钟源模式选择:
00:CK32M(默认 32MHz)进行分频;
01:PLL(默认 480MHz)进行分频;
复位值
0x05
0x0C
0x0200
0xC3
0xX2
0xXX
0x31
0xXXXX
0x02
0xX0
0x30
0x02
0x00000000
0xXXXXXXXX
0xXXXXXXXX
0x0000XXXX
复位值
0
00000b
0
0
00b
24
10:CK32M(默认 32MHz)作为 HCLK;
11:CK32K(默认 32KHz)作为 HCLK。
保留。
HCLK 输出时钟分频系数,0 代表 16。
5
Reserved
RO
0
[4:0]
RB_CLK_PLL_DIV
RWA
00101b
计算:
Fck32m = RB_CLK_OSC32M_XT ? XT_32MHz : RC_32MHz;
Fck32k = RB_CLK_OSC32K_XT ? XT_32KHz : RC_32KHz;
Fpll = Fck32m * 15 = 480MHz;
Fsys = RB_CLK_SYS_MOD[1] ? ( RB_CLK_SYS_MOD[0] ? Fck32k : Fck32m ) :
( ( RB_CLK_SYS_MOD[0] ? Fpll : Fck32m ) / RB_CLK_PLL_DIV );
上电默认值 Fsys = Fck32m / RB_CLK_PLL_DIV = 32MHz / 5 = 6.4MHz;
Fsys 范围: 32KHz,1MHz~16MHz,32MHz,15MHz~44MHz
高频时钟模块电源控制寄存器(R8_HFCK_PWR_CTRL)
位
[7:6]
5
名称
Reserved
Reserved
访问
RWA
RO
4
RB_CLK_PLL_PON
RWA
3
RB_CLK_INT32M_PON
RWA
2
RB_CLK_XT32M_PON
RWA
Reserved
RO
[1:0]
描述
保留,必须写 00。
保留。
PLL 电源控制位:
1:上电;
0:掉电。
内部 32MHz 振荡器电源控制位:
1:上电;
0:掉电。
外部 32MHz 振荡器电源控制位:
1:上电;
0:掉电。
保留。
内部 32KHz 时钟校准寄存器(R16_INT32K_TUNE)
位
名称
访问
[15:10]
[9:0]
Reserved
RB_INT32K_TUNE
RO
RWA
描述
保留。
内部 RC 32KHz 时钟频率校准值。
复位值
00b
0
0
1
1
00b
复位值
000000b
1000000000b
外部 32KHz 时钟谐振控制寄存器(R8_XT32K_TUNE)
位
名称
访问
描述
复位值
选择与外部 32KHz 晶体匹配的内置负载
电容(可能影响 RTC 时钟精度):
0000:内置负载电容量为 2pF;
[7:4]
RB_XT32K_C_LOAD
RWA 其它:
1100b
电容量 = RB_XT32K_C_LOAD + 12pF,
0001b~1111b 分别对应约 13pF~27pF。
根据所用晶体参数选择。
[3:2]
Reserved
RO
保留。
00b
外部 32KHz 振荡器偏置电流选择:
[1:0]
RB_XT32K_I_TUNE
RWA 00:70%额定电流;01:额定电流;
11b
10:140%额定电流;11:200%额定电流。
32KHz 振荡器配置寄存器(R8_CK32K_CONFIG)
位
名称
访问
描述
7
RB_32K_CLK_PIN
RO
32KHz 时钟引脚状态(异步信号)。
[6:3]
Reserved
RO
保留。
复位值
X
0000b
25
2
RB_CLK_OSC32K_XT
RWA
1
RB_CLK_INT32K_PON
RWA
0
RB_CLK_XT32K_PON
RWA
CK32K(32KHz)时钟源选择位:
1:外部 32KHz 振荡器;
0:内部 32KHz 振荡器。
内部 32KHz 振荡器电源控制位:
1:上电;
0:掉电。
外部 32KHz 振荡器电源控制位:
1:上电;
0:掉电。
0
1
0
内部 32MHz 时钟校准寄存器(R8_INT32M_CALIB)
位
[7:0]
名称
R8_INT32M_CALIB
访问
RWA
描述
内部 RC 32MHz 时钟频率校准值。
复位值
XXXXXXXXb
外部 32MHz 时钟谐振控制寄存器(R8_XT32M_TUNE)
位
名称
访问
描述
复位值
7
Reserved
RO
保留。
0
选择与外部 32MHz 晶体匹配的内置负载
电容(可能影响无线通讯):
[6:4]
RB_XT32M_C_LOAD
RWA 电容量 = RB_XT32M_C_LOAD * 2 + 10pF, 011b
000b~111b 分别对应约 10pF~24pF。
根据所用晶体参数选择,常用为 111b。
[3:2]
Reserved
RO
保留。
00b
外部 32MHz 振荡器偏置电流选择:
[1:0]
RB_XT32M_I_BIAS
RWA 00:75%额定电流;01:额定电流;
01b
10:125%额定电流;11:150%额定电流。
振荡器频率校准计数值寄存器(R16_OSC_CAL_CNT)
位
名称
访问
描述
[15:12] Reserved
RO
保留。
对 5 个 CK32K 周期基于系统主频的计数
[11:0]
RB_OSC_CAL_CNT
RO
值,用于校准内部 32KHz 振荡器频率。
振荡器频率校准控制寄存器(R8_OSC_CAL_CTRL)
位
名称
访问
描述
[7:2]
Reserved
RO
保留。
振荡器频率校准计数器计数状态位:
1
RB_OSC_CNT_HALT
RO
1:正在暂停计数;0:正在计数中。
振荡器频率校准计数器使能位:
0
RB_OSC_CNT_EN
RWA
1:使能计数;
0:禁止计数。
PLL 配置寄存器(R8_PLL_CONFIG)
位
名称
访问
7
RB_PLL_LOCKED
RO
[6:2]
[1:0]
Reserved
RB_PLL_CFG_DAT
RO
RWA
RTC 标志和控制寄存器(R8_RTC_FLAG_CTRL)
描述
PLL 锁定状态:
1:正在锁定;
保留。
PLL 配置参数。
0:当前没有锁定。
复位值
0000b
XXXh
复位值
000000b
1
0
复位值
X
00000b
00b
26
位
7
6
名称
RB_RTC_TRIG_FLAG
RB_RTC_TMR_FLAG
访问
RO
RO
描述
RTC 触发模式激活标志。
RTC 定时模式激活标志。
禁用触发模式时,此位固定为 1。
使能触发模式时,写 1 清零触发模式激
活标志 RB_RTC_TRIG_FLAG 并自动清 0。
禁用定时模式时,此位固定为 1。
使能定时模式时,写 1 清零定时模式激
活标志 RB_RTC_TMR_FLAG 并自动清 0。
保留。
复位值
0
0
5
RB_RTC_TRIG_CLR
RW
4
RB_RTC_TMR_CLR
RW
Reserved
RO
描述
写 1 将加载 RTC 计数器高字,加载后自
动清 0。将 R32_RTC_TRIG(实际仅低 14
位)加载到 R32_RTC_CNT_DAY。
写 1 将加载 RTC 计数器低字,加载后自
动清 0。将 R32_RTC_TRIG 高 16 位加载
到 R16_RTC_CNT_2S;将 R32_RTC_TRIG
低 16 位加载到 R16_RTC_CNT_32K。
RTC 触发模式使能位:
1:使能;
0:禁用。
RTC 定时模式使能位:
1:使能;
0:禁用。
触发模式下忽略比较匹配值的最低位:
1:忽略最低位; 0:比较最低位。
RTC 定时模式固定周期(定时)选择:
000:0.125S;
001:0.25S;
010:0.5S;
011:1S;
100:2S;
101:4S;
110:8S;
111:16S。
复位值
描述
RTC 触发模式下的预设匹配数值,其高
16 位和低 16 位分别与 R16_RTC_CNT_2S
[31:0]
R32_RTC_TRIG
RWA 和 R16_RTC_CNT_32K 进行匹配。
与 RB_RTC_LOAD_LO 及 RB_RTC_LOAD_HI
配合,用于更新 RTC 计数器当前值。
注:预设匹配数值不是直接写入目标时间,涉及简单计算,请参考后面的说明。
复位值
[3:0]
RTC 模式配置寄存器(R8_RTC_MODE_CTRL)
位
名称
访问
7
RB_RTC_LOAD_HI
RWA
6
RB_RTC_LOAD_LO
RWA
5
RB_RTC_TRIG_EN
RWA
4
RB_RTC_TMR_EN
RWA
3
RB_RTC_IGNORE_B0
RWA
[2:0]
RB_RTC_TMR_MODE
RWA
RTC 触发数值寄存器(R32_RTC_TRIG)
位
名称
访问
1
1
0000b
0
0
0
0
0
010b
0000h
RTC 基于 32768Hz 计数值寄存器(R16_RTC_CNT_32K)
位
名称
访问
描述
[15:0]
R16_RTC_CNT_32K
RO
RTC 基于 32768Hz 计数值寄存器。
复位值
XXXXh
RTC 以 2S 为单位的计数值寄存器(R16_RTC_CNT_2S)
位
名称
访问
描述
[15:0]
R16_RTC_CNT_2S
RO
RTC 以 2S 为单位的当前计数值。
复位值
XXXXh
27
RTC 以天为单位的计数值寄存器(R32_RTC_CNT_DAY)
位
名称
访问
[31:16]
[15:14]
[13:0]
Reserved
Reserved
R32_RTC_CNT_DAY
RO
RO
RO
描述
复位值
保留。
0000h
保留。
00b
RTC 以天为单位的当前计数值。 XXXXXXXXXXXXXXb
6.4 功能描述及配置
6.4.1 RTC 计数器初始化
(1)、设置 R32_RTC_TRIG 寄存器数值,将 RB_RTC_LOAD_HI 置位,即可将 R32_RTC_TRIG 寄存器的数值
加载到 R32_RTC_CNT_DAY 寄存器中;
(2)、设置 R32_RTC_TRIG 寄存器数值,将 RB_RTC_LOAD_LO 置位,即可将 R32_RTC_TRIG 寄存器的高低
各 16 位数值分别加载到 R16_RTC_CNT_2S 寄存器和 R16_RTC_CNT_32K 寄存器。
6.4.2 RTC 时钟源切换为 LSE 晶振
(1)、确认 X32KI 和 X32KO 所在的 GPIO 引脚没有设置为输出,没有设置上拉和下拉电阻,只有晶体;
(2)、配置 R8_CK32K_CONFIG 寄存器,置 RB_CLK_XT32K_PON 为 1,开启外部 32KHz 晶体振荡器;
(3)、建议先置 RB_XT32K_I_TUNE 为最大,等待晶体振荡器稳定(约数百 mS)后再改为额定电流;
(4)、配置 R8_CK32K_CONFIG 寄存器,置 RB_CLK_OSC32K_XT 为 1,要求时钟源切换到晶体振荡器;
(5)、等待至少半个 32KHz 时钟周期,通常 16uS,真正完成时钟源的切换。
6.4.3 RTC 定时功能
(1)、配置 R8_RTC_MODE_CTRL 寄存器,设置 RB_RTC_TMR_MODE 选择合适的定时周期,置 RB_RTC_TMR_EN
为 1,打开 RTC 定时功能;
(2)、达到定时周期后,会产生 RTC 定时激活标志 RB_RTC_TMR_FLAG 及中断,查询 R8_RTC_FLAG_CTRL
寄存器,置位 RB_RTC_TMR_CLR 可清零标志。
6.4.4 RTC 触发功能
(1)、在 R32_RTC_TRIG 寄存器中设置好目标匹配数值,计算和操作步骤:
以当前时间 R32_RTC_CNT_32K(高 16 位 R16_RTC_CNT_2S 和低 16 位 R16_RTC_CNT_32K)加上间
隔时间 DelayTime(单位 S),计算出目标时间数值,T32 = R32_RTC_CNT_32K + DelayTime * 32768,
如果( T32 & 0xFFFF ) != 0,那么 T32 = T32 + 0x10000,
如果 T32 >= 43200 * 0x10000,那么 T32 = T32 - 43200 * 0x10000,
将 T32 写入 R32_RTC_TRIG 寄存器中,完成匹配数值设定;
(2)、配置 R8_RTC_MODE_CTRL 寄存器,置 RB_RTC_TRIG_EN 为 1,打开 RTC 触发功能;
(3)、当 RTC 当前计数值 R16_RTC_CNT_2S 和 R16_RTC_CNT_32K 分别与 R32_RTC_TRIG 预设的高和低 16
位匹配时,产生 RTC 触发激活标志 RB_RTC_TRIG_FLAG 及中断,置位 RB_RTC_TRIG_CLR 可清零标志。
(4)、如果 RTC 已经过校时,那么可以支持目标绝对时间触发,由目标年/月/日/时/分/秒/毫秒计算
出目标时间数值 T32,其它步骤同上。具体可参考评估板例子程序。
6.4.5 用 HSE 校准内部 32K 时钟 LSI
参考评估板例子程序
28
第 7 章 通用 I/O 和复用功能
7.1 GPIO 简介
芯片提供了 2 组 GPIO 端口 PA 和 PB,共 40 个通用输入输出引脚,部分引脚具有中断、复用及映
射功能。
每个 GPIO 端口有一个 32 位方向配置寄存器 R32_Px_DIR,
一个 32 位引脚输入寄存器 R32_Px_PIN,
一个 32 位数据输出寄存器 R32_Px_OUT,一个 32 位数据复位寄存器 R32_Px_CLR,一个 32 位上拉电阻
配置寄存器 R32_Px_PU,一个 32 位下拉电阻/驱动能力配置寄存器 R32_Px_PD_DRV。
PA 端口中,PA[0]~PA[15]位有效,对应芯片上 16 个 GPIO 引脚;PB 端口中,PB[0]~PB[23]位
有效,对应芯片上 24 个 GPIO 引脚;其中 32 个 I/O 管脚 PA[0]~PA[15]、PB[0]~PB[15]具有中断功
能,并可实现睡眠唤醒功能。
每个 I/O 端口位可以自由编程,但是 I/O 端口寄存器必须按 8 位、16 位或者 32 位字访问。如果
引脚的复用功能没有开启,则默认作为通用 I/O 口使用。
下图是 GPIO 内部结构框图:
VIO33
VIO33
R32_Px_PU
50K
Data_Bus
Read R32_Px_OUT
SET
D
Write R32_Px_OUT
CK
CLR
Write R32_Px_CLR
Q
I/O
R32_Px_PD_DRV
Q
RESET
50K
R32_Px_PD_DRV
R32_Px_DIR
GND
R32_Px_PIN
//
GND
AIN[x]
GND
R8_ADC_CHANNEL
图 7-1 I/O 内部结构框图
7.2 外部中断/唤醒
芯片的 32 个 I/O 管脚 PA[0]~PA[15]、PB[0]~PB[15])具有中断功能,并可实现睡眠唤醒。
为了使用外部中断,端口位必须配置成输入模式。并提供 4 种触发模式:高电平、低电平、上升
沿、下降沿。
唤醒功能需要打开端口位的中断使能 R16_Px_INT_EN,
并开启寄存器 R8_SLP_WAKE_CTRL 中的 GPIO
唤醒控制位 RB_SLP_GPIO_WAKE。
7.3 GPIO 的复用与重映射
29
7.3.1 复用功能
部分 I/O 引脚具有复用功能,上电后默认所有 I/O 引脚均为通用 I/O 功能,启用各功能模块后,
相应的原 GPIO 引脚被配置成各自功能模块对应的功能引脚。
如果一个管脚复用多个功能,并且多个功能都已开启,那么复用功能的优先级顺序请参考 1.2 节
引脚描述的“复用功能”列表中功能顺序。
例如:PA0 脚复用为 SCK1/SLVA/LED0,则 SPI1 的时钟功能优先,LED 屏接口串行数据输出 0 功能
最低。这样可以在多个复用功能中,将功能优先级最低的部分不需使用的引脚启用相对更高优先级的
复用功能。
下表列出了部分用于外设模块的功能引脚的 GPIO 配置。
表 7-1 定时器 x
TMR0/1/2/3 引脚
功能配置
GPIO 配置
输入捕捉通道 x
输入(浮空输入/上拉输入/下拉输入)
TMRx
输出 PWM 通道 x
推挽输出
UART0/1/2/3 引脚
TXDx
RXDx
RTS,DTR
CTS,DSR,RI,DCD
表 7-2 UARTx
功能配置
串口发送 x
串口接收 x
MODEM 信号输出或 RS485 控制
MODEM 信号输入
GPIO 配置
推挽输出
上拉输入(推荐)或浮空输入
推挽输出
上拉输入(推荐)或浮空输入
表 7-3 SPIx
SPI0/1 引脚
SCKx
MOSIx
MISOx
SCS
功能配置
主模式时钟输出
从模式时钟输入
全双工模式-主模式
全双工模式-从模式
半双工模式-主模式
半双工模式-从模式
全双工模式-主模式
全双工模式-从模式
半双工模式-主模式
半双工模式-从模式
主模式片选输出
从模式片选输入
GPIO 配置
推挽输出
输入(浮空输入/上拉输入/下拉输入)
推挽输出
输入(浮空输入/上拉输入/下拉输入)
未用到,可做通用 I/O
未用到,可做通用 I/O
输入(浮空输入/上拉输入/下拉输入)
输入(推荐上拉,片选后自动切为推挽输出)
或推挽输出(禁止用于总线连接方式)
输入或推挽输出,手工切换
输入(推荐上拉,片选后自动切为推挽输出)
推挽输出(可换用其它引脚)
上拉输入(推荐)或浮空输入
表 7-4 ADC
ADC 采样通道引脚
AINx
功能配置
模拟数字转换输入通道
GPIO 配置
浮空输入
表 7-5 USB
USB 信号引脚
USB_DM
USB_DP
功能配置
连接到内部 USB 收发器
连接到内部 USB 收发器
表 7-6 以太网
GPIO 配置
浮空输入
浮空输入
30
以太网信号引脚
ET+/ETER+/ER-
功能配置
连接到内部以太网收发器
连接到内部以太网收发器
GPIO 配置
浮空输入
浮空输入
7.3.2 功能引脚重映射
为了使外设功能的同时利用率达到最优,可以通过设置 R16_PIN_ALTERNATE 功能引脚重映射寄存
器把一些功能引脚重新映射到其他引脚上。
表 7-7 复用功能重映射引脚
外设功能引脚
默认所在的 GPIO 引脚
重映射到的 GPIO 引脚
SPI0
RXD3/TXD3
RXD2/TXD2
RXD1/TXD1
RXD0/TXD0
TMR3/PWM3/CAP3
TMR2/PWM2/CAP2
TMR1/PWM1/CAP1
TMR0/PWM0/CAP0
PA[12]/PA[13]/PA[14]/PA[15]
PA[4]/PA[5]
PA[6]/PA[7]
PA[8]/PA[9]
PB[4]/PB[7]
PA[2]
PA[11]
PA[10]
PA[3]
PB[12]/PB[13]/PB[14]/PB[15]
PB[20]/PB[21]
PB[22]/PB[23]
PB[8]/PB[9]
PA[15]/PA[14]
PB[18]
PB[11]
PB[10]
PB[19]
7.4 寄存器描述
表 7-8 GPIO 相关寄存器列表
名称
R16_PIN_ALTERNATE
R16_PIN_ANALOG_IE
R16_PA_INT_EN
R16_PB_INT_EN
R16_PA_INT_MODE
R16_PB_INT_MODE
R16_PA_INT_IF
R16_PB_INT_IF
R32_PA_DIR
R32_PA_PIN
R32_PA_OUT
R32_PA_CLR
R32_PA_PU
R32_PA_PD_DRV
R32_PB_DIR
R32_PB_PIN
R32_PB_OUT
R32_PB_CLR
R32_PB_PU
R32_PB_PD_DRV
访问地址
0x40001018
0x4000101A
0x40001090
0x40001092
0x40001094
0x40001096
0x4000109C
0x4000109E
0x400010A0
0x400010A4
0x400010A8
0x400010AC
0x400010B0
0x400010B4
0x400010C0
0x400010C4
0x400010C8
0x400010CC
0x400010D0
0x400010D4
功能引脚重映射寄存器(R16_PIN_ALTERNATE)
位
名称
访问
描述
功能引脚重映射寄存器
外设模拟管脚配置寄存器
PA 端口中断使能寄存器
PB 端口中断使能寄存器
PA 端口中断模式配置寄存器
PB 端口中断模式配置寄存器
PA 端口中断标志寄存器
PB 端口中断标志寄存器
PA 端口方向配置寄存器
PA 端口引脚输入寄存器
PA 端口数据输出寄存器
PA 端口数据复位寄存器
PA 端口上拉电阻配置寄存器
PA 端口下拉/驱动配置寄存器
PB 端口方向配置寄存器
PB 端口引脚输入寄存器
PB 端口数据输出寄存器
PB 端口数据复位寄存器
PB 端口上拉电阻配置寄存器
PB 端口下拉/驱动配置寄存器
描述
复位值
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x0000
0x00000000
0x0000XXXX
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00XXXXXX
0x00000000
0x00000000
0x00000000
0x00000000
复位值
31
[15:12]
[11:9]
Reserved
Reserved
RO
RO
8
RB_PIN_SPI0
RW
7
RB_PIN_UART3
RW
6
RB_PIN_UART2
RW
5
RB_PIN_UART1
RW
4
RB_PIN_UART0
RW
3
RB_PIN_TMR3
RW
2
RB_PIN_TMR2
RW
1
RB_PIN_TMR1
RW
0
RB_PIN_TMR0
RW
保留。
保留。
SPI0 功能引脚映射选择位:
1:SCK0_/SCS_/MOSI_/MISO_映射到
PB[12]/PB[13]/PB[14]/PB[15];
0:SCK0/SCS/MOSI/MISO 映射到
PA[12]/PA[13]/PA[14]/PA[15]。
UART3 功能引脚映射选择位:
1:RXD3_/TXD3_映射到 PB[20]/PB[21];
0:RXD3/TXD3 映射到 PA[4]/PA[5]。
UART2 功能引脚映射选择位:
1:RXD2_/TXD2_映射到 PB[22]/PB[23];
0:RXD2/TXD2 映射到 PA[6]/PA[7]。
UART1 功能引脚映射选择位:
1:RXD1_/TXD1_映射到 PB[8]/PB[9];
0:RXD1/TXD1 映射到 PA[8]/PA[9]。
UART0 功能引脚映射选择位:
1:RXD0_/TXD0_映射到 PA[15]/PA[14];
0:RXD0/TXD0 映射到 PB[4]/PB[7]。
TM3 功能引脚映射选择位:
1:TMR3_/PWM3_/CAP3_映射到 PB[18];
0:TMR3/PWM3/CAP3 映射到 PA[2]。
TM2 功能引脚映射选择位:
1:TMR2_/PWM2_/CAP2_映射到 PB[11];
0:TMR2/PWM2/CAP2 映射到 PA[11]。
TM1 功能引脚映射选择位:
1:TMR1_/PWM1_/CAP1_映射到 PB[10];
0:TMR1/PWM1/CAP1 映射到 PA[10]。
TM0 功能引脚映射选择位:
1:TMR0_/PWM0_/CAP0_映射到 PB[19];
0:TMR0/PWM0/CAP0 映射到 PA[3]。
0000b
000b
0
0
0
0
0
0
0
0
0
外设模拟管脚配置寄存器(R16_PIN_ANALOG_IE)
位
名称
访问
描述
复位值
ADC/TKEY 4/5 通道引脚数字输入禁用:
15
RB_PIN_ADC4_5_IE
RW
1:关闭 PA14-15 数字输入,可节约功耗;
0
0:打开数字输入。
ADC/TKEY 2/3 通道引脚数字输入禁用:
14
RB_PIN_ADC2_3_IE
RW
1:关闭 PA12-13 数字输入,可节约功耗;
0
0:打开数字输入。
32KHz 晶振 LSE 引脚数字输入禁用:
13
RB_PIN_XT32K_IE
RW
1:关闭 PA10-11 数字输入,可节约功耗;
0
0:打开数字输入。
ADC/TKEY 12/13 通道引脚数字输入禁用:
12
RB_PIN_ADC12_13_IE
RW
1:关闭 PA8-9 数字输入,可节约功耗;
0
0:打开数字输入。
ADC/TKEY 10/11 通道引脚数字输入禁用:
11
RB_PIN_ADC10_11_IE
RW
1:关闭 PA6-7 数字输入,可节约功耗;
0
0:打开数字输入。
32
ADC/TKEY 0/1 通道引脚数字输入禁用:
10
RB_PIN_ADC0_1_IE
RW
1:关闭 PA4-5 数字输入,可节约功耗;
0
0:打开数字输入。
ADC/TKEY 7/6 通道引脚数字输入禁用:
9
RB_PIN_ADC6_7_IE
RW
1:关闭 PA2-3 数字输入,可节约功耗;
0
0:打开数字输入。
ADC/TKEY 9/8 通道引脚数字输入禁用:
8
RB_PIN_ADC8_9_IE
RW
1:关闭 PA0-1 数字输入,可节约功耗;
0
0:打开数字输入。
USB 引脚使能:
7
RB_PIN_USB_IE
RW
1:PB10-11 为 USB 通讯引脚;
0
0:PB10-11 不用于 USB 通讯。
ETH 引脚使能:
1:PB12-15 为 ETH 通讯引脚,如果 LCD
6
RB_PIN_ETH_IE
RW
完全未启用,可将 RB_PIN_SEG12_15_IE
0
置为 1 以关闭数字输入,可节约功耗;
0:PB12-15 不用于 ETH 通讯。
LCD 20-23 段引脚使能/数字输入禁用:
5
RB_PIN_SEG20_23_IE
RW
1:PB20-23 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
LCD 16-19 段引脚使能/数字输入禁用:
4
RB_PIN_SEG16_19_IE
RW
1:PB16-19 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
LCD 12-15 段引脚使能/数字输入禁用:
3
RB_PIN_SEG12_15_IE
RW
1:PB12-15 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
LCD 8-11 段引脚使能/数字输入禁用:
2
RB_PIN_SEG8_11_IE
RW
1:PB8-11 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
LCD 4-7 段引脚使能/数字输入禁用:
1
RB_PIN_SEG4_7_IE
RW
1:PB4-7 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
LCD 0-3 段引脚使能/数字输入禁用:
0
RB_PIN_SEG0_3_IE
RW
1:PB0-3 为段驱动,关闭数字输入;
0
0:打开数字输入,关闭 LCD 段驱动。
注:如果引脚用于模拟功能(ADC/TouchKey/ETH)
,建议将该引脚的数字输入功能关闭,即设置数字
输入禁用,从而可以降低功耗,并有利于减少干扰。
PA 端口中断使能寄存器(R16_PA_INT_EN)
位
名称
访问
[15:0]
R16_PA_INT_EN
RW
PB 端口中断使能寄存器(R16_PB_INT_EN)
位
名称
访问
[15:0]
R16_PB_INT_EN
RW
描述
PA 引脚中断使能位:
1:使能相应中断;
0:禁止相应中断。
复位值
描述
PB 引脚中断使能位:
1:使能相应中断;
0:禁止相应中断。
复位值
0000h
0000h
33
PA 端口中断模式配置寄存器(R16_PA_INT_MODE)
位
名称
访问
[15:0]
R16_PA_INT_MODE
RW
PA 引脚中断模式选择位:
1:边沿触发;
0:电平触发。
PB 端口中断模式配置寄存器(R16_PB_INT_MODE)
位
名称
访问
[15:0]
R16_PB_INT_MODE
RW
PA 端口中断标志寄存器(R16_PA_INT_IF)
位
名称
访问
[15:0]
R16_PA_INT_IF
RW1
PB 端口中断标志寄存器(R16_PB_INT_IF)
位
名称
访问
[15:0]
R16_PB_INT_IF
RW1
PA 端口方向配置寄存器(R32_PA_DIR)
位
名称
访问
[31:16]
[15:8]
Reserved
R8_PA_DIR_1
RO
RW
[7:0]
R8_PA_DIR_0
RW
PA 端口引脚输入寄存器(R32_PA_PIN)
位
名称
访问
[31:16]
Reserved
RO
[15:8]
R8_PA_PIN_1
RO
[7:0]
R8_PA_PIN_0
RO
PA 端口数据输出寄存器(R32_PA_OUT)
位
名称
访问
[31:16] Reserved
RO
[15:8]
R8_PA_OUT_1
RW
[7:0]
R8_PA_OUT_0
RW
PA 端口数据复位寄存器(R32_PA_CLR)
描述
描述
PB 引脚中断模式选择位:
1:边沿触发;
0:电平触发。
复位值
0000h
复位值
0000h
描述
PA 引脚中断标志位,写 1 清零:
1:有中断;
0:无中断。
复位值
描述
PB 引脚中断标志位,写 1 清零:
1:有中断;
0:无中断。
复位值
描述
保留。
PA 引脚当前输入输出方向配置:
1:引脚为输出模式;
0:引脚为输入模式。
0000h
0000h
复位值
0000h
00h
00h
描述
复位值
保留。
PA 引脚当前电平状态(仅在 R32_PA_DIR
对应位为 0 时,该位值有效):
1:引脚输入高电平;
0:引脚输入低电平。
0000h
描述
复位值
0000h
保留。
方向寄存器 R32_PA_DIR 对应位为 1 时:
控制 PA 引脚输出电平状态:
1:输出高电平;0:输出低电平。
方向寄存器 R32_PA_DIR 对应位为 0 时:
控制 PA 引脚中断极性选择:
1:高电平/上升沿;0:低电平/下降沿。
XXh
XXh
00h
00h
34
位
[31:16]
[15:8]
名称
Reserved
R8_PA_CLR_1
访问
RO
WZ
[7:0]
R8_PA_CLR_0
WZ
PA 端口上拉电阻配置寄存器(R32_PA_PU)
位
名称
访问
[31:16]
[15:8]
[7:0]
Reserved
R8_PA_PU_1
R8_PA_PU_0
RO
RW
RW
描述
保留。
PA 数据寄存器复位控制:
1:R32_PA_OUT 对应位数据清 0;
0:无影响。
复位值
0000h
00h
00h
描述
复位值
保留。
PA 引脚上拉电阻使能控制:
1:启用上拉电阻;0:关闭上拉电阻。
0000h
00h
00h
PA 端口下拉/驱动配置寄存器(R32_PA_PD_DRV)
位
名称
访问
描述
[31:16] Reserved
RO
保留。
方向寄存器 R32_PA_DIR 对应位为 0 时:
PA 引脚下拉电阻使能控制:
[15:8]
R8_PA_PD_DRV_1
RW
1:启用下拉电阻;0:关闭下拉电阻。
方向寄存器 R32_PA_DIR 对应位为 1 时:
PA 引脚电流驱动能力选择:
[7:0]
R8_PA_PD_DRV_0
RW
1:20mA 级别;0:5mA 级别。
复位值
0000h
00h
00h
PB 端口方向配置寄存器(R32_PB_DIR)
位
[31:24]
[23:16]
[15:8]
[7:0]
名称
Reserved
R8_PB_DIR_2
R8_PB_DIR_1
R8_PB_DIR_0
访问
RO
RW
RW
RW
PB 端口引脚输入寄存器(R32_PB_PIN)
位
名称
访问
[31:24] Reserved
RO
[23:16] R8_PB_PIN_2
RO
[15:8]
R8_PB_PIN_1
RO
[7:0]
R8_PB_PIN_0
RO
PB 端口数据输出寄存器(R32_PB_OUT)
位
名称
访问
[31:24] Reserved
RO
[23:16]
R8_PB_OUT_2
RW
[15:8]
R8_PB_OUT_1
RW
[7:0]
R8_PB_OUT_0
RW
描述
保留。
PB 引脚当前输入输出方向配置:
1:引脚为输出模式;
0:引脚为输入模式。
描述
保留。
PB 引脚当前电平状态(仅在 R32_PB_DIR
对应位为 0 时,该位值有效):
1:引脚输入高电平;
0:引脚输入低电平。
描述
保留。
方向寄存器 R32_PB_DIR 对应位为 1 时:
控制 PB 引脚输出电平状态:
1:输出高电平;0:输出低电平。
方向寄存器 R32_PB_DIR 对应位为 1 时:
控制 PB 引脚输出电平状态:
1:输出高电平;0:输出低电平。
方向寄存器 R32_PB_DIR 对应位为 0 时:
复位值
00h
00h
00h
00h
复位值
00h
XXh
XXh
XXh
复位值
00h
00h
00h
00h
35
控制 PB 引脚中断极性选择:
1:高电平/上升沿;0:低电平/下降沿。
PB 端口数据复位寄存器(R32_PB_CLR)
位
名称
访问
[31:24]
[23:16]
[15:8]
[7:0]
Reserved
R8_PB_CLR_2
R8_PB_CLR_1
R8_PB_CLR_0
RO
WZ
WZ
WZ
描述
保留。
PB 数据寄存器复位控制:
1:R32_PB_OUT 对应位数据清 0;
0:无影响。
PB 端口上拉电阻配置寄存器(R32_PB_PU)
位
名称
访问
[31:24]
[23:16]
[15:8]
[7:0]
Reserved
R8_PB_PU_2
R8_PB_PU_1
R8_PB_PU_0
RO
RW
RW
RW
复位值
00h
00h
00h
00h
描述
复位值
保留。
PB 引脚上拉电阻使能控制:
1:启用上拉电阻;0:关闭上拉电阻。
00h
00h
00h
00h
PB 端口下拉/驱动配置寄存器(R32_PB_PD_DRV)
位
[31:24]
名称
Reserved
访问
RO
[23:16]
R8_PB_PD_DRV_2
RW
[15:8]
R8_PB_PD_DRV_1
RW
[7:0]
R8_PB_PD_DRV_0
RW
描述
保留。
方向寄存器 R32_PB_DIR 对应位为 0 时:
PB 引脚下拉电阻使能控制:
1:启用下拉电阻;0:关闭下拉电阻。
方向寄存器 R32_PB_DIR 对应位为 1 时:
PB 引脚电流驱动能力选择:
1:20mA 级别;0:5mA 级别。
复位值
00h
00h
00h
00h
7.5 GPIO 引脚模式配置
每个 GPIO 都可以配置成 5 种模式,具体见下表:
表 7-9 端口配置表
模式
R32_Px_DIR
浮空输入/高阻输入/模拟输入
0
带上拉电阻的输入
0
带下拉电阻的输入
0
推挽输出,驱动能力 5mA 级别
1
推挽输出,驱动能力 20mA 级别
1
R32_Px_PU
0
1
0
X
X
R32_Px_PD_DRV
0
0
1
0
1
36
第 8 章 通用定时器 TMRx
8.1 TMRx 简介
芯片提供了 4 个 26 位定时器,TMR0、TMR1、TMR2 和 TMR3,最长定时时间为 2^26 个时钟周期。
它适用于多种场合,包括测量输入信号脉冲长度(输入捕捉)或者产生输出波形(PWM)
,另外 TMR1
和 TMR2 支持 DMA 功能。每个定时器都是完全独立的,可以一起同步操作。
8.1.1 主要特性
l
l
l
l
l
4 个 26 位定时器,每个定时器定时时间最大为 2^26 个时钟周期。
支持定时器中断,其中 TMR1 和 TMR2 支持 DMA 及中断。
支持捕捉功能,测量输入脉冲长度或周期。
捕捉功能可设置为电平变化捕捉和高或低电平保持时间捕捉功能。
支持 26 位 PWM 功能,可动态调整 PWM 占空比设置。
8.2 寄存器描述
表 8-1 TMR0 相关寄存器列表
名称
R8_TMR0_CTRL_MOD
R8_TMR0_INTER_EN
R8_TMR0_INT_FLAG
R8_TMR0_FIFO_COUNT
R32_TMR0_COUNT
R32_TMR0_CNT_END
R32_TMR0_FIFO
访问地址
0x40002000
0x40002002
0x40002006
0x40002007
0x40002008
0x4000200C
0x40002010
描述
模式设置寄存器
中断使能寄存器
中断标志寄存器
FIFO 计数寄存器
当前计数值寄存器
计数终值设置寄存器
FIFO 寄存器
复位值
0x02
0x00
0x00
0x0X
0x0XXXXXXX
0x0XXXXXXX
0x0XXXXXXX
表 8-2 TMR1 相关寄存器列表
名称
R8_TMR1_CTRL_MOD
R8_TMR1_CTRL_DMA
R8_TMR1_INTER_EN
R8_TMR1_INT_FLAG
R8_TMR1_FIFO_COUNT
R32_TMR1_COUNT
R32_TMR1_CNT_END
R32_TMR1_FIFO
R16_TMR1_DMA_NOW
R16_TMR1_DMA_BEG
R16_TMR1_DMA_END
访问地址
0x40002400
0x40002401
0x40002402
0x40002406
0x40002407
0x40002408
0x4000240C
0x40002410
0x40002414
0x40002418
0x4000241C
描述
模式设置寄存器
DMA 控制寄存器
中断使能寄存器
中断标志寄存器
FIFO 计数寄存器
当前计数值寄存器
计数终值寄存器
FIFO 寄存器
DMA 当前缓冲区地址
DMA 起始缓冲区地址
DMA 结束缓冲区地址
名称
R8_TMR2_CTRL_MOD
R8_TMR2_CTRL_DMA
R8_TMR2_INTER_EN
R8_TMR2_INT_FLAG
表 8-3 TMR2 相关寄存器列表
访问地址
描述
0x40002800
模式设置寄存器
0x40002801
DMA 控制寄存器
0x40002802
中断使能寄存器
0x40002806
中断标志寄存器
复位值
0x02
0x00
0x00
0x00
0x0X
0x0XXXXXXX
0x0XXXXXXX
0x0XXXXXXX
0x0000XXXX
0x0000XXXX
0x0000XXXX
复位值
0x02
0x00
0x00
0x00
37
R8_TMR2_FIFO_COUNT
R32_TMR2_COUNT
R32_TMR2_CNT_END
R32_TMR2_FIFO
R16_TMR2_DMA_NOW
R16_TMR2_DMA_BEG
R16_TMR2_DMA_END
0x40002807
0x40002808
0x4000280C
0x40002810
0x40002814
0x40002818
0x4000281C
FIFO 计数寄存器
当前计数值寄存器
计数终值寄存器
FIFO 寄存器
DMA 当前缓冲区地址
DMA 起始缓冲区地址
DMA 结束缓冲区地址
0x0X
0x0XXXXXXX
0x0XXXXXXX
0x0XXXXXXX
0x0000XXXX
0x0000XXXX
0x0000XXXX
表 8-4 TMR3 相关寄存器列表
名称
R8_TMR3_CTRL_MOD
R8_TMR3_INTER_EN
R8_TMR3_INT_FLAG
R8_TMR3_FIFO_COUNT
R32_TMR3_COUNT
R32_TMR3_CNT_END
R32_TMR3_FIFO
访问地址
0x40002C00
0x40002C02
0x40002C06
0x40002C07
0x40002C08
0x40002C0C
0x40002C10
描述
模式设置寄存器
中断使能寄存器
中断标志寄存器
FIFO 计数寄存器
当前计数值寄存器
计数终值设置寄存器
FIFO 寄存器
模式设置寄存器(R8_TMRx_CTRL_MOD) (x=0/1/2/3)
位
名称
访问
[7:6]
RB_TMR_CAP_EDGE
RW
[7:6]
RB_TMR_PWM_REPEAT
RW
5
Reserved
RO
4
RB_TMR_CAP_COUNT
RW
4
RB_TMR_OUT_POLAR
RW
3
RB_TMR_OUT_EN
RW
2
RB_TMR_COUNT_EN
RW
1
RB_TMR_ALL_CLEAR
RW
0
RB_TMR_MODE_IN
RW
复位值
0x02
0x00
0x00
0x0X
0x0XXXXXXX
0x0XXXXXXX
0x0XXXXXXX
描述
捕捉模式下,选择捕捉触发方式:
00:不触发;
01:捕捉任何边沿变化之间的时间;
10:捕捉下降沿到下降沿之间时间;
11:捕捉上升沿到上升沿之间时间。
PWM 模式下,选择数据重复方式:
00:重复 1 次;01:重复 4 次;
10:重复 8 次;11:重复 16 次。
保留。
RB_TMR_MODE_IN=1 输入模式的子模式:
1:计数模式; 0:捕捉模式。
PWM 模式下,输出极性设置位:
1:默认高电平,低电平有效;
0:默认低电平,高电平有效。
定时器输出使能位:
1:输出使能; 0:输出禁止。
定时器计数使能位:
1:使能计数; 0:停止计数。
定时器的 FIFO/计数器/中断标志清零:
1:强制清空和清零; 0:不清。
定时器模式设置位:
1:输入模式(捕捉模式或计数模式)
;
0:定时模式或 PWM 模式。
中断使能寄存器(R8_TMRx_INTER_EN) (x=0/1/2/3)
位
名称
访问
描述
[7:5] Reserved
RO
保留。
4
RB_TMR_IE_FIFO_OV
RW
FIFO 溢出(捕捉模式 FIFO 满或 PWM 模
复位值
00b
00b
0
0
0
0
0
1
0
复位值
000b
0
38
3
RB_TMR_IE_DMA_END
RW
2
RB_TMR_IE_FIFO_HF
RW
1
RB_TMR_IE_DATA_ACT
RW
0
RB_TMR_IE_CYC_END
RW
式 FIFO 空)中断使能位:
1:使能中断;
0:禁止中断。
DMA 结束中断使能位(仅 TMR1/2 支持)
:
1:使能中断;
0:禁止中断。
FIFO 使用过半
(捕捉模式 FIFO>=4 或 PWM
模式 FIFO=4 或 PWM
模式 FIFO=4 或发送
时 FIFO
很抱歉,暂时无法提供与“CH579F”相匹配的价格&库存,您可以联系我们找货
免费人工找货