CH559 手册
1
8 位增强型 USB 单片机 CH559
手册
版本:1.5
http://wch.cn
1、概述
CH559 芯片是一款兼容 MCS51 指令集的增强型 E8051 内核单片机,
其 79%的指令是单字节单周期
指令,平均指令速度比标准 MCS51 快 8~15 倍。
CH559 支持最高 56MHz 系统主频,
内置 64K 程序存储器 Flash-ROM 和 256 字节内部 iRAM 以及 6K
字节片内 xRAM,部分 xRAM 支持 DMA 直接内存存取。
CH559 内置了 ADC 模数转换、4 组定时器和 PWM、双异步串口、双 SPI 等功能模块,以及内置双
端口 Root-HUB,支持 USB-Host 主机模式和 USB-Device 设备模式。
下面为 CH559 的内部框图,仅供参考。
Flash-ROM 64KB
(Code or Data)
iRAM 256B
xRAM 6KB
T0
T1
T2
Timer3
PWM3
PWM1
PWM2
UART0 UART1
Modem
SPI0
M/S
SPI1
M
LED
Ctrl
Power-on
Reset
Watch-dog
Reset
Internal
Oscillator
1T
E8051 Core
XT
Internal Address & Data & DMA Bus
USB
PLL
8-bit 8-bit
8-bit 8-bit 8-bit
xBUS Port0 ADC Port1 Port2 Port3
XT 8-bit USB 5-bit
OSC Port4 H/D Port5
LDO VolReg 5V->3.3V
Pins: GND
VIN5 VDD33
P00~P07
P10~P17 P20~P27 P30~P37 P40~P47 P50/1/4/5/7
2、特点
l Core:增强型 E8051 内核,兼容 MCS51 指令集,其 79%的指令是单字节单周期指令,平均指令
l
l
l
l
l
速度比标准 MCS51 快 8~15 倍,特有 XRAM 数据快速复制指令,双 DPTR 指针。
ROM:64KB 非易失存储器 Flash-ROM,支持 100K 次擦写,可以全部用于程序存储空间;或者可
以分为 60KB 程序存储区和 1KB 数据存储区以及 3KB 引导代码 BootLoader/ISP 程序区。
RAM:256 字节内部 iRAM,可以用于快速数据暂存以及堆栈;6KB 片内 xRAM,可以用于大量数
据暂存以及 DMA 直接内存存取;支持在片外再外扩 32KB 外部 SRAM。
USB:内嵌 USB 控制器和双 USB 收发器,支持 USB-Host 主机模式和 USB-Device 设备模式,支
持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps,USB 主机模式下可以通过双端口 Root-HUB 同时管
理两个 USB 设备。支持最大 64 字节数据包,内置 FIFO,支持 DMA。
Timer:4 组定时器,T0/T1/T2 为标准 MCS51 定时器;T2 扩展为支持 2 路信号捕捉;TMR3 内置
8 级 FIFO,支持 DMA,支持信号捕捉采样和 16 位 PWM 输出。
PWM:3 组 PWM 输出,PWM1/PWM2 为 2 路 8 位 PWM 输出;TMR3 支持 16 位 PWM 输出。
CH559 手册
2
l UART:2 组异步串口,UART0 为标准 MCS51 串口;UART1 兼容 16C550,内置 8 级 FIFO,支持 Modem
l
l
l
l
l
l
l
l
l
l
l
信号,支持 RS485 半双工模式,支持预置本机地址用于多机通讯时自动匹配。
SPI:2 组 SPI 控制器,时钟频率最高可达系统主频 Fsys 的一半,支持串行数据输入输出单工
复用。SPI0 内置 FIFO,支持 Master/Slave 主从模式;SPI1 只支持主机模式。
ADC:8 通道 10 位或 11 位 A/D 模数转换器,内置 2 级 FIFO,支持 DMA,支持最高 1MSPS 采样率,
支持两通道自动轮测。
LED-CTRL:LED 屏控制卡数据传输接口,内置 4 级 FIFO,支持 DMA,支持 1/2/4 路数据线接口,
时钟频率最高可达系统主频 Fsys 的一半。
XBUS:8 位并行外部总线,兼容标准 MCS51 总线,用于连接片外 SRAM 存储器或者其它外设,支
持直接 15 位地址或者 ALE 复用低 8 位地址,支持 4 种总线存取速度。
GPIO:支持最多 45 个 GPIO 引脚(含 XI/XO 和 RST 以及 USB 信号引脚),3.3V 电压输出,除了
P1.0~P1.7、XI、XO、RST 之外都支持 5V 耐压输入。
Interrupt:支持 14 组中断信号源,包括与标准 MCS51 兼容的 6 组中断(INT0、T0、INT1、T1、
UART0、T2),以及扩展的 8 组中断(SPI0、TMR3、USB、ADC、UART1、PWM1、GPIO、WDOG),其
中 GPIO 中断可以从 7 个引脚中选择。
Watch-Dog:8 位可预设看门狗定时器 WDOG,支持定时中断。
Reset:支持 4 种复位信号源,内置上电复位,支持软件复位和看门狗溢出复位,可选引脚外
部输入复位。
Clock:内置 12MHz 时钟源,可以通过复用 GPIO 引脚支持外部晶体,内置 PLL 用于产生 USB 时
钟和所需频率的系统主频 Fsys。
Power:内置 5V 到 3.3V 的低压差电压调整器,内部工作电压为 3.3V,支持外部 3.3V 或者 5V
电源输入。支持低功耗睡眠,支持 USB、UART0、UART1、SPI0 以及部分 GPIO 外部唤醒。
芯片内置唯一 ID 号,支持 ID 号和校验。
P3.7/RD
P4.3/PWM1_/A3
P4.2/PWM3_/CAP3_/A2
P4.6/XI/SCS_
P4.7/XO/SCK_
GND/VSS
P4.1/A1
P4.0/LED2/A0/RXD1_
P2.0/A8
P2.1/MOSI1/A9
P2.2/MISO1/A10
P2.3/SCK1/A11
P1.6/AIN6/MISO
P0.4/AD4/UCTS
P1.7/AIN7/SCK
P0.5/AD5/UDSR
P5.7/RST
P0.6/AD6/URI
P3.0/RXD
P0.7/AD7/UDCD
P4.5/PWM2_/A5
P5.0/DM
P4.4/LED3/TNOW_/TXD1_/A4
P5.1/DP
CH559L
P3.1/TXD
P5.4/HM/ALE/XB
P3.2/LED0/INT0
P5.5/HP/!A15/XA
P3.3/LED1/!A15/INT1
P2.7/TXD1/DA7/A15
P3.4/LEDC/XCS0/T0
P2.6/RXD1/A14
P3.5/DA6/T1
P2.5/TNOW/PWM2/A13/T2EX_/CAP2_
P3.6/WR
P2.4/PWM1/A12
36
35
34
33
32
31
30
29
28
27
26
25
1
2
3
4
5
6
7
8
9
10
P1.2/AIN2/PWM3/CAP3
VDD33
P1.4/AIN4/SCS
VIN5
P1.5/AIN5/MOSI
GND/VSS
P1.6/AIN6/MISO
P0.2/RXD_
P1.7/AIN7/SCK
P0.3/TXD_
CH559T
P5.7/RST
P5.0/DM
P3.2/LED0/INT0
P5.1/DP
P3.4/LEDC/T0
P2.7/TXD1
P4.6/XI/SCS_
P2.6/RXD1
P4.7/XO/SCK_ P2.5/TNOW/PWM2/T2EX_/CAP2_
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
P1.5/AIN5/MOSI
P1.4/AIN4/SCS
P1.3/AIN3
P1.2/AIN2/PWM3/CAP3
P1.1/AIN1/T2EX/CAP2
P1.0/AIN0/T2/CAP1
VDD33
VIN5
P0.0/AD0/UDTR
P0.1/AD1/URTS
P0.2/AD2/RXD_
P0.3/AD3/TXD_
48
47
46
45
44
43
42
41
40
39
38
37
3、封装
封装形式
LQFP-48
塑体宽度
7*7mm
引脚间距
0.5mm
19.7mil
封装说明
订货型号
标准 LQFP48 脚贴片
CH559L
20
19
18
17
16
15
14
13
12
11
CH559 手册
3
SSOP-20
5.30mm
209mil
0.65mm
25mil
超小型 20 脚贴片
CH559T
4、引脚
引脚号
引脚
SSOP20 LQFP48 名称
19
41
其它功能名称
(左侧功能最优先)
其它功能描述
VIN5 V5
内部 5V->3.3V 电压调整器的 5V 外部电源输入,
需要外接 0.1uF 电源退耦电容。
VDD33 VDD/VCC
内部电压调整器输出和内部 3.3V 工作电源输入,
当电源电压小于 3.6V 时连接 VIN5 输入外部电源,
当电源电压大于 3.6V 时外接 3.3uF 电源退耦电容。
20
42
18
18
GND
-
40
P0.0 AD0/UDTR
-
39
P0.1 AD1/URTS
17
38
P0.2 AD2/RXD_
16
37
P0.3 AD3/TXD_
-
36
P0.4 AD4/UCTS
-
35
P0.5 AD5/UDSR
-
34
P0.6 AD6/URI
-
33
P0.7 AD7/UDCD
-
43
P1.0 AIN0/T2/CAP1
-
44
P1.1 AIN1/T2EX/CAP2
1
45
P1.2 AIN2/PWM3/CAP3
-
46
P1.3 AIN3
2
47
P1.4 AIN4/SCS
3
48
P1.5 AIN5/MOSI
4
1
P1.6 AIN6/MISO
5
2
P1.7 AIN7/SCK
-
21
P2.0 A8
-
22
P2.1 MOSI1/A9
-
23
P2.2 MISO1/A10
-
24
P2.3 SCK1/A11
-
25
P2.4 PWM1/A12
11
26
P2.5
12
27
P2.6 RXD1/A14
13
28
P2.7 TXD1/DA7/A15
-
4
P3.0 RXD
-
7
P3.1 TXD
7
8
P3.2 LED0/INT0
-
9
P3.3 LED1/!A15/INT1
8
10
P3.4 LEDC/XCS0/T0
-
11
P3.5 DA6/T1
VSS
TNOW/PWM2/A13
/T2EX_/CAP2_
公共接地端。
P0 端口:默认是 8 位开漏双向端口,可选通过设置
P0_PU 使能内部上拉电阻,使之转为准双向端口。
P0 在访问外部总线时会临时自动切换为推挽输出,作
为双向数据总线 AD0~AD7;或者在复用地址模式下访
问外部总线时根据需要输出地址的低 8 位。
UDTR、URTS:UART1 的 modem 信号输出。
UCTS、UDSR、URI、UDCD:UART1 的 modem 信号输入。
RXD_、TXD_:RXD、TXD 引脚映射。
AIN0~AIN7:8 通道 ADC 模拟信号输入。
T2:定时/计数器 2 的外部计数输入/时钟输出。
T2EX:定时/计数器 2 重载/捕捉输入。
CAP1、CAP2:定时/计数器 2 的捕捉输入 1、2。
CAP3/PWM3:定时/计数器 3 捕捉输入/PWM 输出。
SCS、MOSI、MISO、SCK:SPI0 接口,SCS 是片选输入,
MOSI 是主机输出/从机输入,MISO 是主机输入/从机
输出,SCK 是串行时钟。
P2 在访问外部总线时会临时自动切换为推挽输出,根
据需要输出地址的高 8 位 A8~A15。
MOSI1、MISO1、SCK1:SPI1 接口,MOSI1 是主机输出,
MISO1 是主机输入,SCK1 是串行时钟输出。
PWM1、PWM2:PWM1 输出、PWM2 输出。
TNOW:UART1 正在发送输出指示。
T2EX_/CAP2_:T2EX/CAP2 引脚映射。
RXD1、TXD1:UART1 串行数据输入、串行数据输出。
DA7:直接地址模式下访问外部总线时输出地址 A7。
RXD、TXD:UART0 串行数据输入、串行数据输出。
INT0、INT1:外部中断 0、外部中断 1 输入。
LED0、LED1、LEDC:LED 串行数据 0、1、时钟输出。
!A15:外部总线地址 A15 反相输出,用于片选。
T0、T1:定时器 0、定时器 1 外部输入。
XCS0:外部总线地址 4000h~7FFFh 片选输出。
CH559 手册
4
-
12
P3.6 WR
DA6:直接地址模式下访问外部总线时输出地址 A6。
WR、RD:外部总线写信号、读信号。
-
13
P3.7 RD
-
20
P4.0 LED2/A0/RXD1_
-
19
P4.1 A1
-
15
-
14
-
6
-
5
9
16
10
17
A0~A5:在直接地址模式下访问外部总线时输出低 6
位地址 A0~A5。
P4.2 PWM3_/CAP3_/A2
LED2、LED3:LED 串行数据 2、3 输出。
P4.3 PWM1_/A3
RXD1_、TNOW_/TXD1_:RXD1、TNOW/TXD1 引脚映射。
P4.4 LED3/TNOW_/TXD1_/A4 PWM3_/CAP3_:PWM3/CAP3 引脚映射。
PWM1_、PWM2_:PWM1、PWM2 引脚映射。
P4.5 PWM2_/A5
XI、XO:外部晶体振荡输入端、反相输出端。
P4.6 XI/SCS_
SCS_、SCK_:SPI0 片选 SCS、SCK 引脚映射。
P4.7 X0/SCK_
15
32
P5.0 DM
14
31
P5.1 DP
-
30
P5.4
HM
/ALE/XB
-
29
P5.5
HP
/!A15/XA
6
3
P5.7 RST
DM、DP:USB 主机 HUB0 或 USB 设备的 D-、D+信号端。
XB、XA:iRS485 的 B/反相、A/同相信号端。
ALE:复用地址模式下的地址锁存信号输出。
!A15:外部总线地址 A15 反相输出,用于片选。
HM、HP:USB 主机扩展 HUB1 的 D-、D+信号端。
外部复位输入,内置下拉电阻。
5、特殊功能寄存器 SFR
本手册中在对寄存器进行描述时可能使用了下列缩写:
缩写词
描述
RO
表示访问类型:只读
WO
表示访问类型:只写,读取的值无效
RW
表示访问类型:可读可写
h
以其结束表示 16 进制数
b
以其结束表示 2 进制数
5.1 SFR 简介和地址分布
CH559 用特殊功能寄存器 SFR 和 xSFR 控制、管理设备以及设置工作模式。
SFR 占用内部数据存储空间的 80h-FFh 地址范围,只能通过直接地址方式的指令访问。其中地
址为 x0h 或 x8h 的寄存器是可以按位寻址的,这样就能避免访问某个具体的位时而修改其他位的值;
其它地址为非 8 倍数的寄存器只能按字节访问。
部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下是只读状态,例如:GLOBAL_CFG、
PLL_CFG、CLOCK_CFG、SLEEP_CTRL、WAKE_CTRL。
部分 SFR 具有一个或者多个别名,例如:SPI0_CK_SE/SPI0_S_PRE、UDEV_CTRL/UHUB0_CTRL、
UEP1_CTRL/UH_SETUP、UEP2_CTRL/UH_RX_CTRL、UEP2_T_LEN/UH_EP_PID、UEP3_CTRL/UH_TX_CTRL、
UEP3_T_LEN/UH_TX_LEN、P5_PIN/P4_CFG。
部分地址对应于多个独立的 SFR,例如:TL2/T2CAP1L、TH2/T2CAP1H、SAFE_MOD/CHIP_ID、
T3_COUNT_L/T3_CK_SE_L 、 T3_COUNT_H/T3_CK_SE_H 、 SER1_FIFO/SER1_RBR/SER1_THR/SER1_DLL 、
SER1_IER/SER1_DLM、SER1_IIR/SER1_FCR、SER1_ADDR/SER1_DIV、ROM_CTRL/ROM_STATUS。
xSFR 占用外部数据存储空间 xdata 类型的 2440h-298Fh 地址范围,或者 pdata 类型的 40H-8Fh
地址范围。xSFR 只能通过 MOVX 指令间接寻址按字节访问,默认是基于 DPTR 指针;但在 bXIR_XSFR
置 1 后,还可以用更快捷的 R0 或者 R1 作为 pdata 类型指针访问名称为 pU*和 pLED_*的 xSFR。
CH559 手册
5
部分 xSFR 具有一个或者多个别名,例如:UEP2_3_MOD/UH_EP_MOD、UEP2_DMA_H/UH_RX_DMA_H、
UEP2_DMA_L/UH_RX_DMA_L
、
UEP2_DMA/UH_RX_DMA
、
UEP3_DMA_H/UH_TX_DMA_H
、
UEP3_DMA_L/UH_TX_DMA_L、UEP3_DMA/UH_TX_DMA。
部分地址对应于多个独立的 xSFR,例如:LED_DATA/LED_FIFO_CN。
CH559 包含 8051 标准 SFR 所有的寄存器,同时又增加了其他设备控制寄存器。具体 SFR 见下表。
表 5.1 特殊功能寄存器表
SFR
0、8
1、9
2、A
0xF8
SPI0_STAT
SPI0_DATA
SPI0_CTRL
0xF0
B
ADC_STAT
ADC_CTRL
0xE8
IE_EX
IP_EX
0xE0
ACC
4、C
5、D
6、E
7、F
SPI0_SETUP
XBUS_SPEED
RESET_KEEP
WDOG_COUNT
ADC_CHANN
ADC_FIFO_L
ADC_FIFO_H
ADC_SETUP
ADC_EX_SW
SLEEP_CTRL
WAKE_CTRL
ADC_DMA_AL
ADC_DMA_AH
ADC_DMA_CN
ADC_CK_SE
USB_INT_EN
USB_CTRL
USB_DEV_AD
UHUB1_CTRL
USB_DMA_AL
USB_DMA_AH
0xD8 USB_INT_FG
USB_INT_ST
USB_MIS_ST
USB_HUB_ST
UEP0_CTRL
UEP0_T_LEN
UEP4_CTRL
UEP4_T_LEN
0xD0
PSW
USB_RX_LEN
UEP2_CTRL
UEP2_T_LEN
UEP3_CTRL
UEP3_T_LEN
UH_RX_CTRL
UH_EP_PID
UH_TX_CTRL
UH_TX_LEN
0xC8
T2CON
T2MOD
RCAP2L
RCAP2H
TL2
TH2
T2CAP1L
T2CAP1H
PIN_FUNC
GPIO_IE
0xC0
P4_OUT
P4_IN
P4_DIR
P4_PU
P0_DIR
P0_PU
PORT_CFG
0xB8
IP
P1_IE
P1_DIR
P1_PU
P2_DIR
P2_PU
P3_DIR
P3_PU
0xB0
P3
GLOBAL_CFG
PLL_CFG
CLOCK_CFG
SPI1_STAT
SPI1_DATA
SPI1_CTRL
SPI1_CK_SE
0xA8
IE
T3_STAT
T3_CTRL
T3_DMA_CN
T3_DMA_AL
T3_DMA_AH
T3_FIFO_L
T3_FIFO_H
0xA0
P2
XBUS_AUX
T3_SETUP
T3_COUNT_L
T3_COUNT_H
T3_CK_SE_L
T3_CK_SE_H
T3_END_L
T3_END_H
0x98
SCON
PWM_DATA2
PWM_DATA
PWM_CTRL
PWM_CK_SE
PWM_CYCLE
0x90
P1
SER1_LCR
SER1_MCR
SER1_LSR
SER1_MSR
0x88
ROM_DATA_L
0x80
SAFE_MOD
CHIP_ID
SBUF
UEP1_CTRL
UH_SETUP
SER1_FIFO
SER1_DLL
3、B
SPI0_CK_SE
SPI0_S_PRE
UEP1_T_LEN
UDEV_CTRL
UHUB0_CTRL
SER1_IER
SER1_IIR
SER1_DLM
SER1_FCR
TCON
TMOD
TL0
TL1
TH0
TH1
P0
SP
DPL
DPH
ROM_ADDR_L
ROM_ADDR_H
备注:(1)、红色文本代表可以按位寻址;(2)、以下是颜色框对应说明
寄存器地址
SPI0 相关寄存器
ADC 相关寄存器
USB 相关寄存器
定时/计数器 2 相关寄存器
端口设置相关寄存器
SPI1 相关寄存器
PWM1 和 PWM2 相关寄存器
UART1 相关寄存器
定时/计数器 0 和 1 相关寄存器
Flash-ROM 相关寄存器
ROM_CTRL
ROM_STATUS
P5_PIN
P4_CFG
SER1_ADDR
SER1_DIV
ROM_DATA_H
PCON
CH559 手册
6
5.2 SFR 分类和复位值
表 5.2 SFR 和 xSFR 描述和复位值
功能分类
系统设置
相关寄存器
时钟、睡眠
及电源控制
相关寄存器
中断控制
相关寄存器
Flash-ROM
相关寄存器
端口设置
相关寄存器
名称
地址
描述
复位值
B
F0h
B 寄存器
0000 0000b
ACC
E0h
累加器
0000 0000b
PSW
D0h
程序状态寄存器
0000 0000b
GLOBAL_CFG
B1h
全局配置寄存器(引导程序状态下)
1110 0000b
全局配置寄存器(应用程序状态下)
1100 0000b
CHIP_ID
A1h
芯片 ID 识别码(只读)
0101 1001b
SAFE_MOD
A1h
安全模式控制寄存器(只写)
0000 0000b
DPH
83h
数据地址指针高 8 位
0000 0000b
DPL
82h
数据地址指针低 8 位
0000 0000b
DPTR
82h
DPL 和 DPH 组成 16 位 SFR
SP
81h
堆栈指针
0000 0111b
WDOG_COUNT
FFh
看门狗计数寄存器
0000 0000b
RESET_KEEP
FEh
复位保持寄存器(上电复位状态下)
0000 0000b
WAKE_CTRL
EBh
睡眠唤醒控制寄存器
0000 0000b
SLEEP_CTRL
EAh
睡眠控制寄存器
0000 0000b
CLOCK_CFG
B3h
系统时钟配置寄存器
1001 1000b
PLL_CFG
B2h
PLL 时钟配置寄存器
1101 1000b
PCON
87h
电源控制寄存器(上电复位状态下)
0001 0000b
IP_EX
E9h
扩展中断优先级控制寄存器
0000 0000b
IE_EX
E8h
扩展中断使能寄存器
0000 0000b
GPIO_IE
CFh
GPIO 中断使能寄存器
0000 0000b
IP
B8h
中断优先级控制寄存器
0000 0000b
IE
A8h
中断使能寄存器
0000 0000b
ROM_DATA_H
8Fh
flash-ROM 数据寄存器高字节
xxxx xxxxb
ROM_DATA_L
8Eh
flash-ROM 数据寄存器低字节
xxxx xxxxb
ROM_DATA
8Eh
ROM_DATA_L 和 ROM_DATA_H 组成 16 位 SFR
ROM_STATUS
86h
flash-ROM 状态寄存器(只读)
1000 0000b
ROM_CTRL
86h
flash-ROM 控制寄存器(只写)
0000 0000b
ROM_ADDR_H
85h
flash-ROM 地址寄存器高字节
xxxx xxxxb
ROM_ADDR_L
84h
flash-ROM 地址寄存器低字节
xxxx xxxxb
ROM_ADDR
84h
ROM_ADDR_L 和 ROM_ADDR_H 组成 16 位 SFR
XBUS_SPEED
FDh
外部总线速度配置寄存器
1111 1111b
XBUS_AUX
A2h
外部总线辅助设置寄存器
0000 0000b
PIN_FUNC
CEh
引脚功能选择寄存器
0000 0000b
P4_CFG
C7h
P4 端口配置寄存器
0000 0000b
P5_IN
C7h
P5 端口输入寄存器(只读)
0000 0000b
PORT_CFG
C6h
端口配置寄存器
0000 1111b
P0_PU
C5h
P0 端口上拉使能寄存器(En_P0_Pullup=0)
0000 0000b
P0 端口上拉使能寄存器(En_P0_Pullup=1)
1111 1111b
0000h
xxxxh
xxxxh
CH559 手册
定时/计数器
0和1
相关寄存器
UART0
相关寄存器
定时/计数器
2 相关寄存器
定时/计数器
3 相关寄存器
7
P0_DIR
C4h
P0 端口方向控制寄存器
0000 0000b
P4_PU
C3h
P4 端口上拉使能寄存器
1111 1111b
P4_DIR
C2h
P4 端口方向控制寄存器
0000 0000b
P4_IN
C1h
P4 端口输入寄存器(只读)
1111 1111b
P4_OUT
C0h
P4 端口输出寄存器
0000 0000b
P3_PU
BFh
P3 端口方向控制寄存器
1111 1111b
P3_DIR
BEh
P3 端口上拉使能寄存器
0000 0000
P2_PU
BDh
P2 端口上拉使能寄存器
1111 1111b
P2_DIR
BCh
P2 端口方向控制寄存器
0000 0000b
P1_PU
BBh
P1 端口上拉使能寄存器
1111 1111b
P1_DIR
BAh
P1 端口方向控制寄存器
0000 0000b
P1_IE
B9h
P1 端口输入使能寄存器
1111 1111b
P3
B0h
P3 端口输入输出寄存器
1111 1111b
P2
A0h
P2 端口输入输出寄存器
1111 1111b
P1
90h
P1 端口输入输出寄存器
1111 1111b
P0
80h
P0 端口输入输出寄存器
1111 1111b
TH1
8Dh
Timer1 计数高字节
xxxx xxxxb
TH0
8Ch
Timer0 计数高字节
xxxx xxxxb
TL1
8Bh
Timer1 计数低字节
xxxx xxxxb
TL0
8Ah
Timer0 计数低字节
xxxx xxxxb
TMOD
89h
Timer0/1 方式寄存器
0000 0000b
TCON
88h
Timer0/1 控制寄存器
0000 0000b
SBUF
99h
UART0 数据寄存器
xxxx xxxxb
SCON
98h
UART0 控制寄存器
0000 0000b
TH2
CDh
Timer2 计数器高字节
0000 0000b
TL2
CCh
Timer2 计数器低字节
0000 0000b
T2COUNT
CCh
TL2 和 TH2 组成 16 位 SFR
T2CAP1H
CDh
Timer2 捕捉 1 数据高字节(只读)
xxxx xxxxb
T2CAP1L
CCh
Timer2 捕捉 1 数据低字节(只读)
xxxx xxxxb
T2CAP1
CCh
T2CAP1L 和 T2CAP1H 组成 16 位 SFR
xxxxh
RCAP2H
CBh
计数重载/捕捉 2 数据寄存器高字节
0000 0000b
RCAP2L
CAh
计数重载/捕捉 2 数据寄存器低字节
0000 0000b
RCAP2
CAh
RCAP2L 和 RCAP2H 组成 16 位 SFR
T2MOD
C9h
Timer2 方式寄存器
0000 0000b
T2CON
C8h
Timer2 控制寄存器
0000 0000b
T3_FIFO_H
AFh
Timer3 的 FIFO 高字节
xxxx xxxxb
T3_FIFO_L
AEh
Timer3 的 FIFO 低字节
xxxx xxxxb
T3_FIFO
AEh
T3_FIFO_L 和 T3_FIFO_H 组成 16 位 SFR
T3_DMA_AH
ADh
DMA 当前缓冲区地址高字节
0000 xxxxb
T3_DMA_AL
ACh
DMA 当前缓冲区地址低字节
xxxx xxx0b
T3_DMA
ACh
T3_DMA_AL 和 T3_DMA_AH 组成 16 位 SFR
T3_DMA_CN
ABh
DMA 剩余计数寄存器
0000 0000b
T3_CTRL
AAh
Timer3 控制寄存器
0000 0010b
0000h
0000h
xxxxh
0xxxh
CH559 手册
PWM1 和 PWM2
相关寄存器
SPI0
相关寄存器
SPI1
相关寄存器
UART1
相关寄存器
ADC
相关寄存器
8
T3_STAT
A9h
Timer3 状态寄存器
0000 0000b
T3_END_H
A7h
Timer3 计数终值高字节
xxxx xxxxb
T3_END_L
A6h
Timer3 计数终值低字节
xxxx xxxxb
T3_END
A6h
T3_END_L 和 T3_END_H 组成 16 位 SFR
T3_COUNT_H
A5h
Timer3 当前计数高字节(只读)
0000 0000b
T3_COUNT_L
A4h
Timer3 当前计数低字节(只读)
0000 0000b
T3_COUNT
A4h
T3_COUNT_L 和 T3_COUNT_H 组成 16 位 SFR
T3_CK_SE_H
A5h
Timer3 时钟分频设置高字节
0000 0000b
T3_CK_SE_L
A4h
Timer3 时钟分频设置低字节
0010 0000b
T3_CK_SE
A4h
T3_CK_SE_L 和 T3_CK_SE_H 组成 16 位 SFR
T3_SETUP
A3h
Timer3 设置寄存器
0000 0100b
PWM_CYCLE
9Fh
PWM 循环周期寄存器
xxxx xxxxb
PWM_CK_SE
9Eh
PWM 时钟分频设置寄存器
0000 0000b
PWM_CTRL
9Dh
PWM 控制寄存器
0000 0010b
PWM_DATA
9Ch
PWM1 数据寄存器
xxxx xxxxb
PWM_DATA2
9Bh
PWM2 数据寄存器
xxxx xxxxb
SPI0_SETUP
FCh
SPI0 设置寄存器
0000 0000b
SPI0_S_PRE
FBh
SPI0 从机模式预置数据寄存器
0010 0000b
SPI0_CK_SE
FBh
SPI0 时钟分频设置寄存器
0010 0000b
SPI0_CTRL
FAh
SPI0 控制寄存器
0000 0010b
SPI0_DATA
F9h
SPI0 数据收发寄存器
xxxx xxxxb
SPI0_STAT
F8h
SPI0 状态寄存器
0000 1000b
SPI1_CK_SE
B7h
SPI1 时钟分频设置寄存器
0010 0000b
SPI1_CTRL
B6h
SPI1 控制寄存器
0000 0010b
SPI1_DATA
B5h
SPI1 数据收发寄存器
xxxx xxxxb
SPI1_STAT
B4h
SPI1 状态寄存器
0000 1000b
SER1_DLL
9Ah
UART1 波特率除数锁存器低字节
xxxx xxxxb
SER1_FIFO
9Ah
UART1 数据 FIFO 读写寄存器
xxxx xxxxb
SER1_DIV
97h
UART1 预分频除数寄存器
0xxx xxxxb
SER1_ADDR
97h
UART1 总线地址预置寄存器
1111 1111b
SER1_MSR
96h
UART1 调制解调器 MODEM 状态寄存器(只读)
1111 0000b
SER1_LSR
95h
UART1 线路状态寄存器(只读)
0110 0000b
SER1_MCR
94h
UART1 调制解调器 MODEM 控制寄存器
0000 0000b
SER1_LCR
93h
UART1 线路控制寄存器
0000 0000b
SER1_IIR
92h
UART1 中断识别寄存器(只读)
0000 0001b
SER1_FCR
92h
FIFO 控制寄存器(只写)
0000 0000b
SER1_DLM
91h
UART1 波特率除数锁存器高字节
1000 0000b
SER1_IER
91h
UART1 中断使能寄存器
0000 0000b
ADC_EX_SW
F7h
ADC 扩展模拟开关控制寄存器
0000 0000b
ADC_SETUP
F6h
ADC 设置寄存器
0000 1000b
ADC_FIFO_H
F5h
ADC 的 FIFO 高字节(只读)
0000 0xxxb
ADC_FIFO_L
F4h
ADC 的 FIFO 低字节(只读)
xxxx xxxxb
ADC_FIFO
F4h
ADC_FIFO_L 和 ADC_FIFO_H 组成 16 位 SFR
xxxxh
0000h
0020h
0xxxh
CH559 手册
USB
相关寄存器
USB
相关寄存器
xSFR 区域
9
ADC_CHANN
F3h
ADC 通道选择寄存器
0000 0000b
ADC_CTRL
F2h
ADC 控制寄存器
0000 0000b
ADC_STAT
F1h
ADC 状态寄存器
0000 0100b
ADC_CK_SE
EFh
ADC 时钟分频设置寄存器
0001 0000b
ADC_DMA_CN
EEh
DMA 剩余计数寄存器
0000 0000b
ADC_DMA_AH
EDh
DMA 当前缓冲区地址高字节
0000 xxxxb
ADC_DMA_AL
ECh
DMA 当前缓冲区地址低字节
xxxx xxx0b
ADC_DMA
ECh
ADC_DMA_AL 和 ADC_DMA_AH 组成 16 位 SFR
USB_DMA_AH
E7h
DMA 当前缓冲区地址高字节(只读)
000x xxxxb
USB_DMA_AL
E6h
DMA 当前缓冲区地址低字节(只读)
xxxx xxx0b
USB_DMA
E6h
USB_DMA_AL 和 USB_DMA_AH 组成 16 位 SFR
UHUB1_CTRL
E5h
USB 主机 HUB1 端口控制寄存器
1100 x000b
UHUB0_CTRL
E4h
USB 主机 HUB0 端口控制寄存器
0100 x000b
UDEV_CTRL
E4h
USB 设备端口控制寄存器
0100 x000b
USB_DEV_AD
E3h
USB 设备地址寄存器
0000 0000b
USB_CTRL
E2h
USB 控制寄存器
0000 0110b
USB_INT_EN
E1h
USB 中断使能寄存器
0000 0000b
UEP4_T_LEN
DFh
端点 4 发送长度寄存器
0xxx xxxxb
UEP4_CTRL
DEh
端点 4 控制寄存器
0000 0000b
UEP0_T_LEN
DDh
端点 0 发送长度寄存器
0xxx xxxxb
UEP0_CTRL
DCh
端点 0 控制寄存器
0000 0000b
USB_HUB_ST
DBh
USB 主机 HUB 端口状态寄存器(只读)
0000 0000b
USB_MIS_ST
DAh
USB 杂项状态寄存器(只读)
xx10 1000b
USB_INT_ST
D9h
USB 中断状态寄存器(只读)
00xx xxxxb
USB_INT_FG
D8h
USB 中断标志寄存器
0010 0000b
UEP3_T_LEN
D7h
端点 3 发送长度寄存器
0xxx xxxxb
UH_TX_LEN
D7h
USB 主机发送长度寄存器
0xxx xxxxb
UEP3_CTRL
D6h
端点 3 控制寄存器
0000 0000b
UH_TX_CTRL
D6h
USB 主机发送端点控制寄存器
0000 0000b
UEP2_T_LEN
D5h
端点 2 发送长度寄存器
0000 0000b
UH_EP_PID
D5h
USB 主机令牌设置寄存器
0000 0000b
UEP2_CTRL
D4h
端点 2 控制寄存器
0000 0000b
UH_RX_CTRL
D4h
USB 主机接收端点控制寄存器
0000 0000b
UEP1_T_LEN
D3h
端点 1 发送长度寄存器
0xxx xxxxb
UEP1_CTRL
D2h
端点 1 控制寄存器
0000 0000b
UH_SETUP
D2h
USB 主机辅助设置寄存器
0000 0000b
USB_RX_LEN
D1h
USB 接收长度寄存器(只读)
0xxx xxxxb
UEP4_1_MOD
2446h
端点 1、4 模式控制寄存器
0000 0000b
UEP2_3_MOD
2447h
端点 2、3 模式控制寄存器
0000 0000b
UH_EP_MOD
2447h
USB 主机端点模式控制寄存器
0000 0000b
UEP0_DMA_H
2448h
端点 0 和 4 缓冲区起始地址高字节
000x xxxxb
UEP0_DMA_L
2449h
端点 0 和 4 缓冲区起始地址低字节
xxxx xxx0b
UEP0_DMA
2448h
UEP0_DMA_L 和 UEP0_DMA_H 组成 16 位 SFR
0xxxh
xxxxh
xxxxh
CH559 手册
LED 控制卡
相关寄存器
xSFR 区域
10
UEP1_DMA_H
244Ah
端点 1 缓冲区起始地址高字节
000x xxxxb
UEP1_DMA_L
244Bh
端点 1 缓冲区起始地址低字节
xxxx xxx0b
UEP1_DMA
244Ah
UEP1_DMA_L 和 UEP1_DMA_H 组成 16 位 SFR
UEP2_DMA_H
244Ch
端点 2 缓冲区起始地址高字节
000x xxxxb
UEP2_DMA_L
244Dh
端点 2 缓冲区起始地址低字节
xxxx xxx0b
UEP2_DMA
244Ch
UEP2_DMA_L 和 UEP2_DMA_H 组成 16 位 SFR
UH_RX_DMA_H
244Ch
USB 主机接收缓冲区起始地址高字节
000x xxxxb
UH_RX_DMA_L
244Dh
USB 主机接收缓冲区起始地址低字节
xxxx xxx0b
UH_RX_DMA
244Ch
UH_RX_DMA_L 和 UH_RX_DMA_H 组成 16 位 SFR
UEP3_DMA_H
244Eh
端点 3 缓冲区起始地址高字节
000x xxxxb
UEP3_DMA_L
244Fh
端点 3 缓冲区起始地址低字节
xxxx xxx0b
UEP3_DMA
244Eh
UEP3_DMA_L 和 UEP3_DMA_H 组成 16 位 SFR
UH_TX_DMA_H
244Eh
USB 主机发送缓冲区起始地址高字节
000x xxxxb
UH_TX_DMA_L
244Fh
USB 主机发送缓冲区起始地址低字节
xxxx xxx0b
UH_TX_DMA
244Eh
UH_TX_DMA_L 和 UH_TX_DMA_H 组成 16 位 SFR
pU*
254*h
在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类
型寻址上述 xSFR,比 xdata 类型寻址更快捷
LED_STAT
2880h
LED 状态寄存器
010x 0000b
LED_CTRL
2881h
LED 控制寄存器
0000 0010b
LED_FIFO_CN
2882h
FIFO 计数状态寄存器(只读)
0000 0000b
LED_DATA
2882h
LED 数据寄存器(只写)
xxxx xxxxb
LED_CK_SE
2883h
LED 时钟分频设置寄存器
0001 0000b
LED_DMA_AH
2884h
DMA 当前缓冲区地址高字节
000x xxxxb
LED_DMA_AL
2885h
DMA 当前缓冲区地址低字节
xxxx xxx0b
LED_DMA
2884h
LED_DMA_AL 和 LED_DMA_AH 组成 16 位 SFR
LED_DMA_CN
2886h
LED DMA 剩余计数寄存器
xxxx xxxxb
LED_DMA_XH
2888h
DMA 当前辅助缓冲区地址高字节
000x xxxxb
LED_DMA_XL
2889h
DMA 当前辅助缓冲区地址低字节
xxxx xxx0b
LED_DMA_X
2888h
LED_DMA_XL 和 LED_DMA_XH 组成 16 位 SFR
pLED_*
298*h
在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类
型寻址上述 xSFR,比 xdata 类型寻址更快捷
xxxxh
xxxxh
xxxxh
xxxxh
xxxxh
xxxxh
xxxxh
5.3 通用 8051 寄存器
表 5.3.1 通用 8051 寄存器列表
名称
地址
描述
复位值
B
F0h
B 寄存器
00h
A、ACC
E0h
累加器
00h
PSW
D0h
程序状态寄存器
00h
GLOBAL_CFG
B1h
全局配置寄存器(引导程序状态下)
E0h
全局配置寄存器(应用程序状态下)
C0h
CHIP_ID
A1h
芯片 ID 识别码(只读)
59h
SAFE_MOD
A1h
安全模式控制寄存器(只写)
00h
PCON
87h
电源控制寄存器(上电复位状态下)
10h
CH559 手册
11
DPH
83h
数据地址指针高 8 位
00h
DPL
82h
数据地址指针低 8 位
00h
DPTR
82h
DPL 和 DPH 组成 16 位 SFR
SP
81h
堆栈指针
0000h
07h
B 寄存器(B):
位
名称
访问
[7:0]
B
RW
描述
复位值
算术运算寄存器,主要用于乘法和除法运算,可按位寻址
00h
A 累加器(A、ACC):
位
名称
访问
[7:0]
A/ACC
RW
描述
复位值
算术运算累加器,可按位寻址
00h
程序状态寄存器(PSW):
位
名称
访问
描述
复位值
0
7
CY
RW
进位标志位:执行算术运算和逻辑运算指令时,用于记录最高位的
进位或者借位;进行 8 位加法运算时,最高位进位,则该位置位,
否则清零;进行 8 位减法运算时,若借位,则该位置位,否则清零;
逻辑指令可使该位置位或清零
6
AC
RW
辅助进位标志位:记录加减法运算时,低 4 位向高 4 位有进位或借
位,AC 置位,否则清零
0
5
F0
RW
可按位寻址的通用标志位 0:使用者可自己定义,可软件清零或置位
0
4
RS1
RW
寄存器组选择位高位
0
3
RS0
RW
寄存器组选择位低位
0
2
OV
RW
溢出标志位:加减法运算时,运算结果超过 8 位二进制数,则 OV 置
1,标志溢出,否则清 0
0
1
F1
RW
可按位寻址的通用标志位 1:使用者可自己定义,可软件清零或置位
0
0
P
RO
奇偶标志位:记录指令执行后累加器 A 中 1 的奇偶性,奇数个 1 则 P
置位,偶数个 1 则 P 清零
0
处理器的状态保存在状态寄存器 PSW 中,PSW 支持按位寻址。状态字中包括进位标志位,用于
BCD 码处理的辅助进位标志位,奇偶标志位,溢出标志位,还有用于工作寄存器组选择的 RS0 和 RS1。
工作寄存器组所在的区域都可以通过直接或者间接方式进行访问。
表 5.3.2 RS1 和 RS0 工作寄存器组选择表
RS1
RS0
工作寄存器组
0
0
0 组(00h-07h)
0
1
1 组(08h-0Fh)
1
0
2 组(10h-17h)
1
1
3 组(18h-1Fh)
表 5.3.3 影响标志位的操作(X 表示标志位与操作结果有关)
操作
CY
OV
AC
操作
CY
ADD
X
X
X
SETB C
1
ADDC
X
X
X
CLR C
0
SUBB
X
X
X
CPL C
X
OV
AC
CH559 手册
12
MUL
0
X
MOV C, bit
X
DIV
0
X
ANL C, bit
X
DA A
X
ANL C,/bit
X
RRC A
X
ORL C, bit
X
RLC A
X
ORL C,/bit
X
CJNE
X
数据地址指针(DPTR):
位
名称
访问
描述
复位值
[7:0]
DPL
RW
数据指针低字节
00h
[7:0]
DPH
RW
数据指针高字节
00h
DPL 和 DPH 组成 16 位数据指针 DPTR,用于访问 xSFR、xBUS、xRAM 数据存储器或者程序存储器,
实际 DPTR 对应 DPTR0 和 DPTR1 两组物理上的 16 位数据指针,由 XBUS_AUX 中的 DPS 动态选择。
堆栈指针(SP):
位
名称
访问
[7:0]
SP
RW
描述
堆栈指针,主要用于程序调用和中断调用以及数据进出栈
复位值
07h
堆栈具体功能:保护端点和保护现场,按先入后出的原则进行管理。入栈时 SP 指针自动加 1,
保存数据或断点信息;出栈时取 SP 指针指向数据单元,SP 指针自动减 1。SP 在复位后的初值是 07h,
相应的默认堆栈存储从 08h 开始。
5.4 特有寄存器
全局配置寄存器(GLOBAL_CFG),仅在安全模式下可写:
位
名称
访问
描述
复位值
[7:6]
保留
RO
固定值 11
1
11b
5
bBOOT_LOAD
RO
Boot loader 状态位,用于区分 ISP 引导程序状态或者应
用程序状态:电源上电时置 1,软件复位时清 0。
对于有 ISP 引导程序的芯片,该位为 1 说明从未软件复位
过,通常是上电后运行的 ISP 引导程序状态;该位为 0
说明已经软件复位过,通常是应用程序状态
4
bSW_RESET
RW
软件复位控制位:置 1 导致软件复位,硬件自动清零
0
3
bCODE_WE
RW
Flash-ROM 写允许位:
该位为 0 则写保护;为 1 则 Flash-ROM 可写可擦
0
2
bDATA_WE
RW
Flash-ROM 的 DataFlash 区域写允许位:
该位为 0 则写保护;为 1 则 DataFlash 区域可写可擦
0
0
0
1
bXIR_XSFR
RW
MOVX_@R0/R1 指令访问范围控制位:
该位为 0 允许访问全部 xdata 区域 xRAM/xBUS/xSFR;
该位为 1 则专用于访问 xSFR,不能访问 xRAM/xBUS
0
bWDOG_EN
RW
看门狗复位使能位:该位为 0 看门狗只用作定时器;该位
为 1 允许计时溢出时产生看门狗复位
芯片 ID 识别码(CHIP_ID):
位
名称
访问
描述
复位值
CH559 手册
[7:0]
13
CHIP_ID
RO
固定值 59h,用于识别芯片
59h
安全模式控制寄存器(SAFE_MOD):
位
名称
访问
[7:0]
SAFE_MOD
WO
描述
复位值
用于进入或者终止安全模式
00h
部分 SFR 仅在安全模式下才能写入数据,而在非安全模式下总是只读状态。进入安全模式步骤:
(1)、向该寄存器写入 55h;
(2)、接着向该寄存器写入 AAh;
(3)、此后约 13 到 23 个系统主频周期都处于安全模式下,该有效期内可以改写一个或多个安全类
SFR 或普通 SFR
(4)、超出上述有效期后自动终止安全模式
(5)、或者再向该寄存器写任意值可以提前终止安全模式
6、存储器结构
6.1 存储器空间
CH559 寻址空间分为程序存储空间、内部数据存储空间、外部数据存储空间。
图 6.1 存储器结构图
Internal Data Address Space
FFH
80H
7FH
Upper 128 bytes internal RAM
(indirect addressing by @R0/R1)
SFR
(Direct addressing)
Lower 128 bytes internal RAM
(direct or indirect addressing)
00H
External Data Address Space
FFFFH
8000H
7FFFH
4000H
3FFFH
2990H
298FH
2440H
243FH
1800H
17FFH
0000H
xCS1/xBUS1 @xdata, 32KB
(indirect addressing by MOVX)
xCS0/xBUS0 @xdata, 16KB
(indirect addressing by MOVX)
Reserved area @xdata
xSFR area @xdata
(indirect addressing by MOVX)
Reserved area @xdata
6KB on-chip expanded xRAM @xdata
(indirect addressing by MOVX)
Program Address Space
Configuration information
ROM_CFG_ADDR
Boot Loader Code Flash
BOOT_LOAD_ADDR
Data Flash or Code Flash
DATA_FLASH_ADDR
FFFFH
FFFEH
FFFDH
F400H
F3FFH
F000H
EFFFH
Application Code Flash
0000H
CH559 手册
14
6.2 程序存储空间
程序存储空间共 64KB,如图 6.1 所示,已全部用于 flash-ROM,包括保存指令代码的 Code Flash
区域、保存非易失数据的 Data Flash 区域、以及配置信息 Configuration Information 区域。
Data Flash 地址范围为 F000h 到 F3FFH,支持单字节读(8 位)、双字节写(16 位)、块擦除(1K
字节)操作,芯片掉电后数据保持不变,也可用作 Code Flash。
Code Flash 包括低地址区域的应用程序代码和高地址区域的引导程序代码,也可将这两块区域
以及 Data Flash 合并用于保存单一应用程序代码。
配置信息 Configuration Information 共 16 位数据,由编程器根据需要设定,参考表 6.1。
表 6.2 flash-ROM 配置信息描述
位地址
位名称
说明
建议值
15
Code_Protect
flash-ROM 中的代码和数据保护模式:
0-禁止编程器读出,程序保密;1-允许读出
14
No_Boot_Load
使能 BootLoader 引导代码启动模式:
0-从 0000h 地址的应用程序启动;
1-从 F400h 地址的引导程序启动
1
13
En_Long_Reset
使能上电复位期间的额外延时复位:
0-标准短复位;1-宽复位,额外增加 87mS 复位时间
0
12
XT_OSC_Strong
选择晶体振荡器的对外驱动能力:0-标准;1-增强
0
11
En_P5.7_RESET
使能 P5.7 作为手工复位输入引脚:0-禁止;1-使能 RST
1
10
En_P0_Pullup
使能系统复位期间 P0 端口的内部上拉电阻:
0-复位后禁止上拉电阻;1-复位后启用上拉电阻
1
9
Must_1
(由编程器根据需要自动设定为 1)
1
8
Must_0
(由编程器根据需要自动设定为 0)
0
[7:0]
All_1
(由编程器根据需要自动设定为 FFh)
0/1
FFh
6.3 数据存储空间
内部数据存储空间共 256 字节,如图 6.1 所示,已全部用于 SFR 和 iRAM,其中 iRAM 用于堆栈
和快速数据暂存,可细分为工作寄存器 R0-R7、位变量 bdata、字节变量 data、idata 等。
外部数据存储空间共 64KB,如图 6.1 所示,部分用于 6KB 片内扩充 xRAM 和 xSFR,除了两块保
留区域之外,剩余的 4000h 到 FFFFh 地址范围是外部总线区域。
6.4 flash-ROM 寄存器
表 6.4 flash-ROM 操作寄存器列表
名称
地址
描述
复位值
ROM_DATA_H
8Fh
flash-ROM 数据寄存器高字节
xxh
ROM_DATA_L
8Eh
flash-ROM 数据寄存器低字节
xxh
ROM_DATA
8Eh
ROM_DATA_L 和 ROM_DATA_H 组成 16 位 SFR
ROM_STATUS
86h
flash-ROM 状态寄存器(只读)
80h
ROM_CTRL
86h
flash-ROM 控制寄存器(只写)
00h
ROM_ADDR_H
85h
flash-ROM 地址寄存器高字节
xxh
ROM_ADDR_L
84h
flash-ROM 地址寄存器低字节
xxh
ROM_ADDR
84h
ROM_ADDR_L 和 ROM_ADDR_H 组成 16 位 SFR
xxxxh
xxxxh
CH559 手册
15
flash-ROM 地址寄存器(ROM_ADDR):
位
名称
访问
描述
复位值
[7:0]
ROM_ADDR_H
RW
flash-ROM 地址高字节
xxh
[7:0]
ROM_ADDR_L
RW
flash-ROM 地址低字节,只支持偶地址
xxh
flash-ROM 数据寄存器(ROM_DATA):
位
名称
访问
描述
复位值
[7:0]
ROM_DATA_H
RW
flash-ROM 待写数据高字节
xxh
[7:0]
ROM_DATA_L
RW
flash-ROM 待写数据低字节
xxh
flash-ROM 控制寄存器(ROM_CTRL):
位
名称
访问
[7:0]
ROM_CTRL
WO
描述
flash-ROM 控制寄存器
复位值
00h
flash-ROM 状态寄存器(ROM_STATUS):
位
名称
访问
描述
复位值
7
保留
RO
保留
1
6
bROM_ADDR_OK
RO
flash-ROM 操作地址有效状态位:
该位为 0 表示参数无效;为 1 表示地址有效
0
[5:2]
保留
RO
保留
1
bROM_CMD_ERR
RO
flash-ROM 操作命令错误状态位:
该位为 0 表示命令有效;为 1 表示是未知命令
0
0
bROM_CMD_TOUT
RO
flash-ROM 操作结果状态位:
该位为 0 表示操作成功;为 1 表示操作超时
0
0000b
6.5 flash-ROM 操作步骤
1、擦除 flash-ROM,将目标块中全部数据位变为 1:
(1)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh;
(2)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bCODE_WE 或 bDATA_WE 对应 code 或 data);
(3)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际仅高 6 位有效;
(4)、设置操作控制寄存器 ROM_CTRL 为 0A6h,执行块擦除操作,操作期间程序自动暂停运行;
(5)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果
要擦除多个块,则循环(3)、(4) 、(5)步骤;
(6)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh;
(7)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。
2、写 flash-ROM,将目标双字节中部分数据位从 1 变为 0:
(1)、使能安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh;
(2)、设置全局配置寄存器 GLOBAL_CFG 开启写使能(bCODE_WE 或 bDATA_WE 对应 code 或 data);
(3)、设置地址寄存器 ROM_ADDR,写入 16 位目标地址,实际仅高 15 位有效;
(4)、设置数据寄存器 ROM_DATA,写入 16 位要写入的数据,步骤(3)、(4)顺序可对调;
(5)、设置操作控制寄存器 ROM_CTRL 为 09Ah,执行写操作,操作期间程序自动暂停运行;
(6)、操作完成后程序恢复运行,此时查询状态寄存器 ROM_STATUS 可以查看此次操作状态;如果
要写多个数据,则循环(3)、(4)、(5)、(6)步骤;
CH559 手册
16
(7)、再次进入安全模式,SAFE_MOD = 55h;SAFE_MOD = 0AAh;
(8)、设置全局配置寄存器 GLOBAL_CFG 开启写保护(bCODE_WE=0,bDATA_WE=0)。
3、读 flash-ROM:
直接使用 MOVC 指令,或通过指向程序存储空间的指针,读取目标地址的 code 或 data。
6.6 在板编程和 ISP 下载
当配置信息 Code_Protect=1 时,CH559 芯片 flash-ROM 中的代码和数据可以由外部的编程器通
过同步串行接口读写;当配置信息 Code_Protect=0 时,flash-ROM 中的代码和数据被保护,无法读
出,但是可以被擦除,擦除后重新上电则解除代码保护。
当 CH559 芯片被预置了 BootLoader 引导程序后,CH559 可以支持 USB 或者异步串口等多种 ISP
下载方式加载应用程序;但在没有引导程序的情况下,CH559 只能由外部专用编程器写入引导程序
或者应用程序。为了支持在板编程,电路中需要预留 CH559 与编程器之间的 5 根连接引脚。
表 6.6.1 与编程器之间的连接引脚
引脚
GPIO
引脚描述
RST
P5.7
编程状态下的复位控制引脚,高电平允许进入编程状态
SCS
P1.4
编程状态下的片选输入引脚,默认高电平,低电平有效
SCK
P1.7
编程状态下的时钟输入引脚
MOSI
P1.5
编程状态下的数据输入引脚
MISO
P1.6
编程状态下的数据输出引脚
6.7 芯片唯一 ID 号
每只单片机出厂时都具有唯一 ID 号,即芯片身份识别号。该 ID 数据及其校验和共 8 个字节,
存储于专用只读存储器的偏移地址为 20h 的区域中,可以在 E_DIS 为 1 关闭全局中断的期间通过类
似读 Code Flash 的方式获取,具体操作请参考 C 语言例子程序 GETID.C。
表 6.7.1 芯片 ID 地址表
偏移地址
ID 数据描述
20h、21h
ID 首字数据,依次是 ID 号的最低字节、次低字节
22h、23h
ID 次字数据,依次是 ID 号的次高字节、高字节
24h、25h
ID 末字数据,依次是 48 位 ID 号的次最高字节、最高字节
26h、27h
ID 首字、次字、末字数据的 16 位累加和,用于 ID 校验
ID 号可以配合下载工具用于对目标程序进行加密,一般的应用,只需使用到 ID 号前 32 位。
7、电源管理、睡眠及复位
7.1 外部电源输入
CH559 芯片内部工作电压为 3.3V,I/O 引脚的输入输出电压为 3.3V,除了 P1.0~P1.7、XI、XO、
RST 之外的 I/O 引脚都可以承受 5V 电压输入。CH559 芯片内置 5V 到 3.3V 的低压差电压调整器,支
持外部 3.3V 或者 5V 电源电压输入,两种电源电压输入模式参考下表。
外部电源电压
VIN5 引脚电压:外部电压 3.3V~5V
VDD33 引脚电压:内部电压 3.3V
3.3V
包括小于 3.6V
输入外部 3.3V 电压到电压调整器,
必须对地接不小于 0.1uF 退耦电容
输入外部 3.3V 作为内部工作电源,
必须对地接不小于 0.1uF 退耦电容
5V
包括大于 3.6V
输入外部 5V 电压到电压调整器,
必须对地接不小于 0.1uF 退耦电容
内部电压调整器 3.3V 输出
及 3.3V 内部工作电源输入,
CH559 手册
17
必须对地接不小于 3.3uF 退耦电容
在电源上电或者系统复位后,CH559 默认处于运行状态。当某些功能模块不需要使用时,可以
关闭这些模块的时钟,以降低功耗。当 CH559 完全不需要运行时,可以设置 PCON 中的 PD 进入睡眠
状态,睡眠状态下可以选择通过 USB、UART0、UART1、SPI0 以及部分 GPIO 进行外部唤醒。
7.2 电源和睡眠控制寄存器
表 7.2.1 电源和睡眠控制寄存器列表
名称
地址
描述
复位值
WDOG_COUNT
FFh
看门狗计数寄存器
00h
RESET_KEEP
FEh
复位保持寄存器
00h
WAKE_CTRL
EBh
睡眠唤醒控制寄存器
00h
SLEEP_CTRL
EAh
睡眠控制寄存器
00h
PCON
87h
电源控制寄存器
10h
看门狗计数寄存器(WDOG_COUNT):
位
名称
访问
描述
复位值
[7:0]
WDOG_COUNT
RW
看门狗当前计数,计满 0FFh 转向 00h 时溢出,溢出时自
动设置中断标志 bWDOG_IF_TO 为 1
00h
复位保持寄存器(RESET_KEEP):
位
名称
访问
描述
复位值
[7:0]
RESET_KEEP
RW
复位保持寄存器,数值可以被人为修改,除了上电复位可
将其清零之外,其它任何复位都不影响该数值
00h
睡眠唤醒控制寄存器(WAKE_CTRL),仅在安全模式下可写:
位
名称
访问
描述
复位值
7
bWAK_BY_USB
RW
USB 事件唤醒使能,该位为 0 禁止唤醒
0
0
6
bWAK_RXD1_LO
RW
UART1 接收输入低电平唤醒使能,该位为 0 禁止唤醒。
iRS485 模式下选择 XA/XB 差分输入,非 iRS485 模式下根
据 bIER_PIN_MOD1=1/0 选择 RXD1 或 RXD1_引脚
5
bWAK_P1_5_LO
RW
P1.5 低电平唤醒使能,为 0 禁止唤醒
0
4
bWAK_P1_4_LO
RW
P1.4 低电平唤醒使能,为 0 禁止唤醒
0
3
bWAK_P0_3_LO
RW
P0.3 低电平唤醒使能,为 0 禁止唤醒
0
2
bWAK_CAP3_LO
RW
Timer3 捕捉输入低电平唤醒使能,为 0 禁止唤醒。
根据 bTMR3_PIN_X=0/1 选择 CAP3 或 CAP3_引脚
0
1
bWAK_P3_2E_3L
RW
P3.2 边沿变化和 P3.3 低电平唤醒使能,为 0 禁止唤醒
0
0
bWAK_RXD0_LO
RW
UART0 接收输入低电平唤醒使能,为 0 禁止唤醒。
根据 bUART0_PIN_X=0/1 选择 RXD0 或 RXD0_引脚
0
睡眠控制寄存器(SLEEP_CTRL),仅在安全模式下可写:
位
名称
访问
描述
复位值
7
bSLP_OFF_USB
RW
USB 时钟关闭控制,该位为 1 关闭时钟
0
6
bSLP_OFF_ADC
RW
ADC 时钟关闭控制,该位为 1 关闭时钟
0
CH559 手册
18
5
bSLP_OFF_UART1
RW
UAR1 时钟关闭控制,该位为 1 关闭时钟
0
4
bSLP_OFF_P1S1
RW
PWM1 和 SPI1 时钟关闭控制,该位为 1 关闭时钟
0
3
bSLP_OFF_SPI0
RW
SPI0 时钟关闭控制,该位为 1 关闭时钟
0
2
bSLP_OFF_TMR3
RW
Timer3 时钟关闭控制,该位为 1 关闭时钟
0
1
bSLP_OFF_LED
RW
LED-CTRL 时钟关闭控制,该位为 1 关闭时钟
0
0
bSLP_OFF_XRAM
RW
xRAM 时钟关闭控制,该位为 1 关闭时钟
0
电源控制寄存器(PCON):
位
名称
访问
描述
复位值
7
SMOD
RW
当用定时器 1 产生 UART0 波特率时,选择 UART0 模式 1、
2、3 的通讯波特率:0-慢速模式;1-快速模式
0
6
保留
RO
保留
0
5
bRST_FLAG1
R0
芯片最近一次复位标志高位
0
4
bRST_FLAG0
R0
芯片最近一次复位标志低位
1
3
GF1
RW
通用标志位 1:使用者可自己定义,可软件清零或置位
0
2
GF0
RW
通用标志位 0:使用者可自己定义,可软件清零或置位
0
1
PD
RW
睡眠模式使能,置 1 后睡眠,唤醒后硬件自动清零
0
0
保留
RO
保留
0
表 7.2.2 芯片最近一次复位标志描述
bRST_FLAG1
bRST_FLAG0
复位标志描述
0
0
软件复位,来源:bSW_RESET=1 并且(bBOOT_LOAD=0 或 bWDOG_EN=1)
0
1
电源上电复位,来源:VDD33 引脚电压低于检测电平
1
0
看门狗复位,来源:bWDOG_EN=1 并且看门狗超时溢出
1
1
外部引脚手工复位,来源:En_P5.7_RESET=1 并且 P5.7 输入高电平
7.3 复位控制
CH559 有 4 个复位源:上电复位、外部复位、软件复位、看门狗复位,后三者属于热复位。
7.3.1 上电复位
上电复位 POR 由片内电压检测电路产生。POR 电路持续监控 VDD33 引脚的电源电压,低于检测
电平 Vpot 时产生上电复位,并由硬件自动延时 Tpor 以保持复位状态,延时结束后 CH559 运行。
只有上电复位才使 CH559 重新加载配置信息以及清零 RESET_KEEP,其它热复位不影响。
7.3.2 外部复位
外部复位由外加于 RST 引脚的高电平产生。当配置信息 En_P5.7_RESET 为 1,并且 RST 引脚上
的高电平持续时间大于 Trst 时触发复位过程。当外加高电平信号撤消后,硬件自动延时 Trdl 以保
持复位状态,延时结束后 CH559 从 0 地址开始执行。
7.3.3 软件复位
CH559 支持内部软件复位,以便不需要外部干预即可主动复位 CPU 状态并重新运行。设置全局
配置寄存器 GLOBAL_CFG 中的 bSW_RESET 为 1,即可软件复位,并且自动延时 Trdl 以保持复位状态,
延时结束后 CH559 从 0 地址开始执行,bSW_RESET 位由硬件自动清零。
当 bSW_RESET 置 1 时,如果 bBOOT_LOAD=0 或者 bWDOG_EN=1,那么复位后 bRST_FLAG1/0 将指示
为软件复位;当 bSW_RESET 置 1 时,如果 bBOOT_LOAD=1 并且 bWDOG_EN=0,那么 bRST_FLAG1/0 将不
CH559 手册
19
产生新的复位标志,而是保持前一次的复位标志不变。
对于有 ISP 引导程序的芯片,电源上电复位后,先运行引导程序,该程序根据需要软件复位芯
片以切换到应用程序状态,此次软件复位只导致 bBOOT_LOAD 清零,不影响 bRST_FLAG1/0 的状态(由
于复位前 bBOOT_LOAD=1),所以当切换到应用程序状态时,bRST_FLAG1/0 仍指示为上电复位状态。
7.3.4 看门狗复位
看门狗复位由看门狗定时器超时溢出时产生。看门狗定时器是 8 位计数器,其计数的时钟频率
为系统主频 Fsys/262144,当计满 0FFh 转向 00h 时产生溢出信号。
看门狗定时器溢出信号将触发中断标志 bWDOG_IF_TO 为 1,该中断标志在重新加载 WDOG_COUNT
时或者进入相应的中断服务程序时被自动清零。
通过向 WDOG_COUNT 写入不同的计数初始值,从而实现不同的定时周期 Twdc。在 12MHz 主频下,
写入 00h 时的看门狗定时周期 Twdc 约为 5.9 秒,写入 80h 时约为 2.8 秒。
如果看门狗定时器溢出时 bWDOG_EN=1,那么产生看门狗复位,并且自动延时 Trdl 以保持复位
状态,延时结束后 CH559 从 0 地址开始执行。
当 bWDOG_EN=1 时为了避免被看门狗复位,必须及时重置 WDOG_COUNT,避免其溢出。
8、系统时钟
8.1 时钟框图
图 8.1.1 时钟系统及结构图
CH559 手册
20
内部时钟12MHz
0
XI
XO
Fpll
bOSC_EN_INT
1
Fosc
PLL倍频器
乘以MASK_PLL_MULT
范围24MHz~350MHz
外部晶振
bOSC_EN_XT
Fsys
USB时钟分频器
除以MASK_USB_4X_DIV
系统时钟分频器
除以MASK_SYS_CK_DIV
bSLP_OFF_USB
USB
bSLP_OFF_LED
bSLP_OFF_ADC
bSLP_OFF_UART1
bSLP_OFF_SPI0
分频器
LED_CK_SE
分频器
ADC_CK_SE
分频器
SER1_D*
分频器
SPI0_CK_SE
分频器
SPI1_CK_SE
bSLP_OFF_P1S1
bSLP_OFF_TMR3
分频器
PWM_CK_SE
分频器
T3_CK_SE
LED-CTRL
ADC
UART1
SPI0
SPI1
PWM1/2
Timer3
bSLP_OFF_XRAM
xRAM
分频器
除以262144
Fsys
Watch-DOG
E8051_core
T0/T1/T2/UART0/GPIO
FlashROM/iRAM/SFR
内部时钟或者外部时钟经过二选一后作为原始时钟 Fosc,再经过 PLL 倍频后产生 Fpll 高频时
钟,最后经过两组分频器分别得到系统时钟 Fsys 和 USB 模块的时钟 Fusb4x。系统时钟 Fsys 直接或
者经过时钟门控后提供给 CH559 的各个模块,各个模块并不需要同时工作,为了降低功耗,可以通
过设置睡眠控制寄存器禁止无需工作的模块的时钟。
CH559 手册
21
8.2 寄存器描述
表 8.2.1 时钟控制寄存器列表
名称
地址
描述
复位值
CLOCK_CFG
B3h
系统时钟配置寄存器
98h
PLL_CFG
B2h
PLL 时钟配置寄存器
D8h
系统时钟配置寄存器(CLOCK_CFG),仅在安全模式下可写:
位
7
6
名称
bOSC_EN_INT
bOSC_EN_XT
访问
描述
复位值
RW
内部时钟振荡器使能,该位为 1 使能内部时钟振荡器
并且选用内部时钟;该位为 0 关闭内部时钟振荡器并
且选用外部晶体振荡器提供时钟
1
RW
外部晶体振荡器使能,该位为 1 则 P4.6/P4.7 引脚作
为 XI/XO 并启用振荡器,需在 XI 和 XO 之间外接石英
晶体或陶瓷振荡器;该位为 0 关闭外部振荡器
0
0
11000b
5
bWDOG_IF_TO
RO
看门狗定时器中断标志位,该位为 1 表示有中断,由
定时器溢出信号触发;该位为 0 表示无中断。该位在
重新加载看门狗计数寄存器 WDOG_COUNT 时或者进入
相应的中断服务程序后自动清零
[4:0]
MASK_SYS_CK_DIV
RW
系统时钟分频系数,数值为 00000b 时代表 100000b
PLL 时钟配置寄存器(PLL_CFG),仅在安全模式下可写:
位
名称
访问
描述
[7:5]
MASK_USB_4X_DIV
RW
USB 时钟分频系数,数值为 000b 时代表 1000b
[4:0]
MASK_PLL_MULT
RW
PLL 参考时钟倍频系数
复位值
110b
11000b
8.3 时钟配置
CH559 芯片上电后默认使用内部时钟,内部时钟频率是 12MHz。可以通过 CLOCK_CFG 选择内部时
钟或者外部晶体振荡器时钟,如果关闭外部晶体振荡器,那么 XI 和 XO 引脚可以作为 P4.6 和 P4.7
普通 I/O 端口使用。如果使用外部晶体振荡器提供时钟,那么应该在 XI 和 XO 引脚之间跨接晶体,
以及分别为 XI 和 XO 引脚对 GND 连接振荡电容;如果从外部直接输入时钟信号,那么应该从 XI 引脚
输入,XO 引脚悬空。
原始时钟频率 Fosc = bOSC_EN_INT ? 12MHz : Fxt
PLL 频率 Fpll = Fosc * ( PLL_CFG & MASK_PLL_MULT )
USB 时钟分频系数 Kusb = ( PLL_CFG & MASK_USB_4X_DIV ) >> 5
USB 时钟频率 Fusb4x = Fpll / ( Kusb ? Kusb : 8 )
系统时钟分频系数 Ksys = CLOCK_CFG & MASK_SYS_CK_DIV
系统主频 Fsys = Fpll / ( Ksys ? Ksys : 32 )
复位后的默认状态下,Fosc=12MHz,Fpll=288MHz,Fusb4x=48MHz,Fsys=12MHz。
切换到外部晶体振荡器提供时钟的步骤如下:
(1)、进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh;
(2)、用“位或”操作将 CLOCK_CFG 中的 bOSC_EN_XT 置 1,其它位保持不变,启用晶体振荡器;
(3)、延时数毫秒,通常 5mS~10mS,等待晶体振荡器工作稳定;
(4)、再次进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh;
CH559 手册
22
(5)、用“位与”操作将 CLOCK_CFG 中的 bOSC_EN_INT 清 0,其它位保持不变,切换到外部时钟;
(6)、关闭安全模式,向 SAFE_MOD 写入任意数值提前终止安全模式。
修改系统主频的步骤如下:
(1)、提前计算好 PLL_CFG 和 CLOCK_CFG 的新数值,避免计算过程太久超出安全模式的有效期;
(2)、进入安全模式,步骤一 SAFE_MOD = 55h;步骤二 SAFE_MOD = AAh;
(3)、向 PLL_CFG 写入新数值;
(4)、向 CLOCK_CFG 写入新数值;
(5)、关闭安全模式,向 SAFE_MOD 写入任意数值提前终止安全模式。
备注:
(1)、PLL 频率 Fpll 建议不要超出 24MHz~350MHz 频率范围;
(2)、优先使用较低的系统时钟频率 Fsys,从而降低系统动态功耗,并使工作温度范围变宽;
(3)、如果使用到 USB 模块,那么 Fusb4x 必须调整到 48MHz;
(4)、切换外部晶振和修改系统主频是独立的两项操作,如果同时需要两者,那么建议分两种情况:
(A)、如果外部晶振频率不超过 13MHz,那么先切换到外部晶振,然后修改系统主频;
(B)、如果外部晶振频率大于 13MHz,那么先降低 PLL_CFG 寄存器中的 PLL 参考时钟倍频系数,避
免 PLL 频率 Fpll 溢出,然后切换到外部晶振,最后修改系统主频,或者也可在修改 PLL_CFG
的同时修改系统主频。
9、中断
CH559 芯片支持 14 组中断信号源,包括与标准 MCS51 兼容的 6 组中断:INT0、T0、INT1、T1、
UART0、T2,以及扩展的 8 组中断:SPI0、TMR3、USB、ADC、UART1、PWM1、GPIO、WDOG,其中 GPIO
中断可以从 7 个 I/O 引脚中选择。
9.1 寄存器描述
表 9.1.1 中断向量表
中断源
入口地址
中断号
描述
INT_NO_INT0
0x0003
0
外部中断 0 或 LED 控制卡中断:
当 bLED_OUT_EN=0 是外部中断 0;
当 bLED_OUT_EN=1 是 LED 控制卡中断
INT_NO_TMR0
0x000B
1
定时器 0 中断
INT_NO_INT1
0x0013
2
外部中断 1
INT_NO_TMR1
0x001B
3
定时器 1 中断
INT_NO_UART0
0x0023
4
UART0 中断
INT_NO_TMR2
0x002B
5
定时器 2 中断
INT_NO_SPI0
0x0033
6
SPI0 中断
INT_NO_TMR3
0x003B
7
定时器 3 中断
INT_NO_USB
0x0043
8
USB 中断
INT_NO_ADC
0x004B
9
ADC 中断
INT_NO_UART1
0x0053
10
UART1 中断
INT_NO_PWM1
0x005B
11
PWM1 中断
INT_NO_GPIO
0x0063
12
GPIO 中断
默认优先权顺序
高优先权
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
低优先权
CH559 手册
23
INT_NO_WDOG
0x006B
13
看门狗定时器中断
表 9.1.2 中断相关寄存器列表
名称
地址
描述
复位值
IP_EX
E9h
扩展中断优先级控制寄存器
00h
IE_EX
E8h
扩展中断使能寄存器
00h
GPIO_IE
CFh
GPIO 中断使能寄存器
00h
IP
B8h
中断优先级控制寄存器
00h
IE
A8h
中断使能寄存器
00h
中断使能寄存器(IE):
位
名称
访问
描述
复位值
7
EA
RW
全局中断使能控制位,该位为 1 并且 E_DIS 为 0 则允许中断;该
位为 0 屏蔽所有中断请求
0
0
6
E_DIS
RW
全局中断禁用控制位,该位为 1 屏蔽所有中断请求;该位为 0 并
且 EA 为 1 则允许中断。
该位通常用于在 flash-ROM 操作期间临时
禁止中断
5
ET2
RW
定时器 2 中断使能位,该位为 1 允许 T2 中断;为 0 屏蔽
0
4
ES
RW
异步串口 0 中断使能位,该位为 1 允许 UART0 中断;为 0 屏蔽
0
3
ET1
RW
定时器 1 中断使能位,该位为 1 允许 T1 中断;为 0 屏蔽
0
2
EX1
RW
外部中断 1 使能位,该位为 1 允许 INT1 中断;为 0 屏蔽
0
1
ET0
RW
定时器 0 中断使能位,该位为 1 允许 T0 中断;为 0 屏蔽
0
0
EX0
RW
外部中断 0 和 LED 控制卡中断使能位,该位为 1 允许 INT0/LED
中断,由 bLED_OUT_EN 选择;为 0 屏蔽
0
扩展中断使能寄存器(IE_EX):
位
名称
访问
描述
复位值
7
IE_WDOG
RW
看门狗定时器中断使能位,该位为 1 允许 WDOG 中断;为 0 屏蔽
0
6
IE_GPIO
RW
GPIO 中断使能位,该位为 1 允许 GPIO_IE 中使能的中断;为 0 屏
蔽 GPIO_IE 中所有中断
0
5
IE_PWM1
RW
PWM1 中断使能位,该位为 1 允许 PWM1 中断;为 0 屏蔽
0
4
IE_UART1
RW
异步串口 1 中断使能位,该位为 1 允许 UART1 中断;为 0 屏蔽
0
3
IE_ADC
RW
ADC 模数转换中断使能位,该位为 1 允许 ADC 中断;为 0 屏蔽
0
2
IE_USB
RW
USB 中断使能位,该位为 1 允许 USB 中断;为 0 屏蔽
0
1
IE_TMR3
RW
定时器 3 中断使能位,该位为 1 允许 Timer3 中断;为 0 屏蔽
0
0
IE_SPI0
RW
SPI0 中断使能位,该位为 1 允许 SPI0 中断;为 0 屏蔽
0
GPIO 中断使能寄存器(GPIO_IE):
位
7
名称
bIE_IO_EDGE
访问
描述
复位值
RW
GPIO 边沿中断模式使能:
该位为 0 选择电平中断模式,GPIO 引脚输入有效电平则
bIO_INT_ACT 为 1 并一直请求中断,GPIO 输入无效电平时
bIO_INT_ACT 为 0 并取消中断请求;
0
CH559 手册
24
该位为 1 选择边沿中断模式,GPIO 引脚输入有效边沿时产生
中断标志 bIO_INT_ACT 并请求中断,该中断标志无法软件清
零,只能在复位时或电平中断模式下或进入相应的中断服务
程序时被自动清零
6
bIE_RXD1_LO
RW
该位为 1 使能 UART1 接收引脚中断(电平模式低电平有效,
边沿模式下降沿有效);该位为 0 禁止。iRS485 模式下选择
XA/XB 差分输入,非 iRS485 模式下根据 bIER_PIN_MOD1=1/0
选择 RXD1 或 RXD1_引脚
5
bIE_P5_5_HI
RW
该位为 1 使能 P5.5 中断(电平模式高电平有效,边沿模式上
升沿有效);该位为 0 禁止
0
4
bIE_P1_4_LO
RW
该位为 1 使能 P1.4 中断(电平模式低电平有效,边沿模式下
降沿有效);该位为 0 禁止
0
3
bIE_P0_3_LO
RW
该位为 1 使能 P0.3 中断(电平模式低电平有效,边沿模式下
降沿有效);该位为 0 禁止
0
2
bIE_P5_7_HI
RW
该位为 1 使能 P5.7 中断(电平模式高电平有效,边沿模式上
升沿有效);该位为 0 禁止
0
1
bIE_P4_1_LO
RW
该位为 1 使能 P4.1 中断(电平模式低电平有效,边沿模式下
降沿有效);该位为 0 禁止
0
RW
该位为 1 使能 UART0 接收引脚中断(电平模式低电平有效,
边沿模式下降沿有效);该位为 0 禁止。根据
bUART0_PIN_X=0/1 选择 RXD0 或 RXD0_引脚
0
描述
复位值
0
bIE_RXD0_LO
0
中断优先级控制寄存器(IP):
位
名称
访问
7
PH_FLAG
RO
高优先级中断正在执行标志位
0
6
PL_FLAG
RO
低优先级中断正在执行标志位
0
5
PT2
RW
定时器 2 中断优先级控制位
0
4
PS
RW
UART0 中断优先级控制位
0
3
PT1
RW
定时器 1 中断优先级控制位
0
2
PX1
RW
外部中断 1 的中断优先级控制位
0
1
PT0
RW
定时器 0 中断优先级控制位
0
0
PX0
RW
外部中断 0 和 LED 控制卡中断的中断优先级控制位
0
扩展中断优先级控制寄存器(IP_EX):
位
名称
访问
描述
复位值
7
bIP_LEVEL
RO
当前中断嵌套等级标志位,该位为 0 则表示无中断或者嵌套
2 级中断;该位为 1 则表示当前嵌套 1 级中断
0
6
bIP_GPIO
RW
GPIO 中断优先级控制位
0
5
bIP_PWM1
RW
PWM1 中断优先级控制位
0
4
bIP_UART1
RW
UART1 中断优先级控制位
0
3
bIP_ADC
RW
ADC 中断优先级控制位
0
2
bIP_USB
RW
USB 中断优先级控制位
0
1
bIP_TMR3
RW
Timer3 中断优先级控制位
0
0
bIP_SPI0
RW
SPI0 中断优先级控制位
0
CH559 手册
25
IP 和 IP_EX 寄存器用于设定中断优先级,如果某位被置 1,则对应的中断源被设定为高优先级;
如果某位被清 0,则对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序,
默认优先极顺序如表 9.1.1 所示。其中 PH_FLAG 和 PL_FLAG 组合表示当前中断的优先级。
表 9.1.3 当前中断优先级状态指示
PH_FLAG
PL_FLAG
当前中断优先级状态
0
0
当前无中断
0
1
当前正在执行低优先级中断
1
0
当前正在执行高优先级中断
1
1
意外状态,未知错误
10、I/O 端口
10.1 GPIO 简介
CH559 提供最多 45 个 I/O 引脚,部分引脚具有复用功能。其中,端口 P0~P3 的输入和输出以
及 P4 的输出都可以按位寻址。
如果引脚没有被配置成复用功能,则默认是通用 I/O 引脚状态。作为通用数字 I/O 使用时,所
有 I/O 端口都具有真正的“读–修改–写”功能,支持 SETB 或者 CLR 等位操作指令独立地改变某些
引脚的方向或者端口电平等。
10.2 GPIO 寄存器
本节所有的寄存器和位以通用格式表示:小写的“n”表示端口的序号(n=0、1、2、3),而小写
的“x”代表位的序号(x=0、1、2、3、4、5、6、7)。
表 10.2.1 GPIO 寄存器列表
名称
地址
描述
复位值
P0
80h
P0 端口输入输出寄存器
FFh
P0_DIR
C4h
P0 端口方向控制寄存器
00h
P0_PU
C5h
P0 端口上拉使能寄存器
00h/FFh
P1
90h
P1 端口输入输出寄存器
FFh
P1_IE
B9h
P1 端口输入使能寄存器
FFh
P1_DIR
BAh
P1 端口方向控制寄存器
00h
P1_PU
BBh
P1 端口上拉使能寄存器
FFh
P2
A0h
P2 端口输入输出寄存器
FFh
P2_DIR
BCh
P2 端口方向控制寄存器
00h
P2_PU
BDh
P2 端口上拉使能寄存器
FFh
P3
B0h
P3 端口输入输出寄存器
FFh
P3_DIR
BEh
P3 端口方向控制寄存器
00h
P3_PU
BFh
P3 端口上拉使能寄存器
FFh
P4_OUT
C0h
P4 端口输出寄存器
00h
P4_IN
C1h
P4 端口输入寄存器(只读)
FFh
P4_DIR
C2h
P4 端口方向控制寄存器
00h
P4_PU
C3h
P4 端口上拉使能寄存器
FFh
P4_CFG
C7h
P4 端口配置寄存器
00h
P5_IN
C7h
P5 端口输入寄存器(只读)
00h
CH559 手册
26
PIN_FUNC
CEh
引脚功能选择寄存器
00h
PORT_CFG
C6h
端口配置寄存器
0Fh
XBUS_SPEED
FDh
总线速度配置寄存器
FFh
XBUS_AUX
A2h
总线辅助设置寄存器
00h
端口配置寄存器(PORT_CFG):
位
名称
访问
描述
复位值
0000b
[7:4]
bPn_DRV
RW
Pn 端口输出驱动能力选择,
该位为 0 选择驱动电流 5mA
级别;该位为 1 对于 P0/P2/P3 选择驱动电流 20mA 级
别,对于 P1 选择驱动电流 10mA 级别
[3:0]
bPn_OC
RW
Pn 端口开漏输出使能,该位为 0 设置端口为推挽输出;
1111b
该位为 1 设置端口为开漏输出
Pn 端口输入输出寄存器(Pn):
位
名称
访问
[7:0]
Pn.0~Pn.7
RW
描述
复位值
Pn.x 引脚状态输入和数据输出位,可以按位寻址
FFh
Pn 端口方向控制寄存器(Pn_DIR):
位
名称
访问
[7:0]
Pn_DIR
RW
描述
复位值
Pn.x 引脚方向设置
00h
P0 端口上拉使能寄存器(P0_PU)和 Pn 端口上拉使能寄存器(Pn_PU),此处 n=1/2/3:
位
名称
访问
[7:0]
P0_PU
RW
[7:0]
Pn_PU
RW
描述
复位值
P0.x 引脚上拉电阻使能(当配置 En_P0_Pullup=0)
00h
P0.x 引脚上拉电阻使能(当配置 En_P0_Pullup=1)
FFh
Pn.x 引脚上拉电阻使能,该位为 0 禁止上拉;该位为
1 使能上拉
FFh
由 PORT_CFG 中的位 bPn_OC 和端口方向控制寄存器 Pn_DIR 以及端口上拉使能寄存器 Pn_PU 组合
实现 Pn 端口的相关配置,具体如下。
表 10.2.2 端口配置寄存器组合
bPn_OC
Pn_DIR
Pn_PU
工作模式描述
0
0
0
高阻输入模式,引脚没有上拉电阻
0
0
1
上拉输入模式,引脚有上拉电阻
0
1
X
推挽输出模式,具有对称驱动能力,可以输出或者吸收较大电流
1
0
0
高阻输入弱准双向模式,开漏输出,引脚没有上拉电阻
1
1
0
高阻输入准双向模式,开漏输出,引脚没有上拉电阻,当输出从低电平
转高电平时自动驱动 2 个时钟周期的高电平以加速转换
1
0
1
弱准双向模式(仿 8051),开漏输出,支持输入,引脚有上拉电阻
1
1
1
准双向模式(标准 8051),开漏输出,支持输入,引脚有上拉电阻,当输
出从低电平转高电平时自动驱动 2 个时钟周期的高电平以加速转换
P0~P3 端口支持纯输入或推挽输出以及准双向等模式,P4 端口支持纯输入或推挽输出等模式。
CH559 手册
27
各引脚都有可以自由控制的连接到 VDD33 的内部上拉电阻,以及都有连接到 GND 的保护二极管。
图 10.2.1 是 P1 端口的 P1.x 引脚的等效原理图,
去掉 P1_IE 和 AIN 以及 ADC_CHANN 之后可以适
用于 P0、P2、P3 端口。
图 10.2.1 I/O 引脚等效原理图
VDD33
Pn_DIR[x]
VDD33
70K
10K
Delay 2 Clock
Pn_PU[x]
Pn[x]
OUT
Pn[x]
bPn_OC
ADC_CHANN[x]
P1_IE[x]
GND
AIN[x]
1
Pn[x]
IN
//
GND
0
P1 端口输入使能寄存器(P1_IE):
位
名称
访问
描述
复位值
[7:0]
P1_IE
RW
P1.x 引脚输入使能,该位为 0 则引脚用于 ADC 模拟输
入,禁止数字输入;该位为 1 则使能数字输入
FFh
10.3 P4 端口
P4 端口输出寄存器(P4_OUT):
位
名称
访问
[7:0]
P4_OUT.0~P4_OUT.7
RW
描述
P4.x 引脚数据输出位,可以按位寻址
复位值
00h
P4 端口输入寄存器(P4_IN):
位
名称
访问
[7:0]
P4_IN
RO
描述
P4.x 引脚状态输入位
复位值
FFh
P4 端口上拉使能寄存器(P4_PU):
位
名称
访问
描述
复位值
[7:0]
P4_PU
RW
P4.x 引脚上拉电阻使能,该位为 0 禁止上拉;该位为
1 使能上拉
FFh
P4 端口方向控制寄存器(P4_DIR):
位
名称
访问
描述
复位值
[7:0]
P4_DIR
RW
P4.x 引脚方向设置,该位为 0 则用于输入;该位为 1
则用于输出
00h
CH559 手册
28
P4 端口配置寄存器(P4_CFG)和 P5 端口输入寄存器(P5_IN):
位
名称
访问
描述
复位值
7
P5.7
R0
P5.7 引脚状态输入位
0
0
6
bIO_INT_ACT
R0
GPIO 中断请求激活状态:
当 bIE_IO_EDGE=0 时,该位为 1 表示 GPIO 输入有效电平,
将请求中断,为 0 表示输入无效电平;
当 bIE_IO_EDGE=1 时,该位作为边沿中断标志,为 1 表示
检测到有效边沿,该位无法软件清零,只能在复位时或电
平中断模式下或进入相应的中断服务程序时被自动清零
5
P5.5
R0
P5.5 引脚状态输入位,内置有可控的下拉电阻
0
4
P5.4
R0
P5.4 引脚状态输入位,内置有可控的下拉电阻
0
3
bSPI0_PIN_X
RW
SPI0 引脚 SCS/SCK 映射使能,该位为 0 则使用 P1.4/P1.7;
该位为 1 则使用 P4.6/P4.7
0
2
bP4_DRV
RW
P4 端口输出驱动能力选择,该位为 0 选择驱动电流 5mA 级
别;该位为 1 选择驱动电流 20mA 级别
0
1
P5.1
R0
P5.1 引脚状态输入位,内置有可控的下拉电阻
0
0
P5.0
R0
P5.0 引脚状态输入位,内置有可控的下拉电阻
0
10.4 GPIO 复用与映射
CH559 部分 I/O 引脚具有复用功能,上电后默认均为通用 I/O 引脚,使能不同功能模块后,相
应引脚被配置成各自功能模块对应的功能引脚。
引脚功能选择寄存器(PIN_FUNC):
位
名称
访问
描述
复位值
7
bPWM1_PIN_X
RW
PWM1/PWM2 引脚映射使能位,该位为 0 则 PWM1/2 使用
P2.4/P2.5;该位为 1 则 PWM1/2 使用 P4.3/P4.5
0
6
bTMR3_PIN_X
RW
PWM3/CAP3 引脚映射使能位,该位为 0 则 PWM3/CAP3 使用
P1.2;该位为 1 则 PWM3/CAP3 使用 P4.2
0
5
bT2EX_PIN_X
RW
T2EX/CAP2 引脚映射使能位,该位为 0 则 T2EX/CAP2 使用
P1.1;该位为 1 则 T2EX/CAP2 使用 P2.5
0
4
bUART0_PIN_X
RW
UART0 引 脚 映 射 使 能 位 , 该 位 为 0 则 RXD0/TXD0 使 用
P3.0/P3.1;该位为 1 则 RXD0/TXD0 使用 P0.2/P0.3
0
RW
xBUS 外部总线功能使能位,该位为 0 关闭外部总线;该位为
1 使能 P0 端口作为 8 位数据总线,以及 P3.6/P3.7 作为总线
访问期间的写/读选通控制
0
RW
xBUS 外部总线片选输出使能位,该位为 0 禁止输出片选,可
由外部电路自行译码;该位为 1 则 P3.4 作为 CS0 输出(XCS0
片选 0,低电平有效),以及在 ALE 禁用的情况下将总线地址
A15 取反后输出到 P3.3(相当于片选 1,低电平有效)
0
RW
xBUS 外部总线高 8 位地址输出使能位,该位为 0 禁止输出;
该位为 1 则在 MOVX_@DPTR 指令访问外部总线期间,P2 端口
输出总线地址高 8 位
0
3
2
1
bXBUS_EN
bXBUS_CS_OE
bXBUS_AH_OE
CH559 手册
0
bXBUS_AL_OE
29
RW
xBUS 外部总线低 8 位地址输出使能位,该位为 0 则是复用地
址模式,在访问外部总线时根据需要将地址低 8 位与数据总
线复用输出,由 ALE 控制外部电路锁存;该位为 1 则是直接
地址模式,通过 P4.0~P4.5 和 P3.5 以及 P2.7 输出低 8 位
地址 A0~A7
表 10.4.1 GPIO 引脚复用功能列表
GPIO
其它功能:按从左到右的优先顺序
P0[0]
AD0、UDTR/bUDTR、P0.0
P0[1]
AD1、URTS/bURTS、P0.1
P0[2]
AD2、RXD_/bRXD_、P0.2
P0[3]
AD3、TXD_/bTXD_、P0.3
P0[4]
AD4、UCTS/bUCTS、P0.4
P0[5]
AD5、UDSR/bUDSR、P0.5
P0[6]
AD6、URI/bURI、P0.6
P0[7]
AD7、UDCD/bUDCD、P0.7
P1[0]
AIN0、T2/bT2、CAP1/bCAP1、P1.0
P1[1]
AIN1、T2EX/bT2EX、CAP2/bCAP2、P1.1
P1[2]
AIN2、PWM3/bPWM3、CAP3/bCAP3、P1.2
P1[3]
AIN3、P1.3
P1[4]
AIN4、SCS/bSCS、P1.4
P1[5]
AIN5、MOSI/bMOSI、P1.5
P1[6]
AIN6、MISO/bMISO、P1.6
P1[7]
AIN7、SCK/bSCK、P1.7
P2[0]
A8、P2.0
P2[1]
MOSI1/bMOSI1、A9、P2.1
P2[2]
MISO1/bMISO1、A10、P2.2
P2[3]
SCK1/bSCK1、A11、P2.3
P2[4]
PWM1/bPWM1、A12、P2.4
P2[5]
TNOW/bTNOW、PWM2/bPWM2、A13、T2EX_/bT2EX_、CAP2_/bCAP2_、P2.5
P2[6]
RXD1/bRXD1、A14、P2.6
P2[7]
TXD1/bTXD1、DA7/bDA7、A15、P2.7
P3[0]
RXD/bRXD、P3.0
P3[1]
TXD/bTXD、P3.1
P3[2]
LED0/bLED0、INT0/bINT0、P3.2
P3[3]
LED1/bLED1、!A15、INT1/bINT1、P3.3
P3[4]
LEDC/bLEDC、XCS0/bXCS0、T0/bT0、P3.4
P3[5]
DA6/bDA6、T1/bT1、P3.5
P3[6]
WR/bWR、P3.6
P3[7]
RD/bRD、P3.7
P4[0]
LED2/bLED2、A0、RXD1_/bRXD1_、P4.0
P4[1]
A1、P4.1
P4[2]
PWM3_/bPWM3_、CAP3_/bCAP3_、A2、P4.2
0
CH559 手册
30
P4[3]
PWM1_/bPWM1_、A3、P4.3
P4[4]
LED3/bLED3、TNOW_/bTNOW_、TXD1_/bTXD1_、A4、P4.4
P4[5]
PWM2_/bPWM2_、A5、P4.5
P4[6]
XI、SCS_/bSCS_、P4.6
P4[7]
XO、SCK_/bSCK_、P4.7
P5[0]
DM/bDM、P5.0
P5[1]
DP/bDP、P5.1
P5[4]
HM/bHM、ALE、XB、P5.4
P5[5]
HP/bHP、!A15、XA、P5.5
P5[7]
RST/bRST、P5.7
上表中所述按从左到右的优先顺序,是指多个功能模块竞争使用该 GPIO 时的优先顺序。例如,
P2 端口已被设置为输出总线地址高 8 位,如果实际只用到 A8~A11 地址,那么 P2.4/P2.5 仍可用于
更高优先级的 PWM1/PWM2 等功能,P2.6 仍可用于 RXD1 功能,P2.7 仍可用于更高优先级的 TXD1 或者
DA7 等功能,从而避免在未用到 A12~A15 地址时浪费 P2.4~P2.7 引脚。
11、外部总线 xBUS
11.1 外部总线寄存器
外部总线辅助设置寄存器(XBUS_AUX):
位
名称
访问
描述
复位值
7
bUART0_TX
R0
指示 UART0 的发送状态,为 1 表示正在发送过程中
0
6
bUART0_RX
R0
指示 UART0 的接收状态,为 1 表示正在接收过程中
0
5
bSAFE_MOD_ACT
R0
指示安全模式状态,为 1 表示当前正在安全模式下
0
0
4
bALE_CLK_EN
RW
ALE 引脚时钟输出使能,该位为 1 允许 ALE 在没有 xBUS
操作期间输出系统主频的 12 分频,即 Fsys/12;该位为 0
禁止输出时钟信号,仅在访问外部总线必要时输出低 8
位地址锁存信号,以降低 EMI
3
GF2
RW
通用标志位 2:使用者可自己定义,可软件清零或置位
0
2
bDPTR_AUTO_INC
RW
使能在 MOVX_@DPTR 指令完成后 DPTR 自动加 1
0
1
保留
RO
保留
0
0
DPS
RW
双 DPTR 数据指针选择位:
该位为 0 选择 DPTR0;该位为 1 选择 DPTR1
0
外部总线速度配置寄存器(XBUS_SPEED):
位
名称
访问
描述
复位值
7
bXBUS1_SETUP
RW
选择 XBUS1 建立时间:该位为 0 则 2 个时钟周期;该位为
1 则 3 个时钟周期
1
6
bXBUS1_HOLD
RW
选择 XBUS1 保持时间:该位为 0 则 1 个时钟周期;该位为
1 则 2 个时钟周期
1
5
bXBUS1_WIDTH1
RW
XBUS1 总线脉冲宽度高位
1
4
bXBUS1_WIDTH0
RW
XBUS1 总线脉冲宽度低位
1
3
bXBUS0_SETUP
RW
选择 XBUS0 建立时间:该位为 0 则 2 个时钟周期;该位为
1 则 3 个时钟周期
1
2
bXBUS0_HOLD
RW
选择 XBUS0 保持时间:该位为 0 则 1 个时钟周期;该位为
1
CH559 手册
31
1 则 2 个时钟周期
1
bXBUS0_WIDTH1
RW
XBUS0 总线脉冲宽度高位
1
0
bXBUS0_WIDTH0
RW
XBUS0 总线脉冲宽度低位
1
bXBUSn_WIDTH1 和 bXBUSn_WIDTH0(其中 n=0 或 1),用于选择总线片选 n 的读写有效脉冲宽度,
00 则 2 时钟周期,01 则 4 时钟周期,10 则 8 时钟周期,11 则 16 时钟周期。
11.2 外部总线引脚
表 11.2.1 外部总线引脚列表
GPIO
直接地址
模式引脚
复用地址
模式引脚
功能描述
P3.7
RD
RD
外部总线读信号输出引脚,低电平有效,上升沿采样输入
P3.6
WR
WR
外部总线写信号输出引脚,低电平有效
D0~D7
D0~D7
8 位双向数据总线
A0~A7
复用低 8 位地址 A[0:7]输出,由 ALE 控制外部电路锁存
P0.0~P0.7
P4.0~P4.5
A0~A5
未用到
总线直接地址 A[0:5]输出引脚,另需设置 P4_DIR 输出
P3.5
A6
未用到
总线直接地址 A6 输出引脚
P2.7
A7
总线直接地址 A7 输出引脚
A15
总线地址 A15 输出引脚
P2.0~P2.6
A8~A14
A8~A14
P3.4
XCS0
XCS0
片选 0 输出引脚,地址范围 4000h~7FFFh,低电平有效
P3.3
!A15
!A15
总线地址 A15 反相输出引脚,相当于片选 1 输出,地址范
围 8000h~FFFFh,低电平有效,仅在 ALE 禁用状态可用
P5.5
!A15
!A15
总线地址 A15 反相输出引脚,相当于片选 1 输出,地址范
围 8000h~FFFFh,低电平有效,仅在 ALE 使能状态可用
ALE
复用低 8 位地址锁存控制输出引脚,高电平有效
P5.4
ALE
总线地址 A[8:14]输出引脚
系统主频的 12 分频时钟 Fsys/12 输出引脚,占空比 1/12
以上在外部总线状态下未用到的部分地址输出和片选输出等引脚,可以根据 GPIO 复用优先顺序
用于其它模块,并且 P4.0~P4.5 中未用到的引脚还可以设置 P4_DIR 保持输入状态。
当 bXBUS_CS_OE=1 时,总线地址 A15 反相信号将根据 ALE 输出状态选择输出引脚,当 ALE 被允
许输出时,!A15 选择从 P5.5 输出;当 ALE 被禁止输出时,!A15 选择从 P3.3 输出。ALE 输出状态由
bUH1_DISABLE、bXBUS_EN、bXBUS_AL_OE 以及 bALE_CLK_EN 组合决定,参考下表 11.2.2。
表 11.2.2 P5.4 引脚复用 ALE 输出状态表
bUH1_DISABLE bXBUS_EN bXBUS_AL_OE bALE_CLK_EN
P5.4 引脚功能描述
0
X
X
X
禁止 ALE 输出,优先用作 HM(P5.5 用作 HP)
1
0
X
0
禁止 ALE 输出,默认用作 XB(P5.5 用作 XA)
1
0
X
1
ALE 仅输出系统主频的 12 分频时钟信号
1
1
1
0
禁止 ALE 输出,默认用于 XB(P5.5 用作 XA)
1
1
1
1
ALE 仅输出系统主频的 12 分频时钟信号
1
1
0
0
ALE 仅在总线时输出低 8 位地址锁存信号
1
1
0
1
ALE 在访问总线时输出低 8 位地址锁存信号,
空闲时输出系统主频的 12 分频时钟信号
12、定时器 Timer
CH559 手册
32
12.1 Timer0/1
Timer0/1 是 2 个 16 位定时/计数器,通过 TCON 和 TMOD 来配置 Timer0 和 Timer1,TCON 用于定
时/计数器 T0 和 T1 的启动控制与溢出中断以及外部中断控制。每个定时器都是由 2 个 8 位寄存器组
成的 16 位定时单元。定时器 0 的高字节计数器是 TH0,低字节是 TL0;定时器 1 的高字节计数器是
TH1,低字节是 TL1。定时器 1 还可以作为 UART0 的波特率发生器。
表 12.1.1 Timer0/1 相关寄存器列表
名称
地址
描述
复位值
TH1
8Dh
Timer1 计数高字节
xxh
TH0
8Ch
Timer0 计数高字节
xxh
TL1
8Bh
Timer1 计数低字节
xxh
TL0
8Ah
Timer0 计数低字节
xxh
TMOD
89h
Timer0/1 方式寄存器
00h
TCON
88h
Timer0/1 控制寄存器
00h
定时/计数器 0/1 控制寄存器(TCON):
位
名称
访问
描述
复位值
7
TF1
RW
Timer1 溢出中断标志位,进入定时器 1 中断后自动清零
0
6
TR1
RW
Timer1 启动/停止位,置 1 启动,由软件置位或者清零
0
5
TF0
RW
Timer0 溢出中断标志位,进入定时器 0 中断后自动清零
0
4
TR0
RW
Timer0 启动/停止位,置 1 启动,由软件置位或者清零
0
3
IE1
RW
INT1 外部中断 1 的中断请求标志位,进入中断后自动清零
0
2
IT1
RW
INT1 外部中断 1 触发方式控制位,该位为 0 选择外部中断为低
电平触发;该位为 1 选择外部中断为下降边沿触发
0
1
IE0
RW
INT0 外部中断 0 的中断请求标志位,进入中断后自动清零
0
0
IT0
RW
INT0 外部中断 0 触发方式控制位,该位为 0 选择外部中断为低
电平触发;该位为 1 选择外部中断为下降边沿触发
0
定时/计数器 0/1 方式寄存器(TMOD):
位
名称
访问
描述
复位值
0
7
bT1_GATE
RW
门控使能位,控制 Timer1 启动是否受外部中断信号 INT1 的影
响。该位为 0 则定时/计数器 1 是否启动与 INT1 无关;该位为 1
则只有 INT1 引脚为高电平并且 TR1 为 1 时才能启动
6
bT1_CT
RW
定时或者计数方式选择位,该位为 0 工作于定时方式;该位为 1
工作于计数方式,使用 T1 引脚的下降沿作为时钟
0
5
bT1_M1
RW
定时/计数器 1 模式选择高位
0
4
bT1_M0
RW
定时/计数器 1 模式选择低位
0
0
3
bT0_GATE
RW
门控使能位,控制 Timer0 启动是否受外部中断信号 INT0 的影
响。该位为 0 则定时/计数器 0 是否启动与 INT0 无关;该位为 1
则只有 INT0 引脚为高电平并且 TR0 为 1 时才能启动
2
bT0_CT
RW
定时或者计数方式选择位,该位为 0 工作于定时方式;该位为 1
工作于计数方式,使用 T0 引脚的下降沿作为时钟
0
1
bT0_M1
RW
定时/计数器 0 模式选择高位
0
0
bT0_M0
RW
定时/计数器 0 模式选择低位
0
表 12.1.2 bTn_M1 和 bTn_M0 选择 Timern 工作模式(n=0、1)
CH559 手册
33
bTn_M1
bTn_M0
Timern 工作模式(n=0、1)
0
0
模式 0:13 位定时/计数器 n,计数单元由 TLn 的低 5 位和 THn 组成,TLn 的高 3
位无效。计数从 13 位全为 1 变成全为 0 时,设置溢出标志 TFn,并需重置初值
0
1
模式 1:16 位定时/计数器 n,计数单元由 TLn 和 THn 组成。计数从 16 位全为 1
变成全为 0 时,设置溢出标志 TFn,并需重置初值
1
0
模式 2:8 位重载定时/计数器 n,计数单元使用 TLn,THn 作为重载计数单元。
计数从 8 位全为 1 变成全为 0 时,设置溢出标志 TFn,并自动从 THn 加载初值
1
模式 3:如果是定时/计数器 0,那么定时/计数器 0 被分成 2 个部分 TL0 和 TH0,
TL0 作为 8 位定时/计数器使用,占用 Timer0 的全部控制位;而 TH0 也做另一个
8 位定时器使用,占用 Timer1 的 TR1、TF1 和中断资源,并且此时 Timer1 仍然
可用,只是不能使用启动控制位 TR1 和溢出标志位 TF1。
如果是定时/计数器 1,那么进入模式 3 将停止定时/计数器 1。
1
Timern 计数低字节(TLn)(n=0、1):
位
名称
访问
[7:0]
TLn
RW
描述
复位值
Timern 计数低字节
xxh
Timern 计数高字节(THn)(n=0、1):
位
名称
访问
[7:0]
THn
RW
描述
复位值
Timern 计数高字节
xxh
12.2 Timer2
Timer2 是 16 位自动重载定时/计数器,通过 T2CON 和 T2MOD 寄存器进行配置,定时器 2 的高字
节计数器是 TH2,低字节是 TL2。Timer2 可以作为 UART0 的波特率发生器,还具有 2 路信号电平捕
捉功能,捕捉计数存储于 RCAP2 和 T2CAP1 寄存器中。
表 12.2.1 Timer2 相关寄存器列表
名称
地址
描述
复位值
TH2
CDh
Timer2 计数器高字节
00h
TL2
CCh
Timer2 计数器低字节
00h
T2COUNT
CCh
TL2 和 TH2 组成 16 位 SFR
T2CAP1H
CDh
Timer2 捕捉 1 数据高字节(只读)
xxh
T2CAP1L
CCh
Timer2 捕捉 1 数据低字节(只读)
xxh
T2CAP1
CCh
T2CAP1L 和 T2CAP1H 组成 16 位 SFR
xxxxh
RCAP2H
CBh
计数重载/捕捉 2 数据寄存器高字节
00h
RCAP2L
CAh
计数重载/捕捉 2 数据寄存器低字节
00h
RCAP2
CAh
RCAP2L 和 RCAP2H 组成 16 位 SFR
T2MOD
C9h
Timer2 方式寄存器
00h
T2CON
C8h
Timer2 控制寄存器
00h
0000h
0000h
定时/计数器 2 控制寄存器(T2CON):
位
名称
访问
描述
复位值
7
TF2
RW
当 bT2_CAP1_EN=0 时,是 Timer2 的溢出中断标志,当 Timer2
计数从 16 位全为 1 变成全为 0 时,设置该溢出标志为 1,需
0
CH559 手册
34
要软件清零;当 RCLK=1 或者 TCLK=1 时,该位不会被置 1
7
CAP1F
RW
当 bT2_CAP1_EN=1 时,是 Timer2 捕捉 1 中断标志,由 T2 有效
边沿触发,需要软件清零
0
6
EXF2
RW
Timer2 的外部触发标志,当 EXEN2=1 时由 T2EX 有效边沿触发
置 1,需要软件清零
0
5
RCLK
RW
UART0 接收时钟选择,该位为 0 选择 Timer1 溢出脉冲产生波
特率;该位为 1 选择 Timer2 溢出脉冲产生波特率
0
4
TCLK
RW
UART0 发送时钟选择,该位为 0 选择 Timer1 溢出脉冲产生波
特率;该位为 1 选择 Timer2 溢出脉冲产生波特率
0
3
EXEN2
RW
T2EX 触发使能位,该位为 0 忽略 T2EX;该位为 1 使能在 T2EX
有效边沿时触发重载或者捕捉
0
2
TR2
RW
Timer2 启动/停止位,置 1 启动,由软件置位或者清零
0
1
C_T2
RW
Timer2 时钟源选择位,该位为 0 使用内部时钟;该位为 1 使
用基于 T2 引脚下降沿的边沿计数
0
RW
Timer2 功能选择位,如果 RCLK 或者 TCLK 为 1,则该位应该强
制为 0。该位为 0 则 Timer2 作为定时/计数器,并且当计数器
溢出或者 T2EX 电平变化时能够自动重载计数初值;该位为 1
使能 Timer2 的捕捉 2 功能,捕捉 T2EX 有效边沿
0
0
CP_RL2
定时/计数器 2 方式寄存器(T2MOD):
位
7
名称
bTMR_CLK
访问
描述
复位值
RW
已选择快速时钟的 T0/T1/T2 定时器的最快时钟模式使能,该
位为 1 则使用没有分频的系统主频 Fsys 作为计数时钟;该位
为 0 则使用分频时钟。该位对选择标准时钟的定时器没有影响
0
0
6
bT2_CLK
RW
Timer2 内部时钟频率选择位,该位为 0 选标准时钟,定时/计
数模式为 Fsys/12,UART0 时钟模式为 Fsys/4;该位为 1 选快
速 时 钟 , 定 时 / 计 数 模 式 为 Fsys/4(bTMR_CLK=0) 或
Fsys(bTMR_CLK=1),UART0 时钟模式为 Fsys/2(bTMR_CLK=0)
或 Fsys(bTMR_CLK=1)
5
bT1_CLK
RW
Timer1 内部时钟频率选择位,该位为 0 选标准时钟 Fsys/12;
为 1 选快速时钟 Fsys/4(bTMR_CLK=0)或 Fsys(bTMR_CLK=1)
0
4
bT0_CLK
RW
Timer0 内部时钟频率选择位,该位为 0 选标准时钟 Fsys/12;
为 1 选快速时钟 Fsys/4(bTMR_CLK=0)或 Fsys(bTMR_CLK=1)
0
3
bT2_CAP_M1
RW
Timer2 捕捉模式高位
2
bT2_CAP_M0
RW
Timer2 捕捉模式低位
1
T2OE
RW
Timer2 时钟输出使能位,该位为 0 禁止输出;该位为 1 使能
T2 引脚输出时钟,频率为 Timer2 溢出速率的一半
0
RW
当 RCLK=0、TCLK=0、CP_RL2=1、C_T2=0、T2OE=0 时的捕捉 1
模式使能,该位为 1 启用捕捉 1 功能捕捉 T2 有效边沿;该位
为 0 禁用捕捉 1
0
0
bT2_CAP1_EN
计数重载/捕捉 2 数据寄存器(RCAP2):
捕捉模式选择:
X0:从下降沿到下降沿
01:从任意沿到任意沿,即电平变化
11:从上升沿到上升沿
0
0
CH559 手册
35
位
名称
访问
描述
复位值
[7:0]
RCAP2H
RW
在定时/计数器模式下是重载值的高字节;在捕捉模式下是
CAP2 捕捉到的定时器的高字节
00h
[7:0]
RCAP2L
RW
在定时/计数器模式下是重载值的低字节;在捕捉模式下是
CAP2 捕捉到的定时器的低字节
00h
Timer2 计数器(T2COUNT),仅当 bT2_CAP1_EN=0 时有效:
位
名称
访问
描述
复位值
[7:0]
TH2
RW
当前计数器高字节
00h
[7:0]
TL2
RW
当前计数器低字节
00h
Timer2 捕捉 1 数据(T2CAP1),仅当 bT2_CAP1_EN=1 时有效:
位
名称
访问
描述
复位值
[7:0]
T2CAP1H
RO
CAP1 捕捉到的定时器的高字节
xxh
[7:0]
T2CAP1L
RO
CAP1 捕捉到的定时器的低字节
xxh
12.3 Timer3
表 12.3.1 Timer3 相关寄存器列表
名称
地址
描述
复位值
T3_FIFO_H
AFh
Timer3 的 FIFO 高字节
xxh
T3_FIFO_L
AEh
Timer3 的 FIFO 低字节
xxh
T3_FIFO
AEh
T3_FIFO_L 和 T3_FIFO_H 组成 16 位 SFR
T3_DMA_AH
ADh
DMA 当前缓冲区地址高字节
0xh
T3_DMA_AL
ACh
DMA 当前缓冲区地址低字节
xxh
T3_DMA
ACh
T3_DMA_AL 和 T3_DMA_AH 组成 16 位 SFR
T3_DMA_CN
ABh
DMA 剩余计数寄存器
00h
T3_CTRL
AAh
Timer3 控制寄存器
02h
T3_STAT
A9h
Timer3 状态寄存器
00h
T3_END_H
A7h
Timer3 计数终值高字节
xxh
T3_END_L
A6h
Timer3 计数终值低字节
xxh
T3_END
A6h
T3_END_L 和 T3_END_H 组成 16 位 SFR
T3_COUNT_H
A5h
Timer3 当前计数高字节(只读)
00h
T3_COUNT_L
A4h
Timer3 当前计数低字节(只读)
00h
T3_COUNT
A4h
T3_COUNT_L 和 T3_COUNT_H 组成 16 位 SFR
T3_CK_SE_H
A5h
Timer3 时钟分频设置高字节
00h
T3_CK_SE_L
A4h
Timer3 时钟分频设置低字节
20h
T3_CK_SE
A4h
T3_CK_SE_L 和 T3_CK_SE_H 组成 16 位 SFR
T3_SETUP
A3h
Timer3 设置寄存器
xxxxh
0xxxh
xxxxh
0000h
0020h
04h
Timer3 设置寄存器(T3_SETUP):
位
名称
访问
描述
复位值
7
bT3_IE_END
RW
该位为 1 使能捕捉模式计数超时中断或者 PWM 模式循
环周期结束中断;该位为 0 关闭使能
0
CH559 手册
36
6
bT3_IE_FIFO_OV
RW
该位为 1 使能 FIFO 溢出中断;该位为 0 关闭使能
0
5
bT3_IE_FIFO_REQ
RW
该位为 1 使能捕捉模式 FIFO>=4 中断或者 PWM 模式
FIFO=4 触发,PWM 模式下由 FIFO= min(可能接收到的最大数据包长度 + 2 字节,64 字节)
16.4 主机寄存器
在 USB 主机模式下 CH559 提供了一组双向主机端点,
包括一个发送端点 OUT 和一个接收端点 IN,
数据包的最大长度是 64 字节,支持控制传输、批量传输、中断传输和实时/同步传输。
由主机端点发起的每一个 USB 事务,在处理结束后总是自动设置中断标志 UIF_TRANSFER。应用
程序可以直接查询或在 USB 中断服务程序中查询并分析中断标志寄存器 USB_INT_FG,根据各中断标
志分别进行相应的处理;并且,如果 UIF_TRANSFER 有效,那么还需要继续分析 USB 中断状态寄存器
USB_INT_ST,根据当前 USB 传输事务的应答 PID 标识 MASK_UIS_H_RES 进行相应的处理。
如果事先设定了主机接收端点的 IN 事务的同步触发位 bUH_R_TOG,那么可以通过 U_TOG_OK 或
CH559 手册
66
bUIS_TOG_OK 判断当前所接收到的数据包的同步触发位是否与主机接收端点的同步触发位匹配,如
果数据同步,则数据有效;如果数据不同步,则数据应该被丢弃。每次处理完 USB 发送或者接收中
断后,都应该正确修改相应主机端点的同步触发位,用于同步下次所发送的数据包和检测下次所接
收的数据包是否同步;另外,通过设置 bUEP_AUTO_TOG 可以实现在发送成功或者接收成功后自动翻
转相应的同步触发位。
USB 主机令牌设置寄存器 UH_EP_PID 是对 USB 设备模式下的 USB 端点 1 控制寄存器的复用,用
于设置被操作的目标设备的端点号和本次 USB 传输事务的令牌 PID 包标识。SETUP 令牌和 OUT 令牌
所对应的数据由主机发送端点提供,准备发送的数据在 UH_TX_DMA 缓冲区中,准备发送的数据长度
设置在 UH_TX_LEN 中;IN 令牌所对应的数据由目标设备返回给主机接收端点,接收到的数据存放在
UH_RX_DMA 缓冲区中,接收到的数据长度存放在 USB_RX_LEN 中。
表 16.4.1 USB 主机相关寄存器列表
名称
地址
描述
复位值
UH_SETUP
D2h
USB 主机辅助设置寄存器
0000 0000b
UH_RX_CTRL
D4h
USB 主机接收端点控制寄存器
0000 0000b
UH_EP_PID
D5h
USB 主机令牌设置寄存器
0000 0000b
UH_TX_CTRL
D6h
USB 主机发送端点控制寄存器
0000 0000b
UH_TX_LEN
D7h
USB 主机发送长度寄存器
0xxx xxxxb
USB_HUB_ST
DBh
USB 主机 HUB 端口状态寄存器(只读)
0000 0000b
UHUB0_CTRL
E4h
USB 主机 HUB0 端口控制寄存器
0100 x000b
UHUB1_CTRL
E5h
USB 主机 HUB1 端口控制寄存器
1100 x000b
UH_EP_MOD
2447h
USB 主机端点模式控制寄存器
0000 0000b
UH_RX_DMA_H
244Ch
USB 主机接收缓冲区起始地址高字节
000x xxxxb
UH_RX_DMA_L
244Dh
USB 主机接收缓冲区起始地址低字节
xxxx xxx0b
UH_RX_DMA
244Ch
UH_RX_DMA_L 和 UH_RX_DMA_H 组成 16 位 SFR
UH_TX_DMA_H
244Eh
USB 主机发送缓冲区起始地址高字节
000x xxxxb
UH_TX_DMA_L
244Fh
USB 主机发送缓冲区起始地址低字节
xxxx xxx0b
UH_TX_DMA
244Eh
UH_TX_DMA_L 和 UH_TX_DMA_H 组成 16 位 SFR
pUH_*
254*h
在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类型
寻址上述 xSFR,比 xdata 类型寻址更快捷
xxxxh
xxxxh
USB 主机辅助设置寄存器(UH_SETUP):
位
名称
访问
描述
复位值
7
bUH_PRE_PID_EN
RW
低速前导包 PRE PID 使能位,该位为 1 使能 USB 主机
通过外部 HUB 与低速 USB 设备通讯;为 0 禁用低速前
导包,USB 主机与低速 USB 设备之间不能有 HUB
0
6
bUH_SOF_EN
RW
自动产生 SOF 包使能位,该位为 1 由 USB 主机自动产
生 SOF 包;为 0 不自动产生,但可以手工产生
0
[5:0]
保留
RO
保留
00h
USB 主机接收端点控制寄存器(UH_RX_CTRL):
位
名称
访问
描述
复位值
7
bUH_R_TOG
RW
USB 主机接收器(处理 IN 事务)期望的同步触发位,该
位为 0 表示期望 DATA0;为 1 表示期望 DATA1
0
[6:5]
保留
RO
保留
00b
CH559 手册
67
4
bUH_R_AUTO_TOG
RW
自动翻转 bUH_R_TOG 使能控制位,该位为 1 表示在 USB
主机接收成功后自动翻转 bUH_R_TOG 标志;为 0 表示
不自动翻转,但可以手动切换
3
保留
RO
保留
0
0
2
bUH_R_RES
RW
USB 主机接收器对 IN 事务的响应控制位,为 0 表示应
答 ACK 或就绪;为 1 表示无响应,用于与目标设备的
非端点 0 进行实时/同步传输
[1:0]
保留
RO
保留
0
00b
USB 主机令牌设置寄存器(UH_EP_PID):
位
名称
访问
描述
复位值
[7:4]
MASK_UH_TOKEN
RW
设置本次 USB 传输事务的令牌 PID 包标识
0000b
[3:0]
MASK_UH_ENDP
RW
设置本次被操作的目标设备的端点号
0000b
USB 主机发送端点控制寄存器(UH_TX_CTRL):
位
名称
访问
描述
7
保留
RO
保留
0
6
bUH_T_TOG
RW
USB 主机发送器(处理 SETUP/OUT 事务)准备的同步触
发位,该位为 0 表示发送 DATA0;为 1 表示发送 DATA1
0
5
保留
RO
保留
0
0
4
bUH_T_AUTO_TOG
RW
自动翻转 bUH_T_TOG 使能控制位,该位为 1 表示在 USB
主机发送成功后自动翻转 bUH_T_TOG 标志;为 0 表示
不自动翻转,但可以手动切换
[3:1]
保留
RO
保留
RW
USB 主机发送器对 SETUP/OUT 事务的响应控制位,为 0
表示期望应答 ACK 或就绪;为 1 表示期望无响应,用
于与目标设备的非端点 0 进行实时/同步传输
0
bUH_T_RES
复位值
000b
0
USB 主机发送长度寄存器(UH_TX_LEN):
位
名称
访问
[7:0]
UH_TX_LEN
RW
描述
设置 USB 主机发送端点准备发送的数据字节数
复位值
xxh
USB 主机 HUB 端口状态寄存器(USB_HUB_ST):
位
名称
访问
描述
复位值
7
bUHS_H1_ATTACH
RO
HUB1 端口的 USB 设备连接状态位,该位为 1 表示 HUB1 已经
连接 USB 设备;该位为 0 表示没有。同 bUMS_H1_ATTACH
0
6
bUHS_HM_LEVEL
RO
记录 USB 设备刚连接到 HUB1 端口时的 HM 引脚的状态,为 0
表示低电平;为 1 表示高电平。用于判断全速或低速
0
5
bUHS_HP_PIN
RO
当前 HP 引脚状态,为 0 表示低电平;为 1 表示高电平
0
4
bUHS_HM_PIN
RO
当前 HM 引脚状态,为 0 表示低电平;为 1 表示高电平
0
3
bUHS_H0_ATTACH
RO
HUB0 端口的 USB 设备连接状态位,该位为 1 表示 HUB0 已经
连接 USB 设备;该位为 0 表示没有。同 bUMS_H0_ATTACH
0
2
bUHS_DM_LEVEL
RO
记录 USB 设备刚连接到 HUB0 端口时的 DM 引脚的状态,为 0
表示低电平;为 1 表示高电平。用于判断全速或低速
0
CH559 手册
68
1
bUHS_DP_PIN
RO
当前 DP 引脚状态,为 0 表示低电平;为 1 表示高电平
0
0
bUHS_DM_PIN
RO
当前 DM 引脚状态,为 0 表示低电平;为 1 表示高电平
0
USB 主机 HUBn 端口控制寄存器(UHUBn_CTRL)(n=0、1):
位
名称
访问
描述
复位值
7
保留
RO
对于 UHUB0_CTRL 是保留
0
7
bUH1_DISABLE
RW
对于 UHUB1_CTRL 是 USB 主机 HUB1 端口引脚禁用位,该位
为 1 禁用 HP/HM 引脚,释放 P5.5/P5.4 将用于其它功能;
该位为 0 使能 P5.5/P5.4 作为 HP/HM 用于 HUB1 端口
1
6
bUH_RECV_DIS
RW
USB 主机 HUBn 端口接收器禁用位,该位为 1 禁用接收器,
没有静态功耗;该位为 0 使能接收器,产生静态功耗
1
5
bUH_DP_PD_DIS
RW
USB 主机 HUBn 端口 DP/HP 引脚内部下拉电阻禁用位,该位
为 1 禁用内部下拉电阻;该位为 0 使能内部下拉电阻
0
4
bUH_DM_PD_DIS
RW
USB 主机 HUBn 端口 DM/HM 引脚内部下拉电阻禁用位,该位
为 1 禁用内部下拉电阻;该位为 0 使能内部下拉电阻
0
3
bUH_DIFF_IN
R0
对于 UHUB0_CTRL 是当前 DP 和 DM 引脚之间的差分输入状态
对于 UHUB1_CTRL 是当前 HP 和 HM 引脚之间的差分输入状态
x
2
bUH_LOW_SPEED
RW
USB 主机 HUBn 端口低速模式使能位,
该位为 1 选择 1.5Mbps
低速模式;该位为 0 选择 12Mbps 全速模式
0
1
bUH_BUS_RESET
RW
USB 主机 HUBn 端口总线复位控制位,该位为 1 强制 HUBn
端口输出 USB 总线复位;该位为 0 结束输出
0
0
bUH_PORT_EN
RW
USB 主机 HUBn 端口使能位,该位为 0 禁用 HUBn 端口;该位
为 1 使能 HUBn 端口。当 USB 设备断开连接时该位自动清零
0
USB 主机端点模式控制寄存器(UH_EP_MOD):
位
名称
访问
描述
复位值
7
保留
RO
保留
0
6
bUH_EP_TX_EN
RW
该位为 0 禁止 USB 主机发送端点发送数据;该位为 1
使能 USB 主机发送端点发送数据(SETUP/OUT)
0
5
保留
RO
保留
0
4
bUH_EP_TBUF_MOD
RW
USB 主机发送端点数据缓冲区模式控制位
0
3
bUH_EP_RX_EN
RO
该位为 0 禁止 USB 主机接收端点接收数据;该位为 1
使能 USB 主机接收端点接收数据(IN)
0
[2:1]
保留
RO
保留
0
bUH_EP_RBUF_MOD
RW
USB 主机接收端点数据缓冲区模式控制位
00b
0
由 bUH_EP_TX_EN 和 bUH_EP_TBUF_MOD 组合控制 USB 主机发送端点数据缓冲区模式,参考下表。
表 16.4.2 主机发送缓冲区模式
bUH_EP_TX_EN
bUH_EP_TBUF_MOD
0
x
端点被禁用,未用到 UH_TX_DMA 缓冲区
1
0
单 64 字节发送缓冲区(SETUP/OUT)
1
双 64 字节发送缓冲区,通过 bUH_T_TOG 选择:
当 bUH_T_TOG=0 时选择前 64 字节缓冲区;
当 bUH_T_TOG=1 时选择后 64 字节缓冲区
1
结构描述:以 UH_TX_DMA 为起始地址
由 bUH_EP_RX_EN 和 bUH_EP_RBUF_MOD 组合控制 USB 主机接收端点数据缓冲区模式,参考下表。
CH559 手册
69
表 16.4.3 主机接收缓冲区模式
bUH_EP_RX_EN
bUH_EP_RBUF_MOD
0
x
端点被禁用,未用到 UH_RX_DMA 缓冲区
1
0
单 64 字节接收缓冲区(IN)
1
双 64 字节接收缓冲区,通过 bUH_R_TOG 选择:
当 bUH_R_TOG=0 时选择前 64 字节缓冲区;
当 bUH_R_TOG=1 时选择后 64 字节缓冲区
1
结构描述:以 UH_RX_DMA 为起始地址
USB 主机接收缓冲区起始地址 (UH_RX_DMA):
位
名称
访问
描述
复位值
[7:0]
UH_RX_DMA_H
RW
USB 主机接收缓冲区起始地址高字节,仅低 5 位有效,
高 3 位固定为 0
xxh
[7:0]
UH_RX_DMA_L
RW
USB 主机接收缓冲区起始地址低字节,仅高 7 位有效,
最低位固定为 0,仅支持偶地址
xxh
USB 主机接发送冲区起始地址 (UH_TX_DMA):
位
名称
访问
描述
复位值
[7:0]
UH_TX_DMA_H
RW
USB 主机发送缓冲区起始地址高字节,仅低 5 位有效,
高 3 位固定为 0
xxh
[7:0]
UH_TX_DMA_L
RW
USB 主机发送缓冲区起始地址低字节,仅高 7 位有效,
最低位固定为 0,仅支持偶地址
xxh
17、LED 屏接口
17.1 LED 控制卡接口
CH559 提供了 LED 屏控制卡数据传输接口,内置 4 级 FIFO,支持 DMA 和中断,节约 CPU 处理时
间,支持 1/2/4 路数据线接口。
表 17.1.1 LED 屏接口相关寄存器列表
名称
地址
描述
复位值
LED_STAT
2880h
LED 状态寄存器
010x 0000b
LED_CTRL
2881h
LED 控制寄存器
0000 0010b
LED_FIFO_CN
2882h
FIFO 计数状态寄存器(只读)
0000 0000b
LED_DATA
2882h
LED 数据寄存器(只写)
xxxx xxxxb
LED_CK_SE
2883h
LED 时钟分频设置寄存器
0001 0000b
LED_DMA_AH
2884h
DMA 当前缓冲区地址高字节
000x xxxxb
LED_DMA_AL
2885h
DMA 当前缓冲区地址低字节
xxxx xxx0b
LED_DMA
2884h
LED_DMA_AL 和 LED_DMA_AH 组成 16 位 SFR
LED_DMA_CN
2886h
LED DMA 剩余计数寄存器
xxxx xxxxb
LED_DMA_XH
2888h
DMA 当前辅助缓冲区地址高字节
000x xxxxb
LED_DMA_XL
2889h
DMA 当前辅助缓冲区地址低字节
xxxx xxx0b
LED_DMA_X
2888h
LED_DMA_XL 和 LED_DMA_XH 组成 16 位 SFR
pLED_*
298*h
在 bXIR_XSFR 置 1 后,该名称用于以 pdata 类型寻
址上述 xSFR,比 xdata 类型寻址更快捷
xxxxh
xxxxh
CH559 手册
70
LED 状态寄存器(LED_STAT):
位
名称
访问
描述
复位值
7
bLED_IF_DMA_END
RW
DMA 完成中断标志位,该位为 1 表示有中断;该位
为 0 则无中断。写 1 清零或写 LED_DMA_CN 时清零
0
6
bLED_FIFO_EMPTY
RO
FIFO 空状态指示位,为 1 表示 FIFO 空
0
5
bLED_IF_FIFO_REQ
RW
该位为 1 表示请求向 FIFO 写入数据中断标志位,
由 FIFO=3V)
1
12
56
MHz
系统主频时钟频率(VDD33
很抱歉,暂时无法提供与“CH559L”相匹配的价格&库存,您可以联系我们找货
免费人工找货- 国内价格
- 1+10.33560
- 10+8.89920
- 30+8.00280
- 国内价格
- 1+7.39200
- 100+7.39200
- 625+7.39200
- 1250+7.39200