CH563
使用手册
版本:V1.11
http://wch.cn
如何阅读本说明书
关于缩写:
本说明书中在对寄存器的描述中使用了下列缩写:
缩写词
RF
RO
WO
RZ
WZ
RW
RW1
WA
RWA
h
b
o
描述
读取值为定值,不受复位影响
只读
只写(读取值为 0 或无效)
只读,读取完之后自动清 0
写清 0
可读可写
读/写 1 清 0
只写(安全模式下),读取值为 0 或无效
可读写(安全模式下)
表示 16 进制数
表示 2 进制数
表示 8 进制数
关于地址:
USB相关寄存器物理起始地址为: 0x0040 4000
以太网相关寄存器物理起始地址为:0x0040 6000
本说明书描述中除非特殊说明,否则地址均指偏移地址。
关于术语:
本说明书用到的与 USB 相关的首字母缩写词、简写以及定义:
术语
定义
EHCI
USB 增强主机控制器接口规范
OHCI
开放主机控制器接口规范
UHCI
通用主机控制器接口规范
LS
低速
FS
全速
HS
高速
HC
主机控制器
HCD
主机控制器驱动
AP
应用程序
SRP
OTG 会话请求协议
HNP
OTG 主机协商协议
UTMI
USB2.0 收发器微接口
ACK
数据包确认应答
NAK
不确认应答
STALL
停止工作,或不支持的控制命令
Asynchronous List
异步列表
Periodic Frame List 周期性数据帧列表
CRC
循环冗余校验
SOF
数据帧开始(Start of Frame)
EOF
数据帧结尾(End of Frame)
QH
qTD
siTD
队列头(Queue Head)
队列单元传输描述符
SPLIT 事务处理实时传输描述符
本说明书用到的与以太网相关的首字母缩写词、简写以及定义:
术语
AHB
CRC
DMA
FCS
Fragment
Frame
MAC
MII
Packet
PHY
Rx
Tx
WoL
TCP/IP
定义
先进的高性能总线
循环冗余校验
直接存储器访问
帧校验序列
一个以太网帧或其中的一部分,一个以太网帧可以是一
个或多个片段(fragment)
一个以太网帧由目标地址、源地址、长度/类型区、有效
载荷以及帧检验序列组成
媒体访问控制器
媒体独立接口
通过以太网传输的帧:一个包由导言、起始帧定界符和
以太网帧组成
以太网物理层
接收
发送
LAN 上唤醒
传输控制协议/网际协议
CH563 中文手册
4
第 1 章 概述
CH563 系列单片机是 32 位 RISC 精简指令集 CPU,指令集兼容 ARMv5TE,支持 16 位 Thumb 指令和
增强 DSP 指令。默认系统主频为 100MHZ,最高可达 130MHZ。高度集成的外设以及高性能,使其可以
广泛的应用于各种嵌入式应用。
CH563 的外设组件包含最高 224K 的 FLASH 闪存、64K 的 SRAM、28K 的 DataFlash、百兆以太网、
高速/全速 USB 主机/从机接口、2 个 SPI 接口、2 个 UART 接口、3 通道 10 位 ADC、4 个通用定时器、
8 位被动并行接口、8/16/32 位 Intel 时序的总线接口、在系统编程 ISP 接口和多达 74 个通用 I/O 管
脚。
1.1 功能特性
● 内核:
32 位 RISC 指令集 CPU,兼容 ARM V5TE 指令集,支持 16 位 Thumb 指令和增强 DSP 指令,默认
系统主频为 100MHZ。
● FLASH 和 RAM:
CH563 片内 FLASH 最高为 224K,用于保存程序代码,支持写保护。FLASH 闪存拥有 10 万次擦
写、20 年保存能力,支持 ICP/ISP 升级。
片内 SRAM 共 64K,用于数据缓冲。
● DataFlash:
片内 DataFlash 共 28K,用于保存非易失性数据。
● 以太网:
内置 MAC 和基于 DSP 的 10/100Base-TX 快速 Ethernet 收发器(PHY),支持 10/100Mbps 双绞线
网络通讯,兼容 IEEE 802.3,802.3u 和 FDDI-TP-PMD,支持 Wake-On-LAN 功能,收发各独立
的 2K 字节 FIFO,支持 DMA。
每颗芯片都内置 IEEE 分配的唯一 MAC 地址。
● USB:
内置高速 USB 收发器(PHY)和 USB 控制器,支持 USB 2.0,兼容 EHCI,支持主/从模式,支持
高速/全速/低速传输,独立的 2K+64 字节 FIFO,支持 DMA。
● SPI:
2 组 SPI 控制器 SPI0、SPI1,速度可调,最高可达系统频率 SCLK 的一半约 50MHZ,支持输入
输出单工复用。SPI0 支持 Master/Slave 主从模式,32 级 FIFO,支持 DMA;SPI1 只支持主机
模式,16 级 FIFO。
● UART:
2 组兼容 16C550 的异步串口 UART,速度可调,最高达系统主频 SCLK 的八分之一约 16Mbps,
一组支持全部 Modem 信号,16 级 FIFO;另一组只支持 CTS 和 RTS,但支持 9 位串口模式下总
线地址自动比较和 SIR 之 IrDA 编解码,32 级 FIFO。
● ADC:
CH563 最多支持 3 通道 10 位 A/D 转换器,采样率可调,最高达每秒 1M 次,8 级 FIFO,支持设
定参考值在到达后触发中断,支持两通道自动轮测,可用软件对信号进行算法解码,支持 DMA。
● TIMER:
4 组 28 位定时器,支持输入信号宽度采样/信号捕捉(高/低/翻转)
,支持 PWM 输出,8 级 FIFO,
其中 3 组支持 DMA。
● 被动并口:
提供 1 个 Intel 时序的 8 位被动并口,方便与外部系统进行数据通信。
● 总线接口:
提供 1 个 Intel 时序的总线接口,支持 8 位、16 位、32 位数据读写,读写宽度可调。
● 低功耗睡眠:
支持低功耗睡眠方式,支持部分 GPIO 等外部唤醒。
5
CH563 中文手册
● 芯片 ID 号:
每个芯片具有 64bit 唯一的 ID 识别号,便于通讯识别或者数据加密。
● GPIO:
LQFP128 封装提供多达 74 个 GPIO 引脚,部分引脚支持上拉电阻、下拉电阻、施密斯输入、两
种驱动能力,部分引脚支持电平或者边沿中断。
● 电源:
CPU 操作电压范围:1.65---1.95V(1.8V±10%);
IO 操作电压范围:3.0---3.6V(3.3V±10%),部分 I/O 口可承受 5V 电压。
1.2 结构框图
以下为 CH563 芯片简化内部结构框图。
GPIO Port A
ICE
FLASH
224K
GPIO Port B
DFlash
28K
SRAM
64K
ISP
Interface
GPIO Port D
BUS Matrix
8 bit Slave
Parallel
Dbus
8/16/32 bit
Parallel
10 bit ADC
SPI0
System
UART0
A
H
B
Ibus
SPI1
32 位 CPU
Fmax = 130MHZ
A
H
B
USB HS/FS
PHY
UART1
2K+64 FIFO
TIM0
TIM1
DMA
Controller
Ethernet MAC
10/100 PHY
TIM2
TX: 2K FIFO
RX: 2K FIFO
TIM3
图 1-1 CH563 简化结构框图
6
CH563 中文手册
1.3 芯片封装
芯片型号
CH563L
CH563Q
芯片封装
名称
LQFP128
LQFP64M
描述
LQFP 封装;128 脚;本体 14x14mm
LQFP 封装;64 脚; 本体 10x10mm
CH563 中文手册
7
第 2 章 引脚信息
2.1 引脚排列
图 2-1 LQFP64 封装引脚排列
8
CH563 中文手册
图 2-2 LQFP128 封装引脚排列
2.2 引脚描述
管脚号
I/O
电平
主功能/
其它功能
LQFP64
类型
LQFP128
管脚名称
1
-
VCC18
P
VCC18
2
-
GND
P
GND
3
-
RSVD1
功能描述
1.8V 内核电源:
内部电路的电源
地:
公共接地端,0V 参考点
保留引脚,禁止连接
9
CH563 中文手册
4
-
RSVD0
保留引脚,必须接 GND
5
64
VCC18
P
VCC18
6
1
RSETE
I
RSETE
7
2
VCC33E
P
VCC33E
8
-
RSVD2
9
3
GND
P
GND
10
4
RXP
ETH
RXP
地:
公共接地端,0V 参考点
以太网 RXP 信号
11
5
RXN
ETH
RXN
以太网 RXN 信号
12
6
VCC18E
P
VCC18E
13
-
VCC18E
P
VCC18E
14
7
TXP
ETH
TXP
1.8V 电源:
以太网部分电源
1.8V 电源:
以太网部分电源
以太网 TXP 信号
15
8
TXN
ETH
TXN
以太网 TXN 信号
16
9
GND
P
GND
17
-
GND
P
GND
18
-
VCC18
P
VCC18
19
10
XI
I
XI
地:
公共接地端,0V 参考点
地:
公共接地端,0V 参考点
1.8V 内核电源:
内部电路的电源
晶体振荡输入端
20
11
XO
I/O
XO
晶体振荡反向输出端
21
12
VCC33U
P
VCC33U
22
13
GND
P
GND
23
14
RSETU
I
RSETU
3.3V 电源:
USB 部分电源
地:
公共接地端,0V 参考点
对地接 12K 电阻,用于 USB-PHY
24
15
DN
USB
DN(UD-)
USB 总线的 D-数据线
25
16
DP
USB
DP(UD+)
USB 总线的 D+数据线
26
17
VCC33U
P
VCC33U
27
18
GND
P
GND
3.3V 电源:
USB 部分电源
地:
公共接地端,0V 参考点
1.8V 内核电源:
内部电路的电源
对地接电阻,用于 ETH-PHY
电阻值范围为 12K 到 18K,12K 时性能最优,18K
时功耗最低,默认可接 15K
3.3V 电源:
以太网部分电源
保留引脚,禁止连接
10
CH563 中文手册
28
19
VCC18
P
VCC18
29
20
GND
P
GND
30
-
VCC18
P
VCC18
31
-
PD16
I/O
PD16/D16
32
-
PD17
I/O
PD17/D17
33
-
PD18
I/O
PD18/D18
34
-
PD19
I/O
PD19/D19
35
-
PD20
I/O
PD20/D20
36
-
PD21
I/O
PD21/D21
37
-
PD22
I/O
PD22/D22
38
-
PD23
I/O
PD23/D23
39
21
VCC33
P
40
-
PD24
I/O
PD24/D24
41
-
PD25
I/O
PD25/D25
42
-
PD26
I/O
PD26/D26
43
-
PD27
I/O
PD27/D27
44
-
PD28
I/O
PD28/D28
45
-
PD29
I/O
PD29/D29
46
-
PD30
I/O
PD30/D30
47
-
PD31
I/O
PD31/D31
48
22
PB0
I/O
PB0/CTS0X
/PWM0
49
23
PB1
I/O
PB1/DSR0X
/CAT0
50
24
PB2
I/O
PB2/RI0X
/PWM1
VCC33
1.8V 内核电源:
内部电路的电源
地:
公共接地端,0V 参考点
1.8V 内核电源:
内部电路的电源
PD16:通用双向数字 I/O 引脚
D16: 外部存储器数据线 16
PD17:通用双向数字 I/O 引脚
D17: 外部存储器数据线 17
PD18:通用双向数字 I/O 引脚
D18: 外部存储器数据线 18
PD19:通用双向数字 I/O 引脚
D19: 外部存储器数据线 19
PD20:通用双向数字 I/O 引脚
D20: 外部存储器数据线 20
PD21:通用双向数字 I/O 引脚
D21: 外部存储器数据线 21
PD22:通用双向数字 I/O 引脚
D22: 外部存储器数据线 22
PD23:通用双向数字 I/O 引脚
D23: 外部存储器数据线 23
3.3V 端口电源:
I/O 口电源
PD24:通用双向数字 I/O 引脚
D24: 外部存储器数据线 24
PD25:通用双向数字 I/O 引脚
D25: 外部存储器数据线 25
PD26:通用双向数字 I/O 引脚
D26: 外部存储器数据线 26
PD27:通用双向数字 I/O 引脚
D27: 外部存储器数据线 27
PD28:通用双向数字 I/O 引脚
D28: 外部存储器数据线 28
PD29:通用双向数字 I/O 引脚
D29: 外部存储器数据线 29
PD30:通用双向数字 I/O 引脚
D30: 外部存储器数据线 30
PD31:通用双向数字 I/O 引脚
D31: 外部存储器数据线 31
PB0: 通用双向数字 I/O 引脚
CTS0X:UART0 的 MODEM 信号,清除发送
PWM0:脉宽调制输出 0 引脚
PB0: 通用双向数字 I/O 引脚
DSR0X:UART0 的 MODEM 信号,数据装置就绪
CAT0:定时器 0 捕获输入引脚
PB2: 通用双向数字 I/O 引脚
RI0X:UART0 的 MODEM 信号,振铃指示
PWM1:脉宽调制输出 1 引脚
11
CH563 中文手册
51
25
PB3
I/O
PB3/DCD0X
/CAT1
52
26
PB4
I/O
PB4/DTR0X
/PWM2
53
27
PB5
I/O
PB5/RTS0X
/CAT2
54
28
VCC18
P
VCC18
55
44
GND
P
GND
56
29
VCC33
P
VCC33
57
30
PB6
I/O
PB6/PWM3
/ CAT3
PB7
I/O
PB7
58
31
PB3:通用双向数字 I/O 引脚
DCD0X:UART0 的 MODEM 信号,载波检测
CAT1:定时器 1 捕获输入引脚
PB4:通用双向数字 I/O 引脚
DTR0X:UART0 的 MODEM 信号,数据终端就绪
PWM2:脉宽调制输出 2 引脚
PB5:通用双向数字 I/O 引脚
RTS0X:UART0 的 MODEM 信号,请求发送
CAT2:定时器 2 捕获输入引脚
1.8V 内核电源:
内部电路的电源
地:
公共接地端,0V 参考点
3.3V 端口电源:
I/O 口电源
PB6:通用双向数字 I/O 引脚
PWM3:脉宽调制输出 3
CAT3:定时器 3 捕获输入引脚
PB7:通用双向数字 I/O 引脚
59
32
PB16
I/O
PB16/ADCS
60
33
PB17
I/O
PB17/SCK1
61
34
PB18
I/O
PB18/SDO
62
35
PB19
I/O
PB19/SDI
/SDX1
63
36
RST#
I
RST#
64
37
GND
P
GND
65
-
AVRB
P
AVRB
66
38
AVRT
P
AVRT
67
-
AIN2
I
AIN2
PB16:通用双向数字 I/O 引脚
ADCS: 在 ADC 通道自动切换模式指示当前 0/1
通道状态;在非自动切换模式输出采样脉冲
PB17:通用双向数字 I/O 引脚
SCK1:SPI1 串行时钟输出引脚
PB18:通用双向数字 I/O 引脚
SDO:SPI1 串行数据输出引脚
PB19:通用双向数字 I/O 引脚
SDI: SPI1 串行数据输入引脚
SDX1:SPI1 单工模式下串行数据输入输出引脚
外部复位输入,内置上拉电阻
该管脚的低电平将器件复位,并使 I/O 口和外围
功能恢复默认状态,处理器从地址 0 开始执行
地:
公共接地端,0V 参考点
ADC 参考电源负极,标称电压与 GND 相同,但应
当互相隔离以减少噪声干扰
ADC 参考电源正极,标称电压与 VCC33 相同,但
应当互相隔离以减少噪声干扰
A/D 转换输入通道 2 引脚
68
-
AIN1
I
AIN1
A/D 转换输入通道 1 引脚
69
39
AIN0
I
AIN0
A/D 转换输入通道 0 引脚
70
40
VCC33A
P
VCC33A
ADC 模拟 3.3V 电源
标称电压和 VCC33 相同,但应当互相隔离以减少
噪声干扰
12
CH563 中文手册
71
41
GND
P
GND
72
42
VCC33
P
VCC33
73
-
DBG
I
DBG
74
-
PD8
I/O
PD8/D8
75
-
PD9
I/O
PD9/D9
76
-
PD10
I/O
PD10/D10
77
-
PD11
I/O
PD11/D11
78
-
PD12
I/O
PD12/D12
79
-
PD13
I/O
PD13/D13
80
-
PD14
I/O
PD14/D14
81
-
PD15
I/O
PD15/D15
82
43
VCC18
P
VCC18
83
45
VCC33
P
VCC33
84
-
PA0
I/O
PA0/A0
85
-
PA1
I/O
PA1/A1
86
-
PA2
I/O
PA2/A2
87
-
PA3
I/O
PA3/A3
88
-
PA4
I/O
PA4/TWP0
/A4
89
-
PA5
I/O
PA5/TWP1
/A5
90
-
PA6
I/O
PA6/TACK
/A6
91
46
PA7
I/O
PA7/DTR0/
TNOW0/TDO
/A7
92
-
VCC33
P
VCC33
地:
公共接地端,0V 参考点
3.3V 电源:
ADC 部分电源
DEBUG 模式选择输入引脚
高电平有效,内置下拉电阻
PD8:通用双向数字 I/O 引脚
D8: 外部存储器数据线 8
PD9:通用双向数字 I/O 引脚
D9: 外部存储器数据线 9
PD10:通用双向数字 I/O 引脚
D10: 外部存储器数据线 10
PD11:通用双向数字 I/O 引脚
D11: 外部存储器数据线 11
PD12:通用双向数字 I/O 引脚
D12: 外部存储器数据线 12
PD13:通用双向数字 I/O 引脚
D13: 外部存储器数据线 13
PD14:通用双向数字 I/O 引脚
D14: 外部存储器数据线 14
PD15:通用双向数字 I/O 引脚
D15: 外部存储器数据线 15
1.8V 内核电源:
内部电路的电源
3.3V 端口电源:
I/O 口电源
PA0:通用双向数字 I/O 引脚
A0: 外部存储器地址线 0
PA1:通用双向数字 I/O 引脚
A1: 外部存储器地址线 1
PA2:通用双向数字 I/O 引脚
A2: 外部存储器地址线 2
PA3:通用双向数字 I/O 引脚
A3: 外部存储器地址线 3
PA4:通用双向数字 I/O 引脚
TWP0:DEBUG 模式断点控制引脚,应该接低电平
A4: 外部存储器地址线 4
PA5:通用双向数字 I/O 引脚
TWP1:DEBUG 模式断点控制引脚,应该接低电平
A5: 外部存储器地址线 5
PA6:通用双向数字 I/O 引脚
TACK:DEBUG 模式应答输出
A6: 外部存储器地址线 6
PA7:通用双向数字 I/O 引脚
DTR0:UART0 的 MODEM 信号,数据终端就绪
TNOW0:UART0 的单工 RS485 收发使能引脚
A7: 外部存储器地址线 7
3.3V 端口电源:
I/O 口电源
13
CH563 中文手册
93
47
PA12
I/O
PA12/CTS0
/A12
94
-
PA13
I/O
PA13/DSR0
/ELED#/TDI
/A13
95
-
PA14
I/O
PA14/RI0
/TCK/A14
96
-
PA15
I/O
PA15/DCD0
/TMS/A15
97
49
PA8
I/O
FT
PA8/RTS0
/UID/A8
98
-
PA9
I/O
FT
PA9/SLVI#
/TRST#/A9
99
-
PA10
I/O
FT
PA10/SLVA
/A10
100
50
PA11
I/O
FT
PA11/SLVCS#
/A11
101
-
VCC33
P
102
-
PA16
I/O
FT
PA16/CTS1
/A16
103
51
PA17
I/O
FT
PA17/RTS1
/TNOW1/A17
104
52
PA18
I/O
FT
PA18/ELINK#
/A18
105
53
PA19
I/O
FT
PA19/VBUS
/A19
106
-
PA20
I/O
FT
PA20/PRD#
107
-
PA21
I/O
FT
PA21/PWR#
108
54
VCC18
P
VCC18
PA12:通用双向数字 I/O 引脚
CTS0:UART0 的 MODEM 信号,清除发送
A12: 外部存储器地址线 12
PA13:通用双向数字 I/O 引脚
DSR0:UART0 的 MODEM 信号,数据装置就绪
ELED#:以太网收发指示灯驱动引脚
A13: 外部存储器地址线 13
PA14:通用双向数字 I/O 引脚
RI0: UART0 的 MODEM 信号,振铃指示
A14: 外部存储器地址线 14
PA15:通用双向数字 I/O 引脚
DCD0:UART0 的 MODEM 信号,载波检测
A15: 外部存储器地址线 15
PA8:PA 口通用 I/O
RTS0:UART0 的 MODEM 信号,请求发送
UID:USB 接口 ID 信号线输入引脚
A8: 外部存储器地址线 8
PA9:通用双向数字 I/O 引脚
SLVI#:被动并口中断输出引脚
A9: 外部存储器地址线 9
PA10:通用双向数字 I/O 引脚
SLVA:被动并口命令/数据选择输入引脚
A10: 外部存储器地址线 10
PA11:通用双向数字 I/O 引脚
SLVCS#:被动并口片选输入引脚
A11: 外部存储器地址线 11
3.3V 端口电源:
I/O 口电源
PA16:通用双向数字 I/O 引脚
CTS1:UART1 的 MODEM 信号,清除发送
A16: 外部存储器地址线 16
PA17:通用双向数字 I/O 引脚
RTS1:UART1 的 MODEM 信号,请求发送
TNOW1:UART1 的单工 RS485 收发使能引脚
A17: 外部存储器地址线 17
PA18:通用双向数字 I/O 引脚
ELINK#:以太网通讯连接指示灯驱动引脚
A18: 外部存储器地址线 18
PA19:通用双向数字 I/O 引脚
VBUS:USB 总线电源检测输入引脚
A19: 外部存储器地址线 19
PA20:通用双向数字 I/O 引脚
PRD#:被动并口读信号输入引脚
外部存储器读信号输出引脚
PA21:通用双向数字 I/O 引脚
PWR#:被动并口写信号输入引脚
外部存储器写信号输出引脚
1.8V 内核电源:
内部电路的电源
14
CH563 中文手册
109
48
GND
P
GND
110
55
PB8
I/O
FT
PB8/RXD0
111
56
PB9
I/O
FT
PB9/TXD0
112
57
PB10
I/O
FT
PB10/RXD1
/RXTX1
113
58
PB11
I/O
FT
PB11/TXD1
114
59
PB12
I/O
FT
PB12/SCS
115
60
PB13
I/O
FT
PB13/SCK0
116
61
PB14
I/O
FT
PB14/MOSI
117
62
PB15
I/O
FT
PB15/MISO
/SDX0
118
-
PD0
I/O
FT
PD0/D0
/SLV_D0
119
-
PD1
I/O
FT
PD1/D1
/SLV_D1
120
-
PD2
I/O
FT
PD2/D2
/SLV_D2
121
-
PD3
I/O
FT
PD3/D3
/SLV_D3
122
63
VCC33
P
123
-
PD4
I/O
FT
PD4/D4
/SLV_D4
124
-
PD5
I/O
FT
PD5/D5
/SLV_D5
125
-
PD6
I/O
FT
PD6/D6
/SLV_D6
126
-
PD7
I/O
FT
PD7/D7
/SLV_D7
127
-
NC
I
VCC33
NC
地:
公共接地端,0V 参考点
PB8: 通用双向数字 I/O 引脚
RXD0:UART0 接收器输入引脚
PB9: 通用双向数字 I/O 引脚
TXD0:UART0 发送器输出引脚
PB10:通用双向数字 I/O 引脚
RXD1:UART1 接收器输入引脚
RXTX1:UART1 单工收发输入输出引脚
PB11:通用双向数字 I/O 引脚
TXD1:UART1 发送器输出引脚
PB12:通用双向数字 I/O 引脚
SCS: SPI0 从机片选输入引脚
PB13:通用双向数字 I/O 引脚
SCK0:SPI0 串行时钟引脚,主机输出/从机输入
PB14:通用双向数字 I/O 引脚
MOSI:SPI0 串行数据引脚,主机输出/从机输入
PB15:通用双向数字 I/O 引脚
MISO:SPI0 串行数据引脚,主机输入/从机输出
SDX0:SPI0 单工模式下串行数据输入输出引脚
PD0:通用双向数字 I/O 引脚
D0: 外部存储器数据线 0
SLV_D0:8 位被动并口数据线 0
PD1:通用双向数字 I/O 引脚
D1: 外部存储器数据线 1
SLV_D1:8 位被动并口数据线 1
PD2:通用双向数字 I/O 引脚
D2: 外部存储器数据线 2
SLV_D2:8 位被动并口数据线 2
PD3:通用双向数字 I/O 引脚
D3: 外部存储器数据线 3
SLV_D3:8 位被动并口数据线 3
3.3V 端口电源:
I/O 口电源
PD4:通用双向数字 I/O 引脚
D4: 外部存储器数据线 4
SLV_D4:8 位被动并口数据线 4
PD5:通用双向数字 I/O 引脚
D5: 外部存储器数据线 5
SLV_D5:8 位被动并口数据线 5
PD6:通用双向数字 I/O 引脚
D6: 外部存储器数据线 6
SLV_D6:8 位被动并口数据线 6
PD7:通用双向数字 I/O 引脚
D7: 外部存储器数据线 7
SLV_D7:8 位被动并口数据线 7
保留引脚
15
CH563 中文手册
128
-
NC
I
NC
保留引脚
注:
(1)、I:输入;O:输出;P:电源;ETH:以太网信号;USB:USB 信号;HiZ:高阻;
(2)、FT:兼容 5V;
(3)、其中部分功能仅在部分封装中支持,具体请参看引脚描述表。
CH563 中文手册
16
第 3 章 存储器映射
3.1 存储器映射图
CH563 包含有一个 4GB 的地址空间,各存储器映射主要包含几个不同区域,见下图所示。
图 3-1 存储器映射图
3.2 存储器映射表
各存储器映射区域地址范围如下表所示:
地址范围
用途
0x0000 0000-0x000F FFFF 片上非易失性存储器
0x0010 0000-0x003F FFFF 保留
0x0040 0000-0X0040 FFFF 各种外设
0x0041 0000-0X007F FFFF 保留
0x0080 8000-0X0081 FFFF 片上 SRAM,通常用于存储数据
0x0082 0000-0X00BF FFFF 保留
0x00C0 0000-0X00CF FFFF 外部系统总线
0x00D0 0000-0XFFFF FFFF 保留
描述
Flash 存储器(1MB)
多个外设模块
96K/64K/32K
1MB
-
17
CH563 中文手册
3.3 外设地址分配
CH563 主要包含 12 个外设,每个外设占用一定的地址空间,下表为各个外设的地址分配表。
外设编号
1
2
3
4
5
6
7
8
9
10
11
12
外设名称
SYS
USB
ETH
TIMER0
TIMER1
TIMER2
TIMER3
ADC
SPI0
SPI1
UART0
UART1
外设基址
0x0040 1000
0x0040 4000
0x0040 6000
0x0040 8000
0x0040 8400
0x0040 8800
0x0040 8C00
0x0040 A000
0x0040 C000
0x0040 C800
0x0040 D000
0x0040 D800
18
CH563 中文手册
第 4 章 电源和复位控制
4.1 电源控制
CH563 需要外部提供 2 组工作电压,CPU 工作电压为 1.8V,IO 操作电压为 3.3V。由图 2-1 和图
2-2 的封装引脚排列可以看出,外部提供了多组电源和地。另外,为提高转换的精确度,ADC 使用了
一个独立的外部的电源(AVRT 和 AVRB)供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。
在系统或电源复位后,CH563 处于运行状态。当 CPU 不需要继续运行时,或某些功能模块不需要
使用时,可以关闭这些模块的时钟或电源,以降低功耗。具体见第 5 章时钟控制关于寄存器部分的讲
解。
4.2 复位控制
CH563 支持 4 种复位形式,分别为电源上电复位,外部手工复位,内部软件复位和看门狗复位。
其中前 3 种复位会导致重新加载配置信息,并重新加载程序代码到 RAM 缓冲区中,加载时间约为 3mS。
寄存器 R8_GLOB_RESET_KEEP 和位 RB_GLOB_BOOT_APP,只在上电复位时被复位,而不受其它 3 种
复位影响。
4.2.1 电源上电复位
当电源电压低于上电复位门限 Vpot 时,CH563 发生复位。下图为 CH563 上电复位图。
Vpot
Vcc
Tout
TIME-OUT
INTERNAL
RESET
4.2.2 外部手工复位
外部手工复位由外加于 RST#引脚的低电平产生。当复位低电平持续时间大于最小复位脉冲宽度
(Trst)时即触发 CH563 芯片进行复位。
19
CH563 中文手册
Vcc
RST#
Vrst
Tout
TIME-OUT
INTERNAL
RESET
4.2.3 内部软件复位
CH563 提供了内部软件复位功能,以便在某些特定情况下,不需要外部干预进行软件复位。设置
全局复位配置寄存器(R8_GLOB_RST_CFG)的位 RB_GLOB_FORCE_RST 为 1,即可实现软件复位。该位会
自动清 0。
4.2.4 看门狗复位
23
看门狗定时器溢出时将产生内部复位脉冲,控制 CH563 进行复位。看门狗周期约为 2 =8388608
个主时钟周期,对于 100MHz 主频约为 84mS。清零 R8_WDOG_CLEAR 可以复位看门狗定时器。
4.2.5 复位特性
符号
参数
最小值
典型值
最大值
单位
Vpot
上电复位门限电压
1.0
1.5
1.6
V
Vrst
RST#门限电压
1.3
1.5
-
V
Trst
外部复位输入 RST#有效信号宽度
20
-
-
ns
Tout
外部复位输入后的复位延时+加载时间
4+3
8+3
10+3
mS
20
CH563 中文手册
第 5 章 时钟控制
5.1 时钟框图
CH563 内部各功能模块时钟结构如下图所示:
USB PHY CLK
分频
器
OSC_OUT
OSC_IN
分频
器
倍频
器
PLL
(最 大
300M)
ETH PHY CLK
分频
器
AHB CLK
CPU CLK
外设时钟使能
USB CLK
外设时钟使能
ETH MAC CLK
外设时钟使能
TIMx CLK
外设时钟使能
分频器
SPIx CLK
外设时钟使能
分频器
UARTx CLK
外设时钟使能
分频器
ADC CLK
外设时钟使能
AUX CLK
外设时钟使能
图 5-1 时钟结构框图
21
CH563 中文手册
外部时钟输入 CH563 后,先经过分频器进行分频(R8_PLL_PRE_DIV)得到参考频率,再经过倍频器
进行倍频(R8_PLL_LOOP_DIV)得到 PLL 时钟。PLL 时钟经过 RB_PLL_ETH_DIV 分频后,作为以太网时钟,
该时钟必须为 25MHZ。PLL 时钟经过 RB_PLL_SYS_DIV 分频后,作为 CPU 主时钟,建议主时钟频率范围
为:30MHZ-130MHZ。各部分时钟都有对应的寄存器或位,进行单独的打开或关闭。为降低芯片功耗,
可以关闭不使用的功能模块。
5.2 寄存器描述
时钟及CPU控制相关寄存器物理起始地址为:0x0040 0000
时钟及 CPU 控制相关寄存器列表(地址范围:0x00---0x1E)
表 5-1 时钟及 CPU 控制相关寄存器列表
名称
偏移地址
描述
R8_SAFE_ACCESS_SIG
R8_SAFE_ACCESS_ID
R8_WDOG_CLEAR
R8_GLOB_MEM_CFG
R8_GLOB_LOCK_PORT
R8_GLOB_RST_CFG
R8_GLOB_RESET_KEEP
R8_PLL_EXT_CFG
R8_PLL_OUT_DIV
R8_PLL_PRE_DIV
R8_PLL_LOOP_DIV
R8_SLP_CLK_OFF0
R8_SLP_CLK_OFF1
R8_SLP_WAKE_CTRL
R8_SLP_CTRL_PLL
R8_MISC_CTRL_ETH
R8_MISC_CTRL_USB
0x00
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0A
0x0B
0x0C
0X0D
0X0E
0X0F
0x1C
0x1D
复位值
安全访问标记寄存器
安全访问 ID 寄存器
看门狗清 0 寄存器
全局配置寄存器
全局端口锁定配置寄存器
全局复位配置寄存器
复位保持寄存器
PLL 配置寄存器
PLL 输出时钟分频寄存器
PLL 预分频寄存器
PLL 回环分频寄存器
时钟控制寄存器 0
时钟控制寄存器 1
休眠控制寄存器
PLL 休眠控制寄存器
以太网控制寄存器
USB 控制寄存器
8h00
8h01
8h00
8h80
8h00
8h40
8h00
8h40
8h40
8h00
8h00
8h00
8h00
8h00
8h00
8h00
8h00
安全访问标记寄存器(R8_SAFE_ACCESS_SIG):
名称
位
访问
R8_SAFE_ACCESS_SIG
[7:0]
WO
描述
安全访问标记寄存器,部分寄存器(访
问属性为 RWA)为保护寄存器,必须进
入安全访问模式才能进行读写操作。
对该寄存器先写入 0x57,再写入 0xA8
即可进入安全访问模式,并且限时约
110 个主时钟周期,超过则自动保护
复位值
8h0
安全访问 ID 寄存器(R8_SAFE_ACCESS_ID):
名称
位
访问
描述
R8_SAFE_ACCESS_ID
[7:0]
RF
安全访问 ID 寄存器
复位值
8h01
看门狗清 0 寄存器(R8_WDOG_CLEAR):
名称
位
访问
R8_WDOG_CLEAR
[7:0]
WO
复位值
8h00
全局配置寄存器(R8_GLOB_MEM_CFG):
描述
看门狗清 0 寄存器
22
CH563 中文手册
名称
位
访问
RB_GLOB_CFG_FLAG
[7:6]
RO
Reserved
5
-
RB_GLOB_BOOT_APP
4
RO
Reserved
[3:2]
-
RB_GLOB_MEM_CFG
[1:0]
RWA
描述
全局配置标志位
写操作时,该域必须写入 2b10
保留
引导程序标志位
0:引导程序状态(或无引导程序)
1:用户应用程序状态
保留
内存配置域
0X:64K 代码空间,64K 数据空间
10:96K 代码空间,32K 数据空间
11:32K 代码空间,96K 数据空间
注:FLASH 闪存超出上述代码空间的
部分代码将降速到 12.5%主频运行
全局端口锁定配置寄存器(R8_GLOB_LOCK_PORT):
名称
位
访问
Reserved
Reserved
[7:6]
[5:4]
RB_GLOB_LOCK_PD
3
Reserved
2
RB_GLOB_LOCK_PB
1
RB_GLOB_LOCK_PA
0
-
-
描述
写操作时,该域必须写入 2b00
保留
GPIO PD 端口锁定位
0:未锁定
1:锁定,R32/R8_PB_*全部写保护
保留
GPIO PB 端口锁定位
0:未锁定
1:锁定,R32/R8_PB_*全部写保护
GPIO PA 端口锁定位
0:未锁定
1:锁定,R32/R8_PA_*全部写保护
全局复位配置寄存器(R8_GLOB_RST_CFG):
名称
位
访问
描述
Reserved
[7:6]
写操作时,该域必须写入 2b01
当前调试禁止/使能状态位
RB_GLOB_DEBUG_EN
5
RO
0:当前禁止调试
1:当前使能调试
Reserved
[4:2]
保留
看门狗禁止/使能位
RB_GLOB_WDOG_EN
1
RWA 0:禁止看门狗
1:使能看门狗
软复位位
WA/
RB_GLOB_FORCE_RST
0
0:无动作
WZ
1:强制软件复位芯片
复位保持寄存器(R8_GLOB_RESET_KEEP):
名称
位
访问
R8_GLOB_RESET_KEEP
[7:0]
RW
描述
复位保持寄存器
该寄存器值不受手工复位、软件复位
复位值
2h2
1h0
1h1
-
2h2
复位值
2h3
1h0
1h0
1h0
复位值
2h0
1h0
1h0
1h0
复位值
8h0
23
CH563 中文手册
或者看门狗复位影响
PLL 配置寄存器(R8_PLL_EXT_CFG):
名称
Reserved
Reserved
位
[7:6]
[5:4]
访问
-
RB_PLL_ETH_OSC
3
RWA
RB_PLL_XT_FREQ
2
RWA
Reserved
[1:0]
-
描述
写操作时,该域必须写入 2b01
保留
以太网时钟源选择位
0:PLL 产生
1:外部晶振产生(保留,禁用)
PLL 外部晶振频率位
0:12MHz
1:30 MHz
保留
PLL 输出时钟分频寄存器(R8_PLL_OUT_DIV):
名称
位
访问
描述
Reserved
[7:6]
写操作时,该域必须写入 2b10
系统时钟分频系数
RB_PLL_SYS_DIV
[5:4]
RWA
有效值为 0-3,0 代表 4
以太网时钟分频系数
RB_PLL_ETH_DIV
[3:0]
RWA
有效值为 1-16
PLL 预分频寄存器(R8_PLL_PRE_DIV):
名称
位
访问
Reserved
[7:3]
R8_PLL_PRE_DIV
[2:0]
RWA
复位值
2h0
1h0
1h1
-
复位值
2h0
2h0
4ha
描述
复位值
3h3
描述
复位值
6h19
描述
UART1 时钟控制位
0:UART1 时钟开启
1:UART1 时钟关闭
UART0 时钟控制位
0:UART0 时钟开启
1:UART0 时钟关闭
SPI1 时钟控制位
0:SPI1 时钟开启
1:SPI1 时钟关闭
SPI0 时钟控制位
0:SPI0 时钟开启
1:SPI0 时钟关闭
TIM3 时钟控制位
复位值
保留
预分频系数
PLL 倍频寄存器(R8_PLL_LOOP_DIV):
名称
Reserved
R8_PLL_LOOP_DIV
位
[7:6]
[5:0]
访问
RWA
时钟控制寄存器 0(R8_SLP_CLK_OFF0):
名称
位
访问
RB_SLP_CLK_UART1
7
RWA
RB_SLP_CLK_UART0
6
RWA
RB_SLP_CLK_SPI1
5
RWA
RB_SLP_CLK_SPI0
4
RWA
RB_SLP_CLK_TMR3
3
RWA
保留
PLL 倍频系数
1h0
1h0
1h0
1h0
1h0
24
CH563 中文手册
RB_SLP_CLK_TMR2
2
RWA
RB_SLP_CLK_TMR1
1
RWA
RB_SLP_CLK_TMR0
0
RWA
时钟控制寄存器 1(R8_SLP_CLK_OFF1):
名称
位
访问
RB_SLP_CLK_ETH
7
RWA
RB_SLP_CLK_USB
6
RWA
RB_SLP_CLK_GPIO
5
RWA
RB_SLP_CLK_ADC
4
RWA
Reserved
[3:0]
-
休眠控制寄存器(R8_SLP_WAKE_CTRL):
名称
位
访问
RB_SLP_ETH_PWR_DN
7
RWA
RB_SLP_WOL_WAKE
6
RWA
RB_SLP_AP_WAK_USB
5
RWA
RB_SLP_USB_WAKE
4
RWA
0:TIM3 时钟开启
1:TIM3 时钟关闭
TIM2 时钟控制位
0:TIM2 时钟开启
1:TIM2 时钟关闭
TIM1 时钟控制位
0:TIM1 时钟开启
1:TIM1 时钟关闭
TIM0 时钟控制位
0:TIM0 时钟开启
1:TIM0 时钟关闭
1h0
1h0
1h0
描述
以太网时钟控制位
0:以太网时钟开启
1:以太网时钟关闭
USB 时钟控制位
0:USB 时钟开启
1:USB 时钟关闭
GPIO 时钟控制位
0:GPIO 时钟开启
1:GPIO 时钟关闭,以下寄存器写保护:
主动并口模块所有寄存器/外部总线,
直跳中断入口 R32_INT_VEC_*,
GPIO 中断模式 R32/R8_INT_MODE_*,
GPIO 中断极性 R32/R8_INT_POLAR_*,
端口上拉/下拉 R32/R8_P*_PU/PD,
端口驱动/施密特 R32/R8_P*_DRV/SMT
ADC 时钟控制位
0:ADC 时钟开启
1:ADC 时钟关闭
保留
复位值
描述
以太网模块电源控制位
0:以太网模块上电
1:以太网模块下电
以太网 WOL 唤醒使能/禁止位
0:禁止
1:使能
应用程序唤醒 USB 请求位
0:无动作
1:强制唤醒 USB
USB 唤醒使能/禁止位
0:禁止
1:使能
复位值
1h0
1h0
1h0
1h0
-
1h1
1h0
1h0
1h0
25
CH563 中文手册
RB_SLP_PD_WAKE
3
RWA
Reserved
2
-
RB_SLP_PB_WAKE
1
RWA
RB_SLP_PA_WAKE
0
RWA
GPIO PD 端口唤醒使能/禁止位
0:禁止
1:使能
保留
GPIO PB 端口唤醒使能/禁止位
0:禁止
1:使能
GPIO PA 端口唤醒使能/禁止位
0:禁止
1:使能
PLL 休眠控制寄存器(R8_SLP_CTRL_PLL):
名称
位
访问
R8_SLP_CTRL_PLL
[7:0]
WA
RB_SLP_PLL_STATUS
7
RO
RB_SLP_CPU_STATUS
6
RO
Reserved
[5:1]
-
RB_SLP_WOL_STATUS
0
RO
以太网控制寄存器(R8_MISC_CTRL_ETH):
名称
位
访问
RB_MISC_ETH_RST
7
RW
Reserved
RB_MISC_ETH_LED
[6:3]
2
-
描述
PLL 休眠控制域
该寄存器写入 0x6A,将使能 CPU 进入
待机状态,此时 PLL 仍然在工作,CPU
可以被已使能的各种中断快速唤醒;
该寄存器写入 0x95,将使能 PLL 进入
全局休眠状态(包括 CPU),仅支持部分
GPIO 或者 USB 或者 ETH-WOL 唤醒
当前 PLL 休眠状态
0:PLL 未休眠
1:PLL 处于休眠状态
当前 CPU 待机状态
0:CPU 未休眠
1:CPU 处于休眠状态
保留
当前以太网 WOL 远程唤醒信号状态
0:以太网模块未请求唤醒(WOL=0)
1:以太网模块请求唤醒(WOL=1)
描述
以太网控制器复位位
0:无动作
1:以太网控制器复位
在初始化以太网控制器前,必须先执
行以太网复位动作。
主要步骤为:
(1)、该位置 1,复位以太网模块;
(2)、置 RB_SLP_ETH_PWR_DN 为 0,给
以太网模块供电;
(3)、延时几十毫秒;
(4)、该位清 0,结束以太网模块复位;
(5)、延时几十毫秒;
(6)、以太网初始化及其他操作;
保留
以太网控制器连接指示灯使能/禁止
1h0
1h0
1h0
复位值
8h0
1h0
1h0
1h0
复位值
1h0
1h0
26
CH563 中文手册
RB_MISC_ETH_TX
1
RB_MISC_ETH_RX
0
位
0:禁止
1:使能 ELINK#引脚输出连接状态
以太网控制器发送指示灯使能/禁止
位
0:禁止
1:使能 ELED#引脚输出发送状态
以太网控制器接收指示灯使能/禁止
位
0:禁止
1:使能 ELED#引脚输出接收状态
1h0
1h0
USB 控制寄存器(R8_MISC_CTRL_USB):
名称
Reserved
位
[7:4]
访问
-
RB_MISC_USB_ID_ST
3
RW
Reserved
2
-
RB_MISC_USB_ID_EN
1
RW
RB_MISC_USB_VBUS
0
RW
描述
保留
USB ID 设置位
0:当前 USB 控制器工作在主机模式
1:当前 USB 控制器工作在设备模式
通过设置该位来进行 USB 主机、设备
切换
保留
USB UID 引脚使能位
0:禁止 UID 引脚,由内部软件设置
RB_MISC_USB_ID_ST 代替
1:使能 UID 引脚
USB VBUS 引脚使能位
0:禁止 VBUS 引脚,强制为有效状态
1:使能 VBUS 引脚
复位值
-
1h1
1h0
1h0
5.3 全局休眠后的唤醒
全局休眠状态是最低功耗状态,此时 PLL 停止工作,CH563 内部时钟暂停,CPU 不再工作,也不
响应任何中断,但是如果唤醒后 CPU 开始工作,发现唤醒事件同时也属于中断事件(例如某 GPIO 唤
醒和 GPIO 中断),那么会当作中断处理。
为降低功耗,在进入全局休眠状态前,休眠期间不会用到的物理 Phy 模块(例如 ADC/USB/ETH)
应该提前关闭。另外,各个 GPIO 引脚不能处于悬浮状态,要么是输出状态,要么是输入状态但是外
部提供高电平或者低电平,如果是输入状态且外部没有提供高或低电平,那么应该启用该引脚的内部
下拉电阻。不推荐使用内部上拉电阻的原因是,对于支持 5V 电压输入的 FT 引脚,启用上拉电阻后仍
然会有少量静态电流,除非由外部电路提供上拉电阻拉到 VCC 电压。
在全局休眠状态下,CH563 仅支持部分 GPIO 或者 USB 或者 WOL 唤醒,参考 R8_SLP_WAKE_CTRL,
分别由 RB_SLP_PA_WAKE、RB_SLP_PB_WAKE、RB_SLP_PD_WAKE、RB_SLP_USB_WAKE、RB_SLP_WOL_WAKE
控制,其中前 3 组为 GPIO 唤醒控制。
GPIO 唤醒事件源与 GPIO 中断事件源相同(除了不需要 R32_INT_MODE_Px),当 R32_INT_POLAR_Px
对应的位为 0 时,GPIO 引脚出现低电平时唤醒,当 R32_INT_POLAR_Px 对应的位为 1 时,GPIO 引脚出
现高电平时唤醒。以设置允许 PA[8]低电平唤醒 CH563 为例,应该设置 R32_INT_POLAR_PA[8]=0,设
置 R32_INT_ENABLE_PA[8]=1,设置 RB_SLP_PA_WAKE=1,然后设置其它相关寄存器进入休眠状态。如
果希望 PA[8]同时作为中断事件,那么还需要设置 RB_IE_IRQ_GLOB 或 RB_IE_FIQ_GLOB,否则清 0。
27
CH563 中文手册
第 6 章 通用和复用功能 I/O
6.1 GPIO 简介
CH563 最多拥有 74 个输入输出引脚,部分引脚具有复用功能。每个 GPIO 端口有一个 32 位方向
配置寄存器( R32_Px_DIR ),一个 32 位数据输入寄存器( R32_Px_IN ),一个 32 位数据输出寄存器
( R32_Px_OUT ),一个 32 位清除寄存( R32_Px_CLR ),一个 32 位上拉配置寄存器( R32_Px_PU ),
一个 32 位开漏输出和输入下拉配置寄存器(R32_Px_PD ),一个 32 位 I/O 驱动能力配置寄存器
(R32_Px_DRV )和一个 32 位施密特触发使能配置寄存器(R32_Px_SMT )。
CH563 所有 I/O 口分为 PA、PB 和 PD 3 个端口,每个端口分别为:
Port A(PA):22 位输入输出端口;
Port B(PB):20 位输入输出端口;
Port D(PD):32 位输入输出端口;
每个 I/O 端口位可以自由编程,但是 I/O 端口寄存器必须按 8 位、16 位或者 32 位字访问。如果
引脚没有被配置成复用功能,则可以做为通用 I/O 口使用。
6.2 GPIO 寄存器描述
GPIO相关寄存器物理起始地址为:0x0040 0080
GPIO 相关寄存器列表(地址范围:0x00---0x5C)
表 6-1 GPIO 相关寄存器列表
名称
偏移地址
描述
R32_PA_DIR
R32_PA_PIN
R32_PA_OUT
R32_PA_CLR
R32_PA_PU
R32_PA_PD
0x00
0x04
0x08
0x0C
0x10
0x14
R32_PA_DRV
R32_PA_SMT
0x18
0x1C
R32_PB_DIR
R32_PB_PIN
R32_PB_OUT
R32_PB_CLR
R32_PB_PU
R32_PB_PD
0x20
0x24
0x28
0x2C
0x30
0x34
R32_PB_DRV
R32_PB_SMT
0x38
0x3C
R32_PD_DIR
R32_PD_PIN
R32_PD_OUT
R32_PD_PU
R32_PD_PD
R32_PD_DRV
0x40
0x44
0x48
0x50
0x54
0x58
PA 端口方向设置寄存器
PA 端口数据输入寄存器
PA 端口数据输出寄存器
PA 端口输出清 0 寄存器
PA 端口上拉配置寄存器
PA 端口开漏输出和输入下拉配
置寄存器
PA 端口驱动能力配置寄存器
PA 端口施密特触发器使能配置
寄存器
PB 端口方向设置寄存器
PB 端口数据输入寄存器
PB 端口数据输出寄存器
PB 端口输出清 0 寄存器
PB 端口上拉配置寄存器
PB 端口开漏输出和输入下拉配
置寄存器
PB 端口驱动能力配置寄存器
PB 端口施密特触发器使能配置
寄存器
PD 端口方向设置寄存器
PD 端口数据输入寄存器
PD 端口数据输出寄存器
PD 端口上拉配置寄存器
PD 端口下拉配置寄存器
PD 端口驱动能力配置寄存器
复位值
32h0000
32hxxxx
32h0000
32h0000
32h0000
32h0000
0000
xxxx
0000
0000
0000
0000
32h0000 0000
32h0000 0000
32h0000
32hxxxx
32h0000
32h0000
32h0000
32h0000
0000
xxxx
0000
0000
0000
0000
32h0000 0000
32h0000 0000
32h0000
32hxxxx
32h0000
32h0000
32h0000
32h0000
0000
xxxx
0000
0000
0000
0000
28
CH563 中文手册
R32_PD_SMT
0x5C
PD 端口施密特触发器使能配置
寄存器
32h0000 0000
GPIO中断相关寄存器物理起始地址为:0x0040 0050
GPIO 中断相关寄存器列表(地址范围:0x00---0x2F)
表 6-2 GPIO 中断相关寄存器列表
名称
R32_INT_STATUS_PA
R32_INT_ENABLE_PA
R32_INT_MODE_PA
R32_INT_POLAR_PA
R32_INT_STATUS_PB
R32_INT_ENABLE_PB
R32_INT_MODE_PB
R32_INT_POLAR_PB
R32_INT_STATUS_PD
R32_INT_ENABLE_PD
R32_INT_MODE_PD
R32_INT_POLAR_PD
偏移地址
0x00
0x04
0x08
0x0C
0x10
0x14
0x18
0x1C
0x20
0x24
0x28
0x2C
描述
PA 端口中断状态寄存器
PA 端口中断使能寄存器
PA 端口中断模式寄存器
PA 端口中断极性寄存器
PB 端口中断状态寄存器
PB 端口中断使能寄存器
PB 端口中断模式寄存器
PB 端口中断极性寄存器
PD 端口中断状态寄存器
PD 端口中断使能寄存器
PD 端口中断模式寄存器
PD 端口中断极性寄存器
PA 端口方向设置寄存器(R32_PA_DIR):
名称
位
访问
Reserved
[31:22]
PA[21:0]
[21:0]
RW
PA 端口输入数据寄存器(R32_PA_PIN):
名称
位
访问
Reserved
[31:22]
-
PA[21:0]
[21:0]
RO
PA 端口输出数据寄存器 (R32_PA_OUT):
名称
位
访问
Reserved
[31:22]
-
PA[21:0]
[21:0]
RW
PA 端口输出清 0 寄存器(R32_PA_CLR):
名称
位
访问
复位值
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
32h0000 0000
描述
保留
引脚当前输入输出方向控制域
0:该引脚方向为输入模式
1:该引脚方向为输出模式
复位值
-
描述
保留
引脚当前电平状态域
0:该引脚输入低电平
1:该引脚输入高电平
仅在方向寄存器(R32_PA_DIR)对应位
为 0 时,该位值有效
复位值
-
描述
保留
引脚输出高低电平控制域
0:该引脚输出低电平
1:该引脚输出高电平
仅在方向寄存器(R32_PA_DIR)对应位
为 1 时,才有效
复位值
-
描述
复位值
22h0
22hx
22h0
29
CH563 中文手册
Reserved
[31:22]
-
PA[21:0]
[21:0]
RZ
保留
保持/清除数据输出寄存器
(R32_PA_OUT)对应位的值
0:该引脚输出不改变
1:该引脚输出低电平
PA 端口上拉配置寄存器(R32_PA_PU):
名称
位
访问
Reserved
[31:22]
-
PA[21:0]
[21:0]
RW
描述
保留
引脚上拉功能启用/关闭控制域
0:关闭该引脚上拉功能
1:启用该引脚上拉功能
22h0
复位值
22h0
PA 端口开漏输出和输入下拉配置寄存器(R32_PA_PD):
名称
Reserved
位
[31:22]
访问
-
PA[21:0]
[21:0]
RW
描述
保留
方向寄存器(R32_PA_DIR)对应位配置
为 1(即输出模式)时:
0:关闭该引脚开漏输出功能
1:启用该引脚开漏输出功能
方向寄存器(R32_PA_DIR)对应位配置
为 0(即输入模式)时:
0:关闭该引脚下拉功能
1:启用该引脚下拉功能,如果上拉配
置寄存器(R32_PA_PU)对应位配置也
为 1 则启用输入状态弱保持功能
复位值
-
22h0
PA 端口驱动能力配置寄存器 (R32_PA_DRV):
名称
Reserved
位
[31:22]
访问
-
PA[21:12]
[21:12]
RW
Reserved
[11:0]
-
描述
保留
引脚输出驱动能力控制域
0:驱动电流最大为 4mA
1:驱动电流最大为 16mA
保留
PA 端口施密特触发器使能配置寄存器(R32_PA_SMT):
名称
位
访问
描述
Reserved
[31:22]
保留
引脚施密特触发器功能启用/关闭控
制域
0:关闭该引脚施密特触发器输入功
PA[21:8]
[21:8]
RW
能,关闭该引脚低斜率输出功能
1:启用该引脚施密特触发器输入功
能,启用该引脚低斜率输出功能
Reserved
[7:0]
保留
PB 端口方向设置寄存器(R32_PB_DIR):
名称
位
访问
描述
复位值
10h0
-
复位值
-
14h0
-
复位值
30
CH563 中文手册
Reserved
[31:20]
-
PB[19:0]
[19:0]
RW
保留
引脚当前输入输出方向控制域
0:该引脚方向为输入模式
1:该引脚方向为输出模式
20h0
PB 端口输入数据寄存器(R32_PB_PIN):
名称
Reserved
位
[31:20]
访问
-
PB[19:0]
[19:0]
RO
描述
保留
引脚当前电平状态域
0:该引脚输入低电平
1:该引脚输入高电平
仅在方向寄存器(R32_PB_DIR)对应位
为 0 时,该位值有效
复位值
-
描述
保留
引脚输出高低电平控制域
0:该引脚输出低电平
1:该引脚输出高电平
仅在方向寄存器(R32_PB_DIR)对应位
为 1 时,才有效
复位值
-
描述
复位值
20hx
PB 端口输出数据寄存器 (R32_PB_OUT):
名称
Reserved
位
[31:20]
访问
-
PB[19:0]
[21:0]
RW
PB 端口输出清 0 寄存器(R32_PB_CLR):
名称
位
访问
Reserved
[31:20]
-
PB[19:0]
[19:0]
RZ
PB 端口上拉配置寄存器(R32_PB_PU):
名称
位
访问
Reserved
[31:20]
PB[19:0]
[19:0]
RW
保留
保持/清除数据输出寄存器
(R32_PB_OUT)对应位的值
0:该引脚输出不改变
1:该引脚输出低电平
描述
保留
引脚上拉功能启用/关闭控制域
0:关闭该引脚上拉功能
1:启用该引脚上拉功能
PB 端口开漏输出和输入下拉配置寄存器(R32_PB_PD):
名称
位
访问
描述
Reserved
[31:20]
保留
方向寄存器(R32_PB_DIR)对应位配置
为 1(即输出模式)时:
0:关闭该引脚开漏输出功能
PB[19:0]
[19:0]
RW
1:启用该引脚开漏输出功能
方向寄存器(R32_PB_DIR)对应位配置
为 0(即输入模式)时:
0:关闭该引脚下拉功能
22h0
20h0
复位值
20h0
复位值
-
20h0
31
CH563 中文手册
1:启用该引脚下拉功能,如果上拉配
置寄存器(R32_PB_PU)对应位配置也
为 1 则启用输入状态弱保持功能
PB 端口驱动能力配置寄存器 (R32_PB_DRV):
名称
位
访问
Reserved
[31:16]
-
PB[15:8]
[15:8]
RW
Reserved
[7:0]
-
描述
保留
引脚输出驱动能力控制域
0:驱动电流最大为 4mA
1:驱动电流最大为 16mA
保留
复位值
8h0
-
PB 端口施密特触发器使能配置寄存器(R32_PB_SMT):
名称
Reserved
位
[31:20]
访问
-
PB[19:0]
[19:0]
RW
描述
保留
引脚施密特触发器功能启用/关闭控
制域
0:关闭该引脚施密特触发器输入功
能,关闭该引脚低斜率输出功能
1:启用该引脚施密特触发器输入功
能,启用该引脚低斜率输出功能
复位值
-
描述
引脚当前输入输出方向控制域
0:该引脚方向为输入模式
1:该引脚方向为输出模式
复位值
20h0
PD 端口方向设置寄存器(R32_PD_DIR):
名称
位
访问
PD[31:0]
[31:0]
RW
PD 端口输入数据寄存器(R32_PD_PIN):
名称
位
访问
PD[31:0]
[31:0]
RO
PD 端口输出数据寄存器 (R32_PD_OUT):
名称
位
访问
PD[31:0]
[31:0]
RW
PD 端口上拉配置寄存器(R32_PD_PU):
名称
位
访问
Reserved
[31:25]
-
32h0
描述
复位值
引脚当前电平状态域
0:该引脚输入低电平
1:该引脚输入高电平
仅在方向寄存器(R32_PD_DIR)对应位
为 0 时,该位值有效
32hx
描述
引脚输出高低电平控制域
0:该引脚输出低电平
1:该引脚输出高电平
仅在方向寄存器(R32_PD_DIR)对应位
为 1 时,才有效
复位值
描述
保留
复位值
-
32h0
32
CH563 中文手册
PD[24]
[24]
RW
Reserved
[23:17]
-
PD[16]
[16]
RW
Reserved
[15:9]
-
PD[8]
[8]
RW
PD[7:0]
[7:0]
RW
引脚上拉功能启用/关闭控制域
0:关闭 PD[31:24]引脚上拉功能
1:启用 PD[31:24]引脚上拉功能
保留
引脚上拉功能启用/关闭控制域
0:关闭 PD[23:16]引脚上拉功能
1:启用 PD[23:16]引脚上拉功能
保留
引脚上拉功能启用/关闭控制域
0:关闭 PD[15:8]引脚上拉功能
1:启用 PD[15:8]引脚上拉功能
引脚上拉功能启用/关闭控制域
0:关闭该引脚上拉功能
1:启用该引脚上拉功能
1h0
1h0
1h0
8h0
PD 端口下拉配置寄存器(R32_PD_PD):
名称
Reserved
位
[31:25]
访问
-
PD[24]
[24]
RW
Reserved
[23:17]
-
PD[16]
[16]
RW
Reserved
[15:9]
-
PD[8]
[8]
RW
PD[7:0]
[7:0]
RW
描述
保留
引脚下拉功能启用/关闭控制域
0:关闭 PD[31:24]引脚下拉功能
1:启用 PD[31:24]引脚下拉功能,如
果上拉配置寄存器(R32_PD_PU)对应
位配置也为 1 则启用输入状态弱保持
功能
保留
引脚下拉功能启用/关闭控制域
0:关闭 PD[23:16]引脚下拉功能
1:启用 PD[23:16]引脚下拉功能,如
果上拉配置寄存器(R32_PD_PU)对应
位配置也为 1 则启用输入状态弱保持
功能
保留
引脚下拉功能启用/关闭控制域
0:关闭 PD[15:8]引脚下拉功能
1:启用 PD[15:8]引脚下拉功能,如
果上拉配置寄存器(R32_PD_PU)对应
位配置也为 1 则启用输入状态弱保持
功能
引脚下拉功能启用/关闭控制域
0:关闭该引脚下拉功能
1:启用该引脚下拉功能,如果上拉配
置寄存器(R32_PD_PU)对应位配置也
为 1 则启用输入状态弱保持功能
PD 端口驱动能力配置寄存器 (R32_PD_DRV):
名称
位
访问
描述
Reserved
[31:8]
保留
PD[7:0]
[7:0]
RW
引脚输出驱动能力控制域
复位值
-
1h0
-
1h0
-
1h0
8h0
复位值
8h0
33
CH563 中文手册
0:驱动电流最大为 4mA
1:驱动电流最大为 16mA
PD 端口施密特触发器使能配置寄存器(R32_PB_SMT):
名称
位
访问
Reserved
[31:8]
-
PD[7:0]
[7:0]
RW
描述
保留
引脚施密特触发器功能启用/关闭控
制域
0:关闭该引脚施密特触发器输入功
能,关闭该引脚低斜率输出功能
1:启用该引脚施密特触发器输入功
能,启用该引脚低斜率输出功能
复位值
-
8h0
PA 端口中断状态寄存器(R32_INT_STATUS_PA):
名称
Reserved
位
[31:22]
访问
-
PA[21:8]
[21:8]
RW
Reserved
[7:0]
-
描述
保留
PA 端口中断状态域
0:该引脚无中断产生
1:该引脚有中断产生
保留
复位值
14h0
-
PA 端口中断使能寄存器(R32_INT_ENABLE_PA):
名称
Reserved
位
[31:22]
访问
-
PA[21:8]
[21:8]
RW
Reserved
[7:0]
-
描述
保留
PA 端口中断使能/禁止控制域
0:禁止该引脚产生中断
1:使能该引脚产生中断
保留
复位值
14h0
-
PA 端口中断模式寄存器(R32_INT_MODE_PA):
名称
Reserved
位
[31:22]
访问
-
PA[21:8]
[21:8]
RW
Reserved
[7:0]
-
描述
保留
PA 端口中断模式控制域
0:电平中断
1:边沿中断
保留
PA 端口中断极性寄存器(R32_INT_POLAR_PA):
名称
位
访问
描述
Reserved
[31:22]
保留
PA 端口中断极性控制域
PA[21:8]
[21:8]
RW
0:低电平/下降沿产生中断
1:高电平/上降沿产生中断
Reserved
[7:0]
保留
PB 端口中断状态寄存器(R32_INT_STATUS_PB):
名称
位
访问
描述
复位值
14h0
-
复位值
14h0
-
复位值
34
CH563 中文手册
Reserved
[31:20]
-
PB[19:0]
[19:0]
RW
保留
PB 端口中断状态域
0:该引脚无中断产生
1:该引脚有中断产生
20h0
PB 端口中断使能寄存器(R32_INT_ENABLE_PB):
名称
Reserved
位
[31:20]
访问
-
PB[19:0]
[19:0]
RW
描述
保留
PB 端口中断使能/禁止控制域
0:禁止该引脚产生中断
1:使能该引脚产生中断
复位值
20h0
PB 端口中断模式寄存器(R32_INT_MODE_PB):
名称
Reserved
位
[31:20]
访问
-
PB[19:0]
[19:0]
RW
描述
保留
PB 端口中断模式控制域
0:电平中断
1:边沿中断
PB 端口中断极性寄存器(R32_INT_POLAR_PB):
名称
位
访问
描述
Reserved
[31:20]
保留
PB 端口中断极性控制域
PB[19:0]
[19:0]
RW
0:低电平/下降沿产生中断
1:高电平/上降沿产生中断
PD 端口中断状态寄存器(R32_INT_STATUS_PD):
名称
位
访问
描述
PD 端口中断状态域
PD[31:24]
[31:24]
RW
0:该引脚无中断产生
1:该引脚有中断产生
Reserved
[23:16]
保留
PD 端口中断状态域
PD[7:0]
[7:0]
RW
0:该引脚无中断产生
1:该引脚有中断产生
PD 端口中断使能寄存器(R32_INT_ENABLE_PD):
名称
位
访问
描述
PD 端口中断使能/禁止控制域
PD[31:24]
[31:24]
RW
0:禁止该引脚产生中断
1:使能该引脚产生中断
Reserved
[23:16]
保留
PD 端口中断使能/禁止控制域
PD[7:0]
[7:0]
RW
0:禁止该引脚产生中断
1:使能该引脚产生中断
PD 端口中断模式寄存器(R32_INT_MODE_PD):
复位值
20h0
复位值
20h0
复位值
8h0
20h0
复位值
8h0
20h0
35
CH563 中文手册
名称
位
访问
PD[31:24]
[31:24]
RW
Reserved
[23:16]
-
PD[7:0]
[7:0]
RW
描述
PD 端口中断模式控制域
0:电平中断
1:边沿中断
保留
PD 端口中断模式控制域
0:电平中断
1:边沿中断
复位值
8h0
20h0
PD 端口中断极性寄存器(R32_INT_POLAR_PD):
名称
位
访问
PD[31:24]
[31:24]
RW
Reserved
[23:16]
-
PD[7:0]
[7:0]
RW
描述
PD 端口中断极性控制域
0:低电平/下降沿产生中断
1:高电平/上降沿产生中断
保留
PD 端口中断极性控制域
0:低电平/下降沿产生中断
1:高电平/上降沿产生中断
复位值
8h0
20h0
6.3 GPIO 复用功能
CH563 部分 I/O 引脚具有复用功能,上电后默认所有 I/O 引脚均为通用 I/O 功能,使能不同功能
模块后,相应引脚被配置成各自功能模块对应的功能引脚。以下各表为各个功能模块所使用的 I/O 引
脚。
表 6-2 串行外设接口(SPI0)
引脚
GPIO
功能描述
SCS
PB12
SPI0 从机片选输入引脚
SCK0
PB13
SPI0 串行时钟引脚,主机输出/从机输入
MOSI
PB14
SPI0 串行数据引脚,主机输出/从机输入
MISO
PB15
SPI0 串行数据引脚,主机输入/从机输出
引脚
SCK1
SDO
SDI
表 6-3 串行外设接口(SPI1)
GPIO
功能描述
PB17
SPI1 串行时钟输出引脚
PB18
SPI1 串行数据输出引脚
PB19
SPI1 串行数据输入引脚
引脚
RXD0
TXD0
DTR
RTS
CTS
DSR
RI
DCD
表 6-4
GPIO
PB8
PB9
PA7
PA8
PA12
PA13
PA14
PA15
通用异步收发器(UART0)
功能描述
UART0 接收器输入引脚
UART0 发送器输出引脚
UART0 的 MODEM 信号,数据终端就绪
UART0 的 MODEM 信号,请求发送
UART0 的 MODEM 信号,清除发送
UART0 的 MODEM 信号,数据装置就绪
UART0 的 MODEM 信号,振铃指示
UART0 的 MODEM 信号,载波检测
36
CH563 中文手册
引脚
RXD1
TXD1
表 6-5 通用异步收发器(UART1)
GPIO
功能描述
PB10
UART1 接收器输入引脚
PB11
UART1 发送器输出引脚
引脚
SLVI#
SLVA
SLVCS#
PRD#
PWR#
D0
D1
D2
D3
D4
D5
D6
D7
表 6-6 被动并口(Slave Parallel Interface)
GPIO
功能描述
PA9
被动并口中断输出引脚
PA10
被动并口命令/数据选择输入引脚
PA11
被动并口片选输入引脚
PA20
被动并口读信号输入引脚
PA21
被动并口写信号输入引脚
PD0
被动并口数据引脚
PD1
被动并口数据引脚
PD2
被动并口数据引脚
PD3
被动并口数据引脚
PD4
被动并口数据引脚
PD5
被动并口数据引脚
PD6
被动并口数据引脚
PD7
被动并口数据引脚
引脚
PRD#
PWR#
A0
|
A19
D0
|
D31
表 6-7 外部总线接口(Parallel Interface)
GPIO
功能描述
PA20
主动并口读信号输出引脚
PA21
主动并口写信号输出引脚
外部存储器 20 位地址输出引脚
PA0
|
PA19
外部存储器 32 位数据双向引脚
PD0
|
PD31
引脚
SCS
SCK
MOSI
MISO
RST
GPIO
PB12
PB13
PB14
PB15
RST#
表 6-8 ISP 下载(ISP)
功能描述
ISP 下载片选输入引脚
ISP 下载时钟输入引脚
ISP 下载数据输入引脚
ISP 下载数据输出引脚
ISP 下载复位输入引脚
37
CH563 中文手册
第 7 章 串行外设接口 SPI
7.1 SPI 简介
SPI 是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据过程中,总线
上只能有一个主机和一个从机通信。在数据传输中,主机总是会发送一帧 8 位数据,而从机也总会向
主机发送一帧字节数据。通常 SPI 接口由 4 个引脚组成:SPI 片选引脚(SCS)、SPI 时钟引脚(SCK)、
SPI 串行数据引脚(主机输入/从机输出引脚 MIOSO)和 SPI 串行数据引脚(主机输出/从机输入引脚
MOSI)。
CH563 芯片拥有 2 个 SPI 接口,其各自特性分别如下所示:
SPI0 特性:
(1)、支持主机模式和设备模式;
(2)、兼容串行外设接口(SPI)规范;
(3)、支持模式 0 和模式 3 数据传输方式;
(4)、8 位数据传输方式;
(5)、时钟频率最高可达 50MHz;
(6)、32 级 FIFO;
(7)、设备模式支持首字节为命令模式和数据流模式;
(8)、支持 DMA 数据传输;
SPI1 特性:
(1)、只支持主机模式;
(2)、支持模式 0 和模式 3 数据传输方式;
(3)、8 位数据传输方式;
(4)、时钟频率最高可达 50MHz;
(5)、16 级 FIFO;
7.2 SPI 寄存器描述
SPI0 相关寄存器物理起始地址为:0x0040 C000
SPI0 相关寄存器列表(地址范围:0x00---0x1C)
表 7-1 SPI0 相关寄存器列表
名称
R32_SPI0_CONTROL
R8_SPI0_CTRL_MOD
R8_SPI0_CTRL_DMA
R8_SPI0_INTER_EN
R8_SPI0_CLOCK_DIV
R8_SPI0_SLAVE_PRE
R32_SPI0_STATUS
R8_SPI0_BUFFER
R8_SPI0_RUN_FLAG
R8_SPI0_INT_FLAG
R8_SPI0_FIFO_COUNT
R16_SPI0_TOTAL_CNT
R32_SPI0_FIFO
R8_SPI0_FIFO
R8_SPI0_FIFO_COUNT1
偏移地址
0x00
0x00
0x01
0x02
0x03
0x04
0x04
0x05
0x06
0x07
0x0C
0x10
0x10
0x13
描述
SPI0 控制寄存器
SPI0 模式配置寄存器
SPI0 DMA 控制寄存器
SPI0 中断使能寄存器
SPI0 主机模式时钟分频寄存器
SPI0 设备模式预置数据寄存器
SPI0 状态寄存器
SPI0 数据缓冲区
SPI0 工作标志寄存器
SPI0 中断标志寄存器
SPI0 发送/接收 FIFO 计数寄存器
SPI0 发送/接收数据长度寄存器
SPI0 FIFO 寄存器
SPI0 FIFO 寄存器
SPI0 发送/接收 FIFO 计数寄存器
复位值
32h1000 0002
8h02
8h00
8h00
8h10
32h0000 0000
8h00
8h00
8h00
8h00
16h0000
32h0000 0000
8h00
8h00
38
CH563 中文手册
R16_SPI0_DMA_NOW
R16_SPI0_DMA_BEG
R16_SPI0_DMA_END
0x14
0x18
0x1C
SPI0 DMA 缓冲区当前地址
SPI0 DMA 缓冲区开始地址
SPI0 DMA 缓冲区结束地址
16h0000
16h0000
16h0000
SPI1 相关寄存器物理起始地址为:0X0040 C800
SPI1 相关寄存器列表(地址范围:0x00---0x13)
表 7-2 SPI1 相关寄存器列表
名称
偏移地址
描述
复位值
0x00
0x00
0x01
0x02
0x03
0x04
0x04
0x05
0x06
0x07
0x0C
0x10
0x10
0x13
SPI1 控制寄存器
SPI1 模式配置寄存器
SPI1 DMA 控制寄存器
SPI1 中断使能寄存器
SPI1 主机模式时钟分频寄存器
SPI1 状态寄存器
SPI1 数据缓冲区
SPI1 工作标志寄存器
SPI1 中断标志寄存器
SPI1 发送/接收 FIFO 计数寄存器
SPI1 发送/接收数据长度寄存器
SPI1 FIFO 寄存器
SPI1 FIFO 寄存器
SPI1 发送/接收 FIFO 计数寄存器
32h1000 0002
8h02
8h00
8h00
8h02
32h0000 0000
8h00
8h00
8h00
8h00
16h0000
32h0000 0000
8h00
8h00
R32_SPI1_CONTROL
R8_SPI1_CTRL_MOD
R8_SPI1_CTRL_DMA
R8_SPI1_INTER_EN
R8_SPI1_CLOCK_DIV
R32_SPI1_STATUS
R8_SPI1_BUFFER
R8_SPI1_RUN_FLAG
R8_SPI1_INT_FLAG
R8_SPI1_FIFO_COUNT
R16_SPI1_TOTAL_CNT
R32_SPI1_FIFO
R8_SPI1_FIFO
R8_SPI1_FIFO_COUNT1
SPI 模式配置寄存器(R8_SPIx_CTRL_MOD):
名称
位
访问
RB_SPI_MISO_OE
7
RW
RB_SPI_MOSI_OE
6
RW
RB_SPI_SCK_OE
5
RW
RB_SPI_FIFO_DIR
4
RW
RB_SPI_SLV_CMD_MOD
3
RW
描述
MISO 引脚输出使能/禁止位,仅 SPI0
0:MISO 引脚输出禁止
1:MISO 引脚输出使能
2 线或 3 线 SPI 模式配置位,仅 SPI1
0:3 线 SPI 模式(SCK1、SDO、SDI)
1:2 线 SPI 模式(SCK1、SDX1)
MOSI/SDO 引脚输出使能/禁止位
0:MOSI 引脚/SDO 引脚输出禁止
1:MOSI 引脚/SDO 引脚输出使能
SCK 引脚输出使能/禁止位
0:SCK 引脚输出禁止
1:SCK 引脚输出使能
FIFO 方向设置位
0:输出模式(主机模式写数据)
1:输入模式(主机模式读数据)
设备模式首字节配置位,仅 SPI0
0:数据流模式
1:首字节命令模式
在首字节命令模式下,当接收到 SPI
片选有效后的首字节数据后,将视为
命令码,且中断标志寄存器中的
RB_SPI_IF_FST_BYTE 位将置 1,
该位仅在设备模式下有效
复位值
1h0
1h0
1h0
1h0
1h0
39
CH563 中文手册
RB_SPI_MST_SCK_MOD
3
RW
RB_SPI_2WIRE_MOD
2
RW
RB_SPI_ALL_CLEAR
1
RW
RB_SPI_MODE_SLAVE
0
RW
主机时钟模式配置位
0:模式 0(空闲时 SCK 为低电平)
1:模式 3(空闲时 SCK 为高电平)
该位仅在主机模式下有效
2 线或 3 线 SPI 模式配置位,仅 SPI0
0:3 线 SPI 模式(SCK0、MOSI、MISO)
1:2 线 SPI 模式(SCK0、SDX0)
FIFO 寄存器及计数寄存器清 0 位
0:不清除
1:强制清除
SPI 主从模式选择位,仅 SPI0
0:主机模式
1:设备模式
注:SPI1 不支持设备模式
1h0
1h0
1h0
1h0
SPI DMA 控制寄存器(R8_SPIx_CTRL_DMA):
名称
位
[7:3]
访问
-
描述
复位值
-
保留
DMA 地址循环模式使能/禁止位
0:禁止 DMA 地址循环模式功能
1:使能 DMA 地址循环模式功能
1h0
如果使能 DMA 地址循环模式功能,当
RB_SPI_DMA_LOOP
2
RW
DMA 地址增加到设置的末尾地址时,
自动循环指向设置的首地址
注:SPI1 不支持
DMA 块操作使能/禁止位
0:禁止 DMA 块操作功能
1:使能 DMA 块操作功能
1h0
RB_SPI_DMA_BURST
1
RW
如果使能 DMA 块操作功能,则该 DMA
更少占用系统总线
注:SPI1 不支持
DMA 功能使能/禁止位
0:禁止 DMA 功能
1h0
RB_SPI_DMA_ENABLE
0
RW
1:使能 DMA 功能
注:SPI1 不支持
如果使能 DMA 地址循环模式功能,当 DMA 地址增加到设置的末尾地址时,自动循环指向设置的首
地址,而不需要重新设置 DMA 起始地址寄存器(R16_TIM_DMA_BEG)和 DMA 结束地址寄存器
(R16_TIM_DMA_END)。
Reserved
SPI 中断使能寄存器(R8_SPIx_INTER_EN):
名称
位
访问
RB_SPI_IE_FST_BYTE
7
RW
Reserved
6
-
描述
第一个字节接收中断使能/禁止位
0:禁止接收到第一个字节产生中断
1:使能接收到第一个字节产生中断
开启此功能需要设置 SPI 为设备模
式,同时需要将 RB_SPI_SLV_CMD_MOD
位置 1
注:SPI1 不支持
保留
复位值
1h0
-
40
CH563 中文手册
RB_SPI_IE_DMA_ERR
5
RW
RB_SPI_IE_FIFO_OV
4
RW
RB_SPI_IE_DMA_END
3
RW
RB_SPI_IE_FIFO_HF
2
RW
RB_SPI_IE_BYTE_END
1
RW
RB_SPI_IE_CNT_END
0
RW
DMA 传输错误中断使能/禁止位
0:禁止产生 DMA 传输错误中断
1:使能产生 DMA 传输错误中断
注:SPI1 不支持
FIFO 溢出中断使能/禁止位
0:禁止产生 FIFO 溢出中断
1:使能产生 FIFO 溢出中断
DMA 结束中断使能/禁止位
0:禁止产生 DMA 结束中断
1:使能产生 DMA 结束中断
注:SPI1 不支持
FIFO 过半中断使能/禁止位
0:禁止产生 FIFO 过半中断
1:使能产生 FIFO 过半中断
SPI 单字节传输完成中断使能/禁止
位
0:禁止产生 SPI 单字节传输完成中
断
1:使能产生 SPI 单字节传输完成中
断
SPI 全部字节传输完成中断使能/禁
止位
0:禁止产生 SPI 全部字节传输完成
中断
1:使能产生 SPI 全部字节传输完成
中断
1h0
1h0
1h0
1h0
1h0
1h0
SPI 主机模式时钟分频寄存器(R8_SPIx_CLOCK_DIV):
名称
SPIx_CLOCK_DIV
位
访问
[7:0]
RW
描述
主机模式分频系数,最小值为 2
SPI 时钟频率=主频/分频系数
SPI 设备模式预置数据寄存器(R8_SPIx_SLAVE_PRE):
名称
位
访问
描述
设备模式下预置的返回数据
SPIx_SLAVE_PRESET
[7:0]
RW
用于接收首字节数据后的返回数据
注:SPI1 不支持
SPI 数据缓冲区(R8_SPIx_BUFFER):
名称
位
访问
SPIx_BUFFER
[7:0]
RW
SPI 工作标志寄存器(R8_SPIx_RUN_FLAG):
名称
位
访问
RB_SPI_SLV_SELECT
7
RO
RB_SPI_SLV_CS_LOAD
6
RO
复位值
8h02
复位值
8h02
描述
SPI 数据发送和接收缓冲区
复位值
8h0
描述
SPI 设备模式选择状态位
注:SPI1 不支持
SPI 设备模式片选后首次加载状态位
注:SPI1 不支持
复位值
1h0
1h0
41
CH563 中文手册
RB_SPI_FIFO_READY
5
RO
RB_SPI_SLV_CMD_ACT
4
RO
[3:0]
-
Reserved
SPI 中断标志寄存器(R8_SPIx_INT_FLAG):
名称
位
访问
RB_SPI_IF_FST_BYTE
7
RW1
RB_SPI_FREE
6
RO
RB_SPI_IF_DMA_ERR
5
RW1
RB_SPI_IF_FIFO_OV
4
RW1
RB_SPI_IF_DMA_END
3
RW1
RB_SPI_IF_FIFO_HF
2
RW1
RB_SPI_IF_BYTE_END
1
RW1
RB_SPI_IF_CNT_END
0
RW1
FIFO 准备完成标志位
0:FIFO 未准备好
1:FIFO 准备完成
SPI 设备模式下命令接收完成标志
位,即交换完首字节数据
注:SPI1 不支持
保留
描述
设备模式下首字节接收中断标志位
0:未接收到首字节
1:接收到首字节
注:SPI1 不支持
SPI 空闲状态位
0:当前 SPI 处于非空闲状态
1:当前 SPI 处于空闲状态
DMA 传输错误中断标志位
0:DMA 传输过程中未产生错误
1:DMA 传输过程中产生错误
注:SPI1 不支持
FIFO 溢出中断标志位
0:FIFO 未溢出
1:FIFO 发生溢出
DMA 结束中断标志位
0:DMA 传输未结束
1:DMA 传输结束
注:SPI1 不支持
FIFO 过半中断标志位
0:数据未达到 FIFO 缓冲区一半
1:数据达到 FIFO 缓冲区一半
SPI 单字节传输完成中断标志位
0:SPI 单字节传输未完成
1:SPI 单字节传输完成
SPI 全部字节传输完成中断标志位
0:SPI 全部字节传输未完成
1:SPI 全部字节传输完成
SPI 发送/接收 FIFO 计数寄存器(R8_SPIx_FIFO_COUNT):
名称
位
访问
描述
SPIx_FIFO_COUNT
[7:0]
RO
SPI 发送或接收字节数
SPI 发送/接收数据总长度寄存器(R16_SPIx_TOTAL_CNT):
名称
位
访问
描述
Reserved
[15:12]
保留
SPI 数据发送字节数
SPIx_TOTAL_CNT
[11:0]
RW
在使用 DMA 时一次最多可以发送 4095
个字节
1h0
1h0
-
复位值
1h0
1h0
1h0
1h0
1h0
1h0
1h0
1h0
复位值
8h0
复位值
12h0
42
CH563 中文手册
SPI FIFO 寄存器(R8_SPIx_FIFO):
名称
位
SPIx_FIFO
[7:0]
访问
RO/W
O
描述
复位值
SPI FIFO 寄存器
FIFO 大小为 32 个字节
SPI 发送/接收 FIFO 计数寄存器(R8_SPIx_FIFO_COUNT1):
名称
位
访问
8h0
描述
复位值
R8_SPIx_FIFO_COUNT1
[7:0]
SPI FIFO 计数
8h0
寄存器 R8_SPIx_BUFFER 和寄存器 R8_SPIx_FIFO 均为 SPI 数据相关寄存器,主要区别在于:后者
读取完一个字节数据之后,因为是从 FIFO 读取,所以长度寄存器(R16_SPI_TOTAL_CNT)的值自动减 1,
而前者读取完一个字节,长度寄存器值不变。
SPI DMA 缓冲区当前地址(R16_SPIx_DMA_NOW):
名称
R16_SPIx_DMA_NOW
位
访问
[15:0]
RO/W
O
描述
DMA 缓冲区当前地址
通过查询此值可以判断 DMA 运行情况
注:SPI1 不支持
SPI0 DMA 缓冲区开始地址(R16_SPI0_DMA_BEG):
名称
位
访问
描述
DMA 缓冲区开始地址
指向 SPI 接收或者发送数据缓冲区开
R16_SPI0_DMA_BEG
[15:0]
RW
始地址
注:SPI1 不支持
复位值
16h0
复位值
16h0
SPI0 DMA 缓冲区结束地址(R16_SPI0_DMA_END):
名称
R16_SPI0_DMA_END
位
访问
[15:0]
RW
描述
DMA 缓冲区结束地址
指向 SPI 接收或者发送数据缓冲区结
束地址
注:SPI1 不支持
复位值
16h0
7.3 SPI 传输格式
SPI 仅支持模式 0 和模式 3 两种传输格式,
可以通过设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)
的 RB_SPI_MST_SCK_MOD 位来进行选择。
数据传输格式如下图所示:
模式 0:RB_SPI_MST_SCK_MOD = 0
模式0时序图
Cycle
1
2
3
4
5
6
7
MSB
6
5
4
3
2
1
LSB
6
5
4
3
2
1
LSB
8
CLK
MOSI
MISO
MSB
MSB*
43
CH563 中文手册
图 7-1 SPI 模式 0 传输格式
模式 3: RB_SPI_MST_SCK_MOD = 1
模式3时序图
Cycle
1
2
3
4
5
6
7
MSB
6
5
4
3
2
1
MSB
6
5
4
3
2
1
8
CLK
MOSI
MISO
LSB*
LSB
LSB
图 7-2 SPI 模式 3 传输格式
7.4 SPI 配置
7.4.1 SPI 主机模式配置
SPI 主机模式下,在 SCK 引脚产生串行时钟,片选引脚可以指定为任意 I/O 引脚。
配置步骤:
(1)、设置 SPI 主机模式时钟分频寄存器(R8_SPIx_CLOCK_DIV),配置 SPI 时钟速度;
(2)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MODE_SLAVE 位为 0,配置 SPI 为
主机模式;
(3)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MST_SCK_MOD 位,根据连接的设备
需求设置为模式 0 或模式 3;
(4)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位,配置 FIFO 方向,若
为 1 则当前 FIFO 方向为数据输入,若为 0 则当前 FIFO 方向为数据输出。
(5)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MOSI_OE 位和 RB_SPI_SCK_OE 位为
1, RB_SPI_MISO_OE 位为 0,并设置 PB 口方向寄存器(R32_PB_DIR)中 MOSI 引脚和 SCK 引脚对应的位
为 1,MISO 引脚对应的位为 0,将 MOSI 引脚和 SCK 引脚方向配置为输出,MISO 引脚方向配置为输入;
数据发送过程:
(1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 0,置当前 FIFO 方
向为输出;
(2)、写 R16_SPIx_TOTAL_CNT 寄存器,设置要发送的数据长度;
(3)、写 R8_SPIx_FIFO 寄存器,往 FIFO 里写要发送的数据,如果 R8_SPI0_FIFO_COUNT 小于 FIFO
大小则可以继续往 FIFO 写数据;
(4)、所有数据写入 FIFO 后,等待 R16_SPIx_TOTAL_CNT 寄存器为 0,则说明数据发送完成,如
果发送一字节,也可以等待 R8_SPI0_FIFO_COUNT 为 0,则说明 FIFO 中没有数据即数据已发送完毕。
数据接收过程:
(1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 1,置当前 FIFO 方
向为输入;
(2)、写 R16_SPIx_TOTAL_CNT 寄存器,设置要接收的数据长度;
(3)、等待 R8_SPIx_FIFO_COUNT 寄存器不为 0,则说明接收到返回数据;
(4)、读取 R8_SPIx_FIFO 中的值即为接收到的数据。
7.4.2 SPI 从机模式配置
SPI 从机模式下,SCK 引脚用于接收连接的 SPI 主机的串行时钟。
配置步骤:
(1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MODE_SLAVE 位为 1,配置 SPI 为
从机模式;
CH563 中文手册
44
(2)、根据需要设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_SLV_CMD_MOD 位;
(3)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位,配置 FIFO 方向,若
为 1 则当前 FIFO 方向为数据输入,若为 0 则当前 FIFO 方向为数据输出;
(4)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_MOSI_OE 位和 RB_SPI_SCK_OE 位为
0,RB_SPI_MISO_OE 位为 1,并设置 PB 口方向寄存器(R32_PB_DIR)中 MOSI 引脚、SCK 引脚和 SCS 引
脚对应的位为 0,MISO 引脚对应的位为 1,将 MOSI 引脚、SCK 引脚和 SCS 引脚方向配置为输入,MISO
引脚方向配置为输出;注:在 SPI 设备模式下 MISO 引脚的 I/O 引脚方向,除了能够由 MISO 引脚方向
配置为输出之外,还支持 SPI 片选有效期间自动配置为输出,但其输出数据由 RB_SPI_MISO_OE 选择,
当 RB_SPI_MISO_OE 为 1 时输出 SPI 数据,当 RB_SPI_MISO_OE 为 0 时输出 GPIO 寄存器的数据。
(5)、可选的,设置 SPI 设备模式预置数据寄存器(R8_SPI0_SLAVE_PRE),用于被片选后首次自动
加载到缓冲区中用于对外输出。当 8 个时钟过去之后(即首个数据字节在主从双方之间交换完毕),
CH563 得到外部 SPI 主机发来的首字节数据(命令码)
,外部 SPI 主机交换得到 R8_SPI0_SLAVE_PRE
中的预置数据(状态值)
。该寄存器的位 7 将 SPI 片选有效后的 SCK 低电平期间自动加载到 MISO 引脚
上,对于 SPI 模式 0(CLK 默认为低电平)
,如果 CH563 预置了 R8_SPI0_SLAVE_PRE 的位 7,那么外部
SPI 主机将在 SPI 片选有效但尚未传输数据时,就能够通过查询 MISO 引脚得到 R8_SPI0_SLAVE_PRE
的位 7 的预置值,从而通过仅仅有效一下 SPI 片选就能获得 R8_SPI0_SLAVE_PRE 的位 7 的值。
数据发送过程:
(1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 0,配置当前
FIFO 方向为数据输出;
(2)、将发送数据写入到 FIFO 寄存器(R8_SPIx_FIFO)中,并将 SPI 发送/接收数据总长度寄存器
(R16_SPIx_TOTAL_CNT)加 1,建议一次性将 R16_SPIx_TOTAL_CNT 为较大的值,这样,只要 FIFO 中有
数据就会自动发送,FIFO 空时自动暂停,不必每次设置 R16_SPIx_TOTAL_CNT;
(3)、如果发送单个字节,则等待 R16_SPIx_TOTAL_CNT 寄存器为 0,等待数据发送完毕;如果发
送多个字节,则可以一次性最多写入 32 个数据到 FIFO 寄存器(R8_SPIx_FIFO)中,再等待发送完毕;
数据接收过程:
(1)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 1,配置当前
FIFO 方向为数据输入;
(2)、等待查询 SPI 发送/接收数据总长度寄存器(R16_SPIx_TOTAL_CNT),如果该寄存器不为 0,
则表示接收到数据,通过读取 FIFO 寄存器(R8_SPIx_FIFO)来获取接收到的数据。
单个字节的数据接收,也可以不使用 FIFO,可以直接读 SPI 数据缓冲区寄存器(R8_SPIx_BUFFER)
得到对方给的当前数据启动传输。
7.5 DMA 功能
CH563 芯片的 SPI0 具有 DMA 功能,SPI1 不具备此功能。通过使能 DMA 功能,可以在减少软件干
预的基础上更便捷的实现 SPI 数据的接收和发送。
7.5.1 SPI 主机模式 DMA 发送数据配置
(1)、按照 7.4.1 节,将 SPI0 配置为主机模式;
(2)、如果需要产生 DMA 完成中断,则将 SPI 中断使能寄存器(R8_SPIx_INTER_EN)的
RB_SPI_IE_DMA_END 位置 1;
(3)、初始化 R16_SPI_DMA_BEG 寄存器为 SPI 数据发送缓冲区开始地址;
(4)、初始化 R16_SPI_DMA_END 寄存器为 SPI 数据发送缓冲区结束地址;
(5)、清 SPI 中断状态寄存器(R8_SPIx_INT_FLAG);
(6)、初始化 R16_SPI_TOTAL_CNT 寄存器为需要发送的数据个数,如果 DMA 已使能则启动传输;
(7)、如果需要使能 DMA 地址循环模式功能,则需要设置 SPI 的 DMA 控制寄存器
(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_LOOP 位为 1;
(8)、设置 SPI 的 DMA 控制寄存器(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_ENABLE 位为 1,使能 DMA
进行数据发送。
CH563 中文手册
45
7.5.2 SPI 主机模式 DMA 接收数据配置
(1)、按照 7.4.1 节,将 SPI0 配置为主机模式;
(2)、设置 SPI 模式配置寄存器(R8_SPIx_CTRL_MOD)的 RB_SPI_FIFO_DIR 位为 1,配置 FIFO 方向
为输入;
(3)、如果需要产生 DMA 中断将寄存器 R8_SPI_INTER_EN 的 RB_SPI_IE_DMA_END 位置 1,使能产
生 DMA 结束中断;
(4)、初始化 R16_SPI_DMA_BEG 寄存器为 SPI 数据接收缓冲区开始地址;
(5)、初始化 R16_SPI_DMA_END 寄存器为 SPI 数据接收缓冲区结束地址;
(6)、清 SPI 中断状态寄存器(R8_SPIx_INT_FLAG);
(7)、初始化 R16_SPI_TOTAL_CNT 寄存器为需要接收的数据个数,如果 DMA 已使能则启动传输;
(8)、如果需要使能 DMA 地址循环模式功能,则需要设置 SPI 的 DMA 控制寄存器
(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_LOOP 位为 1;
(9)、设置 SPI 的 DMA 控制寄存器(R8_SPIx_CTRL_DMA)的 RB_SPI_DMA_ENABLE 位为 1,使能 DMA
进行数据接收。如果 DMA 使能在前,在设置完 R16_SPI_TOTAL_CNT 后即自动开始传输。
46
CH563 中文手册
第 8 章 通用异步收发器 UART
8.1 UART 简介
CH563 芯片拥有 2 个全双工的异步串口,UART0 和 UART1。支持全双工和半双工串口通讯,提供
发送状态引脚用于切换 RS485。UART0 支持 MODEM 调制解调器信号 CTS、DSR、RI、DCD、DTR、RTS。
UART 特性:
(1)、兼容 16C550 异步串口并且有所增强;
(2)、支持 5、6、7 或者 8 个数据位以及 1 或者 2 个停止位;
(3)、支持奇、偶、无校验、空白 0、标志 1 等校验方式;
(4)、可编程通讯波特率,支持 115200bps 以及最高达 12Mbps 的通讯波特率;
(5)、串口 0 内置 16 个字节的 FIFO 先进先出缓冲器,支持 4 个 FIFO 触发级;
(6)、串口 1 内置 32 个字节的 FIFO 先进先出缓冲器,支持 4 个 FIFO 触发级;
(7)、支持 MODEM 调制解调器信号 CTS、DSR、RI、DCD、DTR、RTS,可转成 RS232 电平;
(8)、支持硬件流控制信号 CTS 和 RTS 自动握手和自动传输速率控制,兼容 TL16C550C;
(9)、支持串口帧错误检测、支持 Break 线路间隔检测;
(10)、支持全双工和半双工串口通讯,提供发送状态引脚用于切换 RS485;
(11)、内置 SIR 红外线编解码器,支持 2400bps 到 115200bps 波特率的 IrDA 红外通讯;
8.2 UART 寄存器描述
UART0相关寄存器物理起始地址为:0x0040 D000
UART0 相关寄存器列表(地址范围:0x00---0x07)
表 8-1 UART0 相关寄存器列表
名称
R8_UART0_RBR
R8_UART0_THR
R8_UART0_IER
R8_UART0_IIR
R8_UART0_FCR
偏移地址
0x00
0x00
0x01
0x02
0x02
R8_UART0_LCR
0x03
R8_UART0_MCR
0x04
R8_UART0_LSR
0x05
R8_UART0_MSR
0x06
R8_UART0_DIV
0x07
R8_UART0_DLL
0x00
R8_UART0_DLM
0x01
描述
接收缓冲寄存器
发送保持寄存器
中断使能寄存器
中断识别寄存器
先进先出缓冲区 FIFO 控制寄存
器,用于使能和复位 FIFO
线路控制寄存器,用于控制串口
通讯的格式
调制解调器 MODEM 控制寄存器,
用于控制 MODEM 输出
线路状态寄存器,用于查询方式
分析串口状态
调制解调器 MODEM 状态寄存器,
用于查询 MODEM 状态
预分频除数寄存器
波特率除数锁存器,DLL 是低字
节
波特率除数锁存器,DLM 是高字
节
复位值
8hxx
8hxx
8h00
8h01
8h00
8h00
8h00
8h60
8hxx
最高位 0,其
他位保持
保持
8h80
47
CH563 中文手册
UART1相关寄存器物理起始地址为:0x0040 D800
UART1 相关寄存器列表(地址范围:0x00---0x07)
表 8-2 UART1 相关寄存器列表
名称
R8_UART1_RBR
R8_UART1_THR
R8_UART1_IER
R8_UART1_IIR
R8_UART1_FCR
偏移地址
0x00
0x00
0x01
0x02
0x02
R8_UART1_LCR
0x03
R8_UART1_MCR
0x04
R8_UART1_LSR
0x05
R8_UART1_MSR
0x06
R8_UART1_ADR
R8_UART1_DIV
0x07
0x07
R8_UART1_DLL
0x00
R8_UART1_DLM
0x01
描述
接收缓冲寄存器
发送保持寄存器
中断使能寄存器
中断识别寄存器
先进先出缓冲区 FIFO 控制寄存
器,用于使能和复位 FIFO
线路控制寄存器,用于控制串口
通讯的格式
调制解调器 MODEM 控制寄存器,
用于控制 MODEM 输出
线路状态寄存器,用于查询方式
分析串口状态
调制解调器 MODEM 状态寄存器,
用于查询 MODEM 状态
串口 1 总线地址预置寄存器
预分频除数寄存器
波特率除数锁存器,DLL 是低字
节
波特率除数锁存器,DLM 是高字
节
复位值
8hxx
8hxx
8h00
8h01
8h00
8h00
8h00
8h60
8hxx
8h00
最高位 0,其
他位保持
保持
8h80
接收缓冲寄存器(R8_UARTx_RBR):
名称
UARTx_RBR
位
访问
[7:0]
RO
发送缓冲寄存器(R8_UARTx_THR):
名称
位
UARTx_THR
[7:0]
中断使能寄存器(R8_UARTx_IER):
名称
位
RB_IER_RESET
7
访问
WO
访问
RW
描述
接收缓冲寄存器
如果 LSR 的 DATA_RDY 位为 1,则可以
从该寄存器读取接收到的数据;
如果 FIFO_EN 为 1,则从串口移位寄
存器 RSR 接收到的数据首先被存放于
接收 FIFO 中,然后通过该寄存器读
出
复位值
描述
发送保持寄存器
包括发送 FIFO,用于写入准备发送的
数据;如果 FIFO_EN 为 1,则写入的
数据首先被存放于发送 FIFO 中,然
后通过发送移位寄存器 TSR 逐个输出
复位值
描述
串口软件复位使能位
0:不进行软件复位
复位值
8hxx
8hxx
1h0
48
CH563 中文手册
RB_IER_TXD_EN
6
RW
RB_IER_MOUT_EN
5
RW
RB_IER_MODEM_IO
4
RW
RB_IER_IRDA_MOD
4
RW
RB_IER_MODEM_CHG
3
RW
RB_IER_LINE_STAT
2
RW
RB_IER_THR_EMPTY
1
RW
RB_IER_RECV_RDY
0
RW
中断识别寄存器(R8_UARTx_IIR):
名称
位
访问
RB_IIR_FIFO_ID
7
RO
RB_IIR_FIFO_EN
6
RO
Reserved
[5:4]
-
RB_IIR_INT_MASK
[3:1]
RO
1:软件复位该串口
该位能够自动清 0,无需软件清 0
TXD 输出使能/禁止位
0:禁止 TXD 输出到引脚
1:使能 TXD 输出到引脚
RTS、DTR 输出使能/禁止位
0:禁止 RTS、DTR 输出到引脚
1:使能 RTS、DTR 输出到引脚
对于串口 0:串口调制解调器 MODEM
信号引脚选择位
0:MODEM 信号引脚选择 PA 端口
1:MODEM 信号引脚选择 PB 端口
对于串口 1:IrDA 功能使能/禁止位
0:禁止 IRDA 红外编解码模式
1:使能 IRDA 红外编解码模式
在启用 IRDA 模式后,RXD 和 TXD 引脚
可以直接连接 ZHX1810、HSD3000、
TFBS4711、TFDU4100 等红外线收发器
的 RXD 和 TXD 引脚
调制解调器输入状态变化中断使能/
禁止位
0:禁止产生调制解调器输入状态变
化中断
1:使能产生调制解调器输入状态变
化中断
接收线路状态中断使能/禁止位
0:禁止产生接收线路状态中断
1:使能产生接收线路状态中断
发送保持寄存器空中断使能/禁止位
0:禁止产生发送保持寄存器空中断
1:使能产生发送保持寄存器空中断
接收到数据中断使能/禁止位
0:禁止产生接收到数据中断
1:使能产生接收到数据中断
描述
串口 FIFO 启用状态位
0:FIFO 未启用
1:FIFO 已启用
串口 FIFO 启用状态位
0:FIFO 未启用
1:FIFO 已启用
中断标志域
如果 RB_IIR_NO_INT 位为 0,则表示
有中断产生,需要读取该域判断中断
源
具体请参看下表
1h0
1h0
1h0
1h0
1h0
1h0
1h0
1h0
复位值
1h0
1h0
-
3h0
49
CH563 中文手册
RB_IIR_NO_INT
0
RO
中断状态标志位
0:有中断产生
1:无中断产生
1h1
中断识别寄存器(R8_UARTx_IIR)的 RB_IIR_NO_INT 位以及 RB_IIR_INT_MASK 域的每一个位所表示
的含义如下表所示:
表 8-3 IIR 寄存器位含义
IIR 寄存器位
IID3 IID2 IID1 NOINT
0
0
0
1
优先
级
中断类型
无 没有中断产生
1
1
1
0
0
总线地址匹配
0
1
1
0
1
接收线路状态
0
1
1
1
0
0
0
0
2
2
接收数据可用
接收数据超时
0
0
1
0
3
THR 寄存器空
0
0
0
0
4
MODEM 输入变化
中断源
清中断
方法
没有中断
接收到 1 个数据是串口总线地址,且
该地址与预置值相匹配或是广播地 读 IIR 或
址
禁用
注:该中断只适用 UART1
OV_ERR、PAR_ERR、FRAM_ERR、
读 LSR
BREAK_IN
接收到的字节数达到 FIFO 的触发点 读 RBR
超过 4 个数据的时间未收到下一数据 读 RBR
发送保持寄存器空,IE_THRE 从 0 变 读 IIR
1 可以重新使能中断
或写 THR
△CTS、△DSR、△RI、△DCD
读 MSR
FIFO 控制寄存器(R8_UARTx_FCR ):
名称
位
访问
RB_FCR_FIFO_TRIG
[7:6]
WO
Reserved
[5:3]
-
RB_FCR_TX_FIFO_CLR
2
WO
RB_FCR_RX_FIFO_CLR
1
WO
描述
接收 FIFO 的中断和硬件流控制的触
发点设置域
串口 0:
00:1 字节
01:4 字节
10:8 字节
11:14 字节
串口 1:
00:2 字节
01:8 字节
10:16 字节
11:28 字节
该域用来设置接收 FIFO 的中断和硬
件流控制的触发点,对于串口 0,00
对应 1 个字节,即接收满 1 个字节产
生接收数据可用的中断,并在使能硬
件流控制时自动无效 RTS 引脚
发送 FIFO 数据清空使能位
0:不清空发送 FIFO 中的数据
1:
清空发送 FIFO 中的数据(不含 TSR)
该位能够自动清 0,无需软件清 0
接收 FIFO 数据清空使能位
0:不清空接收 FIFO 中的数据
复位值
2h0
1h0
1h0
50
CH563 中文手册
RB_FCR_FIFO_EN
0
1:
清空接收 FIFO 中的数据(不含 RSR)
该位能够自动清 0,无需软件清 0
该 FIFO 使能/禁止位
0:禁用 FIFO
1:启用 FIFO
WO
禁用 FIFO 后为 16C450 兼容模式,相
当于 FIFO 只有一个字节
(RECV_TG1=0、RECV_TG0=0、
FIFO_EN=1),建议启用 FIFO
1h0
线路控制寄存器(R8_UARTx_LCR ):
名称
位
访问
RB_LCR_DLAB
7
RW
RB_LCR_BREAK_EN
6
RW
RB_LCR_PAR_MOD
[5:4]
RW
RB_LCR_PAR_EN
3
RW
RB_LCR_STOP_BIT
2
RW
RB_LCR_WORD_SZ
[1:0]
RW
描述
除数锁存器存取使能位
0:允许存取 RBR/THR/IER/ADR 寄存
器
1:允许存取 DLL 和 DLM 以及 DIV 寄
存器
强制产生 BREAK 线路间隔使能/禁止
位
0:不产生 BREAK 线路间隔
1:强制产生 BREAK 线路间隔
奇偶校验位格式设置域
00:奇校验
01:偶校验
10:标志位(MARK,置 1)
11:空白位(SPACE,清 0)
该域仅当 RB_LCR_PAR_EN 位为 1 时有
效
奇偶校验位使能/禁止位
0:无奇偶校验位
1:允许发送时产生和接收时校验奇
偶校验位
停止位格式设置位
0:一个停止位
1:两个停止位
字长设置域
00:5 个数据位
01:6 个数据位
10:7 个数据位
11:8 个数据位
复位值
1h0
1h0
2h0
1h0
1h0
2h0
调制解调器 MODEM 控制寄存器(R8_UARTx_MCR ):
名称
位
访问
描述
复位值
半双工收发模式使能/禁止位
0:禁止半双工收发模式
RB_MCR_HALF
7
RW
1h0
1:进入半双工收发模式,发送优先,
不发送时为接收
RB_MCR_TNOW
6
RW
串口 0 的 DTR 引脚或串口 1 的 RTS 引
1h0
51
CH563 中文手册
RB_MCR_AU_FLOW_EN
5
RW
RB_MCR_LOOP
4
RW
RB_MCR_OUT2
3
RW
RB_MCR_OUT1
2
RW
RB_MCR_RTS
1
RW
RB_MCR_DTR
0
RW
脚输出正在发送状态位
0:无效
1:串口 0 的 DTR 引脚或串口 1 的 RTS
引脚输出正在发送状态 TNOW,可以用
于控制 RS485 收发切换
允许 CTS 和 RTS 硬件自动流控制位
0:无效
1:允许 CTS 和 RTS 硬件自动流控制
如果 AFE 为 1,那么仅在检测到 CTS
引脚输入有效(低电平有效)时串口
才继续发送下一个数据,否则暂停串
口发送,当 AFE 为 1 时的 CTS 输入状
态变化不会产生 MODEM 状态中断。如
果 AFE 为 1 并且 RTS 为 1,那么当接
收 FIFO 空时,串口会自动有效 RTS
引脚(低电平有效),直到接收的字
节数达到 FIFO 的触发点时,串口才
自动无效 RTS 引脚,并能够在接收
FIFO 空时再次有效 RTS 引脚。使用硬
件自动带率控制,可将己方的 CTS 引
脚接到对方的 RTS 引脚,并将己方的
RTS 引脚送到对方的 CTS 引脚
内部回路的测试模式使能/禁止位
0:禁止内部回路的测试模式
1:使能内部回路的测试模式
在内部回路的测试模式下,串口所有
对外输出引脚均为无效状态,TXD 内
部返回到 RXD(即 TSR 的输出内部返
回到 RSR 的输入)
,RTS 内部返回到
CTS,DTR 内部返回到 DSR,OUT1 内部
返回到 RI,OUT2 内部返回到 DCD
注:该位仅对 UART0 有效
串口的中断请求输出使能/禁止位
0:禁止串口的中断请求输出
1:使能串口的中断请求输出
MODEM 控制位用户自定义使能/禁止
位
0:禁止用户自定义 MODEM 控制位
1:允许用户自定义 MODEM 控制位
没有连接实际输出引脚
注:该位仅对 UART0 有效
RTS 引脚输出有效使能/禁止位
0:禁止 RTS 引脚输出有效
1:使能 RTS 引脚输出有效(低电平
有效)
DTR 引脚输出有效使能/禁止位
0:禁止 DTR 引脚输出有效
1:使能 DTR 引脚输出有效(低电平
有效)
1h0
1h0
1h0
1h0
1h0
1h0
52
CH563 中文手册
注:该位仅对 UART0 有效
线路状态寄存器(R8_UARTx_LSR ):
名称
位
访问
RB_LSR_ERR_RX_FIFO
7
RO
RB_LSR_TX_ALL_EMP
6
RO
RB_LSR_TX_FIFO_EMP
5
RO
RB_LSR_BREAK_ERR
4
RZ
RB_LSR_FRAME_ERR
3
RZ
RB_LSR_PAR_ERR
2
RZ
RB_LSR_OVER_ERR
1
RZ
RB_LSR_DATA_RDY
0
RO
描述
接收 FIFO 错误标志位
0:接收 FIFO 未存在错误
1:接收 FIFO 中存在至少一个
PAR_ERR、FRAM_ERR 或 BREAK_IN 错误
发送保持寄存器 THR 和发送移位寄存
器 TSR 全空标志位
0:两者非全空
1:两者全空
发送保持寄存器 THR 空标志位
0:发送保持寄存器非空
1:发送保持寄存器空
BREAK 线路间隔检测标志位
0:未检测到 BREAK 线路间隔
1:检测到 BREAK 线路间隔
数据帧错误标志位
0:数据帧正确
1:表示正在从接收 FIFO 中读取的数
据的帧错误,缺少有效的停止位
奇偶校验错误标志位
0:奇偶校验正确
1:表示正在从接收 FIFO 中读取的数
据的奇偶校验错
接收 FIFO 缓冲区溢出标志位
0;未溢出
1:已溢出
接收 FIFO 中有接收到的数据标志位
0:无数据
1:有数据
读取 FIFO 中所有数据后,该位自动
清0
调制解调器 MODEM 状态寄存器(R8_UARTx_MSR):
名称
位
访问
描述
DCD 引脚状态位
该位是 DCD 引脚的位反,
为 1 表示 DCD
RB_MSR_DCD
7
RO
引脚有效(低电平有效)
注:该位仅对 UART0 有效
RI 引脚状态位
该位是 RI 引脚的位反,为 1 表示 RI
RB_MSR_RI
6
RO
引脚有效(低电平有效)
注:该位仅对 UART0 有效
DSR 引脚状态位
RB_MSR_DSR
5
RO
该位是 DSR 引脚的位反,
为 1 表示 DSR
复位值
1h0
1h1
1h1
1h0
1h0
1h0
1h0
1h0
复位值
1hx
1hx
1hx
53
CH563 中文手册
RB_MSR_CTS
4
RO
RB_MSR_DCD_CHG
3
RZ
RB_MSR_RI_CHG
2
RZ
RB_MSR_DSR_CHG
1
RZ
RB_MSR_CTS_CHG
0
RZ
引脚有效(低电平有效)
。
注:该位仅对 UART0 有效
CTS 引脚状态位
该位是 CTS 引脚的位反,
为 1 表示 CTS
引脚有效(低电平有效)
DCD 引脚输入状态变化标志位
0:无变化
1:发生变化
注:该位仅对 UART0 有效
RI 引脚输入状态变化标志位
0:无变化
1:发生变化
注:该位仅对 UART0 有效
DSR 引脚输入状态变化标志位
0:无变化
1:发生变化
注:该位仅对 UART0 有效
CTS 引脚输入状态变化标志位
0:无变化
1:发生变化
1hx
1hx
1hx
1hx
1hx
预分频除数寄存器(R8_UARTx_DIV):
名称
UARTx_DIV
位
访问
[7:0]
RW
描述
用于将系统主时钟倍频后再进行预
分频,产生串口的内部基准时钟,
该除数 = 系统主时钟 * 2 / 串口内
部基准时钟,最大值 127
如果系统主时钟为 100MHz,除数为
108,那么串口内部基准时钟为
1.852MHz,与常用的基准时钟 1.8432
相差 0.47%
串口 1 总线地址预置寄存器(R8_UART1_ADR):
名称
位
访问
描述
总线地址预置寄存器
预置本机地址用于在接收到地址时
自动比较,并在地址匹配时或者在接
收到广播地址 0FFH 时产生中断,同
时允许接收后续数据。在地址没有匹
配之前不接收任何数据,开始发送数
据后或者重写 R8_UART1_ADR 寄存器
R8_UART1_ADR
[7:0]
RW
后停止接收任何数据,直到下次地址
再次匹配或者接收到广播地址时再
允许接收。R8_UART1_ADR 为 0FFH 时
或者 RB_LCR_PAR_EN 为 0 时则禁用总
线地址自动比较功能。R8_UART1_ADR
不为 0FFH 并且 RB_LCR_PAR_EN 为 1
时启用总线地址自动比较功能,同时
应该配置下述参数:选择 8 个数据位
复位值
8h00
复位值
8h00
54
CH563 中文手册
方式,RB_LCR_PAR_MOD1 应该为 1,
RB_LCR_PAR_MOD0 为 1 时用于地址字
节 MARK 模式(即数据字节的位 9 为
0)
,RB_LCR_PAR_MOD0 为 0 时用于地
址字节 SPACE 模式(即数据字节的位
9 为 1)
。
波特率除数锁存器(R8_UARTx_DLL/R8_UARTx_DLM):
名称
UARTx_DLL
UARTx_DLM
位
[7:0]
访问
描述
复位值
RW
DLL 是低字节,DLM 是高字节,两者
组成的 16 位除数用于由 16 位计数器
构成的串口波特率产生器
该除数 = 串口内部基准时钟 / 16 /
所需通讯波特率
如果串口内部基准时钟为
1.8432MHz,所需波特率为 9600bps,
则除数=1843200/16/9600=12
8h00
8.3 UART 应用
CH563 芯片的 UART 输出引脚都是 3.3V LVCMOS 电平,兼容 5V TTL 电平,RXD 和 TXD 以及 PA 端口
的 MODEM 引脚能够承受 5V 耐压。 异步串口方式下引脚包括:数据传输引脚和 MODEM 联络信号引脚。
数据传输引脚包括:TXD 引脚和 RXD 引脚,默认都是高电平;MODEM 联络信号引脚包括:CTS 引脚、
DSR 引脚、RI 引脚、DCD 引脚、DTR 引脚、RTS 引脚,默认都是高电平。所有这些 MODEM 联络信号都
可以作为通用 I/O 引脚,由应用程序控制并定义其用途。
UART 内置了独立的收发缓冲区及 FIFO,支持单工、半双工或者全双工异步串行通讯。串行数据
包括 1 个低电平起始位,5、6、7 或 8 个数据位,0 个或者 1 个附加校验位或者标志位,1 个或者 2
个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。支持常用通讯波特率:1200、2400、4800、
9600、19.2K、38.4K、57.6K、115.2K、230.4K、460.8K、921.6K、1.8432M、2.7648M、7.8125M
等。串口发送信号的波特率误差小于 0.2%,串口接收信号的允许波特率误差不大于 2%。
55
CH563 中文手册
第 9 章 外部总线接口(PARA)
9.1 外部总线接口简介
CH563 芯片带有一个外部总线控制器,该接口支持 8 位、16 位和 32 位总线宽度,地址空间范围
为 0x00C00000 至 0x00CFFFFF,包括读信号引脚(PRD#)、写信号引脚(PWR#)、20 位地址引脚(A0-A19)
和 32 位数据引脚(D0-D31)。当未采用总线接口时,其上述引脚可以作为普通 I/O 口使用。该接口支
持静态存储器映射器件,包括 RAM、ROM、Flash 和一些外部 I/O 器件,可动态修改读写信号脉宽以及
地址和数据的建立和保持时间。
外部总线接口特性:
(1)、支持 8 位、16 位以及 32 位总线宽度;
(2)、支持最多 20 位地址总线宽度;
(3)、支持静态存储器映射器件,包括 RAM、Flash 和一些外部 I/O 器件;
(4)、支持动态修改读写信号脉宽、地址和数据的建立和保持时间等;
9.2 外部总线接口寄存器描述
外部总线接口相关寄存器物理起始地址为:0x0040 0000
外部总线接口相关寄存器列表(地址范围:0x10---0x13)
表 9-1 外部总线接口相关寄存器列表
名称
偏移地址
R8_XBUS_CONFIG
R8_XBUS_CYCLE
R8_XBUS_SETUP_HOLD
0x10
0x12
0x13
描述
复位值
外部总线配置寄存器
外部总线读写总周期寄存器
外部总线保持时间设置寄存器
8h00
8h04
8h04
外部总线配置寄存器(R8_XBUS_CONFIG):
名称
Reserved
RB_XBUS_ADDR_OE
位
[7:4]
[3:2]
访问
RWA
RB_XBUS_EN_32BIT
1
RW
RB_XBUS_ENABLE
0
RWA
描述
保留
外部总线地址位输出控制域
00:无总线地址输出
01:PA[5:0]输出部分地址
10:PA[11:0]输出部分地址
11:PA[19:0]输出全部地址
注意:
需要使用全部地址线 PA[19:0]
时,由于 PA18、PA19 为复用引脚,
引脚方向不能设置成输出模式,否则
不能正常使用。
外部总线数据位控制域
0:8 位数据总线
1:16 位或 32 位数据总线
外部总线使能/禁止位
0:禁止外部总线
1:使能外部总线
外部总线读写总周期寄存器(R8_XBUS_CYCLE):
名称
位
访问
Reserved
[7:5]
保留
描述
复位值
2h0
1h0
1h0
复位值
-
56
CH563 中文手册
RB_XBUS_CYCLE
[4:0]
RW
外部总线的读写总周期-1
含建立时间,含读写信号脉宽,对于
输出信号(例如地址)
,额外有 1 个
时钟周期的输出信号保持时间
5h4
外部总线保持时间设置寄存器(R8_XBUS_SETUP_HOLD):
名称
RB_XBUS_SETUP
Reserved
RB_XBUS_HOLD
位
7
访问
RW
[6:5]
[4:0]
RW
描述
外部总线的地址和数据的建立时间
0:1 个时钟周期
1:2 个时钟周期
保留
外部总线的读写信号结束点时钟数
应该小于或等于 RB_XBUS_CYCLE,比
RB_XBUS_CYCLE 少出的时钟数用于加
大输出信号保持时间(额外有 1 个)
复位值
1h0
5h4
9.3 外部总线接口应用
9.3.1 外部总线接口
外部总线接口包括 1 根读信号引脚 PRD#(PA20)、1 根写信号引脚 PWR#(PA21)、20 根地址引脚
A0-A19(PA0-PA19)和 32 根数据引脚 D0-D31(PD0-PD31)。该接口支持 8 位、16 位和 32 位总线宽度,
可根据所连接的外部总线设备进行配置。如果外部总线设备为 32 位宽,则地址线 A1 和 A0 无效;如
果外部总线设备为 16 位宽,则地址线 A0 无效。
32 位宽总线接口:
PA21
PA20
PA19
WR
RD
CS
PD[31:24]
D[7:0]
A[m:0]
WR
RD
CS
PD[23:16]
D[7:0]
A[m:0]
WR
RD
CS
PD[15:8]
D[7:0]
A[m:0]
PA[18:2]
图 9-1 (a) 32 位宽总线接口连接 8 位的存储器芯片
WR
RD
CS
PD[7:0]
D[7:0]
A[m:0]
57
CH563 中文手册
PA21
PA20
PA19
WR
RD
CS
PD[31:16]
D[15:0]
A[m:0]
WR
RD
CS
PD[15:0]
D[15:0]
A[m:0]
PA[18:2]
图 9-2 (b) 32 位宽总线接口连接 16 位的存储器芯片
PA21
PA20
PA19
WR
RD
CS
PD[31:0]
D[31:0]
A[m:0]
PA[18:2]
图 9-3 (c) 32 位宽总线接口连接 32 位的存储器芯片
16 位宽存储器接口:
PA21
PA20
PA19
WR
RD
CS
PD[15:8]
D[7:0]
A[m:0]
WR
RD
CS
PD[7:0]
D[7:0]
A[m:0]
PA[18:1]
图 9-4 (a) 16 位宽总线接口连接 8 位的存储器芯片
58
CH563 中文手册
PA21
PA20
PA19
WR
RD
CS
PD[15:0]
D[15:0]
A[m:0]
PA[18:1]
图 9-5 (b) 16 位总线接口连接 16 位的存储器芯片
8 位宽存储器接口:
PA21
PA20
PA19
WR
RD
CS
PD[7:0]
D[7:0]
A[m:0]
PA[18:0]
图 9-6 (a) 8 位宽总线接口连接 8 位的存储器芯片
9.3.2 典型总线时序
下图所示为典型的外部总线接口读/写访问时序,CLK 为总线时钟频率,RD 为读信号引脚,WR 为
写信号引脚。
例如设置 RB_XBUS_CYCLE = 0x08,RB_XBUS_HOLD = 0x08,RB_XBUS_SETUP = 0,则时序图如下
所示:
Pclk
WR/RD
ADDR
地址有效
DATA
数据有效
建立时间
读写信号脉宽时间
额外保持时间
图 9-7 外部线接口读/写访问时序图 1
例如设置 RB_XBUS_CYCLE = 0x08,RB_XBUS_HOLD = 0x06,RB_XBUS_SETUP = 0,则时序图如下
59
CH563 中文手册
所示:
Pclk
WR/RD
ADDR
地址有效
DATA
数据有效
建立时间
读写信号脉宽时间
额外保持时间
图 9-8 外部线接口读/写访问时序图 2
上图中 RB_XBUS_SETUP 位可以设置为 0 或者设置为 1,当设置为 0 时,外部总线建立时间为 1 个
时钟周期(CLK);当设置为 1 时,外部总线建立时间为 2 个时钟周期(CLK)。
9.3.3 外部总线配置
外部总线接口相关寄存器为写保护寄存器,需要先对其解锁然后再进行操作。
主要配置步骤如下:
(1)、配置外部总线配置寄存器(R8_XBUS_CONFIG),设置 RB_XBUS_ENABLE 位为 1 使能外部总线接
口,同时根据需要设置地址位控制域 RB_XBUS_ADDR_OE,以及数据位控制位 RB_XBUS_EN_32BIT;
(2)、配置外部总线时钟控制寄存器(R8_XBUS_CYCLE),设置总线读写时钟脉宽;配置外部总线时
钟建立保持寄存器(R8_XBUS_SETUP_HOLD),设置总线建立时间以及总线保持时间;
(3)、配置外部总线接口相应引脚方向。
主要配置程序如下:
/* 配置外部总线接口相关寄存器 */
R8_SAFE_ACCESS_SIG = 0x57;
// 解锁步骤 1
R8_SAFE_ACCESS_SIG = 0xA8;
// 解锁步骤 2
R8_XBUS_CONFIG = RB_XBUS_ENABLE | RB_XBUS_ADDR_OE;
R8_XBUS_CYCLE = 0x??;
// 设置总线读写时钟脉宽
R8_XBUS_SETUP_HOLD = 0x??;
// 设置总线建立时间及保持时间
R8_SAFE_ACCESS_SIG = 0x00;
// 保护,禁止读写
/* 配置外部总线接口相应引脚 */
R32_PA_DIR |= ( PWR | PRD | 0xFFFFF ); // 可以仅使用部分地址引脚
60
CH563 中文手册
第 10 章 被动并口
10.1 被动并口简介
CH563 芯片具有一个 8 位的被动并口。该被动并口包括中断输出引脚(SLVI#)、命令数据选择输
入引脚(SLVA)、片选输入引脚(SLVCS#)、读信号输入引脚(PRD#)、写信号输入引脚(PWR#)和 8 位输入
输出数据引脚。
被动并口特性:
(1)、8 位数据接口;
(2)、独立的数据输入输出寄存器;
(3)、多种中断状态及中断控制;
(4)、支持命令输入及数据输入;
(5)、支持状态输出及数据输出;
当命令数据选择引脚(SLVA)为 1 时,输入的数据被认为是命令输入;
当命令数据选择引脚(SLVA)为 0 时,输入的数据被认为是数据输入;
当命令数据选择引脚(SLVA)为 1 时,输出的数据被认为是状态输出;
当命令数据选择引脚(SLVA)为 0 时,输出的数据被认为是数据输出。
10.2 被动并口寄存器描述
被动并口相关寄存器物理起始地址为:0x0040 0000
被动并口相关寄存器列表(地址范围:0x14---0x43)
表 10-1 被动并口相关寄存器列表
名称
R8_SLV_CONFIG
R8_SLV_DOUT
R8_SLV_STATUS
R8_INT_FLAG_SLV
R8_INT_SLV_DIN
偏移地址
0x14
0x16
0x17
0x42
0x43
配置寄存器(R8_SLV_CONFIG):
名称
位
Reserved
[7:4]
RB_SLV_IE_RD
3
访问
RWA
RB_SLV_IE_WR
2
RWA
RB_SLV_IE_CMD
1
RWA
RB_SLV_ENABLE
0
RWA
数据输出寄存器(R8_SLV_DOUT):
名称
位
访问
描述
被动并口配置寄存器
被动并口数据输出寄存器
被动并口状态输出寄存器
被动并口中断标志位
被动并口数据输入寄存器
描述
保留
数据读取中断使能/禁止位
0:禁止
1:使能
数据写入中断使能/禁止位
0:禁止
1:使能
命令写入中断使能/禁止位
0:禁止
1:使能
被动并口使能/禁止位
0:禁止
1:使能
描述
复位值
8h00
8h00
8h00
8h00
8h00
复位值
1h0
1h0
1h0
1h0
复位值
61
CH563 中文手册
SLV_DOUT
[7:0]
保留
状态输出寄存器(R8_SLV_STATUS):
名称
位
访问
SLV_STATUS
[7:0]
保留
被动并口输出数据,命令数据选择引
脚(SLVA)为 0 时,输出此寄存器值
8h0
描述
复位值
被动并口输出状态,命令数据选择引
脚(SLVA)为 1 时,输出此寄存器值
8h0
描述
被动并口数据取走中断标志位
0:数据未取走
1:数据已取走
被动并口数据输入中断标志位
0:未有数据输入
1:已有数据输入
同步后的被动并口命令输入标志位
0:数据输入时 SLVA 引脚为 0,数据
1:数据输入时 SLVA 引脚为 1,命令
原始的被动并口命令输入标志位
保留
复位值
1h0
描述
被动并口数据输入
被动并口接收到数据后存放于此寄
存器
复位值
8h0
中断标志寄存器(R8_INT_FLAG_SLV):
名称
RB_IF_SLV_RD
位
7
访问
RW1
RB_IF_SLV_WR
6
RW1
RB_IF_SLV_CMD
5
RO
RB_IF_SLV_CMD0
Reserved
4
[3:0]
RO
-
1h0
1h0
1h0
-
数据输入寄存器(R8_INT_SLV_DIN):
名称
INT_SLV_DIN
位
[7:0]
访问
RO
10.3 被动并口应用
CH563 芯片的 8 位被动并口在使用前,必须先对其进行初始化。
主要配置步骤如下:
(1)、配置被动并口配置寄存器(R8_SLV_CONFIG),设置 RB_SLV_ENABLE 位为 1 使能被动并口,同
时根据需要设置数据读取、数据输入和命令输入等中断使能。由于此寄存器为写保护寄存器,需要先
对其解锁然后再进行操作;
(2)、配置被动并口相应引脚方向。
主要配置程序如下:
/* 配置被动并口配置寄存器 */
R8_SAFE_ACCESS_SIG = 0x57;
// 解锁步骤 1
R8_SAFE_ACCESS_SIG = 0xA8;
// 解锁步骤 2
R8_SLV_CONFIG = ( RB_SLV_ENABLE | RB_SLV_IE_CMD | RB_SLV_IE_WR | RB_SLV_IE_RD );
R8_SAFE_ACCESS_SIG = 0x00;
// 保护,禁止读写
/* 配置被动并口相应引脚 */
R32_PA_DIR &= ~( PIN_PARA_A0 | PIN_PARA_PCS | PIN_PARA_RD | PIN_PARA_WR );
被动并口接收数据或命令步骤:
(1)、等待中断标志寄存器(R8_INT_FLAG_SLV)中的 RB_IF_SLV_WR 位置 1,该位置 1 表示被动并
CH563 中文手册
62
口上有数据或命令写入;
(2)、判断 RB_IF_SLV_CMD 是否为 1,如果该位为 1 表示接收到命令;如果该位为 0,表示接收到
数据;
(3)、从数据输入寄存器(R8_INT_SLV_DIN)读取被动并口上写入的数据或命令;
(4)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_WR 位,该位写 1 清 0。
被动并口发送状态步骤:
(1)、将需要发送的状态数据写入被动并口状态输出寄存器(R8_SLV_STATUS),可以提前预置;
(2)、等待被动并口中断状态寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位置 1,该位置 1 表
示状态或数据已被取走;
(3)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位,该位写 1 清 0。
被动并口发送数据步骤:
(1)、将需要发送的数据写入数据输出寄存器(R8_SLV_DOUT);
(2)、等待被动并口中断状态寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位置 1,该位置 1 表
示状态或数据已被取走;
(3)、清中断标志寄存器(R8_INT_FLAG_SLV) 中的 RB_IF_SLV_RD 位,该位写 1 清 0。
63
CH563 中文手册
第 11 章 通用定时器 TIMx
11.1 TIMx 简介
CH563 芯片带有 4 个 28 位定时器,TIM0、TIM1、TIM2 和 TIM3,最长定时时间为 2^28 个时钟周
期。所有定时器均支持 PWM 功能,支持中断功能,同时定时器 0,1,2 支持捕获以及 PWM 的 DMA 功能。
特性:
(1)、4 个 28 位定时器,每个定时器定时时间最大为 2^28 个时钟周期;
(2)、每个定时器都支持 PWM 功能;
(3)、定时器 0,1,2 支持捕获功能;
(4)、每个定时器都支持定时器中断,TIM0、TIM1 和 TIM2 支持 DMA 中断;
(5)、定时器 0,1,2 支持 PWM 以及捕获的 DMA 功能,捕获功能可设置为电平变化捕获功能和高
或低电平保持时间捕获功能;
(6)、PWM 功能支持动态的调整 PWM 占空比设置;
(7)、定时器 3 支持外部输入时钟的计数器功能。
11.2 TIMx 寄存器描述
TIM0相关寄存器物理起始地址为:0x0040 8000
TIM0 相关寄存器列表(地址范围:0x00---0x1D)
表 11-1 TIM0 相关寄存器列表
名称
偏移地址
描述
R8_TMR0_CTRL_MOD
R8_TMR0_CTRL_DMA
R8_TMR0_INTER_EN
R8_TMR0_INT_FLAG
R8_TMR0_FIFO_COUNT
R32_TMR0_COUNT
R32_TMR0_CNT_END
R32_TMR0_FIFO
R16_TMR0_DMA_NOW
R16_TMR0_DMA_BEG
R16_TMR0_DMA_END
0x00
0x01
0x02
0x06
0x07
0x08
0x0C
0x10
0x14
0x18
0x1C
复位值
模式设置寄存器
DMA 控制寄存器
中断使能寄存器
中断标志寄存器
计数状态寄存器
当前计数值寄存器
计数终值寄存器
FIFO 寄存器
DMA 当前缓冲区地址
DMA 开始缓冲区地址
DMA 结束缓冲区地址
8h00
8h00
8h00
8h00
8h00
32h0000 0000
32h0000 0000
32h0000 0000
16h0000
16h0000
16h0000
TIM1相关寄存器物理起始地址为:0x0040 8400
TIM1 相关寄存器列表(地址范围:0x00---0x1D)
表 11-2 TIM1 相关寄存器列表
名称
偏移地址
描述
R8_TMR1_CTRL_MOD
0x00
模式设置寄存器
R8_TMR1_CTRL_DMA
0x01
DMA 控制寄存器
R8_TMR1_INTER_EN
0x02
中断使能寄存器
R8_TMR1_INT_FLAG
0x06
中断标志寄存器
R8_TMR1_FIFO_COUNT
0x07
计数状态寄存器
R32_TMR1_COUNT
0x08
当前计数值寄存器
R32_TMR1_CNT_END
0x0C
计数终值寄存器
R32_TMR1_FIFO
0x10
FIFO 寄存器
R16_TMR1_DMA_NOW
0x14
DMA 当前缓冲区地址
复位值
8h00
8h00
8h00
8h00
8h00
32h0000 0000
32h0000 0000
32h0000 0000
16h0000
64
CH563 中文手册
R16_TMR1_DMA_BEG
R16_TMR1_DMA_END
0x18
0x1C
DMA 开始缓冲区地址
DMA 结束缓冲区地址
16h0000
16h0000
TIM2相关寄存器物理起始地址为:0x0040 8800
TIM2 相关寄存器列表(地址范围:0x00---0x1D)
表 11-3 TIM2 相关寄存器列表
名称
R8_TMR2_CTRL_MOD
R8_TMR2_CTRL_DMA
R8_TMR2_INTER_EN
R8_TMR2_INT_FLAG
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
偏移地址
0x00
0x01
0x02
0x06
0x07
0x08
0x0C
0x10
0x14
0x18
0x1C
描述
模式设置寄存器
DMA 控制寄存器
中断使能寄存器
中断标志寄存器
计数状态寄存器
当前计数值寄存器
计数终值寄存器
FIFO 寄存器
DMA 当前缓冲区地址
DMA 开始缓冲区地址
DMA 结束缓冲区地址
复位值
8h00
8h00
8h00
8h00
8h00
32h0000 0000
32h0000 0000
32h0000 0000
16h0000
16h0000
16h0000
TIM3相关寄存器物理起始地址为:0x0040 8C00
TIM3 相关寄存器列表(地址范围:0x00---0x10)
表 11-4 TIM3 相关寄存器列表
名称
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
偏移地址
0x00
0x02
0x06
0x07
0x08
0x0C
0x10
模式设置寄存器(R8_TMRx_CTRL_MOD ):
名称
位
访问
RB_TMR_CATCH_EDGE
[7:6]
RW
RB_TMR_PWM_REPEAT
[7:6]
RW
RB_TMR3_MODE_COUNT
5
RW
RB_TMR_MODE_NRZI
5
RW
描述
模式设置寄存器
中断使能寄存器
中断标志寄存器
计数状态寄存器
当前计数值寄存器
计数终值寄存器
FIFO 寄存器
复位值
8h00
8h00
8h00
8h00
32h0000 0000
32h0000 0000
32h0000 0000
描述
捕获模式边沿触发方式设置域
00:禁止触发
01:捕获任何边沿变化之间的时间
10:捕获下降沿到下降沿之间时间
11:捕获上升沿到上升沿之间时间
PWM 重复模式设置域
00:重复 1 次
01:重复 4 次
10:重复 8 次
11:重复 16 次
TIM3 外部时钟计数器模式设置位
0:定时、PWM 以及捕获模式
1:外部时钟计数器模式
TIM0、TIM1 串行编解码模式
0:定时、PWM 以及捕获模式
复位值
2h0
2h0
1h0
1h0
65
CH563 中文手册
RB_TMR_CAT_WIDTH
4
RW
RB_TMR_OUT_POLAR
4
RW
RB_TMR_OUT_EN
3
RW
RB_TMR_COUNT_EN
2
RW
RB_TMR_ALL_CLEAR
1
RW
RB_TMR_MODE_IN
0
RW
DMA 控制寄存器(R8_TMRx_CTRL_DMA ):
名称
位
访问
Reserved
[7:3]
-
RB_TMR_DMA_LOOP
2
RW
RB_TMR_DMA_BURST
1
RW
RB_TMR_DMA_ENABLE
0
RW
中断使能寄存器(R8_TMRx_INTER_EN ):
名称
位
访问
RB_TMR3_FORCE_EN
7
RW
1:保留
捕获模式下最小捕获脉宽设置位
0:16 个时钟周期,小于则忽略
1:8 个时钟周期,小于则忽略
PWM 模式下默认输出极性设置位
0:默认低电平,高电平有效
1:默认高电平,低电平有效
定时器输出使能/禁止位
0:定时器输出禁止
1:定时器输出使能
定时器计数使能/禁止位
0:定时器计数禁止
1:定时器计数使能
计数器的 FIFO 和 COUNT 寄存器清 0
位
0:无动作
1:清除
定时器输出模式设置位
0:定时器/PWM 模式
1:捕获模式
1h0
1h0
1h0
1h0
1h0
1h0
描述
复位值
DMA 地址循环模式使能/禁止位
0:禁止 DMA 地址循环模式功能
1:使能 DMA 地址循环模式功能
如果使能 DMA 地址循环模式功能,当
DMA 地址增加到设置的末尾地址时,
自动循环指向设置的首地址
注:TIM3 不支持
DMA 块操作使能/禁止位
0:禁止 DMA 块操作功能
1:使能 DMA 块操作功能
如果使能 DMA 块操作功能,则该 DMA
更少占用系统总线
注:TIM3 不支持
DMA 功能使能/禁止位
0:禁止 DMA 功能
1:使能 DMA 功能
注:TIM3 不支持
-
描述
TIM0、TIM1 和 TIM2 强制同时使能位
0:无效
1:TIM0、TIM1 和 TIM2 同时使能
该位独立于 RB_TMR_COUNT_EN 位
1h0
1h0
1h0
复位值
1h0
66
CH563 中文手册
Reserved
6
-
RB_TMR_IE_DMA_ERR
5
RW
RB_TMR_IE_FIFO_OV
4
RW
RB_TMR_IE_DMA_END
3
RW
RB_TMR_IE_FIFO_HF
2
RW
RB_TMR_IE_DATA_ACT
1
RW
RB_TMR_IE_CYC_END
0
RW
中断标志寄存器(R8_TMRx_INT_FLAG):
名称
位
访问
Reserved
[7:6]
RB_TMR_IF_DMA_ERR
5
RW
RB_TMR_IF_FIFO_OV
4
RW
RB_TMR_IF_DMA_END
3
RW
RB_TMR_IF_FIFO_HF
2
RW
RB_TMR_IF_DATA_ACT
1
RW
DMA 错误响应中断使能/禁止位
0:禁止
1:使能
FIFO 溢出中断使能/禁止位
0:禁止
1:使能
DMA 结束中断使能/禁止位
0:禁止
1:使能
FIFO 过半中断使能/禁止位
0:禁止
1:使能
捕获模式下电平变化中断使能/禁止
位
0:禁止
1:使能
PWM 模式下 PWM 结束中断使能/禁止位
0:禁止
1:使能
捕获模式下捕获超时中断使能/禁止
位
0:禁止
1:使能
PWM 模式下 PWM 时钟周期结束使能/
禁止位
0:禁止
1:使能
描述
DMA 响应错误标志位
0:无错误发生
1:DMA 发生错误
FIFO 溢出标志位
0:未溢出
1:已溢出
DMA 完成标志位
0:未完成
1:已完成
FIFO 过半标志位
0:FIFO 计数未过半
1:FIFO 计数已过半
捕获模式下捕获到边沿变化标志位
0:未捕获到边沿变化
1:捕获到边沿变化
PWM 模式下 PWM 输出完成标志位
0:未完成
1h0
1h0
1h0
1h0
1h0
1h0
复位值
1h0
1h0
1h0
1h0
1h0
67
CH563 中文手册
RB_TMR_IF_CYC_END
0
RW
1:已完成
捕获模式下超时标志位
0:未超时
1:已超时
PWM 模式下 PWM 时钟周期结束标志位
0:未结束
1:已结束
计数状态寄存器(R8_TMRx_FIFO_COUNT):
名称
位
访问
TMRx_FIFO_COUNT
[7:0]
RO
当前计数值寄存器(R32_TMRx_COUNT):
名称
位
访问
Reserved
TMRx_COUNT
[31:28]
[27:0]
RO
描述
FIFO 计数
1h0
复位值
8h0
描述
计数器当前计数值
复位值
28h0
计数终值寄存器(R32_TMRx_CNT_END):
名称
Reserved
位
[31:28]
访问
-
TMRx_CNT_END
[27:0]
RW
FIFO 寄存器(R32_TMRx_FIFO):
名称
位
Reserved
[31:28]
TMRx_FIFO
[27:0]
访问
RO/
WO
DMA 当前缓冲区地址(R16_TMRx_DMA_NOW):
名称
位
访问
TMRx_DMA_NOW
[15:0]
RW
DMA 开始缓冲区地址(R16_TMRx_DMA_BEG):
名称
位
访问
TMRx_DMA_BEG
[15:0]
RW
描述
复位值
保留
定时器模式下定时时钟数;
PWM 模式下 PWM 周期总时钟数;
捕获模式下捕获超时时钟数;
28h0
注:R32_TMRx_COUNT 是从 0 起计数,
所以最大值为 R32_TMRx_CNT_END 减
1
描述
保留
FIFO 数据寄存器
复位值
28h0
描述
DMA 数据缓冲区当前地址
可以作为已转换次数的计算,
计算方法为:
COUNT = ( TMR_DMA_NOW TMR_DMA_BEG ) / 4
复位值
描述
DMA 数据缓冲区开始地址
即 PWM 进行数据发送或者捕获模式
下,开始捕获到的数据从此缓冲区
地址开始,该地址必须 4 字节对齐
复位值
16h0
16h0
68
CH563 中文手册
DMA 结束缓冲区地址(R16_TMRx_DMA_END):
名称
位
访问
TMRx_DMA_END
[15:0]
RW
描述
DMA 数据缓冲区结束地址
即 PWM 进行数据发送或者捕获模式
下,开始捕获到的数据至此缓冲区
地址结束,该地址必须 4 字节对齐
复位值
16h0
11.3 TIMx 功能
11.3.1 定时、计数功能
CH563 的 4 个定时器,每一个支持最长定时时间为 2^28 个时钟周期。如果系统时钟周期为 100M,
则最长定时时间为:10ns*2^28 ≈ 2.68s。如果系统时钟低于 100M,则定时时间更长。
4 个定时器都有独立的中断,每一个中断支持 FIQ 中断和 IRQ 中断。
定时功能寄存器初始化如下:
(1)、设置寄存器 R32_TMR_CNT_END 为需要定时的时间值;
具体计算方法为:Time = Pclk * R32_TMR_CNT_END
(2)、设置寄存器 R8_TMR_CTRL_MOD 中的 RB_TMR_MODE_IN 位为为 0,RB_TMR_ALL_CLEAR 位为 0;
(3)、将寄存器 R8_TMR_CTRL_MOD 的 RB_TMR_COUNT_EN 位置 1,启动定时器功能;
(4)、定时时间结束时,寄存器 R8_INT_FLAG_0 的 RB_IF_TMR 位将置 1。
11.3.2 PWM 功能
CH563 芯片的 4 个定时器,均具有 PWM 功能。PWM 可设置默认输出极性为高电平或低电平,重复
次数可选为 1,4,8 或 16 次,该重复功能结合 DMA 可以用于模仿 DAC 的效果。PWM 输出最短时间周
期为 1 个系统时钟,可动态修改 PWM 的占空比,模仿出特殊波形,例如准正弦波。
PWM 功能操作:
PWM 输出时需要设置寄存器(R32_TMRx_FIFO)和寄存器(R32_TMRx_CNT_END),R32_TMRx_FIFO 为数
据寄存器,R32_TMRx_CNT_END 为 PWM 总周期寄存器。
PWM 操作步骤如下:
(1)、设置 PWM 总周期寄存器 R32_TMR_CNT_END,最小值为 1,该寄存器的值必须大于等于
R32_TMR_FIFO 寄存器的值;
(2)、设置数据寄存器 R32_TMR_FIFO,最小值为 0,对应占空比 0%,最大值同 R32_TMR_CNT_END,
对应占空比 100%,支持连续动态数据(DMA)
,可以模仿出特殊波形;
(3)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的 RB_TMR_MODE_IN 位清 0,启用 PWM 模式;同时
将 RB_TMR_ALL_CLEAR 位清 0 强制清除 FIFO 和 COUNT;如果需要设置重复次数,则根据需要设置
RB_TMR_PWM_REPEAT 域。如果当前定时器是 TIM0 或 TIM1,则需要将 RB_TMR_MODE_NRZI 位清 0,如果
当前定时器是 TIM3,则需要将 RB_TMR3_MODE_COUNT 位清 0;
(4)、将模式设置寄存器(R8_TMRx_CTRL_MOD)中的 RB_TMR_COUNT_EN 位和 RB_TMR_OUT_EN 位置 1,
开启 PWM 功能;
(5)、将 PWM 对应的的 I/O 引脚设置为输出;
(6)、如果需要启用中断则设置相应的中断使能寄存器位;
(7)、PWM 完成后,如果开启中断则产生相对应的定时器中断,同时通过读取 TMR_INT_FLAG 寄存
器了解 PWM 是否完成以及 PWM 过程中是否产生错误;
例如:设置 RB_TMR_OUT_POLAR 位为 0,R32_TMR_FIFO 为 6,R32_TMR_CNT_END 为 18,则产生 PWM
的基本时序图如下所示,其占空比为:
PWM 占空比 = R32_TMR_FIFO/R32_TMR_CNT_END = 1/3
69
CH563 中文手册
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18
PCLK
R32_TMR_FIFO
6pclk
R32_TMR_CNT_END
18 pclk
RB_TMR_OUT_POLAR = 0
OUTPUT
RB_TMR_OUT_POLAR = 1
图 11-1 PWM 输出时序图
如果 RB_TMR_PWM_REPEAT 域设置为 00 则表示上述过程重复 1 次,01 表示重复 4 次,10 表示重复
8 次,11 表示重复 16 次。重复之后再取 FIFO 中的下一个数据继续。
11.3.3 捕获功能
CH563 芯片的 4 个定时器都具备捕获功能,TIM0、TIM1、TIM2 捕获功能支持 DMA 方式存储。捕获
最短时间周期可以选择 8 个时钟周期或 16 个时钟周期,捕获模式可以选择任何边沿触发开始至任何
边沿触发结束、上升沿触发开始至上升沿触发结束或下降沿触发开始至下降沿触发结束三种模式。以
下为捕获触发模式说明表:
表 11-1 捕获触发模式说明表
捕获模式选择位
(RB_TMR_CATCH_EDGE)
触发方式
图示
00
禁止捕获
无
01
边沿触发
10
下降沿至下降沿
11
上升沿至上升沿
边沿触发模式下有 2 种触发状态,可以捕获高电平宽度或低电平宽度。数据寄存器
(R32_TMR_FIFO)的有效数据最高位(位 27)为 1 表示捕获电平为高电平,反之则捕获低电平。如
果连续多组数据的位 27 都是 1(或 0)
,说明该高(或低)电平的宽度超过超时值,需多组累计。
下降沿至下降沿、或者上升沿至上升沿触发模式下,可以捕获一个输入变化周期。数据寄存器
(R32_TMR_FIFO)的有效数据最高位(位 27)为 0 表示正常采样到一个周期,为 1 则表示输入变化
周期超过超时值 R32_TMR_CNT_END,需加上后一组数据累计为单个输入变化周期。
捕获周期最短可以选择 8 个时钟周期或 16 个时钟周期,再短则忽略。具体说明如下图所示:
70
CH563 中文手册
RB_TMR_CAT_WIDTH = 1
采 样 频 率 为 Pclk
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
PCLK
输入脉冲
RB _TMR_CATCH_EDG E =
10 Pclk
01
13 Pclk
10
11
图 11-2 捕获周期为 8 个时钟周期
如上图所示,每个时钟周期内采样一次,
当 RB_TMR_CATCH_EDGE = 2b01 时,设置为边沿触发采样,采样到的时间宽度为 10Pclk;
当 RB_TMR_CATCH_EDGE = 2b10 时,设置为下降沿至下降沿采样,采样到的时间宽度为 13Pclk;
当 RB_TMR_CATCH_EDGE = 2b11 时,设置为上升沿至上升沿采样,采样到的时间宽度为 0(由于输入脉
冲的两个上升沿时间为 6 个时钟周期,低于当前设置的最小捕获脉冲宽度)。
RB_TMR_CAT_WIDTH = 0
采 样 频 率 为 Pclk
1
2
3
4
5 6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
PCLK
输入脉冲
RB _TMR_CATCH_EDG E =
18 Pclk
01
10
20 Pclk
11
图 11-3 捕获周期为 16 个时钟周期
如上图所示,每个时钟周期内采样一次,
CH563 中文手册
71
当 RB_TMR_CATCH_EDGE = 2b01 时,设置为边沿触发采样,采样到的时间宽度为 18Pclk;
当 RB_TMR_CATCH_EDGE = 2b10 时,设置为下降沿至下降沿采样,采样到的时间宽度为 0;
当 RB_TMR_CATCH_EDGE = 2b11 时,设置为上升沿至上升沿采样,采样到的时间宽度为 20Pclk。
捕获模式操作步骤:
(1)、设置寄存器 R32_TMR_CNT_END 用于设定捕获超时时间,默认最大超时时间为 2^28 个时钟周
期,建议设置合理的超时,避免输入长时间无变化时长时间无数据,如果在最大超时时间内没有检测
到电平变化,则 R32_TMR_FIFO 寄存器的位 27 置 1;
(2)、将捕获对应的 I/O 引脚方向设置为输入;
(3)、将模式设置寄存器(R8_TMRx_CTRL_MOD)的 RB_TMR_MODE_IN 位置 1,同时 RB_TMR_ALL_CLEAR
位清 0,用于清除 FIFO 和 COUNT。如果当前定时器是 TIM3,则将 RB_TMR3_MODE_COUNT 位清 0,如果
当前定时器是 TIM0 或 TIM1,则将 RB_TMR_MODE_NRZI 位清 0。根据捕获精度需要,可以将
RB_TMR_CAT_WIDTH 置 1 或清 0,同时设置 RB_TMR_CATCH_EDGE 位选择捕获模式;
(4)、如果需要启用中断,则将寄存器 R8_INT_EN_IRQ_0 中的 RB_IE_IRQ_TMR 位置 1,启动定时
器中断;
(5)、如果需要采用 DMA 方式保存捕获的数据,则需要将寄存器 R16_TMR_DMA_BEG 设置为存储捕
获数据缓冲区的首地址,将寄存器 R16_TMR1_DMA_END 设置为存储捕获数据缓冲区的结束地址;
(6)、将寄存器 R8_TMR_CTRL_MOD 的 RB_TMR_COUNT_EN 位置 1,启动捕获功能;
(7)、捕获完成后,寄存器 R8_INT_FLAG_0 中的 RB_IF_TMR 位将置 1,同时寄存器 R8_TMR_INT_FLAG
会产生相应的中断状态。默认捕获的数据存放在寄存器 R32_TMR_FIFO 中,如果采用 DMA 数据传输,
则捕获到的数据自动存放在 DMA 设置的数据缓冲区中。
72
CH563 中文手册
第 12 章 模数转换器 ADC
12.1 ADC 简介
CH563 芯片具有 1 个 10 位逐次逼近型模拟数字转换器。该模拟数字转换器具有 3 个通道,每个
通道转换均具有 DMA 功能。
ADC 特性:
(1)、10 位分辨率;
(2)、ADC 输入电压范围:0
很抱歉,暂时无法提供与“CH563L”相匹配的价格&库存,您可以联系我们找货
免费人工找货- 国内价格
- 1+32.71320
- 10+28.49040
- 30+25.98480