CSU32P10 用户手册
带 12-bit ADC 的 8 位 RISC OTP MCU
REV 1.1
通讯地址:深圳市南山区蛇口南海大道 1079 号花园城数码大厦 A 座 9 楼
邮政编码:518067
公司电话:+(86 755)86169257
传
真:+(86 755)86169057
公司网站:www.chipsea.com
微 信 号:芯海科技
微信二维码:
REV1.1
第 1 页,共 89 页
CSU32P10
版本历史
历史版本.
REV 1.0
REV 1.1
修改内容
1、与 CSU8RP30113BA 相比,SAR ADC 增加
差分模式,兼容单端模式;OTP 由
1K*14bite 变成 2K*14bite
1、 WDT 时钟常温精度修改为±20%,全温
度全电压修改为±30%
REV1. 1
版本日期
2017-3-15
2019-11-13
第 2 页,共 89 页
CSU32P10
目 录
版本历史 ................................................................................................................................................................. 2
目 录 ...................................................................................................................................................................... 3
1
产品概述 ......................................................................................................................................................... 5
1.1
1.2
1.3
2
功能描述 ................................................................................................................................................. 5
主要特性 ................................................................................................................................................. 5
PIN 配置 .................................................................................................................................................. 6
标准功能 ......................................................................................................................................................... 8
2.1
CPU 核..................................................................................................................................................... 8
2.1.1
存储器 ........................................................................................................................................... 10
2.1.2
状态寄存器 ................................................................................................................................... 12
2.1.3
SFR ................................................................................................................................................ 13
2.2
时钟系统 ............................................................................................................................................... 15
2.2.1
概述 ............................................................................................................................................... 15
2.2.2
时钟框图 ....................................................................................................................................... 15
2.2.3
寄存器 ........................................................................................................................................... 15
2.2.4
内部高速 RC 时钟 ........................................................................................................................ 15
2.2.5
内部低速 wdt 时钟........................................................................................................................ 16
2.3
复位系统 ............................................................................................................................................... 17
2.3.1
上电复位 ....................................................................................................................................... 18
2.3.2
看门狗复位 ................................................................................................................................... 18
2.3.3
掉电复位 ....................................................................................................................................... 18
2.3.4
外部硬件复位 ............................................................................................................................... 19
2.4
中断 ....................................................................................................................................................... 20
2.4.1
中断使能寄存器 ........................................................................................................................... 21
2.4.2
中断标志寄存器 ........................................................................................................................... 22
2.4.3
外部中断 0 .................................................................................................................................... 23
2.4.4
外部中断 1 .................................................................................................................................... 23
2.4.5
AD 中断溢出 ................................................................................................................................. 25
2.4.6
定时器 0 溢出中断........................................................................................................................ 25
2.4.7
定时/计数器 2 溢出中断............................................................................................................... 25
2.4.8
定时/计数器 3 溢出中断............................................................................................................... 25
2.4.9
PUSH 和 POP 处理 ....................................................................................................................... 25
2.5
定时器 0 ................................................................................................................................................ 26
2.6
I/O PORT ............................................................................................................................................... 28
2.6.1
PT1 口 ............................................................................................................................................ 28
2.6.2
PT3 口 ............................................................................................................................................ 30
2.6.3
PT5 口 ............................................................................................................................................ 31
3
增强功能 ....................................................................................................................................................... 33
3.1
HALT 和 SLEEP 模式 .............................................................................................................................. 33
3.2
看门狗(WDT)........................................................................................................................................ 35
3.3
定时/计数器 2 ....................................................................................................................................... 37
3.3.1
寄存器描述 ................................................................................................................................... 37
3.3.2
蜂鸣器 ........................................................................................................................................... 39
3.3.3
PWM .............................................................................................................................................. 40
REV1. 1
第 3 页,共 89 页
CSU32P10
3.4
定时/计数器 3 ....................................................................................................................................... 41
3.4.1
寄存器描述 ................................................................................................................................... 41
3.4.2
蜂鸣器 ........................................................................................................................................... 44
3.4.3
PWM .............................................................................................................................................. 44
3.4.4
互补式 PWM 输出 ........................................................................................................................ 45
3.5
模数转换器(ADC) ........................................................................................................................... 47
3.5.1
寄存器描述 ................................................................................................................................... 47
3.5.2
转换时间 ....................................................................................................................................... 50
3.5.3
AD 失调电压校正 ......................................................................................................................... 52
3.5.4
数字比较器 ................................................................................................................................... 53
3.5.5
内部测量 VDD 的电压 ................................................................................................................. 55
3.6
数据查表 ............................................................................................................................................... 56
3.7
输入逻辑电平电压配置 ....................................................................................................................... 57
3.8
输出电流配置 ....................................................................................................................................... 58
3.9
烧录模块 ............................................................................................................................................... 59
3.10
代码选项 ........................................................................................................................................... 60
4
MCU 指令集 ................................................................................................................................................. 61
5
电气特性 ....................................................................................................................................................... 76
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
6
极限值 ................................................................................................................................................... 76
直流特性(VDD = 5V,TA = 25ºC,如无其他说明则都是此条件) .............................................. 76
ADC 特性(VDD = 5V,TA = 25ºC,如无其他说明则都是此条件) ............................................. 77
16MHZ IRC 时钟频率特性 ................................................................................................................... 78
WDT 时钟频率特性 ............................................................................................................................. 78
2.0V 掉电复位温度特性 ....................................................................................................................... 79
2.4V 低电压复位温度特性 ................................................................................................................... 79
3.6V 低电压复位温度特性 ................................................................................................................... 79
1.4V 内部参考电压温度特性 ............................................................................................................... 80
2.0V 内部参考电压温度特性 ............................................................................................................... 80
3.0V 内部参考电压温度特性 ............................................................................................................... 80
4.0V 内部参考电压温度特性 ............................................................................................................... 81
封装图 ........................................................................................................................................................... 82
6.1
SOP-8PIN ............................................................................................................................................... 82
6.2
DIP-8PIN ................................................................................................................................................ 83
6.3
MSOP-10PIN .......................................................................................................................................... 83
6.4
DIP-14PIN .............................................................................................................................................. 84
6.5
SOP-14PIN ............................................................................................................................................. 86
6.6 TSSOP-14PIN ............................................................................................................................................... 87
7
单片机产品命名规则 ................................................................................................................................... 87
7.1
7.2
7.3
产品型号说明 ....................................................................................................................................... 87
命名举例说明 ....................................................................................................................................... 89
产品印字说明 ....................................................................................................................................... 89
REV1. 1
第 4 页,共 89 页
CSU32P10
1
1.1
产品概述
功能描述
CSU32P10 是一个带 12-bit ADC 的 8 位 CMOS 单芯片 RISC MCU,内置 2K×14 位 OTP 程序存储器。
1.2
主要特性
高性能的 RISC CPU
专用微控制器的特性
8 位单片机 MCU
2K×14 位程序存储器 OTP
64 字节数据存储器(SRAM)
只有 42 条单字指令
8 级 PC 存储堆栈,8 级 PUSH 和 POP 堆栈
支持 ISP
振荡器
内带 16MHz 振荡器,精度为±1%@5V,25ºC
外设特性
11 位双向 I/O 口,1 位输入口
2 路 PWM 输出,2 路蜂鸣器输出
1 路死区可调的互补 PWM
4 个内部中断,2 个外部中断
8 个具有唤醒功能的输入口
5 路外部通道+3 路特殊通道 12-bitADC
上电复位(POR)
上电复位延迟定时器(98ms)
内带 1.6V、2.0V、2.4V、3.6V 低电压复位
定时器 0
—8 位可编程预分频的 8 位的定时器
定时/计数器 2
— 12 位可编程预分频的 12 位的分频器
定时/计数器 3
— 12 位可编程预分频的 12 位的分频器
扩展型看门狗定时器(32K WDT)
— 可编程的时间范围
CMOS 技术
— 内部 1.4V、2.0V、3.0V、4.0V、VDD、
外部输入六种参考电压选择
— 带数字比较器
提供一个 1.4V、2.0V、3.0V、4.0V 参考电压
输出,精度±1%@5V,25 ºC
低电压检测(LVD)引脚,内部提供 2.4V、
3.6V 电压比较
3 个开漏输出口
输入逻辑电平电压可配置
PWM IO 口灌电流最大可配置为 50mA@5V
工作电压范围
— 2.4V~5.5V
工作温度范围
— -40~85 ºC
低功耗特性
MCU 工作电流
— 正常模式
0.8mA@fosc=16MHz,fcpu=4MHz,3V
— 正常模式 6uA@32KHz,3V
— 休眠模式下的电流小于 1μA
封装
SOP8/DIP8
MSOP10
SOP14/DIP14
应用范围
移动电源
小家电,玩具
REV1. 1
第 5 页,共 89 页
CSU32P10
1.3
PIN 配置
VDD
1
2
P1.4/INT1/PDA
3
P1.3/RST/INT1/VPP
4
CSU32P10-SO8
P1.5/INT1/PCL
8
VSS
7
P3.2/INT1/AIN2
6
P3.1/INT1/AIN1
5
P3.0/INT1/AIN0/VREF
P5.0/BZ2/PWM2
注:PT3.0 和 PT5.0 是封装在一个 PIN 脚,使用 PT3.0 口功能,通过程序把 PT5.0 配置为数字输入
口;使用 PT5.0 口功能,通过程序把 PT3.0 配置为数字输入口。
1
P1.5/INT1/PCL
2
P1.4/INT1/PDA
3
P1.3/RST/INT1/VPP
4
P5.1/BZ3/PWM3/PWM3H
5
CSU32P10-MS10
VDD
10
VSS
9
P3.3/AIN3
8
P3.2/INT1/AIN2
7
P3.1/INT1/AIN1/PWM2
6
P3.0/INT1/AIN0/VREF &
P5.0/BZ2/PWM2/PWM3L
注:PT3.0 和 PT5.0 是封装在一个 PIN 脚,使用 PT3.0 口功能,通过程序把 PT5.0 配置为数字输入
口;使用 PT5.0 口功能,通过程序把 PT3.0 配置为数字输入口。
VDD
1
2
P1.4/INT1/PDA
3
P1.3/RST/INT1/VPP
4
P5.1/BZ3/PWM3/PWM3H
5
P5.0/BZ2/PWM2/PWM3L
6
P1.1/INT1/T3
7
CSU32P10-SO14
P1.5/INT1/PCL
表1
14
VSS
13
P3.4/AIN4
12
P3.3/AIN3
11
P3.2/INT1/AIN2
10
P3.1/INT1/AIN1/PWM2
9
P3.0/INT1/AIN0/VREF
8
P1.0/INT0/T2
引脚说明表
REV1. 1
第 6 页,共 89 页
CSU32P10
管脚名称
32P10DIP8
管脚序
号
32P10MSOP10
管脚序
号
32P10DIP14
管脚序
号
描述
VDD
P1.5/INT1/PCL
输
入
/
输
出
P
I/O
1
2
1
2
1
2
P1.4/INT1/PDA
I/O
3
3
3
P1.3/ RST /INT1/VPP
I
4
4
4
P5.1/BZ3/PWM3/PWM3H
I/O
-
5
5
P5.0/BZ2/PWM2/PWM3L
I/O
5
6
6
P1.1/INT1/T3
I/O
-
-
7
P1.0/INT0/T2
I/O
-
-
8
P3.0/
INT1/AIN0/VREF
P3.1/
INT1/AIN1/PWM2
P3.2/ INT1/AIN2
I/O
5
6
9
I/O
6
7
10
I/O
7
8
11
P3.3/AIN3
P3.4/AIN4
VSS
I/O
I/O
P
8
9
10
12
13
14
电源
IO;外部中断 1 输入,具有唤醒功能;
烧录时钟线
IO;外部中断 1 输入,具有唤醒功能;
烧录数据线
普通输入口;复位输入;外部中断 1 输
入,具有唤醒功能;烧录电压
IO;蜂鸣器输出;PWM3 输出; 互补式
PWM3H 输出;具有开漏输出功能
IO;蜂鸣器输出;PWM2 输出; 互补式
PWM3L 输出;具有开漏输出功能
IO;外部中断 1 输入;具有唤醒功能;
具有开漏输出功能;定时/计数器 3 外部
输入;
IO;外部中断 0 输入;具有唤醒功能;
定时/计数器 2 外部输入;
IO;外部中断 1 输入,具有唤醒功能;
ADC 输入 0;ADC 参考电压输入
IO;外部中断 1 输入,具有唤醒功能;
ADC 输入 1;PWM2 输出
IO;外部中断 1 输入,具有唤醒功能;
ADC 输入 2;
IO;ADC 输入 3
IO;ADC 输入 4
地
REV1. 1
第 7 页,共 89 页
CSU32P10
2
标准功能
CPU 核
2.1
Program Bus
(11 bits)
SRAM
Data memory
64 bytes
Address
Mux
Program
Counter
Stack Register
8 Level
OTP
Program Memory
2K*14bits
Program Data
(14 bits)
Data Bus (8 bits)
Instruction
Register
FSR
Data
Mux
Instruction
Decoder
Work
Register
ALU
Control information
Status
Register
图1
CSU32P10 CPU 核的功能模块图
从 CPU 核的功能模块图中,可以看到它主要包含 7 个主要寄存器及 2 个存储器单元。
REV1. 1
第 8 页,共 89 页
CSU32P10
表2
模块名称
程序计数器
栈寄存器
指令寄存器
指令译码器
算术逻辑单元
工作寄存器
状态寄存器
文件选择寄存器
程序存储器
数据存储器
MCU 架构说明
描述
此寄存器在 CPU 的工作周期间起到很重要的作用,它记录 CPU 每个周期处理程
序存储器中指令的指针。在一个 CPU 周期中,程序计数器将程序存储器地址
(10bits),指令指针推送到程序存储器,然后自动加 1 以进行下一次周期。
堆栈寄存器是用来记录程序返回的指令指针。当程序调用函数,程序计数器会将
指令指针推送到堆栈寄存器。在函数执行结束之后,堆栈寄存器会将指令指针送
回到程序计数器以继续原来的程序处理。
程序计数器将指令指针(程序存储器地址)推送到程序存储器,程序存储器将程
序存储器的数据(16bits)推送到指令寄存器 。
CSU32P10 的指令是 14bits,包括 3 种信息:直接地址,立即数及控制信息。
直接地址(8bits) :数据存储器的地址。CPU 能利用此地址来对数据存储器
进行操作。
直接数据
(8bits) :CPU 通过 ALU 利用此数据对工作寄存器进行操作。
控制信息 :它记录着 ALU 的操作信息。
指令寄存器将控制信息推送到指令译码器以进行译码,然后译码器将译码后的信
息发送到相关的寄存器。
算术逻辑单元不仅能完成 8 位二进制的加,减,加 1,减 1 等算术计算,还能对 8
位变量进行逻辑的与,或,异或,循环移位,求补,清零等逻辑运算。
工作寄存器是用来缓存数据存储器中某些存储地址的数据。
当 CPU 利用 ALU 处理寄存器数据时,如下的状态会随着如下顺序变化:PD,
TO,DC,C 及 Z。
在 CSU32P10 的指令集中,FSR 是用于间接数据处理(即实现间接寻址)。用户
可以利用 FSR 来存放数据存储器中的某个寄存器地址,然后通过 IND 寄存器对这
个寄存器进行处理。
CSU32P10 内带 2K×14 位的 OTP 作为程序存储器。由于指令的操作码
(OPCODE)是 14bits,用户最多只能编程 2K 的指令。程序存储器的地址总线是
11bits,数据总线是 14bits。
CSU32P10 内带 64 bytes 的 SRAM 作为数据存储器。此数据存储器的地址总线是
7bits,数据总线是 8bits。
REV1. 1
第 9 页,共 89 页
CSU32P10
2.1.1 存储器
(1)程序存储器
程序存储器主要用于指令的存储,在 CSU32P10 中,该程序存储器是 2K*14bit 的程序 OTP,对于
程序员来说,该存储器只读,不可以写入。系统的 reset 地址为 000H,中断入口地址为 004H,需要注
意的一点就是所有的中断共用同一个中断入口地址。
Reset Vector
0x000
Interrupt Vector
0x004
Program Counter
Stack
Stack
Stack
Stack
Stack
Stack
Stack
Stack
Level1
Level2
Level3
Level4
Level5
Level6
Level7
Level8
0x7FF
图2
REV1. 1
程序存储器
第 10 页,共 89 页
CSU32P10
(2)数据存储器
数据存储器主要用于程序运行过程中,全局以及中间变量的存储。该存储器分为三个部分。地址
的 00H 至 07H 是系统特殊功能寄存器,例如间接地址,间接地址指针,状态寄存器,工作寄存器,中
断标志位,中断控制寄存器。地址的 08H 至 3FH 外设特殊功能寄存器,例如 IO 端口,定时器,系统
特殊功能寄存器和外设特殊功能寄存器是用寄存器实现,而通用数据存储器是 RAM 实现,可以读出也
可以写入。
表3
数据存储器
系统特殊功能寄存器
外设特殊功能寄存器
通用数据存储器
数据存储器地址分配
起始地址
00H
08H
40H
结束地址
07H
3FH
7FH
通过 IND0 以及 FSR0 这两个寄存器可以对数据存储器以及特殊功能寄存器进行间接访问。当从间
接地址寄存器(IND0)读入数据时,MCU 实际上是以 FSR0 中的值作为地址去访问数据存储器得到
数据。当向间接寄存器(IND0)写入数据时,MCU 实际上是以 FSR0 中的值作为地址去访问数据存
储器将值存入该地址。其访问方式见。
Data Memory
FSR0
00H
IND0
40H
40H
97H
97H
7FH
图3
REV1. 1
间接地址访问
第 11 页,共 89 页
CSU32P10
2.1.2 状态寄存器
状态寄存器包含 ALU 的算术状态及复位状态。状态寄存器类似于其它寄存器,可以作为任何指令
的目标寄存器。如果状态寄存器是某条指令的目标寄存器,而且影响到 Z,DC 或 C 位,那么对这三个
位的写是无效的。这些位是由器件逻辑进行置位或清零。TO 及 PD 位是硬件置 1 软件置 0。
状态寄存器(地址为 04h)
特性
R-0
R-0
STATUS
LVD36
LVD24
Bit7
Bit6
Bit 7
Bit 6
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
U-0
Bit5
R-0
PD
Bit4
R-0
TO
Bit3
R/W-0
DC
Bit2
R/W-0
C
Bit1
R/W-0
Z
Bit0
LVD36:3.6V LVD 工作电压标志,只有当代码选项 LVD_SEL 为 2’b01 和 2’b10 有效
1:系统工作电压低于 3.6V,说明低电压检测器已处于监控状态
0:系统工作电压超过 3.6V,低电压检测器没有工作
LVD24:2.4V LVD 工作电压标志,只有当代码选项 LVD_SEL 为 2’b01 有效
1:系统工作电压低于 2.4V,说明低电压检测器已处于监控状态
0:系统工作电压超过 2.4V,低电压检测器没有工作
PD:掉电标志位。通过对此位写 0 清零,sleep 后置此位
1:执行 SLEEP 指令后
0:上电复位后或硬件复位或 CLRWDT 指令之后
TO:看门狗定时溢出标志。通过对此位写 0 清零,看门狗定时溢出设置此位
1:看门狗定时溢出发生
0:上电复位后或硬件复位或 CLRWDT 指令后或 SLEEP 指令后
DC:半字节进位标志/借位标志
用于借位时,极性相反
1:结果的第 4 位出现进位溢出
0:结果的第 4 位不出现进位溢出
C: 进位标志/借位标志
用于借位时,极性相反
1:结果的最高位(MSB)出现进位溢出
0:结果的最高位(MSB)不出现进位溢出
Z:零标志
1:算术或逻辑操作结果为 0
0:算术或逻辑操作结果不为 0
特性(Property):
R = 可读位
-n = 上电复位后的值
W = 可写位
‘1’ = 位已设置
U = 无效位
‘0’= 位已清零
REV1. 1
X = 不确定位
第 12 页,共 89 页
CSU32P10
2.1.3 SFR
特殊功能寄存器(SFR)包含系统专用寄存器和辅助专用寄存器。
系统专用寄存器用于完成 CPU 核的功能,由间接地址,间接地址指针,状态寄存器,工作寄存
器,中断标志及中断控制寄存器。
辅助专用寄存器是为辅助功能而设计,比如 I/O 口,定时器,信号的条件控制寄存器。
表4
地
名称
址
00h IND0
02h FSR0
04h STATUS
05h WORK
06h INTF
07h INTE
0Ah EADRH
0Bh EADRL
0Ch EDATH
0Dh WDTCON
0Eh WDTIN
0Fh TM0CON
10h TM0IN
11h TM0CNT
16h MCK
17h TM2CON
18h TM2IN
19h TM2CNT
1ah TM2R
1bh TM3CON
1ch TM3IN
1dh TM3CNT
1eh TM3R
1fh TM3INH
20h PT1
21h PT1EN
22h PT1PU
23h PT1CON
24h TM2INH
25h TM2CNTH
26h TM2RH
27h TM3CNTH
28h PT3
29h PT3EN
2ah PT3PU
2bh PT3CON
2ch TM3RH
2dh TM3CON2
2eh METCH1
寄存器列表
上电复位
值
xxxxxxxx
以 FSR0 中内容作为地址的数据存储器中的数据
00000000
间接数据存储器的地址指针 0
LVD36 LVD24
PD
TO
DC
C
Z
xxu00000
00000000
工作寄存器
TM2IF
TM0IF SRADIF
E1IF
E0IF u0u00u00
GIE
TM2IE
TM0IE SRADIE
E1IE
E0IE 00u00u00
PAR[9:8]
uuuuuu00
PAR[7:0]
00000000
EDATH[5:0]
uu000000
WDTEN
WTS[2:0]
0uuuu000
WDTIN[7:0]
11111111
T0EN
T0RATE[2:0]
T0RSTB
T0SEL[1:0]
0000u100
TM0IN[7:0]
11111111
TM0CNT[7:0]
00000000
CST_WDT
uu1uuuuu
T2EN
T2RATE[2:0]
T2CKS T2RSTB
T2OUT PWM2OUT 00000100
TM2IN[7:0]
11111111
TM2CNT[7:0]
00000000
TM2R[7:0]
00000000
T3EN
T3RATE[2:0]
T3CKS T3RSTB
T3OUT PWM3OUT 00000100
TM3IN[7:0]
11111111
TM3CNT[7:0]
00000000
TM3R[7:0]
00000000
TM3INH[11:8]
uuuu0000
PT1[5:3]
PT1[1:0]
uuxxxuxx
PT1EN[5:3]
PT1EN[1:0]
uu000u00
PT1PU[5:3]
PT1PU[1:0]
uu000u00
PT11OD
PT1W[3:0]
E1M
E0M[1:0]
00000000
TM2IN[11:8]
uuuu0000
TM2CNT[11:8]
uuuu0000
TM2R[11:8]
uuuu0000
TM3CNT[11:8]
uuuu0000
PT3[4:0]
uuuxxxxx
PT3EN[4:0]
uuu00000
PT3PU[4:0]
uuu00000
PT3CON[4:0]
uuu00000
TM3R[11:8]
uuuu0000
DT3CK[1:0]
DT3CNT[2:0]
DT3_EN P3H_OEN P3L_OEN 00000000
P3HINV P3LINV
PT1W[6:4]
PWM2PO RST20_SEL
00000000
T3RATE[3
2fh METCH2 VTHSEL
REF_SEL[2:0]
PWMIS
T2RATE[3]
00000000
]
30h PT5
PT5[1:0]
uuuuuuxx
31h PT5EN
PT5EN[1:0]
uuuuuu00
Bit7
Bit6
Bit5
Bit4
REV1. 1
Bit3
Bit2
Bit1
Bit0
第 13 页,共 89 页
CSU32P10
32h PT5PU
33h PT5CON
3ch INTF2
TM3IF
3dh INTE2
TM3IE
34h SRADCON0
SRADACKS[1:0]
SRADCON1
35h
SRADEN SRADS OFTEN
CALIF ENOV
36h SRADCON2
CHS[3:0]
37h SRADL
SRAD[7:0]
38h SRADH
39h SROFTL
SROFT[7:0]
3ah SROFTH
PT5PU[1:0]
uuuuuu00
PT51OD PT50OD uuuuuu00
uuu0uuuu
uuu0uuuu
SRADCKS[1:0]
uu00uu00
OFFEX
VREFS[1:0]
00000000
0000uuuu
00000000
SRAD[11:8]
uuuu0000
00000000
SROFT[11:8]
uuuu0000
注:进行读操作时,无效位读出为 0
特性(Property):
R = 可读位
-n = 上电复位后的值
W = 可写位
‘1’ = 位已设置
U = 无效位
‘0’= 位已清零
REV1. 1
X = 不确定位
第 14 页,共 89 页
CSU32P10
时钟系统
2.2
2.2.1 概述
芯片的时钟系统包括内置 16MHz 的 RC 振荡时钟(IHRC)、内置低速 32KHz 的 WDT 时钟。除去
WDT 时钟外,RC 振荡时钟(IHRC)做为系统时钟源 Fosc。Fcpu 是 CPU 时钟频率。
普通模式(高速时钟):Fcpu=Fosc/N,N=4、8、16
低速模式(低速时钟):Fcpu=Fosc/N,N=4、8、16
2.2.2 时钟框图
CLKDIV[1:0]
MCK
内置16MHz
晶振电路
图4
表5
符号
WDT
MCK
CPUCLK
CPUCLK
MCK/4~MCK/16
CSU32P10 振荡器状态框图
时钟参数说明表
说明
内置低速 32KHz WDT 时钟
未分频的内置高速时钟
MCK 经过分频后作为 CPU 主时钟,可以进行 4/8/16/32 分频,分频值由代码选
项决定
内置高速时钟频率
CPUCLK 频率,与指令周期相对应
Fosc
Fcpu
2.2.3 寄存器
表6
地址
名称
16H
MCK
Bit7
Bits6
CSU32P10 时钟系统寄存器列表
Bit5
Bit3
Bits2
Bit1
Bit0
CST_WDT
表7
位地址
Bits4
上电复位
值
uu1uuuuu
MCK 寄存器各位功能表
标识符
功能
内部 WDT 晶振启动开关
5
CST_WDT
1:内部 WDT 晶振关闭
0:内部 WDT 晶振打开
对 MCK 寄存器进行写操作时,建议使用 bcf 或 bsf 指令。
2.2.4 内部高速 RC 时钟
内部高速 RC 时钟(16MHz),只能使用内部高速 RC 时钟做为系统的主时钟。
REV1. 1
第 15 页,共 89 页
CSU32P10
2.2.5 内部低速 wdt 时钟
内部低速 wdt 时钟(32kHz),通过寄存器 CST_WDT 使能开关。内部 wdt 时钟不能做为系统主时
钟,只能做为 WDT 使用和定时器 0 使用。
REV1. 1
第 16 页,共 89 页
CSU32P10
2.3
复位系统
CSU32P10 有以下方式复位:
1) 上电复位
2) RST 硬件复位(正常操作)
3) RST 硬件复位(从 Sleep 模式)
4) WDT 复位(正常操作)
5) WDT 复位(从 Sleep 模式)
6) 低电压复位(LVR)
上述任意一种复位发生时,所有系统寄存器恢复默认状态(WDT 复位 TO、PD 标志位除外),程序停
止运行,同时程序计数器 PC 清零。复位结束后,系统从向量 000H 重新开始。各种复位情况下的
TO,PD 标志位如下表所示。
表8
复位信号和状态寄存器关系
条件
上电复位
RST 硬件复位(正常操作)
RST 硬件复位(从 Sleep 模式)
WDT 复位(正常操作)
WDT 复位(从 Sleep 模式)
低电压复位
TO
0
0
PD
0
0
0
0
1
1
0
不变
不变
0
下图给出了复位电路原理图。
POR
RST
复位延时
98ms
LVR(2.0v)
LVR(2.4v)
To CPU
代码选项选择
LVR(3.6v)
WDT Reset
图5
REV1. 1
复位电路原理图
第 17 页,共 89 页
CSU32P10
任何一种复位情况都需要一定的响应时间,系统提供完善的复位流程以保证复位动作的顺利进行。对
于不同类型的振荡器起振的时间不同,所以完成复位的时间也有所不同。RC 振荡器起振时间最短,外
置低速晶振起振时间最长。所以在有外部晶振电路应用的情况下,用户应在上电复位后,预留一定的
时间再从内部 RC 时钟切换到外部晶振电路。用户在终端使用过程中,应注意考虑主机对上电复位的
要求。
VPOR
VLVR
VDD
Internal
reset
tWVS
图6
参数
VPOR
VLVR(RST20_SEL=0)
VLVR(RST20_SEL=1)
tWVS
(测试条件:VDD=5V,T=25℃)
VPOR:上电复位
VLVR:低电压复位
tWVS: 等待电压稳定时间
最小值
1.8V
1.8V
1.2V
78.4ms
上电复位电路示例及上电过程
典型值
2.0V
2.0V
1.6V
98ms
最大值
2.2V
2.2V
1.9V
117.6ms
2.3.1 上电复位
系统上电呈现逐渐上升的曲线形式,需要一定时间才能达到正常的工作电压(对于不同的指令周期所
需工作电压是不同的,指令周期越快相应所需的工作电压就越高,见 5.2 直流特性)。要求用户系统的
上电速度要大于 0.07V/mS,尤其是要注意指令周期是 4MHz 时,因为他要求的工作电压最高。
2.3.2 看门狗复位
看门狗复位是一种系统的保护设置。在正常状态下,程序将看门狗定时器清零。如出错,系统处于未
知状态,此时利用看门狗复位。看门狗复位后,系统重新进入正常状态。
2.3.3 掉电复位
METCH1 寄存器(地址为 2eh)
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
特性
METCH1
RST20_SEL
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit1 RST20_SEL: 掉电电压选择(仅当 LVD_SEL[1:0]为 2’b00 或 2’b01 时有效)
R/W-0
Bit0
0:2.0V 掉电
REV1. 1
第 18 页,共 89 页
CSU32P10
1:1.6V 掉电
掉电复位针对外部引起的系统电压跌落情况,例如受到干扰或者负载变化。系统掉电可能会引起系统
工作状态不正常或者程序执行错误。
图7
系统掉电复位示意图
电压跌落可能会进入系统死区。进入系统死区,即电源电压不能满足系统的最小工作电压要求。系统
掉电复位示意图如上图所示。芯片的掉电复位点在 2.0V,芯片的低电压复位点可以通过代码选项设置
成 2.4V 或者 3.6V 或者不设置低电压复位点。
为避免进入系统死区,建议利用低电压复位(LVR)功能,尤其是指令周期是高速应用的情况。
不同指令周期的系统出错区域不同,取决于指令周期工作电压范围,见 5.2。如果指令周期是 4MHz
时,建议使用 2.4V/3.6V 低电压复位。
掉电复位性能的改善可以通过如下几点实现:
1) 低电压复位(LVR)
2) 看门狗复位
3) 降低系统指令周期
4) 采用外部复位电路(稳压二极管复位电路;电压偏移复位电路;外部 IC 复位)
2.3.4 外部硬件复位
外部复位由代码选项 RESET_PIN 控制,见 3.10。通过设置该代码选项,可使能外部硬件复位功能。外
部硬件复位引脚为施密特触发结构,低电平有效。硬件复位引脚为高电平时,系统正常工作;硬件复
位引脚为低电平时,系统复位。
在芯片代码选项使能外部硬件复位功能后,需要注意的是:在系统上电完成后,外部复位需要输入高
电平,否则,系统会一直复位,直到外部硬件复位结束。
外部硬件复位可以在上电过程中使用系统复位。良好的外部复位电路可以保护系统避免进入系统死
区。
REV1. 1
第 19 页,共 89 页
CSU32P10
2.4
中断
CSU32P10 有 6 个中断源,只有 1 个中断入口地址 004H。与中断相关的 SFR:中断使能控制寄存
器 INTE 和中断标志位寄存器 INTF。这 4 个中断源都各自有一个中断使能,和一个总使能位 GIE,并
且它们的标志位硬件置位,软件清 0。
当响应中断时,会把当前的 PC 值入栈保护,并把 PC 置为 004H,同时把总使能位 GIE 清 0。执行
完中断服务程序,并用 RETFIE 返回到之前的主程序,并把 GIE 置 1。
所有的中断都可以唤醒 sleep 睡眠模式和 halt 停止模式。
E0IF
E0IE
E1IF
E1IE
Interrup to CPU
ADIF
ADIE
TM0IF
TM0IE
TM2IF
TM2IE
TM3IF
TM3IE
GIE
图8
REV1. 1
中断逻辑
第 20 页,共 89 页
CSU32P10
2.4.1 中断使能寄存器
INTE 寄存器(地址为 07h)
R/W-0
R/W-0
U-0
R/W-0
特性
INTE
GIE
TM2IE
TM0IE
Bit7
Bit6
Bit5
Bit4
Bit 7 GIE:全局中断使能标志
1 = 使能所有非屏蔽中断
0 = 不使能所有中断
Bit 6 TM2IE:12-Bit 定时/计数器 2 中断使能标志
1 = 使能定时/计数器 2 中断
0 = 不使能定时/计数器 2 中断
Bit 4 TM0IE:8-Bit 定时 0 器中断使能标志
1 = 使能定时器 0 中断
0 = 不使能定时器 0 中断
Bit 3 SRADIE:AD 中断使能标志
1 = 使能 AD 中断
0 = 不使能 AD 中断
Bit 1 E1IE:外部中断 1 使能标志
1 =使能外部中断 1
0 = 不使能外部中断 1
Bit 0 E0IE:外部中断 0 使能标志
1 = 使能外部中断 0
0 = 不使能外部中断 0
INTE2 寄存器(地址为 3dh)
U-0
U-0
特性
INTE2
Bit7
Bit6
Bit 4
U-0
Bit5
R/W-0
TM3IE
Bit4
R/W-0
SRADIE
Bit3
U-0
Bit2
R/W-0
E1IE
Bit1
R/W-0
E0IE
Bit0
U-0
U-0
U-0
U-0
Bit3
Bit2
Bit1
Bit0
TM3IE:12-Bit 定时/计数器 3 中断使能标志
1 = 使能定时/计数器 3 中断
0 = 不使能定时/计数器 3 中断
特性(Property):
R = 可读位
-n = 上电复位后的值
W = 可写位
‘1’ = 位已设置
U = 无效位
‘0’= 位已清零
REV1. 1
X = 不确定位
第 21 页,共 89 页
CSU32P10
2.4.2 中断标志寄存器
中断标志位都是硬件置 1,软件清 0。某一个中断标志位在其对应的中断使能位没有置 1 的情况
下,也有可能硬件置 1。
INTF 寄存器(地址为 06h)
U-0
R/W-0
U-0
R/W -0
R/W -0
U-0
特性
INTF
TM2IF
TM0IF
SRADIF
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit 6 TM2IF:12-Bit 定时/计数器 2 中断标志,软件清零,硬件置高
1 = 发生定时中断,必须软件清 0
0 = 没发生定时中断
Bit 4 TM0IF:8-Bit 定时器 0 中断标志,软件清零,硬件置高
1 = 发生定时中断,必须软件清 0
0 = 没发生定时中断
Bit 3 SRADIF:AD 中断中断标志,软件清零,硬件置高
1 = 发生 AD 中断,必须软件清 0
0 = 没发生 AD 中断
Bit 1 E1IF:外部中断 1 中断标志,软件清零,硬件置高
1 =外部中断 1 发生中断,必须软件清 0
0 =外部中断 1 没发生中断
Bit 0 E0IF:外部中断 0 中断标志,软件清零,硬件置高
1 = 外部中断 0 发生中断,必须软件清 0
0 =外部中断 0 没发生中断
INTF2 寄存器(地址为 3ch)
U-0
U-0
特性
INTF2
Bit7
Bit6
Bit 4
U-0
Bit5
R/W -0
TM3IF
Bit4
R/W -0
E1IF
Bit1
R/W -0
E0IF
Bit0
U-0
U-0
U-0
U-0
Bit3
Bit2
Bit1
Bit0
TM3IF:12-Bit 定时/计数器 3 中断标志,软件清零,硬件置高
1 = 发生定时中断,必须软件清 0
0 = 没发生定时中断
特性(Property):
R = 可读位
-n = 上电复位后的值
W = 可写位
‘1’ = 位已设置
U = 无效位
‘0’= 位已清零
REV1. 1
X = 不确定位
第 22 页,共 89 页
CSU32P10
2.4.3 外部中断 0
PT1.0 为外部中断 0 的输入端。触发方式由 PT1CON 寄存器中的 E0M[1:0]寄存器决定。INTE 寄存
器中的 E0IE 为外部中断 0 的使能位,INTF 寄存器中的 E0IF 为中断标志位,硬件置 1,软件清 0。可
唤醒 sleep 或 halt 模式。只要 PT1.0 被触发,中断标志位 E0IF 就会置 1。
PT1CON 寄存器(地址为 23h)
R/W-0
R/W-0
R/W-0
特性
PT1CON
Bit7
Bit6
Bit5
Bit 2 E1M:外部中断 1 触发模式
1 = 外部中断 1 为下降沿触发
0 = 外部中断 1 在状态改变时触发
Bit 1-0 E0M[1:0]:外部中断 0 触发模式
11 = 外部中断 0 在状态改变时触发
10 = 外部中断 0 在状态改变时触发
01 = 外部中断 0 为上升沿触发
00 = 外部中断 0 为下降沿触发
R/W-0
R/W-0
Bit4
Bit3
R/W-0
E1M
Bit2
R/W-0
R/W-0
E0M[1:0]
Bit1
Bit0
2.4.4 外部中断 1
PT1.1、PT1.3、PT1.4、PT1.5、PT3.0 和 PT3.1 都可作为外部中断 1 的输入端。触发方式由
PT1CON 寄存器中的 E1M 寄存器决定。INTE 寄存器中的 E1IE 为外部中断 0 的使能位,INTF 寄存器中
的 E1IF 为中断标志位,硬件置 1,软件清 0。只要对应 PT 口作为外部中断输入端,且外部中断 1 被触
发,中断标志位 E1IF 就会置 1。
PT1CON 寄存器(地址为 23h)
R/W-0
R/W-0
R/W-0
R/W-0
特性
PT1CON
PT1W[3:0]
Bit7
Bit6
Bit5
Bit4
Bit 6 PT1W[3]:PT1.5 外部中断 1 使能
0 = 禁止 PT1.5 外部中断 1
1 = 使能 PT1.5 外部中断 1
Bit 5 PT1W[2]:PT1.4 外部中断 1 使能
0 = 禁止 PT1.4 外部中断 1
1 = 使能 PT1.4 外部中断 1
Bit 4 PT1W[1]:PT1.3 外部中断 1 使能
0 = 禁止 PT1.3 外部中断 1
1 = 使能 PT1.3 外部中断 1
Bit 3 PT1W[0]:PT1.1 外部中断 1 使能
0 = 禁止 PT1.1 外部中断 1
1 = 使能 PT1.1 外部中断 1
METCH1 寄存器(地址为 2eh)
R/W-0
R/W-0
R/W-0
特性
METCH1
Bit7
Bit6
Bit5
Bit5 PT1W[6]:PT3.2 外部中断 1 使能
0 = 禁止 PT3.2 外部中断 1
1 = 使能 PT3.2 外部中断 1
R/W-0
PT1W[6:4]
Bit4
REV1. 1
R/W-0
R/W-0
R/W-0
R/W-0
Bit3
Bit2
Bit1
Bit0
R/W-0
R/W-0
R/W-0
R/W-0
Bit3
Bit2
Bit1
Bit0
第 23 页,共 89 页
CSU32P10
Bit4
Bit3
PT1W[5]:PT3.1 外部中断 1 使能
0 = 禁止 PT3.1 外部中断 1
1 = 使能 PT3.1 外部中断 1
PT1W[4]:PT3.0 外部中断 1 使能
0 = 禁止 PT3.0 外部中断 1
1 = 使能 PT3.0 外部中断 1
特性(Property):
R = 可读位
-n = 上电复位后的值
W = 可写位
‘1’ = 位已设置
U = 无效位
‘0’= 位已清零
REV1. 1
X = 不确定位
第 24 页,共 89 页
CSU32P10
2.4.5 AD 中断溢出
INTE 寄存器中的 SRADIE 为 ADC 中断的使能位,INTF 寄存器中的 SRADIF 为中断标志位,软件
清 0。当 ADC 转换完成时, SRADIF 就会硬件置 1。
2.4.6 定时器 0 溢出中断
INTE 寄存器中的 TM0IE 为定时器 0 中断的使能位,INTF 寄存器中的 TM0IF 为中断标志位,软件
清 0。当定时器 0 溢出时, TM0IF 就会硬件置 1。
2.4.7 定时/计数器 2 溢出中断
INTE 寄存器中的 TM2IE 为定时/计数器 2 中断的使能位,INTF 寄存器中的 TM2IF 为中断标志
位,软件清 0。当定时/计数器 2 溢出时, TM2IF 就会硬件置 1。
2.4.8 定时/计数器 3 溢出中断
INTE2 寄存器中的 TM3IE 为定时/计数器 3 中断的使能位,INTF2 寄存器中的 TM3IF 为中断标志
位,软件清 0。当定时/计数器 3 溢出时, TM3IF 就会硬件置 1。
2.4.9 PUSH 和 POP 处理
CSU32P10 有 8 级的 PUSH 和 POP 堆栈。有中断请求被响应后,程序跳转到 004h 执行子程序。响
应中断之前必须保存 WORK 和 STATUS 中的的标志位(只保存 C,DC,Z)。芯片提供 PUSH 和 POP 指
令进行入栈保存和出栈恢复,从而避免中断中断结束后程序运行错误。子程序中也可以使用 PUSH 和
POP 指令对 WORK 和 STATUS(C,DC,Z)进行保存和恢复。
…
org 004H
goto int_server
…
int_server:
push
btfsc intf,e0if
goto ex0_int
btfsc intf,e1if
goto ex1_int
btfsc intf,tm0if
goto tm0_int
btfsc intf,tm2if
goto tm2_int
btfsc intf,tm3if
goto tm3_int
…
ex0_int:
bcf intf, e1if
…
pop
retfie
…
;判断外部中断 0 标志
;判断外部中断 1 标志
;判断定时器 0 中断标志
;判断定时/计数器 2 中断标志
;判断定时/计数器 3 中断标志
;清除 e1if
REV1. 1
第 25 页,共 89 页
CSU32P10
定时器 0
2.5
TM0IN[7:0]
超时溢出
T0EN
T0SEL[1:0]
EN
OUT
T0RATE[2:0]
8 Bits Counter
CPUCLK
MCK
MUX
CKT0
CKT0~CKT0/128
TM0CLK CLK
32KHz WDTCLK
图9
定时器 0 功能框图
定时器 0 模块的输入为 CPUCLK。在定时器 0 模块集成了一个分频器,分频的时钟 TM0CLK 作为
8 bits 计数器的输入时钟。当用户设置了定时器 0 模块的使能标志,8 bits 计数器将启动,将会从 000H
递增到 TM0IN。用户需要设置 TM0IN(定时器 0 模块中断信号选择器)以选择定时超时中断信号。当
定时超时发生时,中断标志位会自设置,程序计数器会跳转到 004H 以执行中断服务程序。
表9
地址
名称
06H
07H
0FH
10H
11H
INTF
INTE
TM0CON
TM0IN
TM0CNT
Bit7
GIE
T0EN
Bit6
Bit5
定时器 0 寄存器列表
Bit4
Bit3
Bit2
TM0IF
TM0IE
T0RATE[2:0]
T0RSTB
TM0IN[7:0]
TM0CNT[7:0]
Bit1
Bit0
T0SEL[1:0]
上电复位
值
u0u00u00
00u00u00
0000u100
11111111
00000000
表 10 TM0CON 寄存器各位功能表
位地址
7
6:4
2
标识符
T0EN
T0RATE[2:0]
T0RSTB
功能
定时器 0 使能位
1:使能定时器 0
0:禁止定时器 0
定时器 0 时钟选择
T0RATE [2:0]
000
001
010
011
100
101
110
111
定时器 0 复位
TM0CLK
CKT0
CKT0/2
CKT0/4
CKT0/8
CKT0/16
CKT0/32
CKT0/64
CKT0/128
REV1. 1
第 26 页,共 89 页
CSU32P10
1:0
T0SEL[1:0]
1:禁止定时器 0 复位
0:使能定时器 0 复位
当将该位为 0 时,定时器 0 复位后,T0RSTB 会自动置 1
时钟源选择
T0SEL[1:0]
定时器 0 时钟源
00
CPUCLK
01
MCK
1x
内部 32K WDT 时钟,
仅当内部 WDT 晶振打开时有效
表 11 TM0IN 寄存器各位功能表
位地址
7 :0
标识符
TM0IN[7:0]
功能
定时器 0 溢出值(溢出值:1~255)
表 12 TM0CNT 寄存器各位功能表
位地址
标识符
功能
TM0CNT[7:0]
7 :0
定时器 0 计数寄存器,只读
操作:
1) 设置 TM0CLK,为定时器 0 模块选择输入。
2) 设置 TM0IN,选择定时器 0 溢出值。(溢出值:1~255)
3) 设置寄存器标志位:TM0IE 与 GIE,使能定时器 0 中断。
4) 清零寄存器标志位:T0RSTB,复位定时器 0 模块的计数器。
5) 设置寄存器标志位:TM0EN,使能定时器 0 模块的 8 bits 计数器。
6) 当定时超时发生时,程序计数器会跳转到 004H。
定时器 0 溢出时间计算方法:
定时器 0 溢出时间=(TM0IN+1)/TM0CLK.
REV1. 1
第 27 页,共 89 页
CSU32P10
2.6
I/O PORT
表 13 I/O 口寄存器表
地
址
20h
21h
22h
23h
28h
29h
2ah
2bh
30h
31h
32h
33h
名称
PT1
PT1EN
PT1PU
PT1CON
PT3
PT3EN
PT3PU
PT3CON
PT5
PT5EN
PT5PU
PT5CON
Bit7
Bit6
PT11OD
Bit5
Bit4
PT1[5:3]
PT1EN[5:3]
PT1PU[5:3]
PT1W[3:0]
Bit3
上电复位
值
PT1[1:0]
uuxxxuxx
PT1EN[1:0]
uu000u00
PT1PU[1:0]
uu000u00
E1M
E0M[1:0]
00000000
PT3[4:0]
uuuxxxxx
PT3EN[4:0]
uuu00000
PT3PU[4:0]
uuu00000
PT3CON[4:0]
uuu00000
PT5[1:0]
uuuuuuxx
PT5EN[1:0]
uuuuuu00
PT5PU[1:0]
uuuuuu00
PT51OD PT50OD uuuuuu00
Bit2
Bit1
Bit0
微控制器中的通用 I/O 口(GPIO)用于通用的输入与输出功能。用户可以通过 GPIO 接收数据信
号或将数据传送给其它的数字设备。CSU32P10 的部分 GPIO 可以被定义为其它的特殊功能。在本节,
只说明 GPIO 的通用 I/O 口功能,特殊功能将会在接下来的章节中说明。
2.6.1 PT1 口
PT1 寄存器(地址为 20h)
U-0
U-0
特性
PT1
Bit7
Bit6
R/W-X
Bit5
R/W-X
R/W-0
PT1[5:3]
Bit4
Bit3
U-0
Bit2
R/W-0
R/W-0
PT1[1:0]
Bit1
Bit0
Bit 5-0 PT1[5:0]:GPIO1 口数据标志
PT1[5] = GPIO1 bit 5 数据标志位
PT1[4] = GPIO1 bit 4 数据标志位
PT1[3] = GPIO1 bit 3 数据标志位
PT1[1] = GPIO1 bit 1 数据标志位
PT1[0] = GPIO1 bit 0 数据标志位
PT1EN 寄存器(地址为 21h)
U-0
U-0
特性
PT1EN
Bit7
Bit6
R/W-0
Bit5
R/W-0
R-0
PT1EN[5:3]
Bit4
Bit3
U-0
Bit2
R/W-0
R/W-0
PT1EN[1:0]
Bit1
Bit0
Bit 5-0 PT1EN[5:0]:GPIO1 口输入/输出控制标志
PT1EN[5] = GPIO1 bit 5 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT1EN[4] = GPIO1 bit 4 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT1EN[3] = GPIO1 bit 3 的 I/O 控制标志位;0 = 定义为输入口,只能为输入口,只读
PT1EN[1] = GPIO1 bit 1 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT1EN[0] = GPIO1 bit 0 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
特性(Property):
R = 可读位
W = 可写位
U = 无效位
-n = 上电复位后的值 ‘1’ = 位已设置 ‘0’= 位已清零
REV1. 1
X = 不确定位
第 28 页,共 89 页
CSU32P10
PT1PU 寄存器(地址为 22h)
U-0
U-0
特性
PT1PU
Bit7
Bit6
R/W-0
Bit5
R/W-0
R/W-0
PT1PU[5:3]
Bit4
Bit3
U-0
Bit2
R/W-0
R/W-0
PT1PU[1:0]
Bit1
Bit0
Bit 5-0 PT1PU[5:0]:GPIO1 口上拉电阻使能标志
PT1PU[5] = GPIO1 bit 5 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT1PU[4] = GPIO1 bit 4 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT1PU[3] = GPIO1 bit 3 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT1PU[1] = GPIO1 bit 1 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT1PU[0] = GPIO1 bit 0 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT1CON 寄存器(地址为 23h)
R/W-0
R/W-0
特性
PT1CON
PT11OD
Bit7
Bit6
R/W-0
R/W-0
PT1W[3:0]
Bit5
Bit4
R/W-0
Bit3
R/W-0
E1M
Bit2
R/W-0
R/W-0
E0M[1:0]
Bit1
Bit0
PT11OD:PT1.1 漏极开路使能位
0 = 禁止 PT1.1 漏极开路
1 = 使能 PT1.1 漏极开路
Bit 6 PT1W[3]:PT1.5 外部中断 1 使能
0 = 禁止 PT1.5 外部中断 1
1 = 使能 PT1.5 外部中断 1
Bit 5 PT1W[2]:PT1.4 外部中断 1 使能
0 = 禁止 PT1.4 外部中断 1
1 = 使能 PT1.4 外部中断 1
Bit 4 PT1W[1]:PT1.3 外部中断 1 使能
0 = 禁止 PT1.3 外部中断 1
1 = 使能 PT1.3 外部中断 1
Bit 3 PT1W[0]:PT1.1 外部中断 1 使能
0 = 禁止 PT1.1 外部中断 1
1 = 使能 PT1.1 外部中断 1
Bit 2 E1M:外部中断 1 触发模式
1 = 外部中断 1 为下降沿触发
0 = 外部中断 1 在状态改变时触发
Bit 1-0 E0M[1:0]:外部中断 0 触发模式
11 = 外部中断 0 在状态改变时触发
10 = 外部中断 0 在状态改变时触发
01 = 外部中断 0 为上升沿触发
00 = 外部中断 0 为下降沿触发
Bit 7
特性(Property):
R = 可读位
W = 可写位
U = 无效位
-n = 上电复位后的值 ‘1’ = 位已设置 ‘0’= 位已清零
REV1. 1
X = 不确定位
第 29 页,共 89 页
CSU32P10
2.6.2 PT3 口
PT3 寄存器(地址为 28h)
U-0
U-0
特性
PT3
Bit7
Bit6
U-0
R/W-X
R/W-X
Bit5
Bit4
Bit3
U-0
R/W-0
R/W-0
Bit5
Bit4
Bit3
R/W-X
PT3[4:0]
Bit2
R/W-X
R/W-X
Bit1
Bit0
Bit 4-0 PT3[4:0]:GPIO3 口数据标志位
PT3[4] = GPIO3 bit 4 的数据标志位
PT3[3] = GPIO3 bit 3 的数据标志位
PT3[2] = GPIO3 bit 2 的数据标志位
PT3[1] = GPIO3 bit 1 的数据标志位
PT3[0] = GPIO3 bit 0 的数据标志位
PT3EN 寄存器(地址为 29h)
U-0
U-0
特性
PT3EN
Bit7
Bit6
R/W-0
R/W-0
PT3EN[4:0]
Bit2
Bit1
R/W-0
Bit0
Bit 4-0 PT3EN[4:0]:GPIO 3 口输入/输出控制标志
PT3EN[4] = GPIO3 bit 4 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT3EN[3] = GPIO3 bit 3 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT3EN[2] = GPIO3 bit 2 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT3EN[1] = GPIO3 bit 1 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT3EN[0] = GPIO3 bit 0 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT3PU 寄存器(地址为 2ah)
U-0
U-0
特性
PT3PU
Bit7
Bit6
U-0
R/W-0
R/W-0
Bit5
Bit4
Bit3
R/W-0
R/W-0
PT3PU[4:0]
Bit2
Bit1
R/W-0
Bit0
Bit 4-0 PT3PU[4:0]:GPIO3 口上拉电阻使能标志
PT3PU[4] = GPIO3 bit 4 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT3PU[3] = GPIO3 bit 3 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT3PU[2] = GPIO3 bit 2 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT3PU[1] = GPIO3 bit 1 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT3PU[0] = GPIO3 bit 0 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
特性(Property):
R = 可读位
W = 可写位
U = 无效位
-n = 上电复位后的值 ‘1’ = 位已设置 ‘0’= 位已清零
REV1. 1
X = 不确定位
第 30 页,共 89 页
CSU32P10
PT3CON 寄存器(地址为 2bh)
U-0
U-0
特性
PT3CON
Bit7
Bit6
U-0
R/W-0
R/W-0
Bit5
Bit4
Bit3
R/W-0
R/W-0
PT3CON[4:0]
Bit2
Bit1
R/W-0
Bit0
Bit 4-0 PT3CON[4:0]:GPIO3 口模拟/数字端口使能标志
PT3CON[4] = GPIO3bit 4 的 I/O 控制标志位;0 = 定义为数字口,1 = 定义为模拟口
PT3CON[3] = GPIO3bit 3 的 I/O 控制标志位;0 = 定义为数字口,1 = 定义为模拟口
PT3CON[2] = GPIO3bit 2 的 I/O 控制标志位;0 = 定义为数字口,1 = 定义为模拟口
PT3CON[1] = GPIO3bit 1 的 I/O 控制标志位;0 = 定义为数字口,1 = 定义为模拟口
PT3CON[0] = GPIO3bit 0 的 I/O 控制标志位;0 = 定义为数字口,1 = 定义为模拟口
2.6.3 PT5 口
PT5 寄存器(地址为 30h)
U-0
U-0
特性
PT5
Bit7
Bit6
U-0
U-0
U-0
U-0
Bit5
Bit4
Bit3
Bit2
U-0
U-0
U-0
U-0
Bit5
Bit4
Bit3
Bit2
R/W-X
R/W-X
PT5[1:0]
Bit1
Bit0
Bit 1-0 PT5[1:0]:GPIO5 口数据标志位
PT5[1] = GPIO5 bit 1 的数据标志位
PT5[0] = GPIO5 bit 0 的数据标志位
PT5EN 寄存器(地址为 31h)
U-0
U-0
特性
PT5EN
Bit7
Bit6
R/W-0
R/W-0
PT5EN[1:0]
Bit1
Bit0
Bit 1-0 PT5EN[1:0]:GPIO5 口输入/输出控制标志
PT5EN[1] = GPIO5 bit 1 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT5EN[0] = GPIO5 bit 0 的 I/O 控制标志位;0 = 定义为输入口,1 = 定义为输出口
PT5PU 寄存器(地址为 32h)
U-0
U-0
特性
PT5PU
Bit7
Bit6
U-0
U-0
U-0
U-0
Bit5
Bit4
Bit3
Bit2
R/W-0
R/W-0
PT5PU[1:0]
Bit1
Bit0
Bit 1-0 PT5PU[1:0]:GPIO5 口上拉电阻使能标志
PT5PU[1] = GPIO5 bit 1 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
PT5PU[0] = GPIO5 bit 0 控制标志位;0 = 断开上拉电阻,1 = 使用上拉电阻
特性(Property):
R = 可读位
W = 可写位
U = 无效位
-n = 上电复位后的值 ‘1’ = 位已设置 ‘0’= 位已清零
REV1. 1
X = 不确定位
第 31 页,共 89 页
CSU32P10
PT5CON 寄存器(地址为 33h)
U-0
U-0
特性
PT5CON
Bit7
Bit6
U-0
U-0
U-0
U-0
Bit5
Bit4
Bit3
Bit2
R/W-0
PT51OD
Bit1
R/W-0
PT50OD
Bit0
Bit 1-0 PT5CON[1:0]:GPIO5 口控制标志
PT5CON[1] = GPIO5 bit 1 控制标志位;0 = 禁止开漏输出,1 = 使能开漏输出
PT5CON[0] = GPIO5 bit 0 控制标志位;0 = 禁止开漏输出,1 = 使能开漏输出
特性(Property):
R = 可读位
W = 可写位
U = 无效位
-n = 上电复位后的值 ‘1’ = 位已设置 ‘0’= 位已清零
REV1. 1
X = 不确定位
第 32 页,共 89 页
CSU32P10
3
3.1
增强功能
Halt 和 Sleep 模式
CSU32P10 支持低功耗工作模式。为了使 CSU32P10 处于待机状态, 可以让 CPU 停止工作使 CSU3
2P10 进行停止或睡眠模式,减低功耗。这两种模式描述如下:
停止模式
CPU 执行停止指令后,程序计数器停止计数直到出现中断指令。为了避免由中断返回(Interrupt
Return)引起的程序错误,建议在停止指令之后加一 NOP 指令以保证程序返回时能正常运行。
睡眠模式
CPU 执行睡眠指令后,所有的振荡器停止工作直到出现一个外部中断指令复位 CPU。为了避免由
中断返回(Interrupt Return)引起的程序错误,建议停止指令之后加一 NOP 指令以保证程序的正常运
行。在睡眠模式下的功耗大约有 1uA。
为了保证 CPU 在睡眠模式下的功耗最小,在执行睡眠指令之前,需要把 IO 口的上拉电阻断开,
并且保证所有的输入口是接到 VDD 或 VSS 电平。
注:
芯片如果处于 sleep 状态,这时候降低电压,配置 2.4V 和 3.6V 低电压复位不会起作用,低于 2.0V
掉电复位点才会复位。如果 sleep 唤醒后,此时还处于低电压复位点以下,则会立即复位。
REV1. 1
第 33 页,共 89 页
CSU32P10
Halt 示范程序:
…
movlw 01h
movwf pt1up
movlw feh
movwf pt1en
clrf pt1
clrf pt3up
clrf pt3en
clrf pt3con
clrf pt3
clrf pt5up
clrf pt5en
clrf pt5
clrf intf
movlw 81h
movwf inte
halt
nop
…
;断开 pt1 除 bit0(pt1[0])外的其他接口的上拉电阻
;pt1 口除 bit0(pt1[0])做输入口外,其他接口作为输出口(pt1.3 除外)
;将 pt1[4:1]输出为低
;断开 pt3 上拉电阻
;pt3 口用作输入口
;pt3 口用作数字口
;将 pt3 输出为低
;断开 pt5 上拉电阻
;pt5 口用作输入口
;将 pt5 输出为低
;清除中断标志位
;使能外部中断 0
;进入停止模式
; 保证 CPU 重启后程序能正常工作
Sleep 示范程序:
…
movlw 01h
movwf pt1up
movlw feh
movwf pt1en
clrf pt1
clrf pt3up
clrf pt3en
clrf pt3con
clrf pt3
clrf pt5up
clrf pt5en
clrf pt5
clrf intf
movlw 81h
movwf inte
sleep
nop
…
;断开 pt1 除 bit0(pt1[0])外的其他接口的上拉电阻
;pt1 口除 bit0(pt1[0])做输入口外,其他接口作为输出口(pt1.3 除外)
; 将 pt1[4:1]输出为低
;断开 pt3 上拉电阻
;pt3 口用作输入口
;pt3 口用作数字口
;将 pt3 输出为低
;断开 pt5 上拉电阻
;pt5 口用作输入口
;将 pt5 输出为低
;清除中断标志位
;使能外部中断 0
;进入睡眠模式
; 保证 CPU 重启后程序能正常工作
REV1. 1
第 34 页,共 89 页
CSU32P10
看门狗(WDT)
3.2
WDTIN
WDT_RST
Compare
WDTOEN
WDTEN
WDTOUT
Watch Dog
Timer
Ocsillator
8Bits Counter
MUX
8Bits Counter
WDTS
图10
看门狗定时器功能框图
看门狗定时器(WDT)用于防止程序由于某些不确定因素而失去控制。当 WDT 启动时,WDT 计
时超时后将使 CPU 复位。在运行的程序一般在 WDT 复位 CPU 之前先复位 WDT。当出现某些故障
时,程序会被 WDT 复位到正常状态下,但程序不会复位 WDT。
当用户把 CST_WDT 清 0 时,则内部的看门狗定时器振荡器(32KHz)将会启动,产生的时钟被
送到“8 bits 计数器 1”。当用户置位 WDTEN 时,“8 bits 计数器 1”开始计数,“8 bits 计数器 1”的
输出是内部信号 WDTA[7:0],被发送到一个受寄存器标志位 WDTS[2:0]控制的多路选择器,选择器的
输出作为“8 bits 计数器 2”的时钟输入。当“8 bits 计数器 2”计数值与 WDTIN 数值相等时溢出,溢
出时它会发送 WDTOUT 信号复位 CPU 及置位 TO 标志位。用户可以使用指令 CLRWDT 复位 WDT。
表 14 看门狗定时器寄存器表
地址
名称
Bit7
04H
0DH
0Eh
STATUS
WDTCON
WDTIN
WDTEN
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TO
WDTS[2:0]
WDT_IN[7:0]
上电复位
值
xxu00000
0uuuu000
11111111
操作:
1. 设置 WDTS[3:0],选择 WDT 时钟频率。
2. 设置 WDTIN,选择不同的溢出时间值
2. 置位寄存器标志位:WDTEN,使能 WDT。
3. 把 CST_WDT 清 0,打开 WDT 的晶振。
4. 在程序中执行 CLRWDT 指令复位 WDT。
WDT 溢出时间计算公式:
2(8 WDTS[ 2:0])
溢出时间
*(WDTIN[7 : 0] 1)
32k
WDTS[2:0]范围为 0~7,WDTIN[7:0]范围为 0~255。
REV1. 1
第 35 页,共 89 页
CSU32P10
WDTS[2:0]
000
001
010
011
100
101
110
111
计数器时钟
WDTA [0]
WDTA [1]
WDTA [2]
WDTA [3]
WDTA [4]
WDTA [5]
WDTA [6]
WDTA [7]
时间(当 WDTIN==FFH)
2048ms
1024ms
512ms
256ms
128ms
64ms
32ms
16ms
REV1. 1
第 36 页,共 89 页
CSU32P10
3.3
定时/计数器 2
PWM2OUT
TM2R[11:0]
PT5.0 IO电路
PT5.0
TM2IN[11:0]
T2RATE[3:0]
T2CKS
CPUCLK
MCK
两个MCK时钟采
样PT1.0
MUX
Compare
T2EN
MUX
BZ
CPUCLK~CPUCLK/128
MCK~MCK/128
PT1.0
PWM
12 Bits
Counter
DIV2
T2OUT
超时溢出
TM2CLK
图11
定时/计数器 2 模块的功能框图
定时/计数器 2 模块的输入是 TM2CLK。当用户设置了定时/计数器 2 模块的使能标志,12 bits 计数
器将启动,从 00h 递增到 TM2IN。用户需要设置 TM2IN(定时器模块中断信号选择器)以选择定时超
时中断信号。当定时超时发生时,BZ 输出信号发生跳变。
主要功能:
1) 12 位可编程定时器;
2) 外部事件计数;
3) 蜂鸣器输出;
4) PWM2 输出;
3.3.1 寄存器描述
表 15
地
名称
址
06h INTF
07h INTE
17h TM2CON
18h TM2IN
19h TM2CNT
1ah TM2R
24h TM2INH
25h TM2CNTH
26h TM2RH
2eh METCH1
2fh METCH2
Bit7
GIE
T2EN
定时器寄存器列表
上电复位
值
TM2IF
u0u00u00
TM2IE
00u00u00
T2RATE[2:0]
T2CKS T2RSTB T2OUT PWM2OUT 00000100
TM2IN[7:0]
11111111
TM2CNT[7:0]
00000000
TM2R[7:0]
00000000
TM2IN[11:8]
uuuu0000
TM2CNT[11:8]
uuuu0000
TM2R[11:8]
uuuu0000
PWM2PO
00000000
T2RATE[3]
00000000
Bit6
Bit5
Bit4
REV1. 1
Bit3
Bit2
Bit1
Bit0
第 37 页,共 89 页
CSU32P10
表 16 TM2CON 寄存器各位功能表
位地址
7
6:4
标识符
T2EN
T2RATE[2:0]
3
T2CKS
2
T2RSTB
1
T2OUT
0
PWM2OUT
功能
定时/计数器 2 使能位
1:使能定时器 2
0:禁止定时器 2
定时/计数器 2 时钟选择
T2RATE [3:0]
TM2CLK
0000
CPUCLK
0001
CPUCLK /2
0010
CPUCLK /4
0011
CPUCLK /8
0100
CPUCLK /16
0101
CPUCLK /32
0110
CPUCLK /64
0111
CPUCLK /128
1000
MCK
1001
MCK /2
1010
MCK /4
1011
MCK /8
1100
MCK /16
1101
MCK /32
1110
MCK /64
1111
MCK /128
注:T2RATE[3]在 METCH2 寄存器。
定时/计数器 2 时钟源选择位
1:PT1.0 作为时钟
0:CPUCLK 或 MCK 的分频时钟
定时/计数器 2 复位
1:禁止定时/计数器 2 复位
0:使能定时/计数器 2 复位
当将该位为 0 时,定时器 2 复位后,T2RSTB 会自动置 1
PT5.0 口输出控制
T2OUT PWM2OUT PT5.0 输出控制,仅当 PT5.0 配置
为输出有效
0
0
IO 输出
0
1
PWM2 输出
1
0
蜂鸣器输出
1
1
PWM2 输出
表 17 TM2IN 寄存器各位功能表
位地址
7 :0
标识符
TM2IN[7:0]
功能
定时/计数器溢出值低 8 位
表 18 TM2INH 寄存器各位功能表
位地址
3 :0
标识符
TM2INH[11:8]
功能
定时/计数器溢出值高 4 位
REV1. 1
第 38 页,共 89 页
CSU32P10
表 19 TM2CNT 寄存器各位功能表
位地址
7 :0
标识符
TM2CNT[7:0]
功能
定时/计数器 2 计数寄存器低 8 位,只读
表 20 TM2CNTH 寄存器各位功能表
位地址
3 :0
标识符
TM2CNTH[11:8]
功能
定时/计数器 2 计数寄存器高 4 位,只读
表 21 TM2R 寄存器各位功能表
位地址
7 :0
标识符
TM2R[7:0]
功能
定时/计数器 2 的 PWM 高电平占空比控制寄存器低 8 位
表 22 TM2RH 寄存器各位功能表
位地址
3 :0
标识符
TM2RH[11:8]
功能
定时/计数器 2 的 PWM 高电平占空比控制寄存器 高 4 位
表 23 METCH2 寄存器各位功能表
位地址
1
标识符
T2RATE[3]
功能
定时器 2 时钟选择
0:CPUCLK , 1:MCK
表 24 METCH1 寄存器各位功能表
位地址
2
标识符
PWM2PO
功能
PWM2 输出脚选择
0:PT5.0 做为 PWM2 输出口
1:PT3.1 做为 PWM2 输出口
定时/计数器操作:
1) 设置 TM2CLK,为定时器模块选择输入。
2) 设置 TM2IN,选择定时器溢出值。
3) 设置寄存器标志位:TM2IE 与 GIE,使能定时器中断。
4) 清零寄存器标志位:T2RSTB,复位定时器模块的计数器。
5) 设置寄存器标志位:T2EN,使能定时器模块的 12 bits 计数器。
6) 当定时超时发生时,BZ 输出信号发生跳变,可作为蜂鸣器输出;程序计数器会跳转到 004H。
定时器 2 溢出时间计算方法:
定时器 2 溢出时间=(TM2IN+1)/TM2CLK. (TM2IN 不为 0)
3.3.2 蜂鸣器
操作:
1) 把 PT5.0 配置为输出口。
2) 设置 TM2CLK,为定时器模块选择输入。
3) 设置 TM2IN,选择定时器溢出值。
REV1. 1
第 39 页,共 89 页
CSU32P10
4) 清零寄存器标志位:T2RSTB,复位定时器模块的计数器。
5) 设置寄存器标志位:T2EN,使能定时器模块的 12 bits 计数器。
6) 当定时超时发生时,BZ 输出信号发生跳变,可作为蜂鸣器输出。
蜂鸣器周期计算方法:
蜂鸣器周期=(TM2IN+1)*2/TM2CLK. (TM2IN 不为 0)
3.3.3 PWM
PWM 输出优先级
定时器 2 的 PWM 输出优先级从上到下递减
条件
PT5EN[0] PT3EN[1] P3L_OEN PWM2OUT
0
0
X
X
1
0
1
X
T2OUT
X
X
PWM2PO
X
X
1
0
0
1
X
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
X
1
1
0
0
0
X
PWM 优先级
PT5.0、PT3.1 做输入口
PT5.0 做互补式 PWM 输出口,
PT3.1 做输入口
PT5.0 做定时器 2 的 PWM 输出
口,PT3.1 做输入口
PT5.0 做定时器 2 的蜂鸣器输出
口,PT3.1 做输入口
PT5.0 做定时器 2 的蜂鸣器输出
口,PT3.1 做定时器 2 的 PWM 输
出口
PT5.0 做定时器 2 的蜂鸣器输出
口,PT3.1 做普通输出口
PT5.0 做普通输出口,PT3.1 做普
通输出口
操作:
1) 把 PT5.0 配置为输出口。
2) 设置 TM2CLK,为定时/计数器 2 模块选择输入。
3) 设置 TM2IN 来配置 PWM2 的周期。
4) 设置 TM2R 来配置 PWM2 的高电平的的脉宽。
5) 使能 PWM2OUT 输出,配置 PT5.0 为输出端口,之后把 T2EN 置 1 启动定时器。
6) PWM 从 PT5.0 输出。
周期为 TM2IN+1,高电平脉宽为 TM2R。如 TM2IN=0x0F,TM2R=0x03 的 PWM2 波形输出如下:
0
1
2
3
...
15
0
1
2
3
...
15
0
1
TM2CLK
T2EN
PWM2OUT
REV1. 1
第 40 页,共 89 页
CSU32P10
3.4
定时/计数器 3
PWM3OUT
TM3R[11:0]
PT5.1 IO电路
PT5.1
TM3IN[11:0]
T3RATE[3:0]
CPUCLK
MCK
T3CKS
T3EN
两个MCK时钟采
样PT1.1
MUX
MUX
BZ
CPUCLK~CPUCLK/128
MCK~MCK/128
PT1.1
Compare
PWM
12 Bits
Counter
DIV2
T3OUT
超时溢出
TM3CLK
图12
定时/计数器 3 模块的功能框图
定时/计数器 3 模块的输入是 TM3CLK。当用户设置了定时/计数器 3 模块的使能标志,12 bits 计数
器将启动,从 00h 递增到 TM3IN。用户需要设置 TM3IN(定时器模块中断信号选择器)以选择定时超
时中断信号。当定时超时发生时,BZ 输出信号发生跳变。
主要功能:
1) 12 位可编程定时器;
2) 外部事件计数;
3) 蜂鸣器输出;
4) PWM 输出;
3.4.1 寄存器描述
表 25
定时器寄存器列表
地
上电复位
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
名称
址
值
3ch INTF2
TM3IF
uuu0uuuu
3dh INTE2
TM3IE
uuu0uuuu
1bh TM3CON T3EN
T3RATE[2:0]
T3CKS T3RSTB T3OUT PWM3OUT 00000100
1ch TM3IN
TM3IN[7:0]
11111111
1dh TM3CNT
TM3CNT[7:0]
00000000
1eh TM3R
TM3R[7:0]
00000000
1fh TM3INH
TM3IN[11:8]
uuuu0000
27h TM3CNTH
TM3CNT[11:8]
uuuu0000
2ch TM3RH
TM3R[11:8]
uuuu0000
2fh METCH2
T3RATE[3]
00000000
DT3CK[1:0]
DT3CNT[2:0]
2dh TM3CON2
DT3_EN P3H_OEN P3L_OEN 00000000
2eh METCH1 P3HINV P3LINV
00000000
REV1. 1
第 41 页,共 89 页
CSU32P10
表 26 TM3CON 寄存器各位功能表
位地址
标识符
7
T3EN
6:4
T3RATE[2:0]
3
T3CKS
2
T3RSTB
1
T3OUT
0
PWM3OUT
功能
定时/计数器 3 使能位
1:使能定时器 3
0:禁止定时器 3
定时/计数器 3 时钟选择
T3RATE [3:0]
TM3CLK
0000
CPUCLK
0001
CPUCLK /2
0010
CPUCLK /4
0011
CPUCLK /8
0100
CPUCLK /16
0101
CPUCLK /32
0110
CPUCLK /64
0111
CPUCLK /128
1000
MCK
1001
MCK /2
1010
MCK /4
1011
MCK /8
1100
MCK /16
1101
MCK /32
1110
MCK /64
1111
MCK /128
注:T3RATE[3]在 METCH2 寄存器。
定时/计数器 3 时钟源选择位
1:PT1.1 作为时钟
0:CPUCLK 或 MCK 的分频时钟
定时/计数器 3 复位
1:禁止定时/计数器 3 复位
0:使能定时/计数器 3 复位
当将该位为 0 时,定时器 3 复位后,T3RSBT 会自动置 1
PT5.1 口输出控制
T3OUT
PWM3OUT PT5.1 输出控制,仅当 PT5.1 配置为输出有
效
0
0
IO 输出
0
1
PWM3 输出
1
0
蜂鸣器输出
1
1
PWM3 输出
表 27 TM3IN 寄存器各位功能表
位地址
7 :0
标识符
TM3IN[7:0]
功能
定时/计数器溢出值低 8 位
表 28 TM3INH 寄存器各位功能表
位地址
3 :0
标识符
TM3INH[11:8]
功能
定时/计数器溢出值高 4 位
REV1. 1
第 42 页,共 89 页
CSU32P10
表 29 TM3CNT 寄存器各位功能表
位地址
7 :0
标识符
TM3CNT[7:0]
功能
定时/计数器 3 计数寄存器低 8 位,只读
表 30 TM3CNTH 寄存器各位功能表
位地址
3 :0
标识符
TM3CNTH[11:8]
功能
定时/计数器 3 计数寄存器高 4 位,只读
表 31 TM3R 寄存器各位功能表
位地址
7 :0
标识符
TM3R[7:0]
功能
定时/计数器 3 的 PWM 高电平占空比控制寄存器低 8 位
表 32 TM3RH 寄存器各位功能表
位地址
3 :0
标识符
TM3RH[11:8]
功能
定时/计数器 3 的 PWM 高电平占空比控制寄存器高 4 位
表 33 METCH2 寄存器各位功能表
位地址
2
标识符
T3RATE[3]
功能
定时器 3 时钟选择
0:CPUCLK , 1:MCK
表 34 TM3CON2 寄存器各位功能表
位地址
标识符
7:6
DT3CK[1:0]
5:3
DT3CNT[2:0]
2
DT3_EN
1
P3H_OEN
0
P3L_OEN
功能
定时器 3 死区时间时钟选择
DT3CK[1:0] DT3_CLK
00
MCK
01
MCK/2
10
MCK/4
11
MCK/8
死区时间选择
死区时间=DT3CNT[2:0]*DT3_CLK
死区发生器 3 使能位
0:不使能死区发生器 3
1:使能死区发生器 3
互补 PWM3H 输出使能
0:PWM3H 不输出
1:PWM3H 从 PT5.1 输出
互补 PWM3L 输出使能
0:PWM3L 不输出
1:PWM3L 从 PT5.0 输出
表 35 METCH1 寄存器各位功能表
位地址
标识符
功能
REV1. 1
第 43 页,共 89 页
CSU32P10
7
P3HINV
6
P3LINV
互补 PWM3H 取反控制位
0:PWM3H 不取反
1:PWM3H 取反输出
互补 PWM3L 取反控制位
0:PWM3L 不取反
1:PWM3L 取反输出
定时/计数器操作:
1) 设置 TM3CLK,为定时器模块选择输入。
2) 设置 TM3IN,选择定时器溢出值。
3) 设置寄存器标志位:TM3IE 与 GIE,使能定时器中断。
4) 清零寄存器标志位:T3RSTB,复位定时器模块的计数器。
5) 设置寄存器标志位:T3EN,使能定时器模块的 12bits 计数器。
6) 当定时超时发生时,BZ 输出信号发生跳变,可作为蜂鸣器输出;程序计数器会跳转到 004H。
定时器 3 溢出时间计算方法:
定时器 3 溢出时间=(TM3IN+1)/TM3CLK. (TM3IN 不为 0)
3.4.2 蜂鸣器
操作:
1) 把 PT5.1 配置为输出口。
2) 设置 TM3CLK,为定时器模块选择输入。
3) 设置 TM3IN,选择定时器溢出值。
4) 清零寄存器标志位:T3RSTB,复位定时器模块的计数器。
5) 设置寄存器标志位:T3EN,使能定时器模块的 12 bits 计数器。
6) 当定时超时发生时,BZ 输出信号发生跳变,可作为蜂鸣器输出
蜂鸣器周期计算方法:
蜂鸣器周期=(TM3IN+1)*2/TM3CLK. (TM3IN 不为 0)
3.4.3 PWM
PWM 输出优先级
定时器 3 有多种形式的 PWM 输出, PWM 输出的优先级从上到下递减
条件
PWM 优先级
PT5EN[1:0] P3H_OEN P3L_OEN PWM3OUT
T3OUT
00
X
X
X
X
PT5.0、PT5.1 做输入口
11
1
1
X
X
PT5.0、PT5.1 做互补式 PWM 输出口
11
1
0
X
X
PT5.1 输出 PWM3H,PT5.0 不做定时器 3
的 PWM 输出口
11
0
1
1
X
PT5.1 输出定时器 3 的普通 PWM,PT5.0
输出 PWM3L
11
0
0
1
X
PT5.1 输出定时器 3 的普通 PWM,PT5.0
不做定时器 3 的 PWM 输出口
11
0
0
0
1
PT5.1 做定时器 3 的蜂鸣器输出口,PT5.0
不做定时器 3 的 PWM 输出口
11
0
0
0
0
PT5.1 做普通输出口,PT5.0 不做定时器 3
的 PWM 输出口
REV1. 1
第 44 页,共 89 页
CSU32P10
操作:
1) 把 PT5.1 配置为输出口。
2) 设置 TM3CLK,为定时/计数器 3 模块选择输入。
3) 设置 TM3IN 来配置 PWM3 的周期。
4) 设置 TM3R 来配置 PWM3 的高电平的的脉宽。
5) 使能 PWM3OUT 输出,配置 PT5.1 为输出端口,之后把 T3EN 置 1 启动定时器。
6) PWM3 从 PT5.1 输出。
周期为 TM3IN+1,高电平脉宽为 TM3R。如 TM3IN=0x0F,TM3R=0x03 的 PWM3 波形输出如下:
0
1
2
3
...
15
0
1
2
...
3
15
0
1
TM3CLK
T3EN
PWM3OUT
3.4.4 互补式 PWM 输出
CSU32P10 提供一对源于定时器 3 的互补式输出,可用作 PWM 驱动信号。对于 PMOS 管上侧驱
动,PWM 输出为低电平有效,而对于 NMOS 管下侧驱动,PWM 输出为高电平有效。当这对互补式输
出同时用于驱动 PMOS 和 NMOS 时,死区时间发生器插入一死区时间以防止直流电流过大,该死区时
间可通过 TM3CON2 寄存器的 DT3CK[1:0]和 DT3CNT[2:0]位来定义。在每个死区时间发生器输入信号
的上升沿时插入一个死区时间。通过死区插入电路,输出信号最终发送至外部功率晶体管。通过
TM3CON2 寄存器的 PWM3_PO 位,可以选择互补式 PWM 输出的位置。
A
PWM3OUT
B
MCK
分频
C
死区时间
发生器
D
PWM3H
E
PWM3L
DT_CLK
DT3CK[1:0] DT3CNT[2:0] DT3_EN
图13
互补式 PWM 输出方框图
互补式 PWM 输出波形
REV1. 1
第 45 页,共 89 页
CSU32P10
PWM3OUT
A
B
C
D
死区时间
死区时间
死区时间
死区时间
E
死区时间
PWM 输出取反后的互补 PWM 输出
PWM3OUT
A
B
C
D
E
死区时间
死区时间
死区时间
死区时间
死区时间
REV1. 1
死区时间
第 46 页,共 89 页
CSU32P10
3.5
模数转换器(ADC)
CSU32P10 模数转换模块共用 5 条外部通道(AIN0~AIN4)和 3 条特殊通道(AIN5:内部
1/8VDD;AIN6:内部参考电压;AIN7:GND),可以将模拟信号转换成 12 位数字信号。进行 AD 转
换时,首先要选择输入通道(AIN0~AIN7),然后把 SRADEN 置 1 使能 ADC,之后把 SRADS 置 1,启
动 AD 转换。转换结束后,系统自动将 SRADS 清 0,并将转换结果存入寄存器 SRADL 和 SRADH
中。模数转换模块选择差分模式时,offex=0,AINP 和 PT3.1 分别作为正输入信号和负输入信号,
offex=1 时,交换输入信号,AINP 可以选择 5 条外部通道和 3 条特殊通道。
AIN0/P3.0
AIN1/P3.1
AIN2/P3.2
AIN3/P3.3
模数转换器
ADC
AIN4/P3.4
12-bit
数
据
总
线
AIN5(内部1/
8 VDD)
AIN6(内部参
考电压)
AIN7(接地)
图14
模数转换器 ADC 功能框图
3.5.1 寄存器描述
表 36 ADC 寄存器列表
地址
名称
06h INTF
07h INTE
21h METCH1
34h SRADCON0
35h SRADCON1
36h SRADCON2
37h SRADL
38h SRADH
Bit7
Bit6
Bit5
Bit4
Bit3
ADIF
ADIE
GIE
SRADACKS[1:0]
SRADEN SRADS OFTEN CALIF ENOV
CHS[3:0]
SRAD[7:0]
REV1. 1
上电复位
值
u0u00u00
00u00u00
OFT_ADJ 00000000
SRADCKS[1:0]
uu00uu00
OFFEX
VREFS[1:0]
00000000
0000uu00
00000000
SRAD[11:8]
uuuu0000
Bit2
Bit1
Bit0
第 47 页,共 89 页
CSU32P10
39h SROFTL
3Ah SROFTH
SROFT[7:0]
00000000
uuuu0000
SROFT[11:8]
表 37 SRADCON0 寄存器各位功能表
位地址
5:4
1:0
标识符
SRADACKS[1:0]
SRADCKS[1:0]
功能
ADC 输入信号获取时间
SRADACKS[1:0]
00
01
10
11
ADC 时钟
SRADCKS[1:0]
00
01
10
11
ADC 输入信号获取时间
16 个 ADC 时钟
8 个 ADC 时钟
4 个 ADC 时钟
2 个 ADC 时钟
ADC 采样时钟
CPUCLK
CPUCLK/2
CPUCLK/4
CPUCLK/8
表 38 SRADCON1 寄存器各位功能表
位地址
标识符
7
SRADEN
6
SRADS
5
OFTEN
4
CALIF
3
ENOV
2
OFFEX
1:0
VREFS[1:0]
功能
ADC 使能位
1:使能
0:禁止
ADC 启动位/状态控制位
1:开始,转换过程中
0:停止,转换结束
当置位后,启动 ADC 转换,转换完成会自动清 0
转换结果选择控制位
1:转换结果放在 SROFT 寄存器中
0:转换结果放在 SRAD 寄存器中
校正控制位(OFTEN 为 0 时有效)
1:使能校正,即 AD 转换的结果是减去了 SROFT 失调电压值
0:禁止校正,即 AD 转换结果是没有减去 SROFT 失调电压值
使能比较器溢出模式(CALIF 为 1 时有效)
1:使能,上溢或下溢直接是减去后的结果
0:禁止,下溢为 000h,上溢为 fffh
OFFSET 交换
1:比较器两端信号交换
0:比较器两端信号不交换(正端为信号,负端为参考电压)
ADC 参考电源选择
注:不同参考电压切换,建议延迟 40uS 再做 AD 转换
VREFS[1:0]
AD 参考电压
00
VDD
01
PT3.0 外部参考电源输入
10
内部参考电压
11
PT3.0 输出内部参考电压,PT3.0
可外接电容作为内置参考电压滤
REV1. 1
第 48 页,共 89 页
CSU32P10
波使用,以提高精度。
表 39 METCH2 寄存器各位功能表
位地址
标识符
功能
VREFS[1:0]配置为 2’b10 或 2’b11,则可通过 REF_SEL [2:0]选择参考
如下电压,若 VREFS[1:0]不是配置为 2’b10 或 2’b11,则以下位无
效。
内部参考电压选择
REF_SEL [2:0]
内部参考电压
REF_SEL [2:0]
6:4
0XX
1.4V
100
1.4V
101
2.0V
110
3.0V
111
4.0V
注:单端模式下,ADC 在 VDD 做参考时,输入电压测量范围是 0~0.75VDD。
表 40 SRADCON2 寄存器各位功能表
位地址
7
6:4
标识符
CHS[3]
CHS[2:0]
功能
ADC 模式选择,1 差分模式 0 单端模式
差分模式 ADC 负端输入信号接 PT3.1 ,单端模式负端输入连接共模
电平
ADC 输入通道选择位
CHS[2:0]
输入通道
000
AIN0 输入
001
AIN1 输入
010
AIN2 输入
011
AIN3 输入
100
AIN4 输入
101
AIN5 输入,内部 1/8VDD
110
AIN6 输入,内部参考电压
111
AIN7 输入,内部接地
注:CHS[3]=1,模数转换模块选择差分模式,参考电压档位只能选择 1.4V/2V/3V。当 offex=0 时,
AINP 和 PT3.1 分别作为正输入信号和负输入信号。当 offex=1 时,交换输入信号。其中 AINP 可以选
择 5 条外部通道和 3 条特殊通道。
注:CHS[3]=0,模数转换模块选择单端模式,ADC 负输入端接共模电平 VCM,无论 offex 为 1 或 0,
AINP 都作为 ADC 的正输入端,其中 AINP 可以选择 5 条外部通道和 3 条特殊通道。
表 41 SRADL 寄存器各位功能表
位地址
7:0
标识符
SRAD[7:0]
功能
ADC 数据的低 8 位,只可读
表 42 SRADH 寄存器各位功能表
位地址
3:0
标识符
SRAD[11:8]
功能
ADC 数据的高 4 位,只可读
REV1. 1
第 49 页,共 89 页
CSU32P10
表 43 SROFTL 寄存器各位功能表
位地址
7:0
标识符
SROFT[7:0]
功能
校正值数据的低 8 位
表 44 SROFTH 寄存器各位功能表
位地址
3:0
标识符
SROFT[11:8]
功能
校正值数据的高 4 位
表 45 METCH1 寄存器各位功能表
位地址
0
标识符
功能
SAR_ADC 失调校准使能位
0:禁止 SAR_ADC 失调校准
1:使能 SAR_ADC 失调校准
使能校准后,类似差分输入,PT3.1 口接输入信号的地端,其他模拟
输入口接输入信号,这样可以抵消 SAR_ADC 的系统失调电压。
OFT_ADJ
表 46 输入电压和 SRAD 输出数据的关系
输入电压
0/4096*VREF
1/4096*VREF
…
…
4094/4096*VREF
4095/4096*VREF
11
0
0
10
0
0
9
0
0
8
0
0
7
0
0
SRAD[11:0]
6
5
0
0
0
0
4
0
0
3
0
0
2
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
3.5.2 转换时间
12 位 AD 转换时间=(1/ADC 时钟频率)× (12+CALIF+ADC 输入信号获取时间)
表 47 转换时间说明表(1)
CLKDIV
(2)
CALIF
SRADCKS
01
10
0
4M 指
令周期
11
1
01
10
SRADACKS
00
01
00
01
10
00
01
10
11
00
01
00
(3)
AD 转换时间
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
(
(
(
(
(
(
(
(
(
(
(
(
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
/
/
/
/
/
/
/
/
/
/
/
/
REV1. 1
4)
4)
4)
4)
4)
4)
4)
4)
4)
4)
4)
4)
/
/
/
/
/
/
/
/
/
/
/
/
2)
2)
4)
4)
4)
8)
8)
8)
8)
2)
2)
4)
×
×
×
×
×
×
×
×
×
×
×
×
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
+
+
+
+
+
+
+
+
+
+
+
+
0
0
0
0
0
0
0
0
0
1
1
1
+
+
+
+
+
+
+
+
+
+
+
+
16) = 14us
8) = 10us
16) = 28us
8) = 20us
4) = 16us
16) = 56us
8) = 40us
4) = 32us
2) = 28us
16) = 14.5us
8) = 10.5us
16) = 29us
第 50 页,共 89 页
CSU32P10
11
01
0
10
11
2M 指
令周期
01
1
10
11
01
0
1M 指
令周期
10
11
01
1
10
01
10
00
01
10
11
00
01
10
00
01
10
11
00
01
10
11
00
01
10
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
REV1. 1
4) / 4)
4) / 4)
4) / 8)
4) / 8)
4) / 8)
4) / 8)
8) / 2)
8) / 2)
8) / 2)
8) / 4)
8) / 4)
8) / 4)
8) / 4)
8) / 8)
8) / 8)
8) / 8)
8) / 8)
8) / 2)
8) / 2)
8) / 2)
8) / 4)
8) / 4)
8) / 4)
8) / 4)
8) / 8)
8) / 8)
8) / 8)
8) / 8)
16) / 2)
16) / 2)
16) / 2)
16) / 2)
16) / 4)
16) / 4)
16) / 4)
16) / 4)
16) / 8)
16) / 8)
16) / 8)
16) / 8)
16) / 2)
16) / 2)
16) / 2)
16) / 2)
16) / 4)
16) / 4)
16) / 4)
16) / 4)
× (12 + 1 + 8) = 21us
× (12 + 1 + 4) = 17us
× (12 + 1 + 16) = 58us
× (12 + 1 + 8) = 42us
× (12 + 1 + 4) = 34us
× (12 + 1 + 2) = 30us
× (12 + 0 + 16) = 28us
× (12 + 0 + 8) = 20us
× (12 + 0 + 4) = 16us
× (12 + 0 + 16) = 56us
× (12 + 0 + 8) = 40us
× (12 + 0 + 4) = 32us
× (12 + 0 + 2) = 24us
× (12 + 0 + 16) = 112us
× (12 + 0 + 8) = 80us
× (12 + 0 + 4) = 64us
× (12 + 0 + 2) = 48us
× (12 + 1 + 16) = 29us
× (12 + 1 + 8) = 21us
× (12 + 1 + 4) = 17us
× (12 + 1 + 16) = 58us
× (12 + 1 + 8) = 42us
× (12 + 1 + 4) = 34us
× (12 + 1 + 2) = 30us
× (12 + 1 + 16) = 116us
× (12 + 1 + 8) = 84us
× (12 + 1 + 4) = 68us
× (12 + 1 + 2) = 60us
× (12 + 0 + 16) = 56us
× (12 + 0 + 8) = 40us
× (12 + 0 + 4) = 32us
× (12 + 0 + 2) = 28us
× (12 + 0 + 16) = 112us
× (12 + 0 + 8) = 80us
× (12 + 0 + 4) = 64us
× (12 + 0 + 2) = 48us
× (12 + 0 + 16) = 224us
× (12 + 0 + 8) = 160us
× (12 + 0 + 4) = 128us
× (12 + 0 + 2) = 96us
× (12 + 1 + 16) = 58us
× (12 + 1 + 8) = 42us
× (12 + 1 + 4) = 34us
× (12 + 1 + 2) = 15us
× (12 + 1 + 16) = 116us
× (12 + 1 + 8) = 84us
× (12 + 1 + 4) = 68us
× (12 + 1 + 2) = 60us
第 51 页,共 89 页
CSU32P10
11
01
0
10
11
500K
指令周
期
01
1
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
1/
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
(16MHz
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
16)
16)
16)
16)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
32)
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
8)
8)
8)
8)
2)
2)
2)
2)
4)
4)
4)
4)
8)
8)
8)
8)
2)
2)
2)
2)
4)
4)
4)
4)
8)
8)
8)
8)
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
(12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
16) = 232us
8) = 168us
4) = 136us
2) = 120us
16) = 112us
8) = 80us
4) = 64us
2) = 56us
16) = 224us
8) = 160us
4) = 128us
2) = 96us
16) = 448us
8) = 320us
4) = 256us
2) = 192us
16) = 116us
8) = 84us
4) = 68us
2) = 60us
16) = 232us
8) = 168us
4) = 136us
2) = 120us
16) = 464us
8) = 336us
4) = 272us
2) = 240us
(1) fosc=16MHz
(2) 代码选项
(3) AD 转换时间随 fosc 频率的改变而改变。
3.5.3 AD 失调电压校正
不同芯片由于离散性的原因,AD 的失调电压可能有正有负。
校正失调电压的方法:
在 AD 转换过程中通过不断变换 SRADCON1 寄存器中的 OFFEX 的值。如第一次 AD 转换 OFFEX
置 0,第二次 AD 转换 OFFEX 置 1,然后将第一次和第二次测试的 AD 值求平均值。两次转换得到的
平均值就是去掉失调电压的正确结果。
REV1. 1
第 52 页,共 89 页
CSU32P10
…
clrf sradcon1
;VDD 为参考电压,often=0,calif=0;enov=0,offex=0,vrefs=00
movlw 20h
movwf sradcon2
;chs[3:0]=0010,选择通道 2
bsf sradcon1,7
;使能 ADC 模块
call delay_40us
…
bsf sradcon1,6
;srads=1,开始转换
btfsc sradcon1,6 ;检测转换是否完成
goto $-1
movlw sradl
movwf adtmp1_l
movlw sradh
movwf adtmph_l
…
bsf sradcon1,2
;offex=1
bsf sradcon1,6
;srads=1,开始转换
btfsc sradcon1,6 ;检测转换是否完成
goto $-1
movlw sradl
movwf adtmp1_2
movlw sradh
movwf adtmph_2
aver adtmph_1,adtmpl_1,adtmph_2,adtmpl_2 ;求两次 AD 值平均值,并保存在
;adtmph_1,adtmpl_1
…
3.5.4 数字比较器
ADC 模块可作为一个数字比较器。被测信号的输入频率应小于转换频率的 1/2。比较器的速率是和 AD
转换频率相关的。
操作:
1) 通过 ADC 通道选择控制位 chs[3:0]选择比较器负端的信号输入,之后把 OFTEN 置 1,CALIF 清
0,ENOV 置 0,把 SRADEN 置 1 使能 ADC,SRADS 置 1 启动转换,转换完成可把转换结果写入
SROFT 寄存器。
也可以直接把负端信号的 AD 值直接写到 SROFT 寄存器中,即人为指定负端电压值。
2) 通过 ADC 通道选择控制位 chs[3:0]选择比较器正端的信号输入,之后把 OFTEN 置 0,CALIF 清
1,ENOV 置 1,把 SRADEN 置 1 使能 ADC,SRADS 置 1 启动转换。
3) AD 数据的最高位 SRAD[11]则是比较器的结果,为 0 时表示正端电压大于负端电压,为 1 时表示
正端电压小于负端电压。SRAD[11:0]为差值,带符号位的补码。
比较通道 0 和通道 1 的电压值,通道 0 接比较器正端,通道 1 接比较器负端。
REV1. 1
第 53 页,共 89 页
CSU32P10
…
clrf sradcon1
bsf sradcon1,5
movlw 00h
movwf sradcon2
bsf sradcon1,7
call delay_40us
bsf sradcon1,6
btfsc sradcon1,6
goto $-1
…
movlw 10h
movwf sradcon2
bcf sradcon1,5
bsf sradcon1,4
bsf sradcon1,3
bsf sradcon1,6
btfsc sradcon1,6
goto $-1
btfsc sradh,3
goto le_cmp
goto gt_cmp
…
;VDD 为参考电压,often=0,calif=0;enov=0,offex=0,vrefs=00
;often=1,结果保存在 sroft 寄存器中
;chs[3:0]=0000,选择通道 0 作为比较器负端
;使能 ADC 模块
;srads=1,开始转换
;检测转换是否完成
;chs[3:0]=0001,选择通道 1 作为比较器正端
;often=0
;calif=1
;enov=1
;srads=1,开始转换
;检测转换是否完成
;正端电压小于负端电压
;正端大于等于负端电压
比较 1V 电压和通道 1 的电压,通道 1 接比较器正端,1V 接比较器负端,假设采用 5V 的 VDD 作为参
考电压,那么 1V 的 AD 值为 0x333。
…
clrf sradcon1
movlw 10h
movwf sradcon2
bsf sradcon1,4
bsf sradcon1,3
movlw 03h
movwf srofth
movlw 33h
movwf sroftl
bsf sradcon1,7
call delay_40us
bsf sradcon1,6
btfsc sradcon1,6
goto $-1
btfsc sradh,3
goto le_cmp
goto gt_cmp
…
;VDD 为参考电压,often=0,calif=0;enov=0,offex=0,vrefs=00
;chs[3:0]=0001,选择通道 1 作为比较器正端
;calif=1
;enov=1
;sroft 寄存器存入 333h,即 1V 作为比较器负端
;使能 ADC 模块
;srads=1,开始转换
;检测转换是否完成
;正端电压小于负端电压
;正端大于等于负端电压
REV1. 1
第 54 页,共 89 页
CSU32P10
3.5.5 内部测量 VDD 的电压
用户可以通过使用内部参考电压或者外部参考电压输入(外部参考电压固定且不随 VDD 电压变
化)两种方法来测试芯片内部 VDD 的电压。
使用外部参考电压,使用条件较多,需额外提供参考源。
使用内部参考电压不需要额外的硬件条件。但是,使用内部参考电压会由于本身内部参考电压值
的不准而影响精度。可以通过内部参考电压校正来提高测试的精度。
外接 3V 作为参考电压,测 VDD 电压。选择通道 5,测出 1/8VDD 的 AD 值,之后乘以 8 得出 VDD 的
AD 值,再乘以参考电压则为 VDD 电压。
…
clrf sradcon1
bsf sradcon1,0
movlw 50h
movwf sradcon2
bsf sradcon1,7
call delay_40us
bsf sradcon1,6
btfsc sradcon1,6
goto $-1
movlw sradl
movwf adtmp1
movlw sradh
movwf adtmph
bcf status,c
rlf adtmp1
rlf adtmph
rlf adtmp1
rlf adtmph
rlf adtmp1
rlf adtmph
…
;often=0,calif=0;enov=0,offex=0,vrefs=00
;vrefs=01,选择外部参考电压,接 3V
;chs[3:0]=0101,选择通道 5 ,1/8VDD
;使能 ADC 模块
;srads=1,开始转换
;检测转换是否完成
;AD 值乘以 2
;AD 值乘以 4
;AD 值乘以 8,小数点在 adtmph 的 bit3 和 bit4 之间
REV1. 1
第 55 页,共 89 页
CSU32P10
3.6
数据查表
通过 MOVP 指令可以实现对于用户程序存储器内的数据读取,用户程序存储器的地址范围为
000H~7FFH
表 48 数据 E2PROM 寄存器列表
地
址
05h
0Ah
0Bh
0Ch
名称
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
工作寄存器
WORK
EADRH
EADRL
EDATH
EDAR [9:8]
EDAR [7:0]
EDATH[5:0]
上电复位
值
00000000
uuuuuu00
00000000
uu000000
EADRH/EADRL 提供读操作的数据地址;
EDATH/WORK 提供读操作所用的数据。
读操作都是基于一个字(14 bits)的。EDATH 寄存器只可读。
执行读操作时,在地址寄存器输入相应的值,之后执行 MOVP 指令,便可在相应的 OTP 地址的数据读
入到 EDATH/WORK 寄存器中。执行一次读操作大概需要 3 个指令周期。
movlw
movwf
movlw
movwf
movp
nop
…
04H
EADRH ;给高字节地址赋值
00H
EADRL ;给低字节地址赋值
;执行读操作
REV1. 1
第 56 页,共 89 页
CSU32P10
输入逻辑电平电压配置
3.7
表 49 METCH2 寄存器列表
地
名称
址
2Fh METCH2
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
VTHSEL
Bit0
上电复位
值
00000000
表 50 METCH2 寄存器各位功能表
位地址
7
标识符
VTHSEL
功能
输入逻辑电平电压控制信号
VTHSEL
输入逻辑电平
0
符号
参数
VIH1 数字输入高电平
复位输入高电平
VIL1 数字输入低电平
复位输入低电平
1
符号
参数
VIH2 数字输入高电平
复位输入高电平
VIL2 数字输入低电平
复位输入低电平
REV1. 1
最小值
典型值
最大值
0.85VDD
0.8VDD
0.2VDD
0.2VDD
最小值
典型值
最大值
0.5VDD
0.5VDD
0.1VDD
0.1VDD
单
位
V
V
V
V
单
位
V
V
V
V
第 57 页,共 89 页
CSU32P10
输出电流配置
3.8
有 3 个 IO 口 PT1.4、PT5.0 和 PT5.1 输出电流大小可进行配置。PT5.0 和 PT5.1 输出电流可以配置
IOH/IOL 为 18mA/18mA@5V 或 IOH/IOL 为 18mA/50mA@5V。PT5.0 和 PT5.1 输出电流由 METCH2 寄
存器中的 PWMIS 进行配置。在限流代码选项使能后,PT1.4 的输出电流可配置为 IOH/IOL 为
1.1mA/18mA@5V 或 2.3mA/18mA@5V,可通过 METCH2 寄存器的 P14_CUR 进行配置
表 51 METCH2 寄存器列表
地
名称
址
2Fh METCH2
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
PWMIS
Bit1
上电复位
值
P14_CUR 00000000
Bit0
表 52 METCH2 寄存器各位功能表
位地址
标识符
3
PWMIS
0
P14_CUR
功能
PT5.0 和 PT5.1 输出电流选择
0:PT5.0 和 PT5.1 的输出电流 IOH/IOL 为 18mA/18mA
1: PT5.0 和 PT5.1 的输出电流 IOH/IOL 为 18mA/50mA
PT1.4 输出电流选择(仅在限流代码选项配置为 1 时有效,当限流代码选项配置
为 0 时,PT1.4 口的驱动能力为正常值,此时推荐将 P14_CUR 配置为 0)
0:PT1.4 的输出电流 IOH/IOL 为 2.3mA/18mA@5V 10mA
1:PT1.4 的输出电流 IOH/IOL 为 1.1mA/18mA@5V
REV1. 1
第 58 页,共 89 页
CSU32P10
3.9
烧录模块
烧写器的接口:
Application PCB
VPP
VDD
VSS
PDA
PCL
To application circuit
Isolation circuit
图15
烧写器接口图
表 53 烧录接口说明
端口名称
VPP
VDD
VSS
PDA
PCL
型式
输入
输入
输入
输入/输出
输入
说明
烧录电源
电源正端
电源负端
PT1[4]端口,数据信号
PT1[5]端口,时钟信号
REV1. 1
第 59 页,共 89 页
CSU32P10
3.10 代码选项
1)OPTIION
标识符
ICK_SEL
PD_OP
CUR_OP
CLKDIV
LVD_SEL
RESET_PIN
SECURITY
功能
内部晶振选择
内部晶振频率
16MHz
下拉代码选项
PT3.4、PT5.1 接 10K 下拉电阻,PT1.0 接 1K 下拉电阻,PT1.3 口接 400KΩ下
拉电阻,PT1.1、PT1.5 口驱动能力配置为 5mA
以上 IO 均不接下拉,驱动能力为正常值
限流代码选项
PT1.1、PT1.4、PT1.5 口驱动能力(IOH)配置为 1.5mA(PT1.4 的驱动能力还与
寄存器 METCH2 的 P14_CUR 的值有关,P14_CUR 为 0 时,PT1.4 的驱动能力
为 3mA, P14_CUR 为 1 时,PT1.4 的驱动能力为 1.5mA)
以上 IO 驱动能力为正常值
指令周期选择
指令周期
指令周期=4 个时钟周期
指令周期=8 个时钟周期
指令周期=16 个时钟周期
LVD 配置
功能
VDD 低于 2.0V(RST20_SEL=0)或
1.6V(RST20_SEL=1),LVD 复位系统
VDD 低于 2.0V(RST20_SEL=0)或
1.6V(RST20_SEL=1),LVD 复位系统;
STATUS 的 LVD24 作为 2.4V 的低电压检测器
STATUS 的 LVD36 作为 3.6V 的低电压检测器
VDD 低于 2.4V,LVD 复位系统;
STATUS 的 LVD36 作为 3.6V 的低电压检测器
VDD 低于 3.6V,LVD 复位系统
注:RST20_SEL 是 METCH1 特殊功能寄存器的 bit1。
复位引脚选择
PT1.3 作为复位引脚
PT1.3 作为普通输入口
代码保密位
使能代码加密
禁止代码加密
REV1. 1
第 60 页,共 89 页
CSU32P10
4
MCU 指令集
表 54 表 MCU 指令集
指令
ADDLW k
ADDPCW
ADDWF f,d
ADDWFC f,d
ANDLW k
ANDWF f,d
BCF f,b
BSF f,b
BTFSC f,b
BTFSS f,b
CALL k
CLRF f
CLRWDT
COMF f,d
DAW
DECF f,d
DECFSZ f,d
GOTO k
HALT
INCF f,d
INCFSZ f,d
IORLW k
IORWF f,d
MOVFW f
MOVLW k
MOVP
MOVWF f
NOP
POP
PUSH
RETFIE
RETLW k
RETURN
RLF f,d
RRF f,d
SLEEP
SUBLW k
SUBWF f,d
SUBWFC f,d
SWAPF f,d
XORLW k
XORWF f,d
操作
[W]←[W]+k
[PC] ←[PC]+1+[W]
[Destination] ←[f]+[W]
[Destination] ←[f]+[W]+C
[W]←[W] AND k
[Destination] ← [W] AND [f]
[f]←0
[f]←1
Jump if[f]=0
Jump if[f]=1
Push PC+1 and Goto K
[f]←0
Clear watch dog timer
[f]←NOT([f])
Decimal Adjust W
[Destination] ←[f] -1
[Destination] ←[f] -1,jump if the result is zero
PC←k
CPU Stop
[Destination] ←[f]+1
[Destination] ←[f]+1,jump if the result is zero
[W]←[W] OR k
[Destination] ← [W] OR [f]
[W]←[f]
[W]←k
Read table list
[f]←[W]
No operation
Pop W and Status
Push W and Status
Pop PC and GIE =1
RETURN and W=k
POP PC
[Destination] ←[f]
[Destination] ←[f]
STOP OSC
[W] ← k – [W]
[Destinnation] ← [f]– [W]
[Destinnation] ← [f]– [W]-1+C
swap f
[W]←[W] XOR k
[Destination] ← [W] XOR [f]
指令周期
1
2
1
1
1
1
1
1
1/2
1/2
2
1
1
1
1
1
1/2
2
1
1
1/2
1
1
1
1
3
1
1
2
2
2
2
2
1
1
1
1
1
1
1
1
1
标志位
C,DC,Z
~
C,DC,Z
C,DC,Z
Z
Z
~
~
~
~
~
Z
~
Z
C,DC
Z
~
~
~
Z
~
Z
Z
~
~
~
~
~
~
~
~
~
~
C,Z
C,Z
PD
C,DC,Z
C,DC,Z
C,DC,Z
~
Z
Z
参数说明:
f: 数据存储器地址(00H ~7FH)
W: 工作寄存器
k: 立即数
REV1. 1
第 61 页,共 89 页
CSU32P10
d: 目标地址选择: d=0 结果保存在工作寄存器, d=1: 结果保存在数据存储器 f 单元
b: 位选择(0~7)
[f]: f 地址的内容
PC: 程序计数器
C: 进位标志
DC: 半加进位标志
Z: 结果为零标志
PD: 睡眠标志位
TO: 看门狗溢出标志
WDT: 看门狗计数器
表 55 MCU 指令集描述
1
ADDLW
指令格式
操作
标志位
描述
周期
例子
ADDLW 08h
加立即数到工作寄存器
ADDLW K (0