CH549 手册 1
8 位增强型 USB 单片机 CH549、CH548
手册
版本:1H
http://wch.cn
1、概述
CH549 芯片是一款兼容 MCS51 指令集的增强型 E 8051 内核单片机,其 79%的指令是单字节单周期
指令,平均指令速度比标准 MCS51 快 8~ 15 倍。
CH549 内置 64K 程序存储器 Flash-ROM 和 256 字节内部 iRAM 以及 2K 字节片内 xRAM,xRAM 支持
DMA 直接内存存取。
CH549 内置了 12 位 A DC 模数转换、电容式触摸按键检测模块、 TS 温度传感器、内置时钟、3 组
定时器和 3 路信号捕捉、8 路 PWM、4 组异步串口、SPI 等功能模块,支持全速和低速 USB-Host 主机
模式和 USB-Device 设备 模式以及 USB type-C ,如需完整 PD 功能 建议用 CH543。
CH548 是 CH549 的简化 版,程序存储器 ROM 仅 32KB,异步串口仅提供 UART0 和 UART1,其它与
CH549 相同, 可直接 参考 CH549 手册和资料 。
型号
CH549 60KB+3KB
CH548 32KB+3KB
(Code/EEPROM Data)
Pins: GND VDD V33 P00~P07 P10~P17 P20~P27 P30~P37 P40~P46 P50/1/4/5/7
程序 ROM
引导 ROM
下面为 CH549 的内部 框图, 仅供参考。
Flash-ROM 64KB
Power-on
Reset
Watch-dog
Reset
Internal
Oscillator
LDO VolReg 5V->3.3V
xRAM
非易失
iRAM
EEPROM
2048
+256
E8051 Core
1KB 全 /低速 支持 3组 3 路 8 路
iRAM 256B
xRAM 2KB
1T
USB-48M
PLL
USB 主机
USB 设备
Timer0
Timer1
8-bit
Port0
USB
Type-C
Internal Address & Data & DMA Bus
ADC
CMP
定时
Timer2
Cap0~2
8-bit
Port1
信号
捕捉
PWM0
~PWM7
8-bit
Port2
8 位
PWM
UART0
UART1
8-bit
Port3
异步
串口
4 组
2 组
UART2
UART3
OSC
SPI
12 位
主从
1 组 16 路 16 通道
7-bit
Port4
ADC
SPI0
M/S
USB
H/D
电容触
摸按键
USB PD
Type-C
5-bit
Port5
2、特点
l Core:增强型 E 8051 内核,兼容 MCS51 指令集,其 79% 的指令是单字节单周期指令,平均指令
CH549 手册 2
速度比标准 MCS51 快 8~ 15 倍, 特有 XRAM 数据 快速 复制 指令, 双 DPTR 指 针 。
l ROM:64KB 非易失存储器 Flash-ROM ,支持 10K 次擦写,可 以全部用于 程序存储 空间;或者可
以分为 60KB 程 序存储区 和 1KB 数据 存储区 EEPROM 以及 3KB 引 导代码 BootLoader/ISP 程序区 。
l EEPROM:数据存储区 EEPROM 共 1K 字节, 分为 16 个独立 块,支持单字节 读 、单字节 写 、块写
(1~ 64 字节 )、块擦除 (64 字节 )操作, 在典型 环境下一 般支持 1 00K 次擦写(非担保)。
l OTP:一次性可编 程数据 存储区 O TP 共 32 字节,支持双 字读(4 字节)、单字节写 。
l RAM: 256 字节内部 iRAM,可 以用于 快速数据暂 存以及堆栈; 2KB 片内 xRAM,可 以 用于大量数
据暂存以及 DMA 直接内存存取。
l USB:内嵌 U SB 控制器和 U SB 收发器,支持 USB-Host 主机模式和 USB-Device 设备 模式,支持
USB 2.0 全速 12Mbps 或者 低速 1.5Mbps。支持最大 64 字节数据包 ,内置 FIFO,支持 DMA。
l USB type-C:支持 U SB type-C 主从 检测,支持 USB PD 电力 传输控制和 32 位 C RC 计算。
l Timer: 3 组定时器, T0/T1/T2 为标准 MCS51 定时器。
l Capture:定时器 T2 扩展为支持 3 路信号捕捉。
l PWM: 8 路 PWM 输出,支持标准 8 位数据或者快速 6 位数据 。
l UART: 4 组异步串口, UART0 为标准 MCS51 串口; UART1/2/3 自带通讯波 特率 设置寄 存器。
l SPI:SPI 控制器支持 Master/Slave 主从 模式,内置 FIFO,时钟频率最 高可 接近系统 主频 Fsys
的一半 ,支持串行 数据输入 输出 单工复用。
l ADC: 16 通道 12 位 A/D 模数转换器,支持多种 组合 的电压 比较 。
l Touch-Key:支持 16 通道电容触摸按键检测,每个 ADC 通道都 支持触摸按键检测。
l TS:内置简 单的温度传感器。
l GPIO:支持最多 44 个 GPIO 引脚 (含 XI 和 RST 以及 USB 引脚 ),支持 MCS51 兼容的准双向 模式,
新增 高阻输 入、 推挽输出、 开漏输出模式,其 中一个引 脚支持 12V 高 压开漏输出。
l Interrupt:支持 16 组 中断 信号 源 , 包括 与 标准 MCS51 兼容的 6 组中断 (INT0 、 T0 、INT1、 T1 、
UART0、T2),以及扩展 的 10 组中断 (SPI0、INT3、USB、ADC/UART2、UART1、PWMX/UART3、GPIO、
WDOG),其中 GPIO 中断可以 从 7 个引脚 中选择。
l Watch-Dog: 8 位可预设 看门狗定时器 WDOG,支持定时 中断。
l Reset:支持 5 种复 位信号源 ,内置上 电复 位和多级可 调 的电源 低压 检测复 位模块,支持软件
复位和看门狗溢出复 位,可选 引脚外 部输入复位。
l Clock:内置 24MHz 时钟源 , 可 以 通过 复用 GPIO 引脚支持外 部晶体 ,内置 PLL 用于产生 U SB 时
钟和所需 频率的系统 主频 Fsys 。
l Power:内置 5V 到 3 .3V 的低压差电压调 整器,用于 USB 等模块,支持 5V 或 3.3V 甚至 6V 或 2. 8V
电源 电压 。
l Sleep:支持低功耗睡眠 ,支持 USB、 UART0、 UART1、 SPI0、比较 器以及部分 GPIO 外部 唤醒。
l 芯片内置唯 一 ID 号,支持 ID 号和校验 。
3 、封装
封装形式
LQFP48 7*7mm 0.5mm 19.7mil 标准 LQFP48 脚贴片
QFN28_4X4
SOP16 3.9mm 150mil 1.27mm 50mil 标准的 16 脚贴片 CH549G
LQFP48 7*7mm 0.5mm 19.7mil 标准 LQFP48 脚贴片
SOP16 3.9mm 150mil 1.27mm 50mil 标准的 16 脚贴片 CH548G
SOP8 3.9mm 150mil 1.27mm 50mil 标准的 8 脚贴 片 CH548N
塑体宽 度 引 脚 间 距 封装说明 订货 型号
CH549L
4*4mm 0.4mm 15.7mil 四边无引 线 28 脚 CH549F
CH548L
CH549 手册 3
37
P0.3/TXD_/AIN11
38
P0.2/RXD_/AIN10
39
P0.1/AIN9
40
P0.0/AIN8
41
VDD
42
V33
43
P1.0/T2/CAP1/AIN0
44
P1.1/T2EX/CAP2/AIN1
45
P1.2/AIN2
46
P1.3/AIN3
47
P1.4/SCS/UCC1/AIN4
48
P1.5/MOSI/PWM0_
P1.5/UCC2/AIN5
1
P1.6/RXD1_/AIN6
2
P1.4/AIN4
3
P5.0/DM
4
GND/VSS
28
29
30
32
36
P5.1/DP31P5.0/DM
P5.5/HVOD
P5.4/ALE/CKO
P0.7/TXD3/AIN1533P0.6/RXD3/AIN1434P0.5/TXD2/AIN1335P0.4/RXD2/AIN12
CH549L
CH548L
P1.6/VBUS/AIN6
P1.6/MISO/RXD1_1P1.7/SCK/TXD1_/AIN72P5.7/RST3P3.0/RXD4P4.46P3.1/TXD7P3.2/INT08P3.3/INT19P3.4/T010P3.5/T111P3.6/CAP0
P4.5
5
CH548N
P1.7/TXD1_/AIN7
P2.4/PWM1/T2_/CAP1_
26
P2.6/PWM6/RXD127P2.7/PWM7/TXD1
P2.5/PWM0/T2EX_/CAP2_
VDD/V33
P5.1/DP
25
P2.4/PWM1/T2_/CAP1_
12
P2.3/PWM2
P2.2/PWM3/INT0_
P2.1/PWM4
P2.0/PWM5
P4.0
P4.1
GND/VSS
P4.6/XI
P4.2
P4.3
P3.7/INT3
8
7
6
5
1
P1.1/T2EX/CAP2/AIN1
2
P1.4/SCS/UCC1/AIN4
3
P1.5/MOSI/PWM0_/UCC2/AIN5
4
P1.6/MISO/RXD1_/VBUS/AIN6
5
P1.7/SCK/TXD1_/AIN7
6
P5.7/RST
7
P3.0/RXD
8
24
23
22
21
20
19
18
17
XO
16
15
14
13
22
23
24
25
26
27
28
P3.1/TXD
P0.4/RXD2/AIN12
VDD
V33
P1.0/T2/CAP1/AIN0
P1.1/T2EX/CAP2/AIN1
P1.4/SCS/UCC1/AIN4
P1.5/MOSI/PWM0_
P1.5/UCC2/AIN5
GND/VSS
0
CH549G
CH548G
21
CH549F
P1.6/VBUS/AIN6
P1.6/MISO/RXD1_1P1.7/SCK/TXD1_/AIN72P5.7/RST3P3.0/RXD4P3.1/TXD5P3.2/INT06P3.3/INT1
16
18
P5.1/DP17P5.0/DM
P0.7/TXD3/AIN1519P0.6/RXD3/AIN1420P0.5/TXD2/AIN13
P2.4/PWM1/T2_/CAP1_
15
P5.5/HVOD
P2.7/PWM7/TXD1
7
GND/VSS
P5.0/DM
P5.1/DP
P2.2/PWM3/INT0_
P3.4/T0
P2.6/PWM6/RXD1
P2.4/PWM1/T2_/CAP1_
P2.2/PWM3/INT0_
V33
VDD
P4.6/XI
P3.5/T1
P3.4/T0
16
15
14
13
12
11
10
9
14
13
12
11
XO
10
9
8
4 、引脚
引脚号
SOP16 QFN28 LQFP48
15 23 41 VDD VCC
16 24 42 V33 V3
14 0 18 GND VSS 公共接 地端。
- - 40 P0.0 AIN8
- - 39 P0.1 AIN9
- - 38 P0.2 RXD_/AIN10
- - 37 P0.3 TXD_/AIN11
- 22 36 P0.4 RXD2/AIN12
- 21 35 P0.5 TXD2/AIN13
- 20 34 P0.6 RXD3/AIN14
- 19 33 P0.7 TXD3/AIN15
- 25 43 P1.0 T2/CAP1/AIN0
1 26 44 P1.1 T2EX/CAP2/AIN1
- - 45 P1.2 AIN2
- - 46 P1.3 AIN3
引 脚
名称
其 它 功能 名称
(左侧功能最 优先 )
I/O 电源输 入 以及内部 USB 电 源调整器的外 部电 源
输 入, 需 要外接 0.1uF 电源退耦 电容。
内部 USB 电源调整 器输出 和内部 USB 电源输 入 ,
当电 源电 压小于 3.6V 时 连接 VDD 输 入外部电 源,
当电 源电 压大于 3.6V 时外接 0.1uF 电 源退耦电容
AIN8~ AIN15:8 通道 ADC 模拟 信号/触摸按键输入 。
RXD_、 TXD_: RXD、 TXD 引脚映射。
RXD2、TXD2:UART2 串行 数据输入 、串 行 数 据输出。
RXD3、TXD3:UART3 串行 数据输入 、串 行 数 据输出。
AIN0~ AIN7:8 通道 ADC 模拟 信号 /触摸按键输入 。
T2:定时/计 数器 2 的外 部计 数输入/ 时钟输出 。
T2EX:定时 /计数器 2 重载/ 捕捉输入 。
CAP1、 CAP2:定时/计 数器 2 的捕捉输入 1、 2。
其 它 功能 描 述
CH549 手册 4
2 27 47 P1.4 SCS/UCC1/AIN4 SCS、 MOSI、 MISO、 SCK: SPI0 接口, SCS 是片选
3 28 48 P1.5
4 1 1 P1.6
5 2 2 P1.7 SCK/TXD1_/AIN7
- - 21 P2.0 PWM5
- - 22 P2.1 PWM4
10 12 23 P2.2 PWM3/INT0_
- - 24 P2.3 PWM2
11 13 25 P2.4 PWM1/T2_/CAP1_
- - 26 P2.5 PWM0/T2EX_/CAP2_
- 14 27 P2.6 PWM6/RXD1
- 15 28 P2.7 PWM7/TXD1
7 4 4 P3.0 RXD
8 5 7 P3.1 TXD
- 6 8 P3.2 INT0
- 7 9 P3.3 INT1
9 8 10 P3.4 T0
- 9 11 P3.5 T1
- - 12 P3.6 CAP0
- - 13 P3.7 INT3
- - 20 P4.0
- - 19 P4.1
- - 15 P4.2
- - 14 P4.3
- - 6 P4.4
- - 5 P4.5
- 10 16 P4.6 XI
- 11 17 XO
13 18 32 P5.0 DM/UDM
12 17 31 P5.1 DP/UDP
- - 30 P5.4 ALE/CKO
- 16 29 P5.5 HVOD
6 3 3 P5.7 RST 外部复 位输 入,内置下拉 电阻 。
MOSI/PWM0_/UCC2
/AIN5
MISO/RXD1_/VBUS
/AIN6
输入,MOSI 是主机输出/ 从机输入 ,MISO 是主机
输入/ 从机 输出,SCK 是串行 时钟。
UCC1、 UCC2: USB type-C 双向配置 通道。
VBUS: USB type-C 总线电 压检测输 入。
PWM0_、RXD1_、TXD1_:PWM0/RXD1/TXD1 引 脚映射。
PWM0~ PWM7: 8 通道 PWM 输出。
INT0_: INT0 引 脚映射。
T2_/CAP1_: T2/CAP1 引脚映射。
T2EX_/CAP2_: T2EX/CAP2 引 脚映射。
RXD1、TXD1:UART1 串行 数据输入 、串 行 数 据输出。
RXD、 TXD: UART0 串行 数 据输入、串 行数 据输出。
INT0、 INT1:外 部中断 0、 外部 中断 1 输 入。
T0、 T1:定时器 0、定时器 1 外 部输入 。
CAP0:定时 /计数器 2 的捕捉输入 0 。
INT3:外 部中断 3。
XI、 XO:外 部晶体振荡输 入端 、反相输出端 。
DM、 DP: USB 主机或 USB 设备 的 D-、 D+信号端 。
电 阻已 全内置, 建议外 部 不再 串 联 电 阻。
ALE/CKO:伪地 址锁存 信号 输出或者时钟 输出。
HVOD:支持 12V 高电 压的 开漏输出。
注 :CH548N 的 VDD 与 V33 已在内部 短 接, 使 用 USB 时 VDD 只能 3V ~ 3.6V ,不用 USB 时 2.7V ~ 6.5V 。
5、特殊 功能寄 存器 SFR
本手册 中在对 寄 存器 进行描 述时 可 能 使用了下列缩写 :
缩写 词 描述
RO 表示访问类型: 只读
WO 表示访问类型: 只写, 读取的 值无 效
CH549 手册 5
RW 表示访问类型:可读可写
H 以其结束表示 16 进制数
B 以其结束表示 2 进制数
5.1 SFR 简介和地 址 分布
CH549 用特殊功能寄 存器 S FR 和 xSFR 控制、管理设备 以及设置工 作模式。
SFR 占用内部数据 存储 空间的 80h-FFh 地 址范围, 只能通过 直接地 址方式的指令 访问。其中地
址 为 x0h 或 x8h 的寄 存器是 可 以按位寻址 的, 这样就能避免访问某 个 具 体的位时而 修改 其他 位的值 ;
其它地址 为非 8 倍数的寄 存器只 能按字节访问 。
部分 SFR 仅在安 全模式下才 能写入 数据 ,而在非 安 全模式下 是只读 状态 ,例如 :GLOBAL_CFG、
CLOCK_CFG 、WAKE_CTRL 、POWER_CFG 。
部分 SFR 具 有 一个或者多 个别名, 例 如:SPI0_CK_SE/SPI0_S_PRE 、UDEV_CTRL/UHOST_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 、 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 、 ROM_ADDR_L/ROM_DATA_LL 、
ROM_ADDR_H/ROM_DATA_LH、 ROM_DATA_HL/ROM_DAT_BUF、 ROM_DATA_HH/ROM_BUF_MOD。
部 分地址对应于多 个 独立 的 SFR, 例如 : SAFE_MOD/CHIP_ID、 ROM_CTRL/ROM_STATUS 。
CH549 包含 8051 标准 SFR 所有的 寄存器,同时又 增加 了其他 设 备控制寄 存器。具体 SFR 见下 表。
表 5.1 特殊功能寄 存器 表
SFR
0xF8
0xF0
0xE8
0xE0
0xD8
0xD0
0xC8
0xC0
0xB8
0xB0
0xA8
0xA0
0x98
0x90
0x88
0x80
0、 8 1、 9 2、 A 3、 B 4、 C 5、 D 6、 E 7、 F
SPI0_STAT SPI0_DATA SPI0_CTRL
B TKEY_CTRL ADC_CTRL ADC_CFG ADC_DAT_L ADC_DAT_H ADC_CHAN ADC_PIN
IE_EX IP_EX UEP4_1_MOD
ACC USB_INT_EN USB_CTRL USB_DEV_AD
USB_INT_FG USB_INT_ST USB_MIS_ST USB_RX_LEN UEP0_CTRL UEP0_T_LEN UEP4_CTRL UEP4_T_LEN
PSW
T2CON T2MOD RCAP2L RCAP2H TL2 TH2 T2CAP1L T2CAP1H
P4 T2CON2 P4_MOD_OC P4_DIR_PU P0_MOD_OC P0_DIR_PU
IP CLOCK_CFG POWER_CFG
P3 GLOBAL_CFG GPIO_IE INTX SCON2 SBUF2 SBAUD2 SIF2
IE WAKE_CTRL PIN_FUNC P5 SCON3 SBUF3 SBAUD3 SIF3
P2
SCON SBUF PWM_DATA2 PWM_DATA1 PWM_DATA0 PWM_CTRL PWM_CK_SE PWM_CTRL2
P1 USB_C_CTRL P1_MOD_OC P1_DIR_PU P2_MOD_OC P2_DIR_PU P3_MOD_OC P3_DIR_PU
TCON TMOD TL0 TL1 TH0 TH1
P0 SP DPL DPH
UDEV_CTRL
UHOST_CTRL
SAFE_MOD
CHIP_ID
UEP1_CTRL
UH_SETUP
XBUS_AUX PWM_DATA3 PWM_DATA4 PWM_DATA5 PWM_DATA6 PWM_DATA7
SPI0_CK_SE
SPI0_S_PRE
UEP2_3_MOD
UH_EP_MOD
UEP1_T_LEN
SCON1 SBUF1 SBAUD1 SIF1
SPI0_SETUP
UEP0_DMA_L UEP0_DMA_H UEP1_DMA_L UEP1_DMA_H
UEP2_DMA_L
UH_RX_DMA_L
UEP2_CTRL
UH_RX_CTRL
ROM_ADDR_L
ROM_DATA_LL
A_INV RESET_KEEP WDOG_COUNT
UEP2_DMA_H
UH_RX_DMA_H
UEP2_T_LEN
UH_EP_PID
ROM_ADDR_H
ROM_DATA_LH
UEP3_DMA_L
UH_TX_DMA_L
UEP3_CTRL
UH_TX_CTRL
T2CAP0L T2CAP0H
ROM_DATA_HL
ROM_DAT_BUF
ROM_CTRL
ROM_STATUS
UEP3_DMA_H
UH_TX_DMA_H
UEP3_T_LEN
UH_TX_LEN
ROM_DATA_HH
ROM_BUF_MOD
PCON
CH549 手册 6
备 注:(1)、 红色文 本代 表 可以按位 寻址 ;
(2)、以下 是颜色框 对应说明
寄存器地址
SPI0 相关寄存器
ADC 相关寄存器
USB 相关寄存器
定时 /计数器 2 相关寄 存器
端口设置相关 寄存器
PWMX 相关寄存器
UART1/2/3 相关寄 存器
定时/计 数器 0 和 1 相关寄存器
Flash-ROM 相关寄存器
5.2 SFR 分类和 复位值
表 5.2 SFR 和 xSFR 描述和复 位 值
功能分类 名称 地 址
B F0h B 寄存器 0000 0000b
ACC E0h 累加器 0000 0000b
A_INV FDh 累加器的高 低位 倒置 值 0000 0000b
PSW D0h 程序状态寄 存器 0000 0000b
GLOBAL_CFG B1h
系统 设置
相关寄存器
CHIP_ID A1h
SAFE_MOD A1h 安全模式控制寄 存器( 只写) 0000 0000b
DPH 83h 数据地址 指针高 8 位 0000 0000b
DPL 82h 数据地址 指针 低 8 位 0000 0000b
DPTR 82h DPL 和 DPH 组成 16 位 SFR 0000h
SP 81h 堆栈指 针 0000 0111b
WDOG_COUNT FFh 看门狗计数 寄存器 0000 0000b
时钟、睡眠
及电源控制
相 关寄存器
中断控制
相 关寄存器
RESET_KEEP FEh 复位 保持寄 存器(上 电 复位状态下) 0000 0000b
POWER_CFG BAh 电源管理配 置寄 存器 0000 0xxxb
CLOCK_CFG B9h 系统时钟配 置寄 存器 1000 0011b
WAKE_CTRL A9h 睡眠唤醒控制 寄存器 0000 0000b
PCON 87h 电源控制寄 存器(上 电复 位状态下) 0001 0000b
IP_EX E9h 扩展中断优先级 控制寄存器 0000 0000b
IE_EX E8h 扩展中断使能 寄 存器 0000 0000b
GPIO_IE C7h GPIO 中断使能 寄存器 0000 0000b
IP B8h 中断优先级控制 寄存器 0000 0000b
INTX B3h 扩展外部 中断控制 寄存器 0000 0000b
IE A8h 中断使能 寄存器 0000 0000b
描 述 复 位 值
全局配 置寄 存器(CH549 引导 程序状态下) 1110 0000b
全局配 置寄 存器(CH549 应用 程序状态下) 1100 0000b
全局配 置寄 存器(CH548 引导 程序状态下) 1010 0000b
全局配 置寄 存器(CH548 应用 程序状态下) 1000 0000b
CH549 芯片 ID 识别码 (只读 ) 0100 1001b
CH548 芯片 ID 识别码 (只读 ) 0100 1000b
CH549 手册 7
ROM_DATA_HH 8Fh flash-ROM 数据寄 存器高 字的高 字节 (只读 ) xxxx xxxxb
ROM_DATA_HL 8Eh flash-ROM 数据寄 存器高 字的低字节 (只读 ) xxxx xxxxb
ROM_DATA_HI 8Eh ROM_DATA_HL 和 ROM_DATA_HH 组成 16 位 SFR xxxxh
ROM_BUF_MOD 8Fh flash-ROM 擦写操作的缓冲区模式寄 存器 xxxx xxxxb
ROM_DAT_BUF 8Eh flash-ROM 擦写操作的数 据缓冲寄存器 xxxx xxxxb
ROM_STATUS 86h flash-ROM 状态寄存器(只读 ) 0000 0000b
Flash-ROM
相关寄存器
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 xxxxh
ROM_DATA_LH 85h flash-ROM 数据寄 存器低字的高 字节 (只读 ) xxxx xxxxb
ROM_DATA_LL 84h flash-ROM 数据寄 存器低字的低字节 (只读 ) xxxx xxxxb
ROM_DATA_LO 84h ROM_DATA_LL 和 ROM_DATA_LH 组成 16 位 SFR xxxxh
XBUS_AUX A2h 外部总 线辅助设置寄 存器 0000 0000b
PIN_FUNC AAh 引脚功能选 择寄存器 0000 0000b
P0_DIR_PU C5h P0 端口方 向控制和上拉使 能寄 存器 1111 1111b
P0_MOD_OC C4h P0 端口输出模式寄 存器 1111 1111b
P4_DIR_PU C3h P4 端口方 向控制和上拉使 能寄 存器 1111 1111b
P4_MOD_OC C2h P4 端口输出模式寄 存器 1111 1111b
P3_DIR_PU 97h P3 端口方 向控制和上拉使 能寄 存器 1111 1111b
P3_MOD_OC 96h P3 端口输出模式寄 存器 1111 1111b
端 口设置
相关寄存器
P2_DIR_PU 95h P2 端口方 向控制和上拉使 能寄 存器 1111 1111b
P2_MOD_OC 94h P2 端口输出模式寄 存器 1111 1111b
P1_DIR_PU 93h P1 端口方 向控制和上拉使 能寄 存器 1111 1111b
P1_MOD_OC 92h P1 端口输出模式寄 存器 1111 1111b
P5 ABh P5 端口输 入输出寄 存器 0010 0000b
P4 C0h P4 端口输 入输出寄 存器 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
0 和 1
相关寄存器
TL0 8Ah Timer0 计 数低字节 xxxx xxxxb
TMOD 89h Timer0/1 方式寄 存器 0000 0000b
TCON 88h Timer0/1 控制寄存器 0000 0000b
UART0
相关寄存器
SBUF 99h UART0 数据寄 存器 xxxx xxxxb
SCON 98h UART0 控制寄存器 0000 0000b
T2CAP1H CFh Timer2 捕捉 1 数据高 字节 (只读 ) xxxx xxxxb
定时 /计 数器
2 相关寄存器
T2CAP1L CEh Timer2 捕捉 1 数据 低字节 (只读 ) xxxx xxxxb
T2CAP1 CEh T2CAP1L 和 T2CAP1H 组成 16 位 SFR xxxxh
TH2 CDh Timer2 计 数器高 字节 0000 0000b
CH549 手册 8
TL2 CCh Timer2 计 数器低字节 0000 0000b
T2COUNT CCh TL2 和 TH2 组成 16 位 SFR 0000h
RCAP2H CBh 计数重载/ 捕捉 2 数 据寄存器高 字节 0000 0000b
RCAP2L CAh 计数重载/ 捕捉 2 数 据寄存器低字节 0000 0000b
RCAP2 CAh RCAP2L 和 RCAP2H 组成 16 位 SFR 0000h
T2MOD C9h Timer2 方式寄 存器 0000 0000b
T2CON C8h Timer2 控制寄 存器 0000 0000b
T2CAP0H C7h Timer2 捕捉 0 数据高 字节 (只读 ) xxxx xxxxb
T2CAP0L C6h Timer2 捕捉 0 数据 低字节 (只读 ) xxxx xxxxb
T2CAP0 C6h T2CAP0L 和 T2CAP0H 组成 16 位 SFR xxxxh
T2CON2 C1h Timer2 扩展控制寄 存器 0000 0000b
PWM_DATA7 A7h PWM7 数据寄 存器 xxxx xxxxb
PWM_DATA6 A6h PWM6 数据寄 存器 xxxx xxxxb
PWM_DATA5 A5h PWM5 数据寄 存器 xxxx xxxxb
PWM_DATA4 A4h PWM4 数据寄 存器 xxxx xxxxb
PWM_DATA3 A3h PWM3 数据寄 存器 xxxx xxxxb
PWMX
相关寄存器
PWM_CTRL2 9Fh PWM 扩展控制寄 存器 0000 0000b
PWM_CK_SE 9Eh PWM 时钟分频 设置寄 存器 0000 0000b
PWM_CTRL 9Dh PWM 控制寄 存器 0000 0010b
PWM_DATA0 9Ch PWM0 数据寄 存器 xxxx xxxxb
PWM_DATA1 9Bh PWM1 数据寄 存器 xxxx xxxxb
PWM_DATA2 9Ah PWM2 数据寄 存器 xxxx xxxxb
SPI0_SETUP FCh SPI0 设置寄 存器 0000 0000b
SPI0_S_PRE FBh SPI0 从机模式预 置数据寄 存器 0010 0000b
SPI0
相关寄存器
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
SIF1 BFh UART1 中断状态 寄存器 0000 0000b
UART1
相关寄存器
SBAUD1 BEh UART1 波特 率设置寄 存器 xxxx xxxxb
SBUF1 BDh UART1 数据寄 存器 xxxx xxxxb
SCON1 BCh UART1 控制寄存器 0100 0000b
SIF2 B7h UART2 中断状态 寄存器 0000 0000b
UART2
相关寄存器
SBAUD2 B6h UART2 波特 率设置寄 存器 xxxx xxxxb
SBUF2 B5h UART2 数据寄 存器 xxxx xxxxb
SCON2 B4h UART2 控制寄存器 0000 0000b
SIF3 AFh UART3 中断状态 寄存器 0000 0000b
UART3
相关寄存器
SBAUD3 AEh UART3 波特 率设置寄 存器 xxxx xxxxb
SBUF3 ADh UART3 数据寄 存器 xxxx xxxxb
SCON3 ACh UART3 控制寄存器 0000 0000b
ADC_PIN F7h ADC 引脚数字输入 控制寄 存器 0000 0000b
ADC/TKEY
相关寄存器
ADC_CHAN F6h ADC 模拟 信号通道选择寄 存器 0000 0000b
ADC_DAT_H F5h ADC 结果数据 的高 字节( 只读) 0000 xxxxb
CH549 手册 9
ADC_DAT_L F4h ADC 结果数据 的低字节( 只读) xxxx xxxxb
ADC_DAT F4h ADC_DAT_L 和 ADC_DAT_H 组成 16 位 SFR 0xxxh
ADC_CFG F3h ADC 配置寄 存器 0000 0000b
ADC_CTRL F2h ADC 控制和 状态寄存器 x000 000xb
TKEY_CTRL F1h 触摸按键充 电脉冲宽 度控制寄 存器(只写 ) 0000 0000b
UEP1_DMA_H EFh 端点 1 缓冲 区起始地 址高 字节 0000 0xxxb
UEP1_DMA_L EEh 端点 1 缓冲 区起始地 址低字节 xxxx xxxxb
UEP1_DMA EEh UEP1_DMA_L 和 UEP1_DMA_H 组成 16 位 SFR 0xxxh
UEP0_DMA_H EDh 端点 0 和 4 缓冲 区起始地 址高字节 0000 0xxxb
UEP0_DMA_L ECh 端点 0 和 4 缓冲 区起始地 址 低字节 xxxx xxxxb
UEP0_DMA ECh UEP0_DMA_L 和 UEP0_DMA_H 组成 16 位 SFR 0xxxh
UEP2_3_MOD EBh 端点 2、 3 模式 控制 寄存器 0000 0000b
UH_EP_MOD EBh USB 主机端点 模式控制寄 存器 0000 0000b
UEP4_1_MOD EAh 端点 1、 4 模式 控制 寄存器 0000 0000b
UEP3_DMA_H E7h 端点 3 缓冲 区起始地 址高 字节 0000 0xxxb
UEP3_DMA_L E6h 端点 3 缓冲 区起始地 址低字节 xxxx xxxxb
UEP3_DMA E6h UEP3_DMA_L 和 UEP3_DMA_H 组成 16 位 SFR 0xxxh
UH_TX_DMA_H E7h USB 主机发 送缓冲区 起始地 址高字节 0000 0xxxb
UH_TX_DMA_L E6h USB 主机发 送缓冲区 起始地 址低字节 xxxx xxxxb
UH_TX_DMA E6h UH_TX_DMA_L 和 UH_TX_DMA_H 组成 16 位 SFR 0xxxh
UEP2_DMA_H E5h 端点 2 缓冲 区起始地 址高 字节 0000 0xxxb
UEP2_DMA_L E4h 端点 2 缓冲 区起始地 址低字节 xxxx xxxxb
UEP2_DMA E4h UEP2_DMA_L 和 UEP2_DMA_H 组成 16 位 SFR 0xxxh
USB
相关寄存器
UH_RX_DMA_H E5h USB 主机接收 缓冲区 起始地 址高字节 0000 0xxxb
UH_RX_DMA_L E4h USB 主机接收 缓冲区 起始地 址 低字节 xxxx xxxxb
UH_RX_DMA E4h UH_RX_DMA_L 和 UH_RX_DMA_H 组成 16 位 SFR 0xxxh
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_RX_LEN DBh USB 接收长 度寄 存器 (只读 ) 0xxx xxxxb
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
CH549 手册 10
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
UDEV_CTRL D1h USB 设备端 口控制寄 存器 00xx 0000b
UHOST_CTRL D1h USB 主机端 口控制寄 存器 00xx 0000b
USB_C_CTRL 91h USB type-C 配置通道控制寄 存器 0000 0000b
5.3 通用 8051 寄存器
表 5.3.1 通用 8051 寄存器 列表
名称 地址
A_INV FDh 累加器的高 低位 倒置 值 00h
B F0h B 寄存器 00h
A、 ACC E0h 累加器 00h
PSW D0h 程序状态寄 存器 00h
全局配 置寄 存器(CH549 引导 程序状态下) E0h
全局配置寄 存器(CH549 应用程序 状态下 ) C0h
GLOBAL_CFG B1h
全局配置寄 存器(CH548 引导 程序状态下 ) A0h
全局配置寄 存器(CH548 应用程序 状态下 ) 80h
CH549 芯片 ID 识别码 (只读 ) 49h
CHIP_ID A1h
CH548 芯片 ID 识别码 (只读 ) 48h
SAFE_MOD A1h 安全模式控制寄 存器( 只写) 00h
PCON 87h 电源控制寄 存器(上 电复 位状态下) 10h
DPH 83h 数据地址 指针高 8 位 00h
DPL 82h 数据地址 指针 低 8 位 00h
DPTR 82h DPL 和 DPH 组成 16 位 SFR 0000h
SP 81h 堆栈指 针 07h
B 寄存器 (B):
描 述 复 位 值
位 名称 访问
[7:0]
A 累加器(A、A CC):
位 名称 访问
[7:0] A/ACC RW 算术运 算累加器,可 按位寻址 00h
程序状态寄 存器(PSW):
位 名称 访问
B RW 算术运算 寄存器,主 要 用于 乘法和 除 法运算 ,可按位 寻址 00h
进位标志位:执行算 术运算 和逻辑 运算 指令时, 用于记录最高 位的
CY RW
进 位或者借位 ; 进行 8 位 加法运 算时,最高 位 进 位, 则该位置位,
否则清零;进行 8 位 减法运算时, 若借位,则该位置位,否 则清零;
逻 辑指令可 使 该位置位或 清零
描述 复 位值
描述 复 位值
描述 复 位值
0
CH549 手册 11
6
AC RW
5
F0 RW 可按位寻址 的 通用标志 位 0:使用者可自己定 义,可软件 清零 或置位
4
RS1 RW 寄存器组选择 位高 位 0
3
RS0 RW 寄存器组选择 位低位 0
2
OV RW
1
F1 RW 可按位寻址 的 通用标志 位 1:使用者可自己定 义,可软件 清零 或置位
0
P RO
辅助进 位标志 位:记录加 减 法运 算时,低 4 位 向高 4 位 有 进 位或借
位,AC 置 位,否则清零
溢 出标志 位: 加减 法运 算 时,运算结果超过 8 位 二 进 制数,则 OV 置
1,标志溢出 ,否则清 0
奇偶 标志 位: 记录指令执行 后 累加器 A 中 1 的 奇偶 性,奇数个 1 则 P
置位,偶 数个 1 则 P 清零
0
0
0
0
0
处 理器的状态保 存 在 状态 寄存器 PSW 中 ,PSW 支持按位 寻址 。 状态 字中包 括 进 位标 志 位,用于
BCD 码处理的 辅助进位标 志位,奇偶标志 位,溢出标志 位,还有用于工 作寄 存器组选择的 RS0 和 RS1。
工 作 寄 存器组所在 的 区域都 可 以 通过 直接 或者间接方式 进行 访问 。
表 5.3.2 RS1 和 RS0 工作 寄存器组选择 表
RS1 RS0 工作 寄 存器组
0 0 0 组 (00h-07h)
0 1
1 0
1 1
1 组 (08h-0Fh)
2 组 (10h-17h)
3 组 (18h-1Fh)
表 5.3.3 影响标志 位的 操作(X 表示标 志 位 与操作 结果 有关 )
操作 CY OV AC 操作 CY OV AC
ADD X X X SETB C 1
ADDC X X X CLR C 0
SUBB X X X CPL C X
MUL 0 X MOV C, bit
DIV 0 X ANL C, bit
DA A X ANL C,/bit
RRC A X ORL C, bit
RLC A X ORL C,/bit
X
X
X
X
X
CJNE X
数据地址 指针(DPTR) :
位 名称 访问
[7:0]
[7:0]
DPL RW 数据 指针 低字节 00h
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,
CH549 手册 12
相 应的默认堆栈存储 从 08h 开 始 。
5.4 特有寄存器
累加 器的高 低位 倒 置值 (A_INV):
位 名称 访问
[7:0]
全局配置寄 存器(GLOBAL_CFG) ,仅在 安 全模式下可写 :
位 名称 访问
[7:6]
[7:6]
5 bBOOT_LOAD
4 bSW_RESET RW 软件复位 控制位:置 1 导致 软件复位,硬件自 动清零 0
3 bCODE_WE RW
2 bDATA_WE RW
1 保留 RO 0
0 bWDOG_EN RW
A_INV RO
保留 RO 对 于 CH549,是固 定值 11 11b
保留 RO 对 于 CH548,是固 定值 10 10b
累加 器的高 低位 倒 置 值 ,位 0~位 7 按位 反 序的结果 ,
A_INV 的位 7、位 6~位 0 分别是 ACC 的位 0、位 1~位 7
Boot loader 状态位,用于区分 I SP 引导程序状态 或者应
用 程序状态 :电 源上 电时置 1, 软件复 位时 清 0 。
RO
对 于有 ISP 引导程序的芯片,该位为 1 说明从未 软件 复位
过,通常 是 上电后运 行的 ISP 引导程序状态 ;该位 为 0
说明已经 软件复位 过,通常 是应用 程序状态
Flash-ROM 写允许位:
该位为 0 则写保护;为 1 则 Flash-ROM 可写可擦
Flash-ROM 的 DataFlash 区域写允许位:
该位为 0 则写保 护;为 1 则 DataFlash 区 域可写可擦
看门狗 复位使 能位: 该位为 0 看门狗只 用作 定时器 ;该位
为 1 允许计时溢 出时 产生看门狗 复位
描述 复 位值
描述 复 位值
00h
1
0
0
0
芯片 ID 识别码 (CHIP_ID) :
位 名称 访问
[7:0]
[7:0]
安 全模式控制寄 存器 (SAFE_MOD) :
位 名称 访问
[7:0] SAFE_MOD
部 分 SFR 仅在 安 全模式 下才 能 写入 数 据 , 而在非 安 全模式下总 是 只读 状态 。进入 安 全模式步骤 :
(1)、向该 寄 存器写入 55h;
(2)、接着向 该寄 存器写入 AAh;
(3)、此后约 13 到 23 个 系统主 频周期都处于安 全模式下 ,该有效 期内可 以改写 一个或 多个安全类
(4)、超出上 述有效 期后自动终止安全模式
(5)、或者再向该 寄 存器写任意值可以 提 前终止安全模式
CHIP_ID RO 对于 CH549,是固 定值 49h, 用于识别芯片 49h
CHIP_ID RO 对于 CH548,是固 定值 48h, 用于识别芯片 48h
WO 用于进入 或者终止安 全模式 00h
SFR 或普 通 SFR
描述 复 位值
描述 复 位值
6、存储器结构
CH549 手册 13
6.1 存储器空间
CH549 寻址空间分为程序存储 空间、内部数 据存储 空间、外部数据 存储空间 、只读 和 OTP 空间 。
图 6.1 存储器结构 图
Internal Data Address Space
FFH
80H
7FH
00H
External Data Address Space
FFFFH
0800H
07FFH
0000H
Upper 128 bytes internal RAM
(indirect addressing by @R0/R1)
Lower 128 bytes internal RAM
(direct or indirect addressing)
Reserved area @xdata
2KB on-chip expanded xRAM @xdata
(indirect addressing by MOVX)
SFR
(Direct addressing)
OTP data
Read Only information
Program Address Space
Configuration information
ROM_CFG_ADDR
Boot Loader Code Flash
BOOT_LOAD_ADDR
Data Flash or Code Flash
DATA_FLASH_ADDR
Application Code Flash
03FH
020H
01FH
000H
FFFFH
FFFEH
FFFDH
F400H
F3FFH
F000H
EFFFH
0000H
6.2 程序存储空间
程序存储 空间共 64KB,如图 6.1 所示,已全部用于 flash-ROM , 包括 保 存指令代码的 Code Flash
区域、 保存 非易失数 据的 Data Flash 区域、以及配 置信息 Configuration Information 区域。
Data Flash(EEPROM)地址范围 为 F000h 到 F3FFH,支持单字节读 (8 位 )、单字节写(8 位)、块
写(1~ 64 字节 )、块 擦除(64 字节 )操作,芯片掉 电后 数 据保持不变 ,也 可用作 Code Flash。
Code Flash 包括低地 址 区 域的应 用 程序代码 和 高地址 区 域的 引导 程序代码 ,也 可 将这 两 块 区 域
以及 Data Flash 合并用于保 存单一应用 程序代码 。
对于 CH548, Code Flash 的应用 程序代 码区域 仅 32KB。
配置信息 Configuration Information 共 16 位数据 ,由编 程器根据需要 设定,参考 表 6.1。
表 6.2 flash-ROM 配置信息描 述
位 地址
15 Code_Protect
14 No_Boot_Load
13 En_Long_Reset
位 名称 说明 建议值
flash-ROM 中的代码 和数据保护 模式:
0-允许读出; 1-禁止编程器 读出,程序保密
使 能 BootLoader 引导代码启动 模式:
0-从 0000h 地址的 应用程序 启动 ;
1-从 F400h 地址的引导程序 启动
使 能上 电 复 位期 间 的 额外 延 时 复 位:
0-标准短复 位; 1-宽复位,额外 增加 44mS 复 位时间
0/1
1
0
CH549 手册 14
12 En_P5.7_RESET 使能 P5.7 作为手工 复位 输入 引脚: 0-禁止;1-使能 RST 1
11 保留 0
10 保留 0
9 Must_1 (由编 程器根据需要 自动设定 为 1) 1
8 Must_0 (由编 程器根据需要 自动设定 为 0) 0
[7:3]
[2:0]
All_0 (由编 程器根据需要 自动设定 为 0 0000b) 00000b
LV_RST_VOL
(Vpot)
选择 电 源 低 压 检测复 位模块 LVR 的 门 限电 压 (误 差 4%):
000 或 001 选择 2.4V;010 选择 2.7V;011 选择 3.0V;100
选择 3.6V; 101 选择 4.0V ; 110 选择 4.3V ; 111 选择 4.6V
6.3 数据 存储空间
内部数据 存储空间共 256 字节,如图 6.1 所示 ,已 全部用于 SFR 和 iRAM,其中 iRAM 用于堆栈
和快速数据暂 存,可细 分为工 作寄 存器 R0-R7 、位变量 bdata 、字节变量 data、idata 等。
外部数据 存储空间共 64KB,如图 6.1 所示,除 了部分用于 2KB 片内扩 充 xRAM, 剩余的 0800h
到 FFFFh 地址范围是保留 区域 。
只 读信息 和 OTP 数据各 32 字节, 如图 6.1 所示,需 要 通 过 专 用操作 实现存取。
6.4 flash-ROM 寄存器
表 6.4 flash-ROM 操作寄 存器 列表
000b
名称 地 址 描 述 复 位 值
ROM_DATA_HH 8Fh flash-ROM 数据寄 存器高 字的高 字节 (只读 ) xxh
ROM_DATA_HL 8Eh flash-ROM 数据寄 存器高 字的低字节 (只读 ) xxh
ROM_DATA_HI 8Eh ROM_DATA_HL 和 ROM_DATA_HH 组成 16 位 SFR xxxxh
ROM_BUF_MOD 8Fh flash-ROM 擦写操作的缓冲区模式寄 存器 xxh
ROM_DAT_BUF 8Eh flash-ROM 擦写操作的数 据缓冲寄存器 xxh
ROM_STATUS 86h flash-ROM 状态寄存器(只读 ) 00h
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
ROM_DATA_LH 85h flash-ROM 数据寄 存器低字的高 字节 (只读 ) xxh
ROM_DATA_LL 84h flash-ROM 数据寄 存器低字的低字节 (只读 ) xxh
ROM_DATA_LO 84h ROM_DATA_LL 和 ROM_DATA_LH 组成 16 位 SFR xxxxh
flash-ROM 地址 寄存器 (ROM_ADDR):
位 名称 访问
[7:0]
ROM_ADDR_H RW flash-ROM 地址 高字节 xxh
描 述 复 位 值
[7:0]
flash-ROM 数据寄 存器 (ROM_DATA_HI、 ROM_DATA_LO):
位 名称 访问
[7:0]
[7:0]
ROM_ADDR_L RW flash-ROM 地址低字节 xxh
描 述 复 位 值
ROM_DATA_HH RO flash-ROM 数据寄 存器高 字 (16 位 )的高 字节 xxh
ROM_DATA_HL RO flash-ROM 数据寄 存器高 字 (16 位 )的低字节 xxh
CH549 手册 15
[7:0]
[7:0]
flash-ROM 擦写操作的缓冲区模式寄 存器 (ROM_BUF_MOD):
位 名称 访问
7 bROM_BUF_BYTE RW
6 保留 RW 保留 x
[5:0]
ROM_DATA_LH RO flash-ROM 数据寄 存器低字 (16 位 )的高 字节 xxh
ROM_DATA_LL RO flash-ROM 数据寄 存器低字 (16 位 )的低字节 xxh
描 述 复 位 值
flash-ROM 擦写操作(擦除或编程 )的缓冲区 模式:
该 位为 0 选择数据 块 编 程 模式, 待 写数 据 存放于 由
DPTR 指向 的 xRAM 中,编程时 CH549 自动 从 xRAM 依
次 取出 数据暂 存于 ROM_DAT_BUF 再写入 flash-ROM ,
支持 1 字节到 64 字 节数据长 度,实际长 度
=MASK_ROM_ADR_END-ROM_ADDR_L[5:0]+1 ;
为 1 选择单字节 编程 或者 64 字节块 擦除模式,待
写数 据直接存放 于 ROM_DAT_BUF 中
在 flash-ROM 数 据块 编程模式 下,为 flash-ROM 块
MASK_ROM_ADDR RW
编程 操作的结束地 址 的低 6 位 (含该 地址 );
在 flash-ROM 单字节编程或者 64 字节块擦除模式
下, 为保留, 建议为 00h
x
xxh
flash-ROM 擦写操作的数 据缓冲寄存器 (ROM_DAT_BUF):
位 名称 访问
[7:0]
flash-ROM 控制寄存器 (ROM_CTRL):
位 名称 访问
[7:0]
flash-ROM 状态寄存器 (ROM_STATUS):
位 名称 访问
7 保留 RO 保留 1
6 bROM_ADDR_OK RO
[5:2]
1 bROM_CMD_ERR RO
0 保留 RO 保留 0
ROM_DAT_BUF
ROM_CTRL
保 留 RO 保 留 0000b
RW flash-ROM 擦写操作的数 据缓冲寄存器 xxh
WO flash-ROM 控制寄存器 00h
flash-ROM 操作地址 有效状态位:
该 位为 0 表示 参 数 无效;为 1 表示 地 址有 效
flash-ROM 操作命令 错误状态位:
该 位为 0 表示 命 令有效 ;为 1 表示 是 未知命 令或 超 时
描述 复 位值
描述 复 位值
描述 复 位值
0
0
6.5 flash-ROM 操作步骤
1、擦除 flash-ROM,将目 标块中 全部数据 位变为 0 :
(1)、使 能安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(2)、设置全局配 置寄 存器 GLOBAL_CFG 开启写使能 (bCODE_WE 或 bDATA_WE 对应 code 或 data);
(3)、设置地址 寄 存器 ROM_ADDR,写入 16 位目 标地址 ,实际仅高 10 位 有效 ;
CH549 手册 16
(4)、设置擦写操作 的缓冲区 模式寄 存器 R OM_BUF_MOD 为 80h, 选择 64 字节块擦除 模式;
(5)、可选 ,设置擦写操作 的数据缓冲寄 存器 R OM_DAT_BUF 为 00h;
(6)、设置操作控制寄 存器 ROM_CTRL 为 0A6h,执行 块擦除操作, 操作 期间 程序自动 暂停运行 ;
(7)、操作完成后程序 恢 复运行,此 时 查询状态寄 存器 ROM_STATUS 可以查看 此 次操作状态;如果
要 擦除 多 个块,则循 环 (3)、 (4) 、 (5) 、 (6) 、 (7) 步骤 ,步 骤 (3) 、 (4) 、 (5) 顺序可对调 ;
(8)、再次 进入 安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(9)、设置全局配 置寄 存器 GLOBAL_CFG 开启写保 护 (bCODE_WE=0, bDATA_WE=0)。
2、单字节写 f lash-ROM,将目 标字节中 部分 数据 位从 0 变为 1(无法将位数 据从 1 变为 0):
(1)、使 能安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(2)、设置全局配 置寄 存器 GLOBAL_CFG 开启写使能 (bCODE_WE 或 bDATA_WE 对应 code 或 data);
(3)、设置地址 寄 存器 ROM_ADDR,写入 16 位目 标地址;
(4)、设置擦写操作 的缓冲区 模式寄 存器 R OM_BUF_MOD 为 80h, 选择单字节编 程模式;
(5)、设置擦写操作 的数据缓冲寄 存器 ROM_DAT_BUF 为要 写入的字节数据;
(6)、设置操作控制寄 存器 ROM_CTRL 为 09Ah,执行写操作, 操作 期间 程序自动 暂停运行 ;
(7)、操作完成后程序 恢 复运行,此 时 查询状态寄 存器 ROM_STATUS 可以查看 此 次操作状态;如果
要 写 多 个数 据 ,则循 环 (3)、 (4) 、 (5) 、 (6) 、 (7) 步骤 ,步 骤 (3) 、 (4) 、 (5) 顺序可对调 ;
(8)、再次 进入 安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(9)、设置全局配 置寄 存器 GLOBAL_CFG 开启写保 护 (bCODE_WE=0, bDATA_WE=0)。
3、块写 f lash-ROM,将多个 目 标字节中 部分 数据 位从 0 变 为 1(无法将位数 据从 1 变 为 0):
(1)、使 能安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(2)、设置全局配 置寄 存器 GLOBAL_CFG 开启写使能 (bCODE_WE 或 bDATA_WE 对应 code 或 data);
(3)、设置地址 寄 存器 ROM_ADDR,写入 16 位起始目标地 址, 例如 1 357h;
(4)、设置擦写操作 的缓冲区 模式寄 存器 R OM_BUF_MOD 为结束目标地 址 (含 )的低 6 位,该结束地
址应 该大于或等 于 ROM_ADDR_L[5:0] 起始 目标地 址 ,选择数据 块 编 程模式, 例如 结束 地 址 为
1364h,则 ROM_BUF_MOD 应该设置为 24h( 64h&3Fh), 计算出数 据块的字节数= 0Dh;
(5)、在 xRAM 中 分配一 个按 64 字节对齐 的缓冲区域,例如 0580h~ 05BFh,用起始目标地 址的低 6
位指定 在该缓冲 区 域中 的 偏移地址,得到 本 次 数 据 块 编 程 操作的 xRAM 缓冲区 起始 地 址 , 将
待写数 据块 从 该 xRAM 缓冲区 起始地 址开 始存 放, 并将该 xRAM 缓冲区 起始地 址置入 DPTR,
例 如 DPTR=0580h+(57h&3Fh)=0597h,实际 本 次编程 操作 只 用到 0597h~ 05A4h 地址的 xRAM ;
(6)、设置操作控制寄 存器 ROM_CTRL 为 09Ah,执行写操作, 操作 期间 程序自动 暂停运行 ;
(7)、操作完成后程序 恢 复运行,此 时 查询状态寄 存器 ROM_STATUS 可以查看 此 次操作状态;如果
要 写 多 个数 据 ,则循 环 (3)、 (4) 、 (5) 、 (6) 、 (7) 步骤 ,步 骤 (3) 、 (4) 、 (5) 顺序可对调 ;
(8)、再次 进入 安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(9)、设置全局配 置寄 存器 GLOBAL_CFG 开启写保 护 (bCODE_WE=0, bDATA_WE=0)。
4、读 flash-ROM:
直接 使用 MOVC 指令, 或通过 指 向 程序存储 空间 的指 针 , 读 取 目 标 地址 的 code 或 data 。
5、单字节写 O TP 数据区域, 将目标 字节中 部分 数据 位从 0 变为 1(无法将位数 据从 1 变为 0):
(1)、使 能安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(2)、设置全局配 置寄 存器 GLOBAL_CFG 开启写使能 (bDATA_WE);
(3)、设置地址 寄 存器 ROM_ADDR,写入目 标地址( 20h~ 3Fh),实际仅低 6 位中 的高 4 位 有效 ;
(4)、设置擦写操作 的缓冲区 模式寄 存器 R OM_BUF_MOD 为 80h, 选择单字节编 程模式;
(5)、设置擦写操作 的数据缓冲寄 存器 ROM_DAT_BUF 为要 写入的字节数据;
CH549 手册 17
(6)、设置操作控制寄 存器 ROM_CTRL 为 099h,执行写操作, 操作 期间 程序自动 暂停运行 ;
(7)、操作完成后程序 恢 复运行,此 时 查询状态寄 存器 ROM_STATUS 可以查看 此 次操作状态;如果
要 写 多 个数 据 ,则循 环 (3)、 (4) 、 (5) 、 (6) 、 (7) 步骤 ,步 骤 (3) 、 (4) 、 (5) 顺序可对调 ;
(8)、再次 进入 安 全模式, SAFE_MOD = 55h; SAFE_MOD = 0AAh;
(9)、设置全局配 置寄 存器 GLOBAL_CFG 开启写保 护 (bCODE_WE=0, bDATA_WE=0)。
6、以 4 字节为 单位读 取 ReadOnly 只读信息 区域 或者 OTP 数 据区域:
(1)、设置地址 寄 存器 R OM_ADDR,写入按 4 字节对齐 的目 标地址(00h~ 3Fh),实际仅低 6 位 有效 ;
(2)、设置操作控制寄 存器 ROM_CTRL 为 08Dh,执行读操作, 操作 期间 程序自动 暂停运行 ;
(3)、操作完成后程序 恢 复运行,此 时 查询状态寄 存器 ROM_STATUS 可以查看 此 次操作状态 ;
(4)、从 flash-ROM 数据寄 存器 ROM_DATA_HI 和 ROM_DATA_LO 中 获得 4 字节数据 。
7、注意事 项:对 flash-ROM/EEPROM 进行擦写操作时,建议只 在-20℃~ 85℃环境 温度 下进行。如
果 在超 出 上述温度范围 时 进行编 程 擦 写操作 ,虽然一 般 情况下是 正 常的, 但 是不 排 除有 降低数据保
持能力 TDR 和降 低擦写次 数 NEPCE 甚至影响数据 准确性 的可 能性 。
6.6 在板 编 程和 ISP 下载
当配置信息 Code_Protect=0 时,CH549 芯片 flash-ROM 中的 代码和数 据可以由外 部的编 程器 通
过同步串 行接口读写; 当配置信息 Code_Protect=1 时, flash-ROM 中的代码 和数据被 保护 ,无法读
出 ,但 是 可 以被 擦除 , 擦除 后重新上电则解 除代码保 护。
当 CH549 芯片被 预置了 BootLoader 引导程序后 , CH549 可以 支持 USB 或者 异步串口等 多种 ISP
下载方式 加载应 用程序;但 在没 有引导程序的情况 下,CH549 只 能由外 部专 用编程器写入 引导程序
或者应 用程序。 为了支持 在板 编程,电路中 需要预留 CH549 与编程器之 间的 4 根连接引 脚,最少 的
必 要连接引 脚 是 3 根 : P1.4、 P1.6 、 P1.7 。
表 6.6.1 与编程器之 间 的连 接 引 脚
引脚 GPIO 引脚描述
RST
SCS
SCK
MISO P1.6 编程状态 下 的数据输出引脚 (必要 )
P5.7 编程状态 下的 复位 控制引脚 (可选 ),高 电平允许进入编 程状态
P1.4 编程状态 下 的片选输 入引 脚(必 要),默认高 电平,低电平有效
P1.7 编程状态 下 的时钟输入 引脚 (必要 )
6.7 芯片唯 一 ID 号
每 只单片机出厂 时 都 具有 唯 一 ID 号,即 芯片 身份识别 号。 该 ID 数据 及其 校验 和 共 8 个字 节,
存储于只 读 信息区 域 的偏移地址为 10h 的区域中 ,具体操作请 参考 C 语言例 子 程序。
表 6.7.1 芯片 ID 地 址表
偏移 地址 ID 数据 描 述
10h、 11h
12h、 13h
14h、 15h
16h、 17h ID 首字、次 字、末 字数据 的 16 位累加和,用于 ID 校验
ID 号可 以配合下 载工 具用于对目 标程序进行 加密 ,一般 的应用 ,只需 使用到 ID 号前 32 位。
ID 首字数据 ,依次 是 ID 号的最 低字节、次 低字节
ID 次字数 据,依 次是 ID 号的次高 字节、高 字节
ID 末字数据 ,依次 是 48 位 ID 号的次最高 字节、最高 字节
6.8 温度传感器 TS 的校 准信息
温度传感器的 校 准信 息 位 于只读 信 息区 域 的 偏移地址为 0Ch 的区域中 。 具体 操作请 参考 C 语言
例子程序。
CH549 手册 18
7、电源管理 、睡眠 及复 位
7.1 外部电 源输 入
CH549 芯片内置 5V 到 3.3V 的低压差 电压调整器 LDO,产生的 3.3V 电 源用于 USB 等模块。CH549
支持 外部 5V 或者 3.3V 甚至 2.8V 电源电 压输 入 , 两种 电 源电 压输 入 模式 参考下表。
外部电源电压
3.3V 或 2.8V
包括小 于 3.6V
5V
包括 大于 3.6V
在电源上电 或者系统 复位后 ,CH549 默认处于运行 状态 。 在性能满足要 求的前 提下,适当 降 低
系统 主 频 可以降 低 运 行 时的功 耗 。当 CH549 完全不 需 要 运行 时,可 以设置 PCON 中 的 PD 进 入睡眠 状
态,睡眠状态下可以 选择通 过 USB 、UART0、 UART1 、SPI0 以 及部分 GPIO 进行外部 唤醒。
VDD 引脚电 压 : 外 部电压 2 .8V ~ 5V
输入外部 3.3V 电 压到 I/O 及电 压调整 器,
必须 对地接 不 小于 0.1uF 退耦 电容
输入外部 5V 电 压到 I/O 及电 压调 整器,
必须 对地接 不 小于 0.1uF 退耦 电容
V33 引脚电 压:内部 USB 电压 3.3V
( 注:睡眠 时 V33 自 动短接到 VDD )
短接 VDD 输入 作为 内部 USB 电源 ,
必须 对地接 不 小于 0.1uF 退耦 电容
内部电压调整 器 3.3V 输出
及 3.3V 内部 USB 电源输 入 ,
必须 对地接 不 小于 0.1uF 退耦 电容
7.2 电源 和睡眠控制 寄 存器
表 7.2.1 电源和 睡眠控制 寄 存器 列表
名称 地址
WDOG_COUNT FFh 看门狗计数 寄存器 00h
RESET_KEEP FEh 复位 保持寄 存器 00h
POWER_CFG BAh 电源管理配置寄 存器 0xh
WAKE_CTRL A9h 睡眠唤醒控制 寄存器 00h
PCON 87h 电源控制 寄 存器 10h
描述 复 位值
看门狗计数 寄存器 (WDOG_COUNT):
位 名称 访问
[7:0] WDOG_COUNT
复 位保 持寄 存器 (RESET_KEEP) :
位 名称 访问
[7:0] RESET_KEEP
电源管理配置寄 存器(POWER_CFG) ,仅在 安 全模式下可写:
位 名称 访问
7 bPWR_DN_MODE RW
6 bUSB_PU_RES RW
看门狗当 前计数, 计 满 0FFh 转 向 00h 时 溢 出, 溢 出时 自
RW
动 设置中断 标 志 bWDOG_IF_TO 为 1
复位 保持寄 存器,数 值 可 以 被人 为修改,除了上 电 复位 可
RW
将 其 清零 之外,其它 任 何复位都不 影响该 数值
选择睡眠下 电模式:
该位为 0 选择下电/深 度 睡眠 模式,更省 电但唤醒 慢;
该位为 1 选择待机/正 常睡眠 模式,唤醒 快
选择 USB 上拉电 阻的 阻值:
该位为 0 选择 1 .5KΩ阻值 ,用于 V33 为 3.3V 的情况;
该位为 1 选择 7KΩ 阻值, 用于 V33 为 5V 的情况
描 述 复 位 值
00h
描 述 复 位 值
00h
描 述 复 位 值
0
0
CH549 手册 19
5 bLV_RST_OFF RW
低 压复 位检测模块的 关闭控制 , 该 位 为 0 启 用 电 源电
压检测并在 低 压时 产生复 位信号;为 1 关闭低压检测
USB 电源调整 器 LDO 的关闭控制(睡眠时 自动关闭 ):
4 bLDO_3V3_OFF RW
该 位为 0 则由 VDD 电 源产生 3.3V 电压用于 USB 等模块;
为 1 则禁 用 LDO 并 内部短 接 V33 到 VDD
内核电 压 模式:
3 bLDO_CORE_VOL RW
该位为 0 是正 常电压 模式;
该位为 1 是提升 电压 模式,性 能更好 ,支持更高 主频
选择 在下电/深 度 睡眠 模式 下 的数据保 持电 源 电 压 :
000 选择 2.0V; 001 选择 1.9V; 010 选择 1.8V;
011 选择 1.7V; 100 选择 1.6V; 101 选择 1.5V;
[2:0] MASK_ULLDO_VOL RW
110 选择 1.4V; 111 选择 1.3V。
上 述为相对 参考 值 , 在 5V 供电 下 不 用 调节 ;
如采 用 3.3V 供电, 建议先 读取,低 3 位减去 2 (如原
值小于 2 则 结果清 0),并在安 全模式下写回 以选择相
对高两档的数据保 持电压
睡眠唤醒 控制 寄 存器(WAKE_CTRL) , 仅在安 全模式 下可写 :
位
名称 访问
描述 复 位值
bWAK_BY_USB RW USB 事件唤醒使 能, 该位为 0 禁止唤醒 0
6
bWAK_RXD1_LO RW
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
UART1 接收输入 低电平唤醒使 能,为 0 禁止唤醒 。
根 据 bUART1_PIN_X=0/1 选择 RXD1 或 RXD1_引 脚
2 bWAK_P57H_INT3L RW P5.7 高电平和 I NT3 低电平唤醒使 能,为 0 禁止唤醒 。 0
1 bWAK_INT0E_P33L RW
0
bWAK_RXD0_LO RW
INT0 边沿变化和 P3.3 低电平唤醒使 能,为 0 禁止唤醒。
其 中 INT0 根据 bINT0_PIN_X=0/1 选择 INT0 或 INT0_ 引 脚
UART0 接收输入 低电平唤醒使 能,为 0 禁止唤醒 。
根 据 bUART0_PIN_X=0/1 选择 RXD0 或 RXD0_引 脚
0
0
0
xxxb
0
0
0
电压 比较 器的唤醒使 能由 bCMP_EN 控制,当 bCMP_EN 为 1 时,如果比较 器结果反生变 化则 自动唤醒。
电源控制寄 存器(PCON) :
位
6
5
4
3
2
1
0
名称 访问
SMOD RW
当 用定时器 1 产生 UART0 波 特 率 时, 选择 UART0 模式 1、
2、 3 的通讯波 特率 : 0-慢速模式; 1-快速模式
描 述 复 位 值
0
保 留 RO 保留 0
bRST_FLAG1 R0 芯片最近 一次复位标志高 位 0
bRST_FLAG0 R0 芯片最近 一次复位标志 低位 1
GF1 RW 通用标志 位 1:使用者可自己定 义, 可软件清零 或 置位 0
GF0 RW 通用标志 位 0:使用者可自己定 义, 可软件清零 或 置位 0
PD RW
睡眠 模式使 能,置 1 后睡眠 , 唤醒后硬 件 自动清零。
强烈建议在睡眠前关 闭 全局中断(EA=0)。
0
保 留 RO 保留 0
CH549 手册 20
表 7.2.2 芯片最近 一 次复位标志描 述
bRST_FLAG1 bRST_FLAG0
0 0 软件复位,来 源: bSW_RESET=1 并且 (bBOOT_LOAD=0 或 bWDOG_EN=1)
0 1
1 0
1 1
电 源上电 复 位 或 低 压检测 复 位, 来源:VDD 引脚电 压 低 于 检测电平
看门狗复位,来源 : bWDOG_EN=1 并且 看门狗超时 溢出
外部引 脚手 工复位,来 源:En_P5.7_RESET=1 并且 P5.7 输 入高电平
复 位标志描 述
7.3 复位 控制
CH549 有 5 个复位源 :上 电 复位和电源 低压 检测复 位、外 部 复位、软件复位、 看门狗复 位,后
三 者 属 于 热 复位。
7.3.1 上电复 位和电 源低 压检测复 位
上 电复 位 POR 由 片内 上 电检测电路产生 , 并经由硬件自 动延 时 Tpor 以保 持 复 位 状态,延时结束
后 CH549 运行。
电 源 低 压 检测 复位 LVR 由 片内电 压 检测电路 产生 。 LVR 电路持 续监控 VDD 引脚 的电 源 电 压 ,低
于检测电平 Vpot 时 产生 低压 复位,并由硬件 自动延时 Tpor 以保持复位 状态 , 延时结束后 CH549 运
行。
只 有上电 复 位和电源 低 压 检测 复 位 才使 CH549 重 新 加载配 置信息 以及 清零 RESET_KEEP ,其 它 热
复 位 不 影响。
7.3.2 外部复 位
外部复 位由 外加于 RST 引 脚的 高电平 产生。 当配置信息 En_P5.7_RESET 为 1,并且 RST 引 脚上
的高 电平持续 时间大于 Trst 时触发复 位过 程。当外加 高 电平信号撤消后 ,硬件自 动延 时 Trdl 以保
持复 位状态 ,延 时结束后 CH549 从 0 地址 开始执行。
7.3.3 软件复位
CH549 支持内部软件复 位,以便不需要外 部干预 即可 主动复 位 CPU 状态并 重新 运行。设置全 局
配 置寄 存器 GLOBAL_CFG 中 的 bSW_RESET 为 1 , 即可软件复位,并且 自 动延时 Trdl 以保 持 复 位 状态 ,
延时结束 后 CH549 从 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 将不
产生新 的复 位标 志, 而是 保 持 前一次 的 复 位标 志不变 。
对于有 ISP 引导程序的芯片,电源上 电 复位后 ,先 运行引导程序,该 程序根 据需要 软件复位芯
片以 切 换 到应用 程序 状态 , 此次软件 复 位只 导 致 bBOOT_LOAD 清零,不影响 bRST_FLAG1/0 的 状态 (由
于复位前 bBOOT_LOAD=1) ,所 以当切 换到应 用程序状态时, bRST_FLAG1/0 仍指 示为上电 复位 状态。
7.3.4 看门狗复位
看门狗复位由 看门狗定时器超 时溢出 时产生。 看门狗定时器是 8 位计 数器,其计 数的时钟频率
为 系统主 频 Fsys/131072, 当 计满 0FFh 转向 00h 时产生溢出 信号。
看门狗定时器溢出 信号将 触发中断 标志 bWDOG_IF_TO 为 1,该中断 标志在 重新加载 WDOG_COUNT
时 或者进入 相 应 的 中断服务 程序时 被自动清零 。
通过向 WDOG_COUNT 写入不 同的 计数初始值 ,从而实现不同 的定时周期 Twdc 。在 12MHz 主频 下,
写入 00h 时的看 门狗定时周期 Twdc 约 为 2.8 秒, 写入 80h 时约 为 1.4 秒。
如果看门狗定时器 溢出时 bWDOG_EN=1,那么产生看门狗 复位,并且 自动延时 Trdl 以 保持 复位
状态 ,延 时 结束 后 CH549 从 0 地 址 开 始执 行。
CH549 手册 21
当 bWDOG_EN=1 时为 了 避免被 看门狗 复位,必须 及时 重 置 WDOG_COUNT,避免其溢出 。
8、系统 时钟
8.1 时钟框图
图 8.1.1 时钟系统 及 结构 图
内部时钟24MHz
XI
外部 晶振
XO
bOSC_EN_INT
bOSC_EN_XT
Fpll
1
0
Fosc
4xPLL倍频 器
Fosc x 4 = 96MHz
Fsys
bADC_CLK0/1
USB时钟分频 器
Fpll / 2 = 48MHz
系统时钟分频选择
MASK_SYS_CK_SEL
分频器
PWM_CK_SE
分频器
USB
PWMX
ADC
UART1/2/3
分频器
Fsys
SPI0_CK_SE
分频器
除以131072
E8051_core
T0/T1/T2/UART0/GPIO
FlashROM/iRAM/SFR
SPI0
xRAM
Watch-DOG
内部时钟或者外 部时钟经过 二选 一后 作为原始时钟 Fosc,再经过 PLL 倍频后 产生 Fpll 高频时
钟, 最后经过 两 组 分 频器 分 别得到系统时钟 Fsys 和 USB 模 块的时钟 Fusb4x 。 系统时钟 Fsys 直接 提
供给 CH549 的各 个模块。
8.2 寄存器 描述
表 8.2.1 时钟控制寄 存器 列表
名称 地址 描述 复 位值
CLOCK_CFG
B9h 系统时钟配 置寄 存器
83h