FU5821
Fortior Tech
FU5821
MCU Embedded and
Configurable Single-Phase BLDC
Motor Controller
Datasheet
www.fortiortech.com
FU5821
目
录
目 录 ................................................................................................................................................2
1
2
3
系统介绍 ................................................................................................................................... 11
1.1
特性....................................................................................................................................... 11
1.2
应用场景............................................................................................................................... 12
1.3
概述....................................................................................................................................... 12
1.4
系统框图............................................................................................................................... 12
1.4.1
FU5821T 功能框图 ............................................................................................................... 12
1.5
Memory 空间 ........................................................................................................................ 13
1.5.1
Program Memory .................................................................................................................. 13
1.5.2
Data Memory ........................................................................................................................ 13
1.5.3
SFR ......................................................................................................................................... 14
1.5.4
XSFR....................................................................................................................................... 15
引脚定义 ................................................................................................................................... 17
2.1
FU5821T TSSOP16 引脚列表 ................................................................................................ 17
2.2
FU5821T 封装-TSSOP16........................................................................................................ 19
封装信息 ................................................................................................................................... 20
3.1
TSSOP16 ................................................................................................................................ 20
4
订购信息 ................................................................................................................................... 21
5
电气特性 ................................................................................................................................... 22
6
5.1
绝对最大额定值................................................................................................................... 22
5.2
全局电气特性....................................................................................................................... 22
5.3
GPIO 电气特性 ..................................................................................................................... 23
5.4
Predriver IO 电气特性 .......................................................................................................... 23
5.5
OSC 电气特性 ....................................................................................................................... 24
5.6
复位电气特性....................................................................................................................... 24
5.7
LDO 电气特性 ....................................................................................................................... 24
5.8
封装热阻............................................................................................................................... 24
复位控制 ................................................................................................................................... 25
6.1
复位源(RST_SR) .................................................................................................................... 25
6.2
复位使能............................................................................................................................... 25
6.3
外部引脚复位、上电复位 ................................................................................................... 25
6.4
低电压侦测复位................................................................................................................... 25
REV_1.1
2
www.fortiortech.com
FU5821
7
8
9
6.5
看门狗溢出复位................................................................................................................... 25
6.6
RSTFED 复位 ......................................................................................................................... 26
6.7
软复位................................................................................................................................... 26
6.8
复位寄存器........................................................................................................................... 26
6.8.1
RST_SR(0xC9) ................................................................................................................... 26
中断控制 ................................................................................................................................... 28
7.1
简介....................................................................................................................................... 28
7.2
启动中断源........................................................................................................................... 28
7.3
外部中断............................................................................................................................... 28
7.4
中断说明............................................................................................................................... 29
7.5
中断寄存器........................................................................................................................... 30
7.5.1
IE(0xA8)............................................................................................................................ 30
7.5.2
IP0(0xB8).......................................................................................................................... 30
7.5.3
IP1(0xC0).......................................................................................................................... 31
7.5.4
IP2(0xC8).......................................................................................................................... 31
7.5.5
IP3(0xD8) ......................................................................................................................... 32
7.5.6
TCON(0x88) ..................................................................................................................... 32
I2C(Inter-Integrated Circuit bus) ................................................................................................. 34
8.1
简介....................................................................................................................................... 34
8.2
操作说明............................................................................................................................... 35
8.2.1
主机模式............................................................................................................................... 35
8.2.2
从机模式............................................................................................................................... 35
8.2.3
I2C 中断源 ............................................................................................................................ 36
8.3
I2C 寄存器 ............................................................................................................................ 37
8.3.1
I2C_CR(0x4028) ............................................................................................................... 37
8.3.2
I2C_ID(0x4029) ................................................................................................................ 37
8.3.3
I2C_DR(0x402A) ............................................................................................................... 38
8.3.4
I2C_SR(0x402B) ............................................................................................................... 38
UART(Universal Asynchronous Receiver/Transmitter) ............................................................... 41
9.1
简介....................................................................................................................................... 41
9.2
UART 操作说明..................................................................................................................... 41
9.2.1
模式 0.................................................................................................................................... 41
9.2.2
模式 1.................................................................................................................................... 41
9.2.3
模式 2.................................................................................................................................... 41
REV_1.1
3
www.fortiortech.com
FU5821
10
9.2.4
模式 3.................................................................................................................................... 42
9.2.5
UART 中断源......................................................................................................................... 42
9.3
UART1 寄存器....................................................................................................................... 43
9.3.1
UT_CR(0x98) .................................................................................................................... 43
9.3.2
UT_DR(0x99).................................................................................................................... 43
9.3.3
UT_BAUD(0x9A,0x9B)...................................................................................................... 44
TIM1 .......................................................................................................................................... 45
10.1
Timer1 操作说明 .................................................................................................................. 45
10.1.1
Timer 计数单元 .................................................................................................................... 46
10.1.1.1
Timer clock 控制器 ....................................................................................................... 46
10.1.1.2
基本定时器................................................................................................................... 47
10.1.1.3
重载定时器................................................................................................................... 48
10.1.1.4
过程定时器................................................................................................................... 49
10.1.2
10.1.2.1
输入滤波............................................................................................................................... 50
滤波 .............................................................................................................................. 50
10.1.3
位置检测事件....................................................................................................................... 50
10.1.4
Timer1 中断 .......................................................................................................................... 50
10.2
Timer1 寄存器 ...................................................................................................................... 51
10.2.1
TIM1_CR0(0xB1) .............................................................................................................. 51
10.2.2
TIM1_CR1(0xB2) .............................................................................................................. 52
10.2.3
TIM1_CR2(0xB3) .............................................................................................................. 52
10.2.4
TIM1_CR3(0xB4) .............................................................................................................. 53
10.2.5
TIM1_CR4(0xB5) .............................................................................................................. 53
10.2.6
TIM1_CR5(0xB6) .............................................................................................................. 54
10.2.7
TIM1_CR6(0xB7) .............................................................................................................. 55
10.2.8
TIM1_CR7(0xB8) .............................................................................................................. 55
10.2.9
TIM1_CR8(0xC1) .............................................................................................................. 56
10.2.10
TIM1_CR9(0xDC).............................................................................................................. 57
10.2.11
TIM1_CR10(0xDD) ........................................................................................................... 57
10.2.12
TIM1_IRE(0xD1) ............................................................................................................... 58
10.2.13
TIM1_SR(0xD4) ................................................................................................................ 59
10.2.14
TIM1_DBR2(0xBA) ........................................................................................................... 60
10.2.15
TIM1_DBR3(0xBB) ........................................................................................................... 61
10.2.16
TIM1_DBRB(0xDE) ........................................................................................................... 62
REV_1.1
4
www.fortiortech.com
FU5821
11
12
10.2.17
TIM1__BCNTR(0xD2、0xD3) ........................................................................................... 63
10.2.18
TIM1__BCOR(0xC2、0xC3) ............................................................................................. 63
10.2.19
TIM1__RCNTR(0xBC、0xBD) ........................................................................................... 64
10.2.20
TIM1__RARR(0xBE、0xBF) .............................................................................................. 64
10.2.21
TIM1__SCNTR(0xC4、0xC5) ............................................................................................ 65
10.2.22
TIM1__SARR(0xC6、0xC7) .............................................................................................. 65
10.2.23
TIM1__FPWMDDR(0xCC、0xCD) .................................................................................... 66
10.2.24
TIM1__PWMDR(0xCA、0xCB) ........................................................................................ 66
10.2.25
TIM1__RPWMDDR(0xCE、0xCF)..................................................................................... 67
TIM2 .......................................................................................................................................... 68
11.1
TIM2 操作说明 ..................................................................................................................... 68
11.1.1
时钟控制器........................................................................................................................... 68
11.1.2
TIM2_CNTR 的读写和计数 .................................................................................................. 68
11.1.3
输出模式............................................................................................................................... 69
11.1.3.1
高/低电平输出模式 ..................................................................................................... 69
11.1.3.2
PWM 模式 .................................................................................................................... 69
11.1.3.3
中断事件....................................................................................................................... 69
11.1.4
输入信号滤波和边沿检测 ................................................................................................... 70
11.1.5
输入 timer 模式 .................................................................................................................... 71
11.2
TIM2 寄存器 ......................................................................................................................... 72
11.2.1
TIM2_CR0(0xA1) ................................................................................................................... 72
11.2.2
TIM2_CR1(0xA9) ................................................................................................................... 73
11.2.3
TIM2_CNTR(0xAB,0xAA) ....................................................................................................... 74
11.2.4
TIM2_DR(0xAC,0xAD) ........................................................................................................... 74
11.2.5
TIM2_ARR(0xAE,0xAF) .......................................................................................................... 75
TIM3 .......................................................................................................................................... 76
12.1
TIM3 操作说明 ..................................................................................................................... 76
12.1.1
时钟控制器........................................................................................................................... 76
12.1.2
TIM3_CNTR 的读写和计数 .................................................................................................. 76
12.1.3
输出模式............................................................................................................................... 77
12.1.3.1
高/低电平输出模式 ..................................................................................................... 77
12.1.3.2
PWM 模式 .................................................................................................................... 77
12.1.3.3
中断事件....................................................................................................................... 77
12.1.4
REV_1.1
输入信号滤波和边沿检测 ................................................................................................... 78
5
www.fortiortech.com
FU5821
13
14
15
12.1.5
输入 timer 模式 .................................................................................................................... 79
12.2
TIM3 寄存器 ......................................................................................................................... 80
12.2.1
TIM3_CR0(0x9C).................................................................................................................... 80
12.2.2
TIM3_CR1(0x9D) ................................................................................................................... 81
12.2.3
TIM3_CNTR(0xA2,0xA3) ........................................................................................................ 82
12.2.4
TIM3_DR(0xA4,0xA5) ............................................................................................................ 82
12.2.5
TIM3_ARR(0xA7,0xA6) .......................................................................................................... 83
TIM4 .......................................................................................................................................... 84
13.1
TIM4 操作说明 ..................................................................................................................... 84
13.1.1
时钟控制器........................................................................................................................... 84
13.1.2
TIM4_CNTR 的读写和计数 .................................................................................................. 84
13.1.3
输出模式............................................................................................................................... 85
13.1.3.1
高/低电平输出模式 ..................................................................................................... 85
13.1.3.2
PWM 模式 .................................................................................................................... 85
13.1.3.3
中断事件....................................................................................................................... 85
13.1.4
输入信号滤波和边沿检测 ................................................................................................... 86
13.1.5
输入 timer 模式 .................................................................................................................... 87
13.2
TIM4 寄存器 ......................................................................................................................... 88
13.2.1
TIM4_CR0(0x9E) .................................................................................................................... 88
13.2.2
TIM4_CR1(0x9F) .................................................................................................................... 89
13.2.3
TIM4_CNTR(0x92,0x93) ........................................................................................................ 90
13.2.4
TIM4_DR(0x94,0x95)............................................................................................................. 90
13.2.5
TIM4_ARR(0x96,0x97)........................................................................................................... 91
SYS_TICK.................................................................................................................................... 92
14.1
操作说明............................................................................................................................... 92
14.2
寄存器................................................................................................................................... 92
14.2.1
DRV_SR(0xDF) ....................................................................................................................... 92
Driver ........................................................................................................................................ 93
15.1
操作说明............................................................................................................................... 93
15.1.1
简介....................................................................................................................................... 93
15.1.2
输出控制模块....................................................................................................................... 94
15.1.2.1
计数比较模块............................................................................................................... 95
15.1.2.2
死区模块....................................................................................................................... 95
15.1.2.3
主输出使能 MOE.......................................................................................................... 96
REV_1.1
6
www.fortiortech.com
FU5821
15.1.2.4
15.1.2.4.1
16
17
18
中断 .............................................................................................................................. 97
比较匹配中断 ....................................................................................... 97
15.2
寄存器................................................................................................................................... 98
15.2.1
DRV_CR(0xE1) .................................................................................................................... 98
15.2.2
DRV_SR(0xDF) ....................................................................................................................... 99
15.2.3
DRV_OUT(0xF8) ................................................................................................................ 100
15.2.4
DRV_ARR(0xE4,0xE5) .......................................................................................................... 101
15.2.5
DRV_DR(0xE2,0xE3) ............................................................................................................ 101
15.2.6
DRV_DTR(0xE9) ................................................................................................................... 102
15.2.7
DRV__CNTR(0xE6,0xE7) ...................................................................................................... 102
16 Watchdog timer (WDT) ........................................................................................................ 103
16.1
WDT 使用注意事项 ............................................................................................................ 103
16.2
WDT 操作说明.................................................................................................................... 103
16.3
WDT 寄存器........................................................................................................................ 104
16.3.1
WDT_CR(0x4026)........................................................................................................... 104
16.3.2
WDT_ARR(0x4027) ........................................................................................................ 104
16.3.3
CCFG1 (0x401E) ................................................................................................................... 104
RTC 与时钟校准 ...................................................................................................................... 105
17.1
RTC 基本功能框图 ............................................................................................................. 105
17.2
RTC 操作说明 ..................................................................................................................... 105
17.3
RTC 寄存器 ......................................................................................................................... 105
17.3.1
计数寄存器:RTC_TM(0x402C,0x402D) ................................................................... 105
17.3.2
控制寄存器:RTC_STA(0x402E)................................................................................... 106
17.4
时钟校准............................................................................................................................. 106
17.4.1
简介..................................................................................................................................... 106
17.4.2
寄存器................................................................................................................................. 107
IO ............................................................................................................................................ 108
18.1
IO 简介 ................................................................................................................................ 108
18.2
IO 操作说明 ........................................................................................................................ 108
18.3
IO 寄存器 ............................................................................................................................ 109
18.3.1
P0_OE(0xFC) .................................................................................................................. 109
18.3.2
P1_OE(0xFD) .................................................................................................................. 109
18.3.3
P0_AN(0x4031) .............................................................................................................. 110
18.3.4
P1_AN(0x4030) .............................................................................................................. 110
REV_1.1
7
www.fortiortech.com
FU5821
19
20
18.3.5
P0_PU(0x4033) .............................................................................................................. 111
18.3.6
P1_PU(0x4034) .............................................................................................................. 111
18.3.7
PH_SEL(0x403C)............................................................................................................. 112
18.3.8
P0(0x80)/P1(0x90) ................................................................................................... 113
ADC ......................................................................................................................................... 114
19.1
ADC 简介............................................................................................................................. 114
19.2
ADC 框图............................................................................................................................. 114
19.3
ADC 操作说明 ..................................................................................................................... 115
19.3.1
输出数据格式..................................................................................................................... 116
19.4
ADC 寄存器......................................................................................................................... 117
19.4.1
ADC_CR(0x4039)............................................................................................................ 117
19.4.2
ADC_MASK(0x4036,0x4037) ............................................................................................... 118
19.4.3
ADC_SCYC(0x4038) ............................................................................................................. 119
19.4.4
ADC0_DR(0x0100,0x0101) .................................................................................................. 120
19.4.5
ADC1_DR(0x0102,0x0103) .................................................................................................. 120
19.4.6
ADC2_DR(0x0104,0x0105) .................................................................................................. 121
19.4.7
ADC3_DR(0x0106,0x0107) .................................................................................................. 121
19.4.8
ADC4_DR(0x0108,0x0109) .................................................................................................. 122
19.4.9
ADC5_DR(0x010A,0x10B).................................................................................................... 122
19.4.10
ADC6_DR(0x010C,0x010D) ................................................................................................. 123
19.4.11
ADC7_DR(0x010E,0x010F) .................................................................................................. 123
19.4.12
ADC8_DR(0x0110,0x0111) .................................................................................................. 124
19.4.13
ADC9_DR(0x0112,0x0113) .................................................................................................. 124
19.4.14
ADC10_DR(0x0114,0x115) .................................................................................................. 125
比较器 .................................................................................................................................... 126
20.1
比较器操作说明................................................................................................................. 126
20.1.1
比较器 CMP0 ...................................................................................................................... 126
20.1.2
比较器 LOCP ....................................................................................................................... 126
20.1.2.1
母线电流保护............................................................................................................. 127
20.1.2.2
逐波限流..................................................................................................................... 127
20.1.3
比较器 HALL_COMP ........................................................................................................... 128
20.2
当 HALLP、HALLC、HALLN 全使能时,通过配置 TIM1_CR6/TIM1_CR7 中的
HALLP_REF/HALLN_REF,使得 HALLP/HALLN 的输出提前 HALLC 输出。比较器寄存器 .............. 128
20.2.1
REV_1.1
CMP_CR0(0xD5) .................................................................................................................. 129
8
www.fortiortech.com
FU5821
21
22
23
24
20.2.2
CMP_CR1(0xD6) .................................................................................................................. 130
20.2.3
CMP_CR2(0xD9) .................................................................................................................. 131
20.2.4
CMP_CR3(0xDA) .................................................................................................................. 132
20.2.5
CMP_SR(0xD7) .................................................................................................................... 133
20.2.6
LCP_DR(0x403A).................................................................................................................. 134
20.2.7
OCP_DR(0x403B) ................................................................................................................. 134
20.2.8
TSD_CR(0x402F) .................................................................................................................. 135
低压检测 ................................................................................................................................. 136
21.1
简介..................................................................................................................................... 136
21.2
操作说明............................................................................................................................. 136
21.3
寄存器................................................................................................................................. 137
21.3.1
LVSR(0xDB) .......................................................................................................................... 137
FLASH ...................................................................................................................................... 138
22.1
简介..................................................................................................................................... 138
22.2
操作说明............................................................................................................................. 138
22.3
FLASH 寄存器 ..................................................................................................................... 139
22.3.1
FLA_CR ................................................................................................................................ 139
22.3.2
FLA_KEY ............................................................................................................................... 140
CRC(循环冗余校验计算单元) .............................................................................................. 141
23.1
CRC 功能框图 ..................................................................................................................... 141
23.2
CRC16 生成多项式 ............................................................................................................. 141
23.3
CRC16 基本逻辑图 ............................................................................................................. 141
23.4
操作说明............................................................................................................................. 142
23.4.1
计算单个字节的 CRC ......................................................................................................... 142
23.4.2
批量计算 ROM 数据 CRC ................................................................................................... 142
23.5
CRC 寄存器 ......................................................................................................................... 144
23.5.1
控制寄存器:CRC_CR(0x4022) .......................................................................................... 144
23.5.2
输入数据寄存器:CRC_DIN(0x4021) ................................................................................ 145
23.5.3
结果输出寄存器:CRC_DR(0x4023) ................................................................................. 145
23.5.4
自动计算起点寄存器:CRC_BEG(0x4024) ....................................................................... 146
23.5.5
自动计算块数寄存器:CRC_CNT(0x4025) ....................................................................... 146
休眠模式 ................................................................................................................................. 147
24.1
简介..................................................................................................................................... 147
24.2
PCON 寄存器 ...................................................................................................................... 148
REV_1.1
9
www.fortiortech.com
FU5821
25
代码保护 ................................................................................................................................. 149
25.1
简介..................................................................................................................................... 149
25.2
操作说明............................................................................................................................. 149
Copyright Notice ............................................................................................................................. 151
REV_1.1
10
www.fortiortech.com
FU5821
1
系统介绍
特性
1.1
◼
电源电压:5~22V
◼
双核:8051 内核和 ME
◼
指令周期大多为 1T 或 2T
◼
6kB Flash ROM、带 CRC 校验功能、支持程序自烧录和代码保护功能
◼
256 bytes IRAM,256 bytes XRAM
◼
ME:智能引擎控制
◼
4 级优先级中断、15 个中断源
◼
GPIO:
FU5821T:8 个 GPIO
◼
定时器:
3 个通用定时器
1 个 BLDC 电机专用定时器
1 个 RTC 定时器
◼
1 个 I2C
◼
1 个 UART,支持反向输入模式, P1.1/RXD/TXD 支持单线模式
◼
模拟外设:
10 位 ADC,2uS 转换时间,参考电压为 VDD5
ADC 通道数:
FU5821T:6 通道
内置 VCC 电压采样通道
3 组模拟比较器组(5 个比较器)
DAC:3 路 6 位,1 路 4 位
◼
驱动类型:
2P2N Predriver 输出
◼
BLDC 控制支持自动换相、逐波限流,支持 HALL、BEMF 检测
◼
时钟:
系统时钟为内置 24MHz±2%精准时钟
内置 32.8kHz 低速时钟
◼ Watch-dog
两线制 FICE 协议提供在线仿真功能
REV_1.1
11
www.fortiortech.com
FU5821
应用场景
1.2
有 HALL 单相直流无刷电机。
概述
1.3
FU5821 是一款集成电机控制引擎(ME)和 8051 内核的直流无刷单相电机驱动专用芯片,ME 集
成 Smart Engine 模块,可独立完成高速电机运算; 8051 内核用于参数配置和日常事务处理,双核并
行工作实现各种高性能电机控制。其中 8051 内核大部分指令周期为 1T 或 2T,芯片内部集成有高
速比较器、Pre-driver、ADC、CRC、I2C、UART、多种 TIMER、PWM 等功能,内置高压 LDO,
适用于有 HALL 单相 BLDC 电机的方波驱动控制。
FU5821 的封装形态:FU5821T(TSSOP16)
系统框图
1.4
VCC
RSTN/FICEK
TIMER3
TIM3
FICE
RESET
TIMER2
CRC
TIMER1
RTC
SysTic
k
CMP0
C0P
C0M
ME
8051 CORE
PORT0
256 IRAM
Smart Engine
P1.1/TIM3/SCL/RXD/AD7
P1.2/TIM4S/TIM2/TXDS/FICED
Protecti
on
6K FLASH
P0.6/ISEN/AD0
MUX
P0.1/TIM4/SDA/TXD
P0.2/HALP/AD2
P0.3/HALM/AD3
P0.4/TIM2S/C0P/AD6
TIM4
TIMER4
FICED
TXD
RXD
UART
LDO5
TIM2
SCL
SDA
I2C
LVD
VDD5
FU5821T 功能框图
1.4.1
2P2N
Predriver
H_PU
H_PV
L_U
L_V
VSS
OCP
DAC
ISEN
10 Bit
ADC
AD0
AD2~3
AD5~7
AD10
HALM
HALP
WDT
24MHz
FOSC
x3
SYS_CLK
P1.6/C0M/AD5
LCP
256 XRAM
PORT1
图 1-1 FU5821T 功能框图
REV_1.1
12
www.fortiortech.com
FU5821
Memory 空间
1.5
内部存储空间分为指令空间(Program Memory)和数据空间(Data Memory),两个空间独立
编址。
1.5.1
Program Memory
指令空间可寻址范围 0x0000-0x17FF,复位后 CPU 从 0x0000 开始执行。指令空间存储介质为
FLASH。
1.5.2
Data Memory
数 据 空 间 分 为 外 部 数 据 空 间 ( External Data Memory ) 和 内 部 数 据 空 间 ( Internal Data
Memory&SFRs)
。
外部数据空间仅可通过 MOVX 指令访问,范围为 0x0000-0x00FF。内部数据空间如图 1-2
所示。0x00-0x1F 包含 4 组,每组 8 个寄存器;0x20~0x2F 的 16Bytes 支持 bit 寻址操作;0x300x7F 支持直接寻址和间接寻址;0x80-0xFF 间接寻址时访问的是 RAM 空间,直接寻址时访问的是
SFRs。堆栈空间位于内部数据空间。
REV_1.1
13
www.fortiortech.com
FU5821
SFR
1.5.3
表 1-1 特殊功能寄存器(SFR) 地址映射
Addr
0(8)
0xF8
DRV_OUT
0xF0
B
1(9)
2(A)
3(B)
4(C)
5(D)
P0_OE
P1_OE
6(E)
7(F)
DRV_DTR
0xE8
0xE0
ACC
DRV_CR
DRV_DRL
DRV_DRH
DRV_ARRL
DRV_ARRH
DRV_CNTRL
DRV_CNTRH
0xD8
IP3
CMP_CR2
CMP_CR3
LVSR
TIM1_CR9
TIM1_CR10
TIM1_DBRB
DRV_SR
0xD0
PSW
TIM1_ IER
TIM1__BCNTRL
TIM1__BCNTRH
TIM1_SR
CMP_CR0
CMP_CR1
CMP_SR
0xC8
IP2
RST_SR
TIM1__PWMDRL
TIM1__PWMDRH
TIM1__FPWMDDRL
TIM1__FPWM,DDRH
TIM1_RPWMDDRL
TIM1__RPWMDDRH
0xC0
IP1
TIM1_CR8
TIM1_BCORL
TIM1_BCORH
TIM1__SCNTRL
TIM1__SCNTRH
TIM1__SARRL
TIM1__SARRH
0xB8
IP0
TIM1_CR7
TIM1_DBR2
TIM1_DBR3
TIM1__RCNTRL
TIM1__RCNTRH
TIM1__RARRL
TIM1__RARRH
TIM1_CR0
TIM1_CR1
TIM1_CR2
TIM1_CR3
TIM1_CR4
TIM1_CR5
TIM1_CR6
TIM2_CR1
TIM2__CNTRL
TIM2__CNTRH
TIM2__DRL
TIM2__DRH
TIM2__ARRL
TIM2__ARRH
TIM2_CR0
TIM3__CNTRL
TIM3__CNTRH
TIM3__DRL
TIM3__DRH
TIM3__ARRL
TIM3__ARRH
UT_DR
UT_BAUDL
UT_BAUDH
TIM3_CR0
TIM3_CR1
TIM4_CR0
TIM4_CR1
TIM4__CNTRL
TIM4__CNTRH
TIM4__DRL
TIM4__DRH
TIM4__ARRL
TIM4__ARRH
DPL
DPH
FLA_KEY
FLA_CR
0xB0
0xA8
IE
0xA0
0x98
UT_CR
0x90
P1
0x88
TCON
0x80
P0
SP
PCON
注 1:地址低 4 位为 0 或 8 地址的寄存器可位寻址
注 2:有双下划线的寄存器需要使用一变量将其值读出,如果直接读取寄存器,那么读出来的值是不
正确的
REV_1.1
14
www.fortiortech.com
FU5821
1.5.4
XSFR
表 1-2 扩展特殊功能寄存器(XSFR) 地址映射
Addr
0(8)
1(9)
2(A)
3(B)
4(C)
0x4038
ADC_SCYC
ADC_CR
LCP_DR
OCP_DR
0x4030
P1_AN
P0_AN
0x4028
I2C_CR
I2C_ID
0x4020
5(D)
6(E)
7(F)
PH_SEL
CAL_CR0
CAL_CR1
P0_PU
P1_PU
ADC_MASKH
ADC_MASKL
I2C_DR
I2C_SR
RTC0TMH
RTC0TML
RTC0STA
TSD_CR
CRC_DIN
CRC_CR
CRC_DR
CRC_BEG
CRC_CNT
WDT_CR
WDT_REL
DBG_DAT0L
DBG_DAT1H
DBG_DAT1L
DBG_DAT2H
DBG_DAT2L
DBG_DAT3H
DBG_DAT3L
0x4018
0x4010
0x4008
0x4000
0x0078
DBG_DAT0H
0x0080
0x0088
0x0090
0x0098
0x00a0
0x00a8
0x00b0
ME_TABLE
0x00b8
0x00c0
0x00c8
0x00d0
0x00d8
0x00e0
0x00e8
REV_1.1
15
www.fortiortech.com
FU5821
Addr
0(8)
1(9)
2(A)
3(B)
4(C)
5(D)
6(E)
7(F)
0x0100
ADC0_DRH
ADC0_DRL
ADC1_DRH
ADC1_DRL
ADC2_DRH
ADC2_DRL
ADC3_DRH
ADC3_DRL
0x0108
ADC4_DRH
ADC4_DRL
ADC5_DRH
ADC5_DRL
ADC6_DRH
ADC6_DRL
ADC7_DRH
ADC7_DRL
0x0110
ADC8_DRH
ADC8_DRL
ADC9_DRH
ADC9_DRL
ADC10_DRH
ADC10_DRL
0x00f0
0x00f8
注 1:有双下划线的寄存器需要使用一变量将其值读出,如果直接读取寄存器,那么读出来的值是不正确的。
芯片 SFR 分为两部分,一部分映射在内部数据空间的 SFR 区域,一部分映射在外部数据空间。
REV_1.1
16
www.fortiortech.com
FU5821
2
引脚定义
FU5821T TSSOP16 引脚列表
2.1
FU5821T
TSSOP16
IO
类型
功能描述
P0.1/
TIM4/
SDA/
TXD
1
DB/
DO/
DB/
DO
GPIO P0.1,可配置外部中断 0 输入,输出为集电极开漏输
出
Timer4 输出,集电极开路输出
I2C SDA 数据,集电极开路输出
UART TXD 输出
H_PU
2
DO
2P2N 模式 Predriver 上桥 U 相电压输出,内置上拉电阻
H_PV
3
DO
2P2N 模式 Predriver 上桥 V 相电压输出,内置上拉电阻
L_U
4
DO
2P2N 模式 Predriver 下桥 U 相电压输出,内置下拉电阻
L_V
5
DO
2P2N 模式 Predriver 下桥 V 相电压输出,内置下拉电阻
VCC
6
P
电源输入,外接 2.2uF 或更大滤波电容
VSS
7
P
数字地
VDD5
8
P
中压电源输入或内部 5V LDO 输出电源,
外接 1~4.7uF/10V 电容.
RSTN/
FICEK
9
DI/
DI
外部复位输入,内置上拉电阻
FICE 调试接口时钟端
10
DB/
DO/
DB/
DO/
DB
GPIO P1.2,可配置外部中断 0/1 输入
Timer4 功能转移后输出
Timer2 捕获模式输入或者 PWM 输出
UART 功能转移后 TXD 输出
FICE 数据端口
11
DB/
AI/
AI
GPIO P1.6,可配置外部中断 1 输入
比较器 C0 负入端
ADC 通道 5 输入
12
DB/
DB/
AI/
AI
GPIO P0.4,可配置外部中断 0/1 输入
Timer2 功能转移后捕获模式输入或者 PWM 输出
比较器 C0 正输入端
ADC 通道 6 输入
13
DI/
AI/
AI
输入端口 P0.6
母线电流检测输入
ADC 通道 0 输入
14
DB/
AI/
AI
GPIO P0.2,用于 HALL 逻辑电平输入
差分 HALL 正输入
ADC 通道 2 输入
PAD 名称
P1.2/
TIM4S/
TIM2/
TXDS/
FICED
P1.6/
C0M/
AD5
P0.4/
TIM2S/
C0P/
AD6
P0.6/
ISEN/AD0
P0.2/
HALP/
AD2
REV_1.1
17
www.fortiortech.com
FU5821
PAD 名称
FU5821T
TSSOP16
IO
类型
15
DB/AI/
AI
16
DI/
DI/
DB/
DI/
AI
P0.3/
HALM/
AD3
P1.1/
TIM3/SCL/
RXD/
AD7
功能描述
GPIO P0.3
差分 HALL 负输入
ADC 通道 3 输入
GPIO P1.1,可配置外部中断 0/1 输入,可配置输入上拉或
下拉
Timer3 捕获模式输入
I2C SCL 时钟,集电极开路输出
UART RXD 输入 ADC 通道 7 输入
注:
IO 类型说明:
DI = 数字输入
DO = 数字输出
DB = 数字双向
AI = 模拟输入
AO = 模拟输出
P = 电源
REV_1.1
18
www.fortiortech.com
FU5821
FU5821T 封装-TSSOP16
2.2
1
16
P1.1/TIM3/SCL/RXD/AD7
H_PU
2
15
P0.3/HALM/AD3
H_PV
3
14
P0.2/HALP/AD2
L_U
4
13
P0.6/ISEN/AD0
L_V
5
12
P0.4/TIM2S/C0P/AD6
VCC
6
11
P1.6/C0M/AD5
VSS
7
10
P1.2/TIM4S/TIM2/TXDS/FICED
VDD5
8
9
RSTN/FICEK
FU5821
P0.1/TIM4/SDA/TXD
图 2-1 FU5821T 封装-TSSOP16
REV_1.1
19
www.fortiortech.com
FU5821
3
封装信息
3.1
TSSOP16
图 3-1 TSSOP16 封装尺寸图
REV_1.1
20
www.fortiortech.com
FU5821
4
订购信息
表 4-1 产品型号选择
REV_1.1
24
6K
√
— √ —
—
√
—
√
√
21
模拟外设
DAC
√
√
—
GPIO
DMA
I2C/UART
ADC
EMC Mode
Table Look-up
驱动类型
Soft Switch
外
部
慢
时
钟
PWM
内
部
慢
时
钟
P+N Predriver
外
部
快
时
钟
N+N Predriver
XRAM(Byte)
256
内
部
快
时
钟
驱动接口
8
定
时
通
个
位 个 位
器
道
数
数 数 数
数
5
1
6
1
0
4
6
/
4
VREF
FU5821T
FLASH(kByte)
型号
MIPS(Peak)
时钟电路
比 无
运
较 铅
放
器
—
—
5
√
封装
TSSOP
20
www.fortiortech.com
FU5821
电气特性
5
绝对最大额定值
5.1
表 5-1 绝对最大额定值
最 小
典 型
值
值
参数
条件
最大值
单位
工作时环境温度 TA
VCC TIM2_ARR,输出比较信号 TIM2_OC 始
终为低电平;配置 TIM2_CR0 寄存器的 T2_OCM = 1,TIM2_DR > TIM2_ARR,输出比较信号
TIM2_OC 始终为高电平;
需要注意的是,只能通过配置 TIM2_DR > TIM2_ARR 能达到长期输出高/低电平的效果。配置
TIM2_DR=0 会有 1 个时钟周期的脉冲。
11.1.3.2
PWM 模式
PWM 模 式 根 据 TIM2_ARR 决 定 PWM 周 期 , TIM2_DR 决 定 占 空 比 , 占 空 比
=TIM2_DR/TIM2_ARR x 100%。配置 TIM2_CR0 寄存器的 T2_OCM= 0,输出根据 TIM2_DR 寄存
器和数值 TIM2_CNTR 的比较结果(TIM2_CNTR<TIM2_DR)输出低电平,反之输出高电平。配
置 TIM2_CR0 寄存器的 T2_OCM= 1,输出根据 TIM2_DR 寄存器和数值 TIM2_CNTR 的比较结果
(TIM2_CNTR<TIM2_DR)输出高电平,反之输出低电平。
11.1.3.3
中断事件
a) 当 TIM2_CNTR = TIM2_DR,产生比较匹配事件,中断标记 TIM2_CR1 寄存器的 T2IR 置
一,计数器接着计数;
b) 当 TIM2_CNTR = TIM2_ARR,产生上溢事件,中断标记 TIM2_CR1 寄存器的 T2IF 置一,
计数器清零,根据 TIM2_CR0 寄存器的 T2OPM 是否重新计数,T2OPM=1,停止计数;T2OPM=0,
重新计数。
REV_1.1
69
www.fortiortech.com
FU5821
TIM2_CNTR
0000
0001
0002
103B
103C
103D
TIM2_DR
103C
TIM2_ARR
3002
3000
3001
0000
0001
TIM2_OC
(T2OCM=0)
TIM2_OC
(T2OCM=1)
T2IR
T2IF
match
overflow
图 11-2 输出模式输出波形
11.1.4
输入信号滤波和边沿检测
T2NM
0
TI from GPIO
1
FILTER
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
图 11-3 输入信号滤波和边沿检测框图
TIM2 的输入信号由外部 PIN 脚输入,输入可选择是否进行噪声滤波,边沿检测模块检测输入的
上升沿和下降沿供下一模块使用。
CLK
Before Filter
After Filter
4clk
4clk
4clk
图 11-4 滤波模块时序图
滤波电路可以根据 TIM2_CR1 寄存器的 T2_NM 可以选择滤波脉宽为 4/8/16 时钟周期的输入噪
声。使能滤波功能,滤波后的信号比滤波前的信号大概延迟 4/8/16 个时钟周期
REV_1.1
70
www.fortiortech.com
FU5821
11.1.5
输入 timer 模式
T2DR
T2FE
T2OCM
0
TI from GPIO
FILTER
1
T2OPM
CLOCK
CONTROL
T2PSC
T2IP
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
clk
T2ARR
CNTR
T2IR
T2IF
COUNTER
T2CEN
clk_psc
图 11-5 输入 timer 模式原理框图
输入 timer 模式检测 PWM 信号脉宽和一个周期的时长,
(根据 T2OCM =0 选择相邻两个上升
沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽);T2OCM=1 选择相邻相邻两个下降沿为 1 个
周期,下降沿到上升沿为脉宽(低电平脉宽)),分别将计数值 TIM2_CNTR 存在 TIM2_DR 和
TIM2_ARR;输入信号可选择是否滤波;
TI
TI_NEG
TI_POS
TIM2_CNTR
TIM2_DR
XXXX
0000
0001
103B
103C
103D
0000
3000
3001
0000
103C
XXXX
TIM2_ARR
0001
3001
T2IR
T2IP
H level software
start clear
H level
detect
period
detect
图 11-6 输入 timer 模式(T2OCM=0)时序图
以 T2OCM=0 为例,配置 TIM2_CR1 寄存器的 T2CEN = 1 使能计数器,计数器向上计数;
当检测到输入的下降沿时,即输入的高电平检测完毕,此时将 TIM2_CNTR 的值存进 TIM2_DR,
同时中断标记 TIM2_CR1 寄存器的 T2IR 置一,TIM2_CNTR 接着向上计数;
当检测到输入的第二个上升沿时,当检测到输入的一个 PWM 周期时,此时将 TIM2_CNTR 的
值存进 TIM2_ARR,同时中断标记 TIM2_CR1 寄存器的 T2IP 置一,TIM2_CNTR 清零,根据
TIM2_CR0 寄存器的 T2OPM 是否重新计数,T2OPM=1,停止计数;T2OPM=0,重新计数。
当 timer 尚未检测到输入的第二个上升沿,计数值 TIM2_CNTR 达到 0xFFFF,发生上溢事件,
中断标记 TIM2_CR1 寄存器的 T2IF 置一,TIM2_CNTR 清零,根据 TIM2_CR0 寄存器的 T2OPM
是否重新计数,T2OPM=1,停止计数;T2OPM=0,重新计数。
REV_1.1
71
www.fortiortech.com
FU5821
11.2
11.2.1
TIM2 寄存器
TIM2_CR0(0xA1)
表 11-2 TIM2_CR0(0xA1)
位
7
名称
RSV
类型
R
R/W
复位值
0
0
字段
名称
[7]
RSV
6
5
4
3
2
1
0
TOCM
TIRE
RSV
TOPM
TMOD
R/W
R/W
R
R
R/W
R/W
0
0
0
0
0
0
TPSC
描述
保留
计数器时钟分频选择
这些位用于对 MCU 时钟进行 N 分频作为基本计数器的计数时钟,假设 MCU 时钟为
[6:5]
TPSC
24MHz(41.67ns)
00:0x01 (24MHz)
01:0x04(6MHz)
10:0x10 (1.5MHz)
11:0x40(375KHz)
输出模式:比较模式选择
0:TIM2_CNTR<TIM2_DR,输出 0;TIM2_CNTR≥TIM2_DR,输出 1
[4]
TOCM
1:TIM2_CNTR<TIM2_DR,输出 1;TIM2_CNTR≥TIM2_DR,输出 0
输入 timer 模式:周期沿选择
0:相邻两个上升沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽)
1:相邻两个下降沿为 1 个周期,下降沿到上升沿为脉宽(低电平脉宽)
输出模式:比较匹配中断使能
[3]
TIRE
输入 timer 模式:脉宽检测中断使能
0: 禁止事件中断;
1: 使能事件中断;
[2]
RSV
保留
单次模式
下列事件发生
[1]
TOPM
输出模式:计数器上溢事件
输入 timer 模式:PWM 周期检测或计数器上溢事件
0:在发生更新事件时,计数器不停止;
1:在发生更新事件时,计数器停止(清除 T2CEN)。
工作模式选择
[0]
TMOD
0:输入 timer 模式
1:输出模式
REV_1.1
72
www.fortiortech.com
FU5821
TIM2_CR1(0xA9)
11.2.2
表 11-3 TIM2_CR1(0xA9)
位
7
6
5
4
3
2
1
名称
TIR
TIP
TIF
TIPE
TIFE
类型
R/W0
R/W0
R/W0
R/W0
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
TINM
0
TEN
描述
输出模式:比较匹配标记
当计数器值 TIM2_CNTR 与比较值 TIM2_DR 匹配时该位由硬件置 1。它由软件清 0。
输入 timer 模式:脉宽检测标记
[7]
TIR
timer 检测到输入脉宽(根据 T2OCM 选择即上升沿到下降沿或者下降沿到上升沿)
,
该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
输入 timer 模式:PWM 周期检测标记
[6]
TIP
timer 检测到输入一个 PWM 周期(根据 T2OCM 选择即上升沿到上升沿或者下降沿到
下降沿)
,该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:计数器上溢标记
当计数器值 TIM2_CNTR 与比较值 TIM2_ARR 匹配时,TIM2_CNTR 清零,该位由硬
件置 1。它由软件清 0。
输入 timer 模式:计数器上溢标记
[5]
TIF
Timer 尚 未 检 测 到 输 入 一 个 PWM 周 期 ( 即 上 升 沿 到 上 升 沿 ), 而 计 数 器 的 值
TIM2_CNTR 累加到 0xFFFF,产生上溢事件,TIM2_CNTR 清零,该位由硬件置 1。
它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
[4]
TIPE
输入 timer 模式:PWM 周期检测中断使能
0: 禁止事件中断;
1: 使能事件中断
输出模式:计数器上溢中断使能
[3]
TIFE
输入 timer 模式:计数器上溢中断使能
0: 禁止更新事件中断;
1: 使能更新事件中断
输入噪声脉宽选择,当噪声的脉宽小于设定值,噪声会被滤除
00:不滤波
[2:1]
TINM
01:4 个系统时钟周期
10:8 个系统时钟周期
11:16 个系统时钟周期
REV_1.1
73
www.fortiortech.com
FU5821
基本计数器使能
[0]
TEN
0:禁止计数器;
1:使能计数器
11.2.3
TIM2_CNTR(0xAB,0xAA)
表 11-4 TIM2_CNTRH(0xAB)TIM2_CNTRL(0xAA)
TIM2__CNTR(0xAB,0xAA)
TIM2__CNTRH(0xAB)
位
7
6
5
4
3
2
1
0
TIM2__CNTRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM2__CNTRL(0xAA)
7
位
6
5
4
TIM2__CNTRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:0]
11.2.4
描述
TIM2__CNTR
基本计数器的计数值
TIM2_DR(0xAC,0xAD)
表 11-5 TIM2_DRH(0xAD)TIM2_DRL(0xAC)
TIM2__DR(0xAD,0xAC)
TIM2__DRH(0xAD)
位
7
6
5
4
3
2
1
0
TIM2__DRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM2__DRL(0xAC)
位
7
6
5
4
TIM2__DRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:比较匹配值(软件写),FG 模式参考 FG 输出产生
[15:0]
TIM2__DR
输入 timer 模式:检测到输入脉宽(根据 T2OCM 选择即上升沿到下降沿或者下降沿
到上升沿)的计数值(硬件写)
REV_1.1
74
www.fortiortech.com
FU5821
11.2.5
TIM2_ARR(0xAE,0xAF)
表 11-6 TIM2_ARRH(0xAF)TIM2_ARRL(0xAE)
TIM2__ARR(0xAE,0xAF)
TIM2__ARRH(0xAF)
位
7
6
5
4
3
2
1
0
TIM2__ARRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM2__ARRL(0xAE)
位
7
6
5
4
TIM2__ARRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:重载值(软件写)
,FG 模式参考 FG 输出产生
[15:0]
TIM2__ARR
输入 timer 模式:检测到一个 PWM 周期(根据 T2OCM 选择即上升沿到上升沿或者
下降沿到下降沿)的计数值(硬件写)
REV_1.1
75
www.fortiortech.com
FU5821
12
TIM3
12.1
TIM3 操作说明
TIM3 支持输出和输入 timer 两种模式:
1.
输出模式:产生输出波形(PWM, 单次模式)
2.
输入 timer 模式:检测输入 PWM 的高低电平持续时间,可用于算出 PWM 占空比
TIM3 主要特性包括:
12.1.1
1.
2-bit 可编程分频器对基本计数器的计数时钟进行分频
2.
16 位向上计数的基本计数器,计数时钟源为时钟控制器的输出
3.
输入滤波模块
4.
边沿检测模块
5.
输出模块产生 PWM、单次比较输出
6.
中断事件产生
时钟控制器
时钟控制器用于产生基本定时器的计数时钟源,由预分频器对计数时钟进行分频。预分频器基
于一个由 2 位寄存器 PSC 控制的 8 位计数器,可选择 4 种分频系数,时钟源为内部时钟。由于这
个控制寄存器没有缓冲器,分频系数改变会立刻更新,所以应该在基本定时器不工作时更新分频系
数。
计数器的频率可以由下式计算:
fCK_CNT=fCK_PSC/T3PSC
表 12-1 寄存器 T3PSC 不同的值对应不同的时钟频率
T2PSC
系数(16进制)
CLK(Hz)
00
0x01
48M
01
0x04
6M
10
0x10
1.5M
11
0x40
375K
12.1.2
TIM3_CNTR 的读写和计数
TIM3_CNTR 计数仅在 T3CEN=1 时进行。软件对 TIM3_CNTR 的写操作是直接改变寄存器的
值,因此软件需在计数不使能时执行写操作。软件读 TIM3_CNTR 时,先读高字节,硬件不会将此
时刻低字节缓存,因此软件需在计数不使能时执行读操作。
REV_1.1
76
www.fortiortech.com
FU5821
12.1.3
输出模式
T3ARR
T3OCM
T3OPM
clk
T3PSC
CLOCK
CONTROL
T3DR
T3CEN
= CNTR
T3IR
oc
ocn
COUNTER
clk_psc
0
timx_oc
1
T3IF
图 12-1 输出模式原理框图
输出模式根据配置 TIM3_CR0 寄存器的 T3_OCM 和比较结果产生输出信号,同时产生相应中
断。
12.1.3.1
高/低电平输出模式
配置 TIM3_CR0 寄存器的 T3_OCM= 0,TIM3_DR > TIM3_ARR,输出比较信号 TIM3_OC 始
终为低电平;配置 TIM3_CR0 寄存器的 T3_OCM = 1,TIM3_DR > TIM3_ARR,输出比较信号
TIM3_OC 始终为高电平;
需要注意的是,只能通过配置 TIM3_DR > TIM3_ARR 能达到长期输出高/低电平的效果。配置
TIM3_DR=0 会有 1 个时钟周期的脉冲。
12.1.3.2
PWM 模式
PWM 模 式 根 据 TIM3_ARR 决 定 PWM 周 期 , TIM3_DR 决 定 占 空 比 , 占 空 比
=TIM3_DR/TIM3_ARR x 100%。配置 TIM3_CR0 寄存器的 T3_OCM= 0,输出根据 TIM3_DR 寄存
器和数值 TIM3_CNTR 的比较结果(TIM3_CNTR<TIM3_DR)输出低电平,反之输出高电平。配置
TIM3_CR0 寄存器的 T3_OCM= 1,输出根据 TIM3_DR 寄存器和数值 TIM3_CNTR 的比较结果
(TIM3_CNT R<TIM3_DR)输出高电平,反之输出低电平。
12.1.3.3
中断事件
a) 当 TIM3_CNTR = TIM3_DR,产生比较匹配事件,中断标记 TIM3_CR1 寄存器的 T3IR 置
一,计数器接着计数;
b) 当 TIM3_CNTR = TIM3_ARR,产生上溢事件,中断标记 TIM3_CR1 寄存器的 T3IF 置一,
计数器清零,根据 TIM3_CR0 寄存器的 T3OPM 是否重新计数,T3OPM=1,停止计数;T3OPM=0,
重新计数。
REV_1.1
77
www.fortiortech.com
FU5821
TIM3_CNTR
0000
0001
0002
103B
103C
103D
TIM3_DR
103C
TIM3_ARR
3002
3000
3001
0000
0001
TIM3_OC
(T3OCM=0)
TIM3_OC
(T3OCM=1)
T3IR
T3IF
match
overflow
图 12-2 输出模式输出波形
12.1.4
输入信号滤波和边沿检测
T3NM
0
TI from GPIO
1
FILTER
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
图 12-3 输入信号滤波和边沿检测框图
TIM3 的输入信号由外部 PIN 脚输入,输入可选择是否进行噪声滤波,边沿检测模块检测输入的
上升沿和下降沿供下一模块使用。
CLK
Before Filter
After Filter
4clk
4clk
4clk
图 12-4 滤波模块时序图
滤波电路可以根据 TIM3_CR1 寄存器的 T3_NM 可以选择滤波脉宽为 4/8/16 时钟周期的输入噪
声。使能滤波功能,滤波后的信号比滤波前的信号大概延迟 4/8/16 个时钟周期
REV_1.1
78
www.fortiortech.com
FU5821
12.1.5
输入 timer 模式
T3DR
T3FE
T3OCM
0
TI from GPIO
FILTER
1
T3OPM
CLOCK
CONTROL
T3PSC
T3IP
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
clk
T3ARR
CNTR
T3IR
T3IF
COUNTER
T3CEN
clk_psc
图 12-5 输入 timer 模式原理框图
输入 timer 模式检测 PWM 信号脉宽和一个周期的时长,
(根据 T3OCM =0 选择相邻两个上升
沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽);T3OCM=1 选择相邻相邻两个下降沿为 1 个
周期,下降沿到上升沿为脉宽(低电平脉宽)),分别将计数值 TIM3_CNTR 存在 TIM3_DR 和
TIM3_ARR;输入信号可选择是否滤波;
TI
TI_NEG
TI_POS
TIM3_CNTR
TIM3_DR
XXXX
0000
0001
103B
103C
103D
0000
3000
3001
0000
103C
XXXX
TIM3_ARR
0001
3001
T3IR
T3IP
H level software
start clear
H level
detect
period
detect
图 12-6 输入 timer 模式(T3OCM=0)时序图
以 T3OCM=0 为例,配置 TIM3_CR1 寄存器的 T3CEN = 1 使能计数器,计数器向上计数;
当检测到输入的下降沿时,即输入的高电平检测完毕,此时将 TIM3_CNTR 的值存进 TIM3_DR,
同时中断标记 TIM3_CR1 寄存器的 T3IR 置一,TIM3_CNTR 接着向上计数;
当检测到输入的第二个上升沿时,当检测到输入的一个 PWM 周期时,此时将 TIM3_CNTR 的
值存进 TIM3_ARR,同时中断标记 TIM3_CR1 寄存器的 T3IP 置一,TIM3_CNTR 清零,根据
TIM3_CR0 寄存器的 T3OPM 是否重新计数,T3OPM=1,停止计数;T3OPM=0,重新计数。
当 timer 尚未检测到输入的第二个上升沿,计数值 TIM3_CNTR 达到 0xFFFF,发生上溢事件,
中断标记 TIM3_CR1 寄存器的 T3IF 置一,TIM3_CNTR 清零,根据 TIM3_CR0 寄存器的 T3OPM
是否重新计数,T3OPM=1,停止计数;T3OPM=0,重新计数。
REV_1.1
79
www.fortiortech.com
FU5821
12.2
12.2.1
TIM3 寄存器
TIM3_CR0(0x9C)
表 12-2 TIM3_CR0(0x9C)
位
7
名称
RSV
类型
R
R/W
复位值
0
0
字段
名称
[7]
RSV
6
5
4
3
2
1
0
TOCM
TIRE
RSV
TOPM
TMOD
R/W
R/W
R/W
R
R/W
R/W
0
0
0
0
0
0
TPSC
描述
保留
计数器时钟分频选择
这些位用于对 MCU 时钟进行 N 分频作为基本计数器的计数时钟
[6:5]
TPSC
00:0x01 (24MHz)
01:0x04(6MHz)
10:0x10 (1.5MHz)
11:0x40(375KHz)
注:TIM3 的输入 timer 模式下,00 对应的是 48MHz
输出模式:比较模式选择
0:TIM3_CNTR<TIM3_DR,输出 0;TIM3_CNTR≥TIM3_DR,输出 1
[4]
TOCM
1:TIM3_CNTR<TIM3_DR,输出 1;TIM3_CNTR≥TIM3_DR,输出 0
输入 timer 模式:周期沿选择
0:相邻两个上升沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽)
1:相邻两个下降沿为 1 个周期,下降沿到上升沿为脉宽(低电平脉宽)
输出模式:比较匹配中断使能
[3]
TIRE
输入 timer 模式:脉宽检测中断使能
0: 禁止事件中断;
1: 使能事件中断;
[2]
RSV
保留
单次模式
下列事件发生
[1]
TOPM
输出模式:计数器上溢事件
输入 timer 模式:PWM 周期检测或计数器上溢事件
0:在发生更新事件时,计数器不停止;
1:在发生更新事件时,计数器停止(清除 T3CEN)。
工作模式选择
[0]
TMOD
0:输入 timer 模式
1:输出模式
REV_1.1
80
www.fortiortech.com
FU5821
TIM3_CR1(0x9D)
12.2.2
表 12-3 TIM3_CR1(0xA9)
位
7
6
5
4
3
2
1
0
名称
TIR
TIP
TIF
TIPE
TIFE
类型
R/W0
R/W0
R/W0
R/W0
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
T3CEN
TINM
描述
输出模式:比较匹配标记
当计数器值 TIM3_CNTR 与比较值 TIM3_DR 匹配时该位由硬件置 1。它由软件清 0。
输入 timer 模式:脉宽检测标记
[7]
TIR
timer 检测到输入脉宽(根据 T3OCM 选择即上升沿到下降沿或者下降沿到上升沿)
,
该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
输入 timer 模式:PWM 周期检测标记
[6]
TIP
timer 检测到输入一个 PWM 周期(根据 T3OCM 选择即上升沿到上升沿或者下降沿到
下降沿)
,该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:计数器上溢标记
当计数器值 TIM3_CNTR 与比较值 TIM3_ARR 匹配时,TIM3_CNTR 清零,该位由硬
件置 1。它由软件清 0。
输入 timer 模式:计数器上溢标记
[5]
TIF
Timer 尚 未 检 测 到 输 入 一 个 PWM 周 期 ( 即 上 升 沿 到 上 升 沿 ), 而 计 数 器 的 值
TIM3_CNTR 累加到 0xFFFF,产生上溢事件,TIM3_CNTR 清零,该位由硬件置 1。
它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
[4]
TIPE
输入 timer 模式:PWM 周期检测中断使能
0: 禁止事件中断;
1: 使能事件中断
输出模式:计数器上溢中断使能
[3]
TIFE
输入 timer 模式:计数器上溢中断使能
0: 禁止更新事件中断;
1: 使能更新事件中断
输入噪声脉宽选择,当噪声的脉宽小于设定值,噪声会被滤除
00:不滤波
[2:1]
TINM
01:4 个系统时钟周期
10:8 个系统时钟周期
11:16 个系统时钟周期
REV_1.1
81
www.fortiortech.com
FU5821
基本计数器使能
T3CEN
[0]
0:禁止计数器;
1:使能计数器
12.2.3
TIM3_CNTR(0xA2,0xA3)
表 12-4 TIM3_CNTRH(0xA3)TIM3_CNTRL(0xA2)
TIM3__CNTR(0xA3,0xA2)
TIM3__CNTRH(0xA3)
7
位
6
5
4
3
2
1
0
TIM3__CNTRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM3__CNTRL(0xA2)
7
位
6
5
4
TIM3__CNTRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:0]
12.2.4
描述
TIM3__CNTR
基本计数器的计数值
TIM3_DR(0xA4,0xA5)
表 12-5 TIM3_DRH(0xA5)TIM3_DRL(0xA4)
TIM3__DR(0xA5,0xA4)
TIM3__DRH(0xA5)
位
7
6
5
4
3
2
1
0
TIM3__DRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM3__DRL(0xA4)
位
7
6
5
4
TIM3__DRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:比较匹配值(软件写),FG 模式参考 FG 输出产生
[15:0]
TIM3__DR
输入 timer 模式:检测到输入脉宽(根据 T3OCM 选择即上升沿到下降沿或者下降沿
到上升沿)的计数值(硬件写)
REV_1.1
82
www.fortiortech.com
FU5821
12.2.5
TIM3_ARR(0xA7,0xA6)
表 12-6 TIM3_ARRH(0xA7)TIM3_ARRL(0xA6)
TIM3__ARR(0xA6,0xA7)
TIM3__ARRH(0xA7)
位
7
6
5
4
3
2
1
0
TIM3__ARRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM3__ARRL(0xA6)
位
7
6
5
4
TIM3__ARRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:重载值(软件写)
,FG 模式参考 FG 输出产生
[15:0]
TIM3__ARR
输入 timer 模式:检测到一个 PWM 周期(根据 T3OCM 选择即上升沿到上升沿或者
下降沿到下降沿)的计数值(硬件写)
REV_1.1
83
www.fortiortech.com
FU5821
13
TIM4
13.1
TIM4 操作说明
TIM4 支持输出和输入 timer 两种模式:
1.
输出模式:产生输出波形(PWM, 单次模式)
2.
输入 timer 模式:检测输入 PWM 的高低电平持续时间,可用于算出 PWM 占空比
TIM4 主要特性包括:
13.1.1
1.
2-bit 可编程分频器对基本计数器的计数时钟进行分频
2.
16 位向上计数的基本计数器,计数时钟源为时钟控制器的输出
3.
输入滤波模块
4.
边沿检测模块
5.
输出模块产生 PWM、单次比较输出
6.
中断事件产生
时钟控制器
时钟控制器用于产生基本定时器的计数时钟源,由预分频器对计数时钟进行分频。预分频器基
于一个由 2 位寄存器 PSC 控制的 8 位计数器,可选择 4 种分频系数,时钟源为内部时钟。由于这
个控制寄存器没有缓冲器,分频系数改变会立刻更新,所以应该在基本定时器不工作时更新分频系
数。
计数器的频率可以由下式计算:
fCK_CNT=fCK_PSC/T4PSC
假设 MCU 时钟为 24MHz(41.67ns)
表 13-1 寄存器 T4PSC 不同的值对应不同的时钟频率
T2PSC
系数(16进制)
CLK(Hz)
00
0x01
24M
01
0x04
6M
10
0x10
1.5M
11
0x40
375K
13.1.2
TIM4_CNTR 的读写和计数
TIM4_CNTR 计数仅在 T4CEN=1 时进行。软件对 TIM4_CNTR 的写操作是直接改变寄存器的
值,因此软件需在计数不使能时执行写操作。软件读 TIM4_CNTR 时,先读高字节,硬件不会将此
时刻低字节缓存,因此软件需在计数不使能时执行读操作。
REV_1.1
84
www.fortiortech.com
FU5821
13.1.3
输出模式
T4ARR
T4OCM
T4OPM
clk
T4PSC
CLOCK
CONTROL
T4DR
T4CEN
= CNTR
T4IR
oc
ocn
COUNTER
clk_psc
0
timx_oc
1
T4IF
图 13-1 输出模式原理框图
输出模式根据配置 TIM4_CR0 寄存器的 T4_OCM 和比较结果产生输出信号,同时产生相应中
断。
13.1.3.1
高/低电平输出模式
配置 TIM4_CR0 寄存器的 T4_OCM= 0,TIM4_DR > TIM4_ARR,输出比较信号 TIM4_OC 始
终为低电平;配置 TIM4_CR0 寄存器的 T4_OCM = 1,TIM4_DR > TIM4_ARR,输出比较信号
TIM4_OC 始终为高电平;
需要注意的是,只能通过配置 TIM4_DR > TIM4_ARR 能达到长期输出高/低电平的效果。配置
TIM4_DR=0 会有 1 个时钟周期的脉冲。
13.1.3.2
PWM 模式
PWM 模 式 根 据 TIM4_ARR 决 定 PWM 周 期 , TIM4_DR 决 定 占 空 比 , 占 空 比
=TIM4_DR/TIM4_ARR x 100%。配置 TIM4_CR0 寄存器的 T4_OCM= 0,输出根据 TIM4_DR 寄存
器和数值 TIM4_CNTR 的比较结果(TIM4_CNTR<TIM4_DR)输出低电平,反之输出高电平。配置
TIM4_CR0 寄存器的 T4_OCM= 1,输出根据 TIM4_DR 寄存器和数值 TIM4_CNTR 的比较结果
(TIM4_CNTR<TIM4_DR)输出高电平,反之输出低电平。
13.1.3.3
中断事件
a) 当 TIM4_CNTR = TIM4_DR,产生比较匹配事件,中断标记 TIM4_CR1 寄存器的 T4IR 置
一,计数器接着计数;
b) 当 TIM4_CNTR = TIM4_ARR,产生上溢事件,中断标记 TIM4_CR1 寄存器的 T4IF 置一,
计数器清零,根据 TIM4_CR0 寄存器的 T4OPM 是否重新计数,T4OPM=1,停止计数;T4OPM=0,
重新计数。
REV_1.1
85
www.fortiortech.com
FU5821
TIM4_CNTR
0000
0001
0002
103B
103C
103D
TIM4_DR
103C
TIM4_ARR
3002
3000
3001
0000
0001
TIM4_OC
(T4OCM=0)
TIM4_OC
(T4OCM=1)
T4IR
T4IF
match
overflow
图 13-2 输出模式输出波形
13.1.4
输入信号滤波和边沿检测
T4NM
0
TI from GPIO
1
FILTER
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
图 13-3 输入信号滤波和边沿检测框图
TIM4 的输入信号由外部 PIN 脚输入,输入可选择是否进行噪声滤波,边沿检测模块检测输入的
上升沿和下降沿供下一模块使用。
CLK
Before Filter
After Filter
4clk
4clk
4clk
图 13-4 滤波模块时序图
滤波电路可以根据 TIM4_CR1 寄存器的 T4_NM 可以选择滤波脉宽为 4/8/16 时钟周期的输入噪
声。使能滤波功能,滤波后的信号比滤波前的信号大概延迟 4/8/16 个时钟周期
REV_1.1
86
www.fortiortech.com
FU5821
13.1.5
输入 timer 模式
T4DR
T4FE
T4OCM
0
TI from GPIO
1
FILTER
T4OPM
CLOCK
CONTROL
T4PSC
T4IP
TI_NEG
EDGE ↓
DETECTOR TI_POS
↑
clk
T4ARR
CNTR
T4IR
T4IF
COUNTER
T4CEN
clk_psc
图 13-5 输入 timer 模式原理框图
输入 timer 模式检测 PWM 信号脉宽和一个周期的时长,
(根据 T4OCM =0 选择相邻两个上升
沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽);T4OCM=1 选择相邻相邻两个下降沿为 1 个
周期,下降沿到上升沿为脉宽(低电平脉宽)),分别将计数值 TIM4_CNTR 存在 TIM4_DR 和
TIM4_ARR;输入信号可选择是否滤波;
TI
TI_NEG
TI_POS
TIM4_CNTR
TIM4_DR
XXXX
0000
0001
103B
103C
103D
0000
3000
3001
0000
103C
XXXX
TIM4_ARR
0001
3001
T4IR
T4IP
H level software
start clear
H level
detect
period
detect
图 13-6 输入 timer 模式(T4OCM=0)时序图
以 T4OCM=0 为例,配置 TIM4_CR1 寄存器的 T4CEN = 1 使能计数器,计数器向上计数;
当检测到输入的下降沿时,即输入的高电平检测完毕,此时将 TIM4_CNTR 的值存进 TIM4_DR,
同时中断标记 TIM4_CR1 寄存器的 T4IR 置一,TIM4_CNTR 接着向上计数;
当检测到输入的第二个上升沿时,当检测到输入的一个 PWM 周期时,此时将 TIM4_CNTR 的
值存进 TIM4_ARR,同时中断标记 TIM4_CR1 寄存器的 T4IP 置一,TIM4_CNTR 清零,根据
TIM4_CR0 寄存器的 T4OPM 是否重新计数,T4OPM=1,停止计数;T4OPM=0,重新计数。
当 timer 尚未检测到输入的第二个上升沿,计数值 TIM4_CNTR 达到 0xFFFF,发生上溢事件,
中断标记 TIM4_CR1 寄存器的 T4IF 置一,TIM4_CNTR 清零,根据 TIM4_CR0 寄存器的 T4OPM
是否重新计数,T4OPM=1,停止计数;T4OPM=0,重新计数。
REV_1.1
87
www.fortiortech.com
FU5821
13.2
13.2.1
TIM4 寄存器
TIM4_CR0(0x9E)
表 13-2 TIM4_CR0(0x9E)
位
7
名称
RSV
类型
R
R/W
复位值
0
0
字段
名称
[7]
RSV
6
5
4
3
2
1
0
TOCM
TIRE
RSV
TOPM
TMOD
R/W
R/W
R/W
R
R/W
R/W
0
0
0
0
0
0
TPSC
描述
保留
计数器时钟分频选择
这些位用于对 MCU 时钟进行 N 分频作为基本计数器的计数时钟,假设 MCU 时钟为
[6:5]
TPSC
24MHz(41.67ns)
00:0x01 (24MHz)
01:0x04(6MHz)
10:0x10 (1.5MHz)
11:0x40(375KHz)
输出模式:比较模式选择
0:TIM4_CNTR<TIM4_DR,输出 0;TIM4_CNTR≥TIM4_DR,输出 1
[4]
TOCM
1:TIM4_CNTR<TIM4_DR,输出 1;TIM4_CNTR≥TIM4_DR,输出 0
输入 timer 模式:周期沿选择
0:相邻两个上升沿为 1 个周期,上升沿到下降沿为脉宽(高电平脉宽)
1:相邻两个下降沿为 1 个周期,下降沿到上升沿为脉宽(低电平脉宽)
输出模式:比较匹配中断使能
[3]
TIRE
输入 timer 模式:脉宽检测中断使能
0: 禁止事件中断;
1: 使能事件中断;
[2]
RSV
RSV
单次模式
下列事件发生
[1]
TOPM
输出模式:计数器上溢事件
输入 timer 模式:PWM 周期检测或计数器上溢事件
0:在发生更新事件时,计数器不停止;
1:在发生更新事件时,计数器停止(清除 T4CEN)。
工作模式选择
[0]
TMOD
0:输入 timer 模式
1:输出模式
REV_1.1
88
www.fortiortech.com
FU5821
TIM4_CR1(0x9F)
13.2.2
表 13-3 TIM4_CR1(0x9F)
位
7
6
5
4
3
2
1
名称
TIR
TIP
TIF
TIPE
TIFE
类型
R/W0
R/W0
R/W0
R/W0
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
TINM
0
TEN
描述
输出模式:比较匹配标记
当计数器值 TIM4_CNTR 与比较值 TIM4_DR 匹配时该位由硬件置 1。它由软件清 0。
输入 timer 模式:脉宽检测标记
[7]
TIR
timer 检测到输入脉宽(根据 T4OCM 选择即上升沿到下降沿或者下降沿到上升沿)
,
该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
输入 timer 模式:PWM 周期检测标记
[6]
TIP
timer 检测到输入一个 PWM 周期(根据 T4OCM 选择即上升沿到上升沿或者下降沿到
下降沿)
,该位由硬件置 1。它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:计数器上溢标记
当计数器值 TIM4_CNTR 与比较值 TIM4_ARR 匹配时,TIM4_CNTR 清零,该位由硬
件置 1。它由软件清 0。
输入 timer 模式:计数器上溢标记
[5]
TIF
Timer 尚 未 检 测 到 输 入 一 个 PWM 周 期 ( 即 上 升 沿 到 上 升 沿 ), 而 计 数 器 的 值
TIM4_CNTR 累加到 0xFFFF,产生上溢事件,TIM4_CNTR 清零,该位由硬件置 1。
它由软件清 0。
0:无事件发生;
1:事件发生。
输出模式:无
输入 timer 模式:PWM 周期检测中断使能
[4]
TIPE
0: 禁止事件中断;
1: 使能事件中断
输出模式:计数器上溢中断使能
[3]
TIFE
输入 timer 模式:计数器上溢中断使能
0: 禁止更新事件中断;
1: 使能更新事件中断
输入噪声脉宽选择,当噪声的脉宽小于设定值,噪声会被滤除
[2:1]
TINM
00:不滤波
01:4 个系统时钟周期
10:8 个系统时钟周期
REV_1.1
89
www.fortiortech.com
FU5821
11:16 个系统时钟周期
基本计数器使能
T4CEN
[0]
0:禁止计数器;
1:使能计数器
13.2.3
TIM4_CNTR(0x92,0x93)
表 13-4 TIM4_CNTRH(0x93)TIM4_CNTRL(0x92)
TIM4__CNTR(0x93,0x92)
TIM4__CNTRH(0x93)
位
7
6
5
4
3
2
1
0
TIM4__CNTRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM4__CNTRL(0x92)
位
7
6
5
4
TIM4__CNTRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:0]
13.2.4
描述
TIM4__CNTR
基本计数器的计数值
TIM4_DR(0x94,0x95)
表 13-5 TIM4_DRH(0x95)TIM4_DRL(0x94)
TIM4__DR(0x95,0x94)
TIM4__DRH(0x95)
位
7
6
5
4
3
2
1
0
TIM4__DRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM4__DRL(0x94)
位
7
6
5
4
TIM4__DRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:比较匹配值(软件写),FG 模式参考 FG 输出产生
[15:0]
TIM4__DR
输入 timer 模式:检测到输入脉宽(根据 T4OCM 选择即上升沿到下降沿或者下降沿
到上升沿)的计数值(硬件写)
REV_1.1
90
www.fortiortech.com
FU5821
13.2.5
TIM4_ARR(0x96,0x97)
表 13-6 TIM4_ARRH(0x97)TIM4_ARRL(0x96)
TIM4__ARR(0x96,0x97)
TIM4__ARRH(0x97)
位
7
6
5
4
3
2
1
0
TIM4__ARRH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
TIM4__ARRL(0x96)
位
7
6
5
4
TIM4__ARRL
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
输出模式:重载值(软件写)
,FG 模式参考 FG 输出产生
[15:0]
TIM4__ARR
输入 timer 模式:检测到一个 PWM 周期(根据 T4OCM 选择即上升沿到上升沿或者
下降沿到下降沿)的计数值(硬件写)
REV_1.1
91
www.fortiortech.com
FU5821
14
SYS_TICK
14.1
操作说明
SYS_TICK 用于固定 1ms 产生中断,使能 DRV_SR 寄存器的 STIE 位即可使 SYS_TICK 工作且
产生中断。中断入口为 10。
14.2
寄存器
DRV_SR(0xDF)
14.2.1
表 14-1DRV_SR(0xDF)
位
7
6
5
4
3
2
1
0
名称
SYSTIF
SYSTIE
RSV
DCIF
RSV
RSV
DCIM1
DCIM0
类型
R/W0
R/W
R
R/W0
R
R
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
SysTick 中断标志
[7]
SYSTIF
该位由硬件置 1。它由软件清 0。
0:无事件发生
1:SYS TICK 中断产生
SysTick 中断使能
[6]
SYSTIE
使能后可产生 SYS TICK 中断
0:不使能
1:使能
[5]
RSV
保留
比较匹配中断标志
当计数值等于 DRV_COMR 时,根据 DCIM 设置判断计数方向,符合则产生中断标记
[4]
DCIF
该位由硬件置 1。它由软件清 0。
0:无事件发生
1:比较中断产生
[3]
RSV
保留
[2]
RSV
保留
比较匹配中断模式配置
当计数值等于 DRV_COMR 时,根据 DCIM 的设置判断是否产生中断标记
[1:0]
DCIM
00:不产生中断
01:上升方向
10:下降方向
11:上升/下降方向
REV_1.1
92
www.fortiortech.com
FU5821
15
Driver
15.1
15.1.1
操作说明
简介
FU5821 系列为内置 PreDriver 输出
MOEH
VCC
x2
VCC
LS
H_PU
High Side
Predriver
H_PV
UH
VH
DRVOE
EN
MOEL
EN
UL
VL
Motor
x2
LS
Low Side
Predrdriver
L_V
L_U
ISEN
图 15-1 FU5821 PREDRIVER 模块框图
2P2N Predriver 驱动模式时,VCC 为输入信号,在 H_PU/H_PV 及 L_U/L_V 引脚为 Predriver
的输出信号,注意 H_PU/H_PV 与内部信号 UH/VH 为反向关系。DRVOE 为模块的使能端,MOEH,
MOEL 为 2P2N 模式下的输出使能端,如图 15-1 所示。
配置寄存器 DRV_CR 的 DRVOE=1,使能 Predriver 输出,此时 UH/VH 分别被反向后送至
H_PU/H_PV 引脚用于驱动 PMOS 的栅极,UL/VL 分别被送至 L_U/L_V 引脚用于驱动 NMOS 的栅
极。由 PMOS 和 NMOS 驱动电机运转。
REV_1.1
93
www.fortiortech.com
FU5821
15.1.2
输出控制模块
0
0
0
1
1
UHE
0
UHP
0
0
DEAD
ZONE
OCUH
OCUL
1
1
ULP
DRV_DR
TIM1
TIM1_PWMDR
ULE
COUNTER
PWM
0
0
0
1
1
VHE
0
DEAD
ZONE
OCVH
OCVL
VHP
0
0
1
1
VLP
VLE
图 15-2 输出控制模块前级框图
DRV_DR 在输入 TIM1 处理后,得到 PWM 的比较值 TIM1__PWMDR,XHE/XLE 使能即为输
出 PWM,XHP/XLP 使能即为输出反相,以 U 相上桥为例:
UHE=0,UHP=0 时,输出 0;
UHE=1,UHP=0 时,输出 PWM;
UHE=0,UHP=1 时,输出 1;
UHE=1,UHP=1 时,输出反相 PWM;
假设需要设置 U 相上桥 PWM,U 相下桥互补输出,V 相下桥常开时,UHE=1,UHP=0;ULE=1,
HLP=1;VLE=0,VLP=1;
假设需要设置 U 相上桥 PWM,V 相下桥常开时,UHE=1,UHP=0;VLE=0,VLP=1;
REV_1.1
94
www.fortiortech.com
FU5821
15.1.2.1
计数比较模块
通过 TIM1_PWMDR 计数比较得到 PWM 占空比。
cntr
TIM1_PWMDR
0
t
PWM
图 15-3 PWM 生成图
占空比 = TIM1_PWMDR/ DRV_ARRx 100%(假设 DRV_ARR=750,TIM1_PWMDR =375,
则 PWM 占空比=50%)
15.1.2.2
死区模块
PWM 输出支持死区插入。对于互补输出,如果 DRV_DTR 寄存器不等于 0,就使能了死区
插入。通过 DRV_DTR 设置死区时间。当 PWM 上升沿发生时,XH 的实际输出高电平比 PWM 的
上升沿延迟 DRV_DTR 设定的时间;当 PWM 下降沿发生时,XL 的实际输出高电平比 PWM 的下降
沿延迟 DRV_DTR 设定的时间。如果延迟时间大于实际输出的脉宽,那么对应的通道脉宽不延迟,
相反的通道脉宽不产生。
PWM
XH(XHP=0,XHE=1)
XL(XLP=1,XLP=1)
tdelay
tdelay
tdelay
tdelay
图 15-4 带死区插入的互补输出
REV_1.1
95
www.fortiortech.com
FU5821
OCxREF
XH(XHP=0,XHE=1)
XL(XLP=1,XLP=1)
图 15-5 死区时间大于负电平
OCxREF
XH(XHP=0,XHE=1)
XL(XLP=1,XLP=1)
图 15-6 死区时间大于正电平
15.1.2.3
主输出使能 MOE
MOEH
OISUH
OCUH
0
1
UH
DRVOE
MOEL
OISUL
OCUL
0
1
UL
GATE
DRIVER
MOEH
OISVH
OCVH
0
1
VH
MOEL
OISVL
OCVL
0
1
VL
图 15-7 输出控制模块后级框图
使能 MOE 后,输出来源于计数器比较值,用于控制电机输出。禁止 MOE 后,输出来源于软件
设置的空闲电平,用于控制电机不输出,即停机状态。
REV_1.1
96
www.fortiortech.com
FU5821
15.1.2.4
15.1.2.4.1
中断
比较匹配中断
设置 DRV_SR 寄存器的 DCIM 配置向上计数或者向下计数时进行比较匹配,设置比较匹配值
DRV_COMR,当计数器的计数值等于 DRV_COMR,符合 DCIM 的设置则产生中断事件,下溢中断
标记 DCIF 硬件置 1。软件对 DCIF 写 0 可清中断标记,写 1 无效
TIM1_PWMDR
cntr
DCIM = 11
DCIF
DCIM = 10
DCIF
DCIM = 01
DCIF
DCIM = 00(Disable)
DCIF
图 15-8 DRV 比较匹配中断
REV_1.1
97
www.fortiortech.com
FU5821
15.2
寄存器
DRV_CR(0xE1)
15.2.1
表 15-1 DRV_CR(0xE1)
位
7
6
5
4
3
2
1
0
名称
DRVEN
RSV
BTIMEN
HREVEN
LREVEN
RSV
RSV
DRVOE
类型
R/W
R
R/W
R/W
R/W
R
R
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
计数器使能
[7]
DRVEN
0:禁止
1:使能
[6]
RSV
保留
基本计数器模块使能
[5]
BTIMEN
0:禁止
1:使能
上管反相使能:
[4]
HREVEN
0:正常
1:反相
下管反相使能:
[3]
LREVEN
0:正常
1:反相
[1]
RSV
[0]
DRVOE
保留
Driver 输出使能
0:禁止
1:使能
REV_1.1
98
www.fortiortech.com
FU5821
DRV_SR(0xDF)
15.2.2
表 15-2 DRV_SR(0xDF)
位
7
6
5
4
3
2
1
0
名称
SYSTIF
SYSTIE
RSV
DCIF
RSV
RSV
DCIM1
DCIM0
类型
R/W0
R/W
R
R/W0
R
R
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
SysTick 中断标志
[7]
SYSTIF
该位由硬件置 1。它由软件清 0。
0:无事件发生
1:SYS TICK 中断产生
SysTick 中断使能
[6]
SYSTIE
使能后可产生 SYS TICK 中断
0:不使能
1:使能
[5]
RSV
保留
比较匹配中断标志
当计数值等于 DRV_COMR 时,根据 DCIM 设置判断计数方向,符合则产生中断标记
[4]
DCIF
该位由硬件置 1。它由软件清 0。
0:无事件发生
1:比较中断产生
[3]
RSV
保留
[2]
RSV
保留
比较匹配中断模式配置
当计数值等于 DRV_COMR 时,根据 DCIM 的设置判断是否产生中断标记
[1:0]
DCIM
00:不产生中断
01:上升方向
10:下降方向
11:上升/下降方向
REV_1.1
99
www.fortiortech.com
FU5821
15.2.3
DRV_OUT(0xF8)
表 15-3 DRV_OUT(0xF8)
位
7
6
5
4
3
2
1
0
名称
MOEH
MOEL
RSV
RSV
OISVH
OISVL
OISUH
OISUL
类型
R/W
R/W
R
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
上管输出使能
该位用于选择 UVW 上桥输出的来源。该位软件可置 1 和清 0,母线电流保护产生(见
[7]
MOEH
31.1.1.1)时,硬件自清零,关闭输出。
0: 禁止,输出来源于空闲电平 OISUH/OISVH
1:使能,输出来源于计数器比较值
下管输出使能
该位用于选择 UVW 下桥输出的来源。该位软件可置 1 和清 0,母线电流保护产生(见
[6]
MOEL
31.1.1.1)时,硬件自清零,关闭输出。
0: 禁止,输出来源于空闲电平 OISUL/OISVL
1:使能,输出来源于计数器比较值
[5]
RSV
保留
[4]
RSV
保留
[3]
OISVH
[2]
OISVL
[1]
OISUH
VH 的输出空闲电平
参考 OISUL 描述
VL 的输出空闲电平
参考 OISUL 描述
UH 的输出空闲电平
参考 OISUL 描述
UL 的输出空闲电平
[0]
OISUL
该位设置输出 UL 的空闲电平。当 MOE=0,输出空闲电平关闭对应的 MOS。
0:低电平
1:高电平
REV_1.1
100
www.fortiortech.com
FU5821
DRV_ARR(0xE4,0xE5)
15.2.4
表 15-4 DRV_ARRH(0xE5)DRV_ARRL(0xE4)
DRV_ARRH(0xE5)
位
7
6
5
4
3
RSV
名称
2
1
0
DRV_ARR[11:8]
类型
R
R
R
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
DRV_ARRL(0x E4)
位
7
6
5
4
DRV_ARR[7:0]
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:12]
RSV
描述
保留
计数器的重载值,决定载波周期和运算周期(中央对齐模式)
DRV 计数器从 0 开始计数到 DRV_ARR/2 - 1,产生上溢事件,然后向下计数到 0。
[11:0]
DRV_ARR
计算公式为
注:LSB 恒为 0,不可写
DRV_ARR 的值以时钟 48MHz 计算,取值范围(0,4095)
DRV_DR(0xE2,0xE3)
15.2.5
表 15-6 DRV_DRH(0xE3)DRV_DRL(0xE2)
DRV_DRH(0xE3)
位
7
6
5
4
3
RSV
名称
2
1
0
DRV_DR[11:8]
类型
R
R
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
DRV_DRL(0xE2)
位
7
6
5
4
DRV_DR[7:0]
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:12]
RSV
描述
保留
手动控制输出时设定的比较值
软件写 PWM 占空比
占空比 = DRV_DR/ DRV_ARRx 100%(假设 DRV_ARR=750,DRV_DR=375,则占空
[11:0]
DRV_DR
比=50%)
注:当使用该寄存器作为比较源时,输出 PWM 以上桥为参考,当同一相对管互补输出,
下桥 PWM 反相。
DRV_DR 的值以时钟 48MHz 计算,取值范围 (0,4095)
REV_1.1
101
www.fortiortech.com
FU5821
DRV_DTR(0xE9)
15.2.6
表 15-7 DRV_DTR(0xE9)
位
7
6
5
4
3
2
1
0
DRV_DTR
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
上下管死区时间
[7:0]
DRV_DTR
DTR 为插入互补输出之间的死区持续时间
DT= (DTR+1) x 41.67ns
注:当 DTR=0,不插入死区
DRV__CNTR(0xE6,0xE7)
15.2.7
表 15-8 DRV__CNTRH(0xE7)DRV__CNTRL(0xE6)
DRV_CNTRH(0xE7)
位
7
6
5
4
3
RSV
名称
2
1
0
DRV_CNTR[11:8]
类型
R
R
R
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
3
2
1
0
DRV_CNTRL(0xE6)
位
7
6
5
4
DRV_CNTR[7:0]
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[15:12]
RSV
描述
保留
计数器值
[11:0]
DRV_CNTR
CNTR 对应的占空比 = DRV__CNTR*4/ DRV_ARRx 100%
DRV__CNTR 的值以时钟 12MHz 计算,取值范围(0,4095)
REV_1.1
102
www.fortiortech.com
FU5821
16
16Watchdog timer (WDT)
看门狗定时器是一个工作在 LS_OSC 时钟域下的定时器,主要用于监控主程序运行,防止 MCU
出现死机的情况。看门狗的工作原理是:启动看门狗后,看门狗的定时器开始运行;当看门狗定时
器溢出时,看门狗会发送信号使 MCU 复位,主程序将重新运行。所以,在主程序运行过程中,每隔
一段时间就要对看门狗的定时器进行初始化,以防止看门狗定时器溢出,俗称“喂狗”。
FU5821 的看门狗在启动后就会从 0 开始计时,如果没有“喂狗”操作,当计时到 FFFC 时看门狗
会输出一个长度为 4 个 LS_OSC 周期的信号使 MCU 复位,程序从头开始运行;如果程序在运行中
定时给看门狗发送“喂狗”信号,那么看门狗定时器将会从设定的初始值开始计数,看门狗将不会令
MCU 复位。
16.1
WDT 使用注意事项
1、 MCU 进入待机模式或者睡眠模式时,WDT 将停止计数,但计数值仍会保留。
2、 MCU 在仿真过程中,WDT 将会被自动禁用
3、 WDT 定时器溢出使 MCU 复位,那么 RST_SR[RSTWDT]将会置一
16.2
WDT 操作说明
1、 配置 CCFG1[WDTEN]启动看门狗计数,启动后看门狗会开始计数;
2、 设置 WDT_ARR,本步也可以放在启动看门狗之前;
3、 在程序的运行中设置 WDT_CR[WDTRF]为 1,即可令看门狗定时器初始化
REV_1.1
103
www.fortiortech.com
FU5821
16.3
WDT 寄存器
WDT_CR(0x4026)
16.3.1
表 16-1 WDT_CSR(0x4026)
位
7
6
5
4
3
2
RSV
名称
1
0
WDTF
WDTRF
类型
R
R
R
R
R
R
R/W0
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[7:2]
RSV
保留
[1]
WDTF
看门狗复位标志
看门狗初始化标志
[0]
WDTRF
1:初始化看门狗计数器;
0:不初始化
WDT_ARR(0x4027)
16.3.2
表 16-2 WDT_ARR(0x4027)
位
7
6
5
4
3
2
1
0
WDT_ARR
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[7:0]
描述
WDT_ARR
看门狗重载计数器,设置看门狗计数器重新置位后的值的高 8 位。
CCFG1 (0x401E)
16.3.3
表 16-3 CCFG1(0x401E)
位
7
6
RSV
名称
5
4
3
WDT_EN
2
1
0
RSV
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
字段
名称
[7:6]
RSV
描述
保留
WDT 使能
[5]
WDT_EN
0: 禁止
1: 使能
[4:0]
REV_1.1
RSV
保留
104
www.fortiortech.com
FU5821
RTC 与时钟校准
17
17.1
RTC 基本功能框图
RTC_EN
(active high)
RTC_OV/IF
CNT_PROC
RTC_TMH[7:0]
MCU_DATA_BUS
INT_CTRL
RTC_TML[7:0]
OV/IF INT
RTC_EN
(active high)
INT OUT
图 17-1RTC 基本功能框图
17.2
RTC 操作说明
写寄存器 RTC_TMH 和 RTC_TML,设置 RTC 计数的重载值;
设置 RTC_STA[RTC_EN]为 1,使能 RTC 计数。
17.3
17.3.1
RTC 寄存器
计数寄存器:RTC_TM(0x402C,0x402D)
表 17-1RTC_TMH(0x402C)RTC_TML(0x402D)
RTC_TM(0x402C,0x402D)
RTC_TMH(0x402C)
位
7
6
5
4
3
2
1
0
RTC_TMH
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
1
1
1
1
1
1
1
1
位
7
6
5
3
2
1
0
RTC_TML(0x402D)
4
RTC_TML
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
1
1
1
1
1
1
1
1
字段
名称
描述
RTC 计数寄存器。
[15:0]
RTC_TM
写入后,RTC 计数器以 32768Hz 从 0 计数到 RTC_TM[15:0]后溢出,中断,并重载为 0
继续计数。
读出值为正在计数的值,为计数瞬间值。
REV_1.1
105
www.fortiortech.com
FU5821
控制寄存器:RTC_STA(0x402E)
17.3.2
表 17-2 RTC_STA(0x402E)
位
7
6
5
4
3
名称
RTC_EN
RTC_IF
ISOSCSEL
ISOSCEN
类型
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
字段
名称
2
1
0
R
R
R
0
0
0
RSV
描述
RTC 使能
7
RTC_EN
0:禁止
1:使能
RTC 中断标志
6
RTC_IF
当 RTCIE 为 1 时,此位溢出后将产生中断,MCU 可软件清 0 此位。
当 RTCIE 为 0 时,此位溢出后不会产生中断,但仍有标志,MCU 可读取该标志后将其
清 0。
内部慢时钟源选择:
5
ISOSCSEL
0:内部时钟源
1:外部时钟源
内部慢时钟使能
4
ISOSCEN
0:内部慢时钟禁止
1:内部慢时钟使能
[3:0]
RSV
17.4
保留
时钟校准
17.4.1
简介
时钟校准模块内部慢时钟校准快时钟功能,其中慢时钟可由寄存器 SCK_SEL 选择慢时钟源,可
以是内部慢时钟或者外部慢时钟。校准原理是使用一个长度 12 位的计数器连续累积计 8 个慢时钟周
期的长度。
校准方法:MCU 写 CAL_STA=1 开始进行校准过程,读 CAL_BSY 标志位可知校准是否完成,
CAL_BSY=0 表示校准结束,MCU 读取 CAL_ARR 的值即是使用快时钟连续累积计 8 个慢时钟的
值。
REV_1.1
106
www.fortiortech.com
FU5821
寄存器
17.4.2
表 17-3 CAL_CR0(0x403E)CAL_CR1(0x403F)
CAL_CR0、CAL_CR1(0x403E、0x403F)
CAL_CR0(0x403E)
位
7
6
5
4
3
名称
CAL_STA
类型
R/W
R
R
R
R/W
R/W
R/W
R/W
复位值
1
0
0
0
0
0
0
0
3
2
1
0
RSV
2
1
0
CAL_ARR[11:8]
CAL_CR1(0x403F)
位
7
6
5
4
CAL_ARR[7:0]
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
CLOCK_CAL 使能
[15]
CAL_STA
写 1:启动时钟校准功能。
读 0:表示校准过程完成。
读 1:表示校准过程正在进行中。
[14:13]
RSV
保留
校准计数值
[12:0]
CAL_ARR
使用快时钟连续累积计数 8 个慢时钟周期的值。
特别地,当此值为 0 时表示无对应慢时钟输入,当此值为 1FFF 时表示计数溢出(原因
可能是慢时钟太慢或者快时钟太快)
。
REV_1.1
107
www.fortiortech.com
FU5821
18
IO
18.1
IO 简介
最多可以支持 12 个通用 I/O 引脚,分别为 P0.1~P0.6,P1.1~P1.6。每个 GPIO 端口有相关
的控制和配置寄存器用来满足不同应用的需求。
18.2
IO 操作说明
1、 端口 P0.1~P0.6,P1.1~P1.6 映射到寄存器 P0,P1。
2、 P0_OE,P1_OE 用于配置 P0.1~P0.5 和 P1.1~P1.6 的输入/输出使能,P0.6 只能输入使
能。当端口配置为输入时,施密特触发输入使能,所有的 IO 口除 P0.1 都可以选择是否开启上拉,
其中 P1.1 还可以选择下拉输入。
3、 P0.2~P0.6,P1.1~P1.6 均可使能上拉电阻,配置 P0_PU,P1_PU,对应的位为一。其
中 P0.2 的上拉电阻阻值约为 6kΩ,其余 PAD 的上拉电阻阻值约为 35kΩ ,复位脚 RSTN 为 35 kΩ 固
定上拉;
4、 P1.1 可使能下拉电阻,下拉电阻约为 10kΩ,配置 P1_PU[0]选择是否使能。
5、 所有 IO 端口在数字输出 0 时上拉电阻会被自动关闭。
6、 P0.1/P0.3/P0.4/P0.5/P1.1/P1.2/P1.4/P1.5 可配置为外部中断 0 输入,但是一次只能配置
一个,P0.3/P0.4/P0.5/P1.1/P1.2/P1.4/P1.5 可配置为外部中断 1 输入,一次也只能配置一个。INT0
和 INT1 都可以配置为上升沿中断、下降沿中断或者电平改变触发中断。
7、 P0.2~P0.6,P1.1,P1.4~P1.6 可配置为模拟 PAD,配置 P0_AN,P1_AN 对应的位为一。
PAD 配置为模拟 PAD 后,对应 PAD 的所有数字功能配置失效,寄存器 P0,P1 对应的位检测到的
端口状态为 0。
8、 P0.2~P0.6,P1.1,P1.4~P1.6 在端口配置为模拟模式后上拉会自动关闭,
9、 P1.1 支持防倒灌;
10、
U、V 输出的输出源 OCUH/OCVH 和 OCUL/OCVL 来自于 TIMER1 模块。DRV_OUT
寄存器的 MOEH/MOEL 选择寄存器配置的空闲电平(DRV_OUT 寄存器的 OISUH/OISVH 和
OISUL/OISVL)还是输出源 OCUH/OCVH 和 OCUL/OCVL 送进 DRIVER 模块。
11、
DRV_OUT 寄存器的 MOEH/MOEL 可以由软件写零和写一,当发生过流保护时硬件会
自动清零。
12、
REV_1.1
IO 优先级:
108
www.fortiortech.com
FU5821
18.3
a)
对于所有复用端口,GPIO 的优先级最低
b)
P0.1:UART> I2C> TIMER4 > GPIO
c)
P0.4:COP>TIMER2S > GPIO
d)
P1.1:UART >I2C> TIMER3 > GPIO
e)
P1.2:FICE>UART>TIM2>TIM4S > GPIO
IO 寄存器
18.3.1
P0_OE(0xFC)
表 18-1 P0_OE(0xFC)
位
7
6
5
4
3
2
1
名称
RSV
RSV
类型
R
R
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
字段
名称
2
1
0
P0_OE
0
RSV
描述
P0.5~P0.1 的数字输出使能
[5:1]
P0_OE
1:输出
0:输入
18.3.2
P1_OE(0xFD)
表 18-2 P1_OE(0xFD)
位
7
6
5
4
3
名称
RSV
类型
R
R/W
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
字段
名称
P1_OE
RSV
描述
P1.6~P1.1 的数字输出使能
[6:1]
P1_OE
1:输出
0:输入
REV_1.1
109
www.fortiortech.com
FU5821
P0_AN(0x4031)
18.3.3
表 18-3 P0_AN(0x4031)
位
7
6
5
4
3
名称
RSV
类型
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
字段
名称
2
1
0
RSV
RSV
R/W
R
R
0
0
0
3
2
1
0
RSV
RSV
RSV
HBMOD
P0_AN
描述
P0.6~P0.2 的模拟模式使能
[6:2]
P2_AN
1:使能
0:禁止
P1_AN(0x4030)
18.3.4
表 18-4 P1_AN(0x4030)
位
7
名称
RSV
类型
R
R/W
R/W
R
R
R
R
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[7]
RSV
6
5
4
P1_AN
描述
保留
P1.6~P1.4 的模拟模式使能
[6:4]
P1_AN
1:使能
0:禁止
[3:2]
RSV
保留
P1.3 模式配置,与 P1_OE.3 组合决定 P1.3 的功能模式。
[1]
HBMOD
[0]
RSV
REV_1.1
HBMODE
P1_OE.3
P1.3 模式
0
0
数字输入
0
1
数字输出
1
0
模拟模式
1
1
数字强驱动输出,输出高可提供强
驱动。
保留
110
www.fortiortech.com
FU5821
18.3.5
P0_PU(0x4033)
表 18-5 P0_PU(0x4053)
位
7
6
5
4
3
名称
RSV
类型
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
字段
名称
2
1
0
RSV
RSV
R/W
R
R
0
0
0
2
1
0
P0_PU
描述
P0.6~P0.2 的上拉电阻使能
[6:2]
P0_PU
1:使能
0:禁止
18.3.6
P1_PU(0x4034)
表 18-6 P1_PU(0x4054)
位
7
6
5
4
3
名称
LVMOD
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
P1_PU
P11PL
描述
P1.1 1.8V 输入模式使能
[7]
LVMOD
1:使能
0:禁止
P16~P1.1 的上拉电阻使能
[6:1]
P1_PU
1:使能
0:禁止
P11 的下拉电阻使能
[0]
P11PL
1:使能
0:禁止
REV_1.1
111
www.fortiortech.com
FU5821
PH_SEL(0x403C)
18.3.7
表 18-7 PH_SEL(0x404C)
位
7
6
5
4
3
2
1
0
名称
UARTSSEL
UARTEN
T4SSEL
T4SEL
T3SEL
T2SSEL
T2SEL
RSV
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
端口复用为 UART
[7]
UARTSSEL
UART 端口功能转移
0:UART 端口不转移,P1.1,RXD,P0.1,TXD
1:UART 端口转移,P1.1,RXD,P1.2,TXDS
端口复用为 UART
[6]
UARTEN
UART 使能
0:UART1 功能禁止
1:UART1 功能使能
端口复用为 TIM4
[5]
T4SSEL
TIMER4 端口使能转移
0:P0.1 复用为 TIM4
1:P1.2 复用为 TIM4
端口复用为 TIM4
TIMER4 端口使能
[4]
T4SEL
0:不使能
1:P0.1 或 P1.2(功能转移 PH_SEL[T4SSEL]=1)作为 TIMER4 的输入输出
注:端口优先级参考 IO 操作说明
端口复用为 TIM3
TIMER3 端口使能
[3]
T3SEL
0:不使能
1:P1.1 作为 TIMER3 的输入输出
注:端口优先级参考 IO 操作说明
端口复用为 TIM2
[2]
T2SSEL
TIMER4 端口使能转移
0:P1.2 作为 TIMER2 的输入输出
1:P0.4 作为 TIMER2 的输入输出
端口复用为 TIM3S
TIMER2 端口 2 使能
[1]
T2SEL
0:P1.2 作为 GPIO
1:P1.2 或 P0.4(功能转移 PH_SEL[T2SSEL]=1)作为 TIMER2 的输入输出
注:端口优先级参考 IO 操作说明
[0]
RSV
REV_1.1
保留
112
www.fortiortech.com
FU5821
18.3.8
P0(0x80)/P1(0x90)
端口输出寄存器 P0/1 支持读写访问,
RMW(read-modify-write)
指令访问的是寄存器的值(RMW
指令参见)
,其他指令访问的是 PORT 管脚。
表 18-8 P0/P1
P0(0x80)/P1(0x90)
位
7
6
5
4
3
2
1
0
名称
RSV
GPx[6]
GPx[5]
GPx[4]
GPx[3]
GPx[2]
GPx[1]
RSV
类型
R
R/W
R/W
R/W
R/W
R/W
R/W
R
复位值
0
0
0
0
0
0
0
0
寄存器名称
功能描述
R/W
初始值
P0[6:1]
端口寄存器 0
R/W
0x00
P1[6:1]
端口寄存器 1
R/W
0x00
表 18-9 read modify write instructions
指令
功能描述
ANL
Logic AND
ORL
Logic OR
XRL
Logic exclusive OR
JBC
Jump if bit is set and clear
CPL
Complement bit
INC,DEC
Increment, decrement byte
DJNZ
Decrement and jump if not zero
MOV Px,y, C
Move carry bit to bit y of port x
CLR Px,y
Clear bit y of port x
SETB Px,y
Set bit y of port x
REV_1.1
113
www.fortiortech.com
FU5821
19
ADC
19.1
ADC 简介
FU5821 系列的 ADC 是一个 10 位逐次逼近寄存器(SAR)ADC,内部支持 11 个通道,采样方式为
顺序采样(即从 AD0 依次到 AD10)
,采样结果支持右对齐和左次高位对齐。其中 AD0~AD9 为外部引
脚 ADC 通道,AD10 为 VCC 引脚经过 1/10 电阻分压比后直接送入 ADC 进行采样。
19.2
ADC 框图
ADC_MASK[10:0]
VCC
P0.6/AD0
P0.5/AD1
P0.2/AD2
P0.3/AD3
P1.5/AD4
P1.6/AD5
P0.4/AD6
P1.1/AD7
P1.3/AD8
P1.4/AD9
ADC
AMUX
图 19-1 ADC 多路复用器框图
ADC_CR
ADCIF
ADCIE
ADCALIGN
ADCBSY
ADC_EN
Interrupt to MCU
VDD5
TIM2_CRO[ADCTRGE
N]=1
Trigger
From
AMUX0
VDD5
10-Bit SAR
ADC
ADC0_DRH/DRL
ADC1_DRH/DRL
...
ADC10_DRH/DRL
ADC_SCYC
图 19-2 ADC 功能框图
REV_1.1
114
www.fortiortech.com
FU5821
19.3
ADC 操作说明
软件写寄存器 ADC_CR[ADCBSY]置 1 时将进行顺序扫描采样模式。
ADC_MASK
ADCEN
ADCBSY
ADCDR0
ADCDR1
Clear 0 By Hardware
SET 1 START ADC
Sampling
time
...
C onvension
Sampl ing
time
C onvension
R esult 0
R esult 1
MCU Read Results
.
.
.
图 19-3 ADC 顺序扫描采样时序图
如图 20-3 所示,启动 ADC 操作
⚫
设置对应通道的编号即设置寄存器 ADC_MASK
⚫
设置合适的每个通道的采样时钟周期延时(最小值为 3)
⚫
设置 ADC_CR 寄存器的 ADCEN 位为 1
⚫
设置 ADC_CR 寄存器的 ADCBSY 位为 1 后,ADC 开始工作
⚫
当读取 ADCBSY 为零后可以读取 ADC 转换结果
⚫
ADC 转换顺序根据使能的通道号从低到高(即当使能 CH2/3/4 后,依次采样转换
CH2/3/4,然后在读取 ADCBSY 为零后读取单次转换结果)
REV_1.1
115
www.fortiortech.com
FU5821
19.3.1
输出数据格式
寄存器 ADC_DRH 和 ADC_DRL 包含每次转换完成时 ADC 输出转换代码的高字节和低字节。
数据可以根据 ADC_CR[ADCALIGN]选择右对齐或左次高位对齐。输入从 0 到 VDD5,输出数据代
码如下表所示。ADC_DRH 和 ADC_DRL 寄存器中未使用的位被置为 0。
输入电压
REV_1.1
右对齐
左次高对齐
ADC_CR[ADCALIGN]=0
ADC_CR[ADCALIGN]=1
0
0x0000
0x0000
VDD5/2
0x0200
0x4000
VDD5
0x03FF
0x7FE0
116
www.fortiortech.com
FU5821
19.4
ADC 寄存器
ADC_CR(0x4039)
19.4.1
表 19-1 ADC_CR(0x4039)
位
7
6
5
4
名称
ADCEN
ADCBSY
RSV
类型
R/W
R/W1
R
R/W
复位值
0
0
0
0
字段
名称
3
2
1
0
ADCALIGN
ADCIE
ADCIF
R/W
R/W
R/W
R/W
0
0
0
0
RSV
描述
使能 ADC
[7]
ADCEN
0:禁止。
1:使能。
ADC 启动 & ADC 忙标志
MCU 操作 ADC 时应先写 ADCEN 位,使电路准备好,再写 ADCBSY 进行转换。MCU
[6]
ADCBSY
写 1 后开始 ADC 转换,转换完毕硬件自动清 0。MCU 也可以读取此位以判断 ADC 是
否处于转换过程中。若此位已经为 1 时 MCU 再写 1 无意义。此位 MCU 只可写 1,写
0 无意义,读出时表示 ADC 状态。
ADC_MASK=0 时此位写 1 无意义。
[5]
RSV
保留
[4:3]
RSV
保留
[2]
ADCALIGN
ADC 数据次高位对齐使能
0:ADC 数据右对齐。
1:ADC 数据次高位对齐。(TRIG 模式不受影响)
ADC 中断使能。用于控制 ADCIF 是否向 MCU 发起中断事件。
(不包含 TRIG 模式中
[1]
ADCIE
断)
0:禁止。
1:使能。
ADC 中段标志
当本次 ADC 转换完毕时,
若 ADCIE=1 则向 MCU 发起 ADC 中断事件。
此位不受 ADCIE
[0]
ADCIF
控制。
0:本次 ADC 转换未完毕。
1:本次 ADC 转换完毕。
REV_1.1
117
www.fortiortech.com
FU5821
ADC_MASK(0x4036,0x4037)
19.4.2
表 19-2 ADC_MASK={ ADC_MASKH, ADC_MASKL}(0x4036~0x4037)
ADC_MASKH(0x4036)
位
7
6
5
4
3
2
1
0
名称
RSV
RSV
RSV
RSV
RSV
CH10EN
CH9EN
CH8EN
类型
R
R
R
R
R
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
ADC_MASKL(0x4037)
位
7
6
5
4
3
2
1
0
名称
CH7EN
CH6EN
CH5EN
CH4EN
CH3EN
CH2EN
CH1EN
CH0EN
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15]
RSV
保留位
[14]
RSV
保留位
[13]
RSV
保留位
[12]
RSV
保留位
[11]
RSV
保留位
[10]
CH10EN
ADC 第 10 通道使能,片内 VCC 电压
[9]
CH9EN
ADC 第 9 通道使能
[8]
CH8EN
ADC 第 8 通道使能,
[7]
CH7EN
ADC 第 7 通道使能
[6]
CH6EN
ADC 第 6 通道使能
[5]
CH5EN
ADC 第 5 通道使能
[4]
CH4EN
ADC 第 4 通道使能
[3]
CH3EN
ADC 第 3 通道使能
[2]
CH2EN
ADC 第 2 通道使能
[1]
CH1EN
ADC 第 1 通道使能
[0]
CH0EN
ADC 第 0 通道使能
REV_1.1
118
www.fortiortech.com
FU5821
19.4.3
ADC_SCYC(0x4038)
表 19-3 ADC_SCYC (0x4038)
ADC_SCYC(0x4038)
位
7
6
名称
RSV
RSV
类型
R
复位值
0
字段
名称
[7:6]
RSV
5
4
3
2
1
0
ADC_SCYC [5:4]
ADC_SCYC [3:2]
ADC_SCYC [1:0]
R
R/W
R/W
R/W
R/W
R/W
R/W
0
0
1
0
1
0
1
描述
保留位
ADC 采样周期设置,通道 AD8、AD9、AD10 共用设置。
,
[5:4]
ADC_S
00: 0.6uS
CYC
01: 1.3uS,默认值
[5:4]
10: 2uS
11: 2.6uS
ADC 采样周期设置,通道 AD4、AD5、AD6、AD7 共用设置。
,
[3:2]
ADC_S
00: 0.6uS
CYC
01: 1.3uS,默认值
[3:2]
10: 2uS
11: 2.6uS
ADC 采样周期设置,通道 AD0、AD1、AD2、AD3 共用设置。
,
[1:0]
ADC_S
00: 0.6uS
CYC
01: 1.3uS,默认值
[1:0]
10: 2uS
11: 2.6uS
REV_1.1
119
www.fortiortech.com
FU5821
19.4.4
ADC0_DR(0x0100,0x0101)
表 19-4 ADC0_DR={ADC0_DRH,ADC0_DRL}(0x0100~0x0101)
ADC0_DR={ADC0_DRH,ADC0_DRL}(0x0100~0x0101)
ADC0_DRH(0x0100)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC0_DRL(0x0101)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:12]
RSV
保留
[11:8]
DH
软件启动 ADC 转换完成后,第 0 通道的高 2 位 ADC 转换数据
[7:0]
DL
19.4.5
软件启动 ADC 转换完成后,第 0 通道的低 8 位数据
注:硬件自动启动的 ADC 结果不会更新至此寄存器
ADC1_DR(0x0102,0x0103)
表 19-5 ADC1_DR={ADC1_DRH,ADC1_DRL}(0x0102~0x0103)
ADC1_DR={ADC1_DRH,ADC1_DRL}(0x0102~0x0103)
ADC1_DRH(0x0102)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC1_DRL(0x0103)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 1 通道的高 2 位 ADC 转换数据
[7:0]
DL
REV_1.1
软件启动 ADC 转换完成后,第 1 通道的低 8 位数据
注:硬件自动启动的 ADC 结果不会更新至此寄存器
120
www.fortiortech.com
FU5821
19.4.6
ADC2_DR(0x0104,0x0105)
表 19-6 ADC2_DR={ADC2_DRH, ADC2_DRL}(0x0104~0x0105)
ADC2_DR={ADC2_DRH,ADC2_DRL}(0x0104~0x0105)
ADC2_DRH(0x0104)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC2_DRL(0x0105)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 2 通道的高 2 位 ADC 转换数据
[7:0]
DL
19.4.7
软件启动 ADC 转换完成后,第 2 通道的低 8 位数据
注:硬件自动启动的 ADC 结果不会更新至此寄存器
ADC3_DR(0x0106,0x0107)
表 19-7 ADC3_DR={ADC3_DRH, ADC3_DRL}(0x0106~0x0107)
ADC3_DR={ADC3_DRH,ADC3_DRL}(0x0106~0x0107)
ADC3_DRH(0x0106)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC3_DRL(0x0107)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 3 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 3 通道的低 8 位数据
REV_1.1
121
www.fortiortech.com
FU5821
19.4.8
ADC4_DR(0x0108,0x0109)
表 19-8 ADC4_DR={ADC4_DRH,ADC4_DRL}(0x0108~0x0109)
ADC4_DR={ADC4_DRH,ADC4_DRL}(0x0108~0x0109)
ADC4_DRH(0x0108)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC4_DRL(0x0108)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 4 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 4 通道的低 8 位数据
19.4.9
ADC5_DR(0x010A,0x10B)
表 19-9 ADC5_DR={ADC5_DRH, ADC5_DRL}(0x010A~0x010B)
ADC5_DR={ADC5_DRH,ADC5_DRL}(0x010A~0x010B)
ADC5_DRH(0x010A)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC5_DRL(0x010B)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 5 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 5 通道的低 8 位数据
REV_1.1
122
www.fortiortech.com
FU5821
19.4.10
ADC6_DR(0x010C,0x010D)
表 19-10 ADC6_DR={ADC6_DRH, ADC6_DRL}(0x010C~0x010D)
ADC6_DR={ADC6_DRH,ADC6_DRL}(0x010C~0x010D)
ADC6_DRH(0x010C)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC6_DRL(0x010D)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 6 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 6 通道的低 8 位数据
19.4.11
ADC7_DR(0x010E,0x010F)
表 19-11 ADC7_DR={ADC7_DRH,ADC7_DRL}(0x010E~0x010F)
ADC7_DR={ADC7_DRH,ADC7_DRL}(0x010E~0x010F)
ADC7_DRH(0x010E)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC7_DRL(0x010F)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 7 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 7 通道的低 8 位数据
REV_1.1
123
www.fortiortech.com
FU5821
19.4.12
ADC8_DR(0x0110,0x0111)
表 19-12 ADC8_DR={ADC8_DRH,ADC8_DRL}(0x010~0x011)
ADC8_DR={ADC8_DRH,ADC8_DRL}(0x0110~0x0111)
ADC8_DRH(0x0110)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC8_DRL(0x0111)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 8 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 8 通道的低 8 位数据
19.4.13
ADC9_DR(0x0112,0x0113)
表 19-13 ADC9_DR={ADC9_DRH,ADC9_DRL}(0x0112~0x0113)
ADC9_DR={ADC9_DRH,ADC9_DRL}(0x0112~0x0113)
ADC9_DRH(0x0112)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC9_DRL(0x0113)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 9 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 9 通道的低 8 位数据
REV_1.1
124
www.fortiortech.com
FU5821
19.4.14
ADC10_DR(0x0114,0x115)
表 19-14 ADC10_DR={ADC10_DRH,ADC10_DRL}(0x0114~0x0115)
ADC10_DR={ADC10_DRH,ADC10_DRL}(0x0114~0x0115)
ADC10_DRH(0x0114)
位
7
6
5
4
3
2
RSV
名称
1
0
DH[1]
DH[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
ADC10_DRL(0x0115)
位
7
6
5
4
3
2
1
0
名称
DL[7]
DL[6]
DL[5]
DL[4]
DL[3]
DL[2]
DL[1]
DL[0]
类型
R
R
R
R
R
R
R
R
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[15:10]
RSV
保留
[9:8]
DH
软件启动 ADC 转换完成后,第 10 通道的高 2 位 ADC 转换数据
[7:0]
DL
软件启动 ADC 转换完成后,第 10 通道的低 8 位数据
REV_1.1
125
www.fortiortech.com
FU5821
比较器
20
20.1
比较器 CMP0
P0.4/COP
0
P1.5/COPS
1
CMP0EN
CMP0FS
20.1.1
比较器操作说明
CMP0OUT
P1.6/COM
图 20-1 比较器 CMP3 的输入输出相关信号
如果要使能比较器 CMP0,需配置:
1.
配置 CMP_CR0 寄存器的 CMP0FS,选择 P0.4 还是 P0.5 作为正向输入端口。
2.
使能比较器 0,CMP_CR0 寄存器的 CMP0EN=1。
LCP_DR[5:0]
OCP_DR[3:0]
OCPEN
比较器 LOCP
LCPEN
20.1.2
LCPOUT
DAC
DAC
P0.6/ISEN(C3P)
OCPOUT
图 20-2 比较器 LCP/OCP 的输入输出相关信号
1.
如果需要使用限流比较器,则需要打开 CMP_CR1 寄存器的 LCP_EN,配置不同 LCP_DR
的值,实现不同的限流比较输出。
REV_1.1
126
www.fortiortech.com
FU5821
2.
如果需要使用过流比较器,则需要打开 CMP_CR2 寄存器的 OCP_EN,配置不同 OCP_DR
的值,实现不同的过流比较输出。
20.1.2.1
母线电流保护
母线电流保护是根据母线电流保护信号的产生,自动关闭电机的输出,以达到保护芯片和电机
的目的。配置 CMP_CR2 寄存器的 OCP_IM 为 00 之外的其他值时,上报对应保护中断并自动触发
关 MOE 事件,该事件会根据 CMP_CR2 寄存器的 OCP_MOEH_EN、OCP_MOEDL_EN 配置,
OCP_MOEH_EN 为 1 时,关闭上桥输出,OCP_MOEL_EN 为 1 时,关掉下桥输出,两者可同时为
1。
母线电流保护事件可以配置 CMP_CR2 寄存器的 OCP_SRC 来选择母线电流保护信号的来源,
OCP_SRC=0 时,过流保护信号来源与 OCP 比较器,母线采样电压从 P1.6/ISENSE 管脚输出到
OCP 比较器正端,过流比较阀值通过 OCP_DR 寄存器产生不同的 DAC 电压输入到 OCP 比较器负
端,从而实现不同母线电流的过流保护。
母线电流保护事件的输入信号可以配置 CMP_CR2 寄存器的 LOCP,使能滤波功能,通过
CMP_CR2 寄存器的 LOCP=00/01/10/11 选择滤波宽度 4/8/16/32 个时钟周期。使能滤波功能,滤
波后的信号会比滤波前的信号大概延迟 4~5/8~9/16~17/32~33 时钟周期。
20.1.2.2
逐波限流
逐波限流功能根据母线电流采样产生,配置 CMP_CR1 寄存器的 LCP_IM=01/11,在限流比较
器 LCP 上升沿时,自动触发关 MOE 事件,该事件会根据 CMP_CR1 寄存器的 LCP_MOEH_EN、
LCP_MOEDL_EN 配置,OCP_MOEH_EN 为 1 时,关闭上桥输出,OCP_MOEL_EN 为 1 时,关
掉下桥输出,两者可同时为 1,在 DRV 计数器的上溢下溢事件每隔一段时间后自动使能 MOE,通
过控制 CMP_CR1 寄存器的 LCP_MOE_MD=00/01/10/11 选择 40us/20us/9us/4us 后自动使能 MOE。
REV_1.1
127
www.fortiortech.com
FU5821
I
20us/10us/9us/4us
限流值
MOEH
LCP_MOEH_EN
MOEL
LCP_MOEL_EN
图 20-3 逐波限流
20.1.3
比较器 HALL_COMP
比较器 HALL_COMP 内含三个比较器输出,当 CMP_CR3 寄存器的 HALL_EN=1 时,比较器
HALL_COMP 才使能,HALL_COMP 使能后,如果 CMP_CR3 寄存器的 HALLPN=1,则此时
HALL_COMP 比较器只有 HALLC 使能输出,如果 CMP_CR3 寄存器的 HALLPN=0,则此时
HALLP_REF[5:0]
DAC
HALLPN_DIS
HALLEN
HALL_COMP 比较器 HALLP、HALLC、HALLN 都使能输出;
+
HALLN_REF[5:0]
HALLP
DAC
P0.2/HALP
HALLC
P0.3/HALM
+
+
HALLN
图 20-4 HALL_COMP 模块示意图
当 HALLP 、 HALLC 、 HALLN 全 使 能 时 , 通 过 配 置 TIM1_CR6/TIM1_CR7 中 的
HALLP_REF/HALLN_REF,使得 HALLP/HALLN 的输出提前 HALLC 输出。
REV_1.1
128
www.fortiortech.com
FU5821
20.2
20.2.1
比较器寄存器
CMP_CR0(0xD5)
表 20-1 CMP_CR0(0xD5)
位
7
6
5
4
名称
RSV
RSV
类型
R
R
R/W
R/W
R/W
复位值
0
0
0
0
0
字段
名称
CMP0IM
3
2
1
0
CMP0FS
CMP0EN
R/W
R/W
R/W
0
0
0
CMP0HYS
描述
[7]
RSV
保留
6]
RSV
保留
比较器 CMP0 中断模式
00:不产生中断
[5:4]
CMP0IM
01:上升沿产生中断
10:下降沿产生中断
11:上升/下降沿均产生中断
比较器 CMP0 迟滞
00:0mV
[3:2]
CMP0HYS
01:5mV
10:10mV
11:15mV
比较器 CMP0 正输入端设置:
[1]
CMP0FS
0:P0.4/C0P 为比较器 0 正输入端
1:P1.5/C0PS 为比较器 0 正输入端
比较器 CMP0 使能
[0]
CMP0EN
0:不使能
1:使能
REV_1.1
129
www.fortiortech.com
FU5821
CMP_CR1(0xD6)
20.2.2
表 20-2 CMP_CR1(0xD6)
位
7
6
LCP_MOE_MD
名称
5
4
LCP_IM
3
2
1
0
LCP_MOEH_EN
LCP_MOEL_EN
RSV
LCP_EN
类型
R/W
R/W
R/W
R/W
R/W
R/W
R
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
限流模式设置
限流保护后多长时间恢复检测/输出
[7:6]
LCP_MOE_MD
00:一个载波周期
01:半个载波周期
10:9us
11:4us
比较器 LCP 中断模式和关 MOE 触发
00:不产生中断
[5:4]
LCP_IM
01:上升沿产生中断和关 MOE 触发
10:下降沿产生中断和关 MOE 触发
11:上升沿但不报中断和关 MOE 触发
限流触发时,上桥 MOE 关断使能和关 MOE 触发
[3]
LCP_MOEH_EN
0:不使能
1:使能
限流触发时,下桥 MOE 关断使能和关 MOE 触发
[2]
LCP_MOEL_EN
0:不使能
1:使能
[1]
RSV
[0]
LCP_EN
保留
限流比较器 LCP 使能端
0:不使能
1:使能
REV_1.1
130
www.fortiortech.com
FU5821
CMP_CR2(0xD9)
20.2.3
表 20-3 CMP_CR2(0xD9)
位
7
6
5
LOCP_DIV
名称
4
OCP_IM
3
2
1
0
OCP_MOEH_EN
OCP_MOEL_EN
OCP_SRC
OCP_EN
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
过流滤波设置
00:160ns(4 CLK)
[7:6]
LOCP_DIV
01:320ns(8 CLK)
10:640ns(16 CLK)
11:1000ns (24 CLK)
比较器 OCP 中断模式和关 MOE 触发
00:不产生中断
[5:4]
OCP_IM
01:上升沿产生中断和关 MOE 触发
10:下降沿产生中断和关 MOE 触发
11:上升/下降沿均产生中断和关 MOE 触发
过流触发时,上桥 MOE 关断使能
[3]
OCP_MOEH_EN
0:不使能
1:使能
过流触发时,下桥 MOE 关断使能
[2]
OCP_MOEL_EN
0:不使能
1:使能
过流信号源选择:
[1]
OCP_SRC
0:比较器;
1:INT0
过流比较器 OCP 使能端
[0]
OCP_EN
0:不使能
1:使能
REV_1.1
131
www.fortiortech.com
FU5821
20.2.4
CMP_CR3(0xDA)
表 20-4 CMP_CR3(0xDA)
位
7
6
HALL_HYS
名称
5
4
3
HCK_SEL
HALL_EN
HALLPN_DIS
2
1
0
CMPSEL
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
HALL 比较器迟滞电压设置
[7:6]
HALL_HYS
HALL_HYS[1:0]
HALL 比较器迟滞电压
01
30mV
10
20mV
01
10mV (默认值)
00
0mV
HCKSEL HALL_CLK 频率
[5]
HCK_SEL
0:1.5MHz,默认值
1:0.75MHz
HALL 比较器使能端
[4]
HALL_EN
0:不使能
1:使能
HALLPN 比较器使能关闭
[3]
HALLPN_DIS
0:HALLPN 使能
1:HALLPN 不使能
[2:0]
REV_1.1
RSV
保留
132
www.fortiortech.com
FU5821
CMP_SR(0xD7)
20.2.5
表 20-5 CMP_SR(0xD7)
位
7
6
5
4
3
2
1
0
名称
CMPXO_CT
OCPIF
LCPIF
CMP0IF
OVOUT
OCPOUT
LCPOUT
CMP0OUT
类型
R/W
R/W0
R/W0
R/W0
R
R
R
R
0
0
0
0
0
0
0
0
复位
值
字段
[7]
名称
RSV
描述
保留
过流比较 OCP 的中断标记
[6]
OCPIF
OCP 中断事件产生,该位由硬件置 1。它由软件清 0。
0:无事件产生
1:中断事件产生
限流比较 LCP 的中断标记
[5]
LCPIF
LCP 中断事件产生,该位由硬件置 1。它由软件清 0。
0:无事件产生
1:中断事件产生
比较 CMP0 的中断标记
[4]
CMP0IF
CMP0 中断事件产生,该位由硬件置 1。它由软件清 0。
0:无事件产生
1:中断事件产生
过压比较 OV 的比较结果
[3]
OVOUT
0:OV 当前的比较结果为 0
1:OV 当前的比较结果为 1
过流比较 OCP 的比较结果
[2]
OCPOUT
0:OCP 当前的比较结果为 0
1:OCP 当前的比较结果为 1
限流比较 LCP 的比较结果
[1]
LCPOUT
0:LCP 当前的比较结果为 0
1:LCP 当前的比较结果为 1
比较 CMP0 的比较结果
[0]
CMP0OUT
0:CMP0 当前的比较结果为 0
1:CMP0 当前的比较结果为 1
REV_1.1
133
www.fortiortech.com
FU5821
LCP_DR(0x403A)
20.2.6
表 20-6 LCP_DR(0x403A)
位
7
6
5
4
3
名称
RSV
RSV
类型
R
R
R/W
R/W
R/W
复位值
0
0
0
0
0
字段
名称
2
1
0
R/W
R/W
R/W
0
0
0
2
1
0
LCP_DR[5:0]
描述
[7]
RSV
保留
[6]
RSV
保留
[5:0]
LCP_DR
LCP 限流保护参考电压设置:
限流 DAC=58mV+4.8mV* LCP_DR[5:0]
OCP_DR(0x403B)
20.2.7
表 20-7 OCP_DR(0x403B)
位
7
6
5
4
名称
RSV
RSV
RSV
RSV
类型
R
R
R
R
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
[7:4]
RSV
3
OCP_DR[3:0]
描述
保留
OCP 过流保护参考电压设置:
[3:0]
REV_1.1
OCP_DR
OCP_DA_D[3:0]
参考电压(mV)
0
78
1
97
2
116
3
135
4
154
5
173
6
192
7
211
8
240
9
269
A
297
B
326
C
354
D
383
E
412
F
440
134
www.fortiortech.com
FU5821
TSD_CR(0x402F)
20.2.8
表 20-8 EVT_FILT(0x402F)
位
7
6
5
4
3
名称
TSDEN
类型
R/W
R
R
R
R/W
复位值
0
0
0
0
1
字段
名称
2
1
0
R/W
R/W
R/W
1
1
1
RSV
TSDADJ
描述
温度侦测使能。
[7]
TSDEN
0:不使能
1:使能。
[6:4]
RSV
保留位
侦测温度阈值调节
[3:0]
REV_1.1
TSDADJ
TSD_ADJ
保护温度(℃)
1111
71
1110
75
1101
80
1100
84
1011
89
1010
94
1001
99
1000
105
0111
111
0110
116
0101
123
0100
131
0011
136
0010
142
0001
148
0000
155
135
www.fortiortech.com
FU5821
低压检测
21
21.1
简介
MCU 低压检测包括三个部分:低电压预警、低电压复位、低电压欠压保护。
21.2
操作说明
VCC
LVRSEL[1:0]
RST
LVWSEL[1:0]
LVD
LVW_Interrupt_En
EN
UVLO_Protect_En
EN
LVWF
图 21-1 低电压检测模块
低压检测模块操作说明如下:
⚫
低电压预警和低电压复位这两个模块都是默认一直使能的。
⚫
低电压预警电压可通过 LVWSEL[1:0]设置为 7/8/9/10V 四个档位,低电压预警可以使能中
断;使能中断后当 VCC 电压低于预警电压设定值时,就会触发中断。
⚫
低电压复位电压可通过 LVRSEL[1:0]设置为 2.8/3.0/3.5/3.8V 四个档位。当 VCC 电压低于
复位电压设定值后,芯片就会复位。
⚫
低电压欠压保护使能时,芯片有欠压保护。
REV_1.1
136
www.fortiortech.com
FU5821
21.3
21.3.1
寄存器
LVSR(0xDB)
表 21-1 LVSR(0xDB)
位
7
5
4
EXT1CFG
名称
类型
6
R/W
R/W
复位值
0
字段
名称
3
2
EXT0CFG
1
0
LVWF
LVWIF
R/W
R/W
R/W
R
R
R/W
0
0
0
0
0
0
0
描述
外部中断 1 配置
000:配置 P1.1 为外部中断 1 接口
001:配置 P1.2 为外部中断 1 接口
010:配置 P1.3 为外部中断 1 接口
[7:5]
EXT1CFG
011:配置 P1.4 为外部中断 1 接口
100:配置 P1.5 为外部中断 1 接口
101:配置 P1.6 为外部中断 1 接口
110:配置 P0.4 为外部中断 1 接口
111:配置 P0.5 为外部中断 1 接口
外部中断 0 配置
000:配置 P0.1 为外部中断 0 接口
001:配置 P0.3 为外部中断 0 接口
010:配置 P0.4 为外部中断 0 接口
[4:2]
EXT0CFG
011:配置 P0.5 为外部中断 0 接口
100:配置 P1.1 为外部中断 0 接口
101:配置 P1.2 为外部中断 0 接口
110:配置 P1.4 为外部中断 0 接口
111:配置 P1.5 为外部中断 0 接口
VCC 低电标记
[1]
LVWF
低电标记反映当前是否处于低电状态
0:当前没有报警
1:当前低电检测报警
VCC 低电中断标记
该位表示是否曾经发生低电事件,当低电压检测中断使能,产生低电检测中断后,该
[0]
LVWIF
位置一,同时进入中断。该位硬件置一,软件写零清零。低电检测中断不使能,该位不
会硬件置一。
0:无事件发生
1:发生低电压检测报警
REV_1.1
137
www.fortiortech.com
FU5821
22
FLASH
22.1
简介
MCU 片内提供了 6k 字节的空间。不仅支持全芯片擦除/写入,还支持扇区擦除。
主要特性:
⚫
每个扇区为 128 字节,共计 48 个扇区
⚫
最后一扇区(地址范围:0x1780~0x17FF)任何时刻不会被擦除。
⚫
任何处于非保护区域的指令在访问(包括读、写、擦除操作)保护区域时,都会使 MCU 复
位
⚫
22.2
扇区擦除和芯片擦除时间约需要 120~150ms
操作说明
为确保对 FLASH 操作的安全性,强烈建议在自烧录前禁止所有中断事件,以免中断处理中的
MOVX 指令对 FLASH 进行误操作。
⚫
FLASH 在执行擦除和编程操作之前需要先解锁 FLASH,向 FLASH 编程开锁寄存器 FLA_KEY
依次写入 0x5a,
0x1f 后开启软件编程 FLASH 功能。
若顺序不对或者写其它值将使此功能冻结,
直到下一次复位。开锁后,任何一次写 FLA_CR 的动作都将会使 FLA_KEY 再次上锁。
⚫
为确保用户程序安全,在进行自写操作前,务必关闭所有中断。以防止 movx 操作误写了
rom_code。
REV_1.1
138
www.fortiortech.com
FU5821
22.3
22.3.1
FLASH 寄存器
FLA_CR
表 22-1 FLA_CR(0x85)
位
7
6
名称
RSV
类型
R
R
复位值
0
0
字段
名称
5
4
3
2
1
0
FLAERR
RSV
FLAPRE
FLAERS
FLAEN
R
R
R
R/W
R/W
R/W
0
0
0
0
0
0
RSV
描述
[7]
RSV
保留
[6:5]
RSV
保留
编程出错标志,可读
[4]
FLAERR
0:对 FLASH 自写时,编程或预编程操作成功。
1:对 FLASH 自写时,编程或预编程操作失败。
[3]
RSV
保留
扇区预编程使能,高有效(扇区擦除前须先对本扇区预编程)
[2]
FLA_SEC_PRE
0:禁止
1:使能
注意:只有在 FLAEN 为 1 时,FLA_SEC_PRE 才起作用
扇区擦除使能
[1]
FLAERS
0:禁止
1:使能
注意:只有在 FLAEN 为 1 时,FLAERS 才起作用
编程使能
[0]
FLAEN
0:禁止
1:使能
REV_1.1
139
www.fortiortech.com
FU5821
22.3.2
FLA_KEY
表 22-2 FLA_KEY(0x84)
位
7
6
5
4
3
2
1
0
FLA_KEY
名称
RSV
名称
FLAKSTA
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
写:FLASH 擦除/编程开锁寄存器
读:高 6 位返回的是 0x00
读:最低 2 位反应的是 FLASH 解锁状态位 FLAKSTA
[7:0]
FLA_KEY
00:上锁
01:0x5A 已经写入,等待 0x1F 写入
11:开锁
10:冻结
REV_1.1
140
www.fortiortech.com
FU5821
23
CRC(循环冗余校验计算单元)
23.1
CRC 功能框图
8
8
Automatic CRC
Controller
CRC_DIN
Flash
Memory
CRC_CR
AUTOINT
CRCDONE
CRCDINI
CRCVAL
CRC Engine
CRC_CNT
16
CRCPNT
RESULT
8
8
2 TO 1 MUX
8
CRC_DR
图 23-1 CRC 功能框图
CRC(循环冗余校验计算单元)是根据固定的生成多项式得到任一 8 位数据的 CRC 计算结果。
如图 23-1 所示,CRC 接收 CRC_DIN 寄存器的 8 位数据,计算完成后将 16 位结果发送至内部寄存
器,通过 CRCPNT 和 CRC_DR 间接访问内部结果寄存器。
表 23-1 CRC 标准与生成多项式
CRC 标准
序号
23.2
1
CRC12
x^12+x^11+x^3+x^2+x+1
80F
2
CRC16
x^16+x^15+x^2+1
8005
3
CRC16-CCITT
x^16+x^12+x^5+1
1021
4
CRC32
x^32+x^26+x^23+x^22+x^16+x^12
+x^11+x^10+x^8+x^9+x^5+x^4+x+1
04C11DB7
CRC16 生成多项式
FU5821 选择基于 CRC16-CCITT 标准的生成多项式:
23.3
16 进制表示
生成多项式
X 16 + X 12 + X 5 + 1 。
CRC16 基本逻辑图
如图 23-2 所示是串行 CRC16 电路原理图,FU5821 采用并行算法实现,对每个输入字节 MCU
REV_1.1
141
www.fortiortech.com
FU5821
用一个系统时钟即可计算出结果。
●
X
X3
X2
1
2
X6
7
X5
●
4
5
X8
X9
X10
X7
6
X4
3
8
9
10
X13
X11
11
X14
X15
X16
X12
13
12
14
15
16
图 23-2 CRC16 电路原理图
23.4
23.4.1
操作说明
计算单个字节的 CRC
要计算单个字节的 CRC 值,请按以下步骤进行:
1、 根据需要,初始化 CRC_DR,这里有两种方式可以初始化:如果初始值为 0x0000 或 0xFFFF,
那么可以通过配置 CRC_CR[CRCVAL]并且将 CRC_CR[CRCDINI]置 1;如果想初始值为任意值,
那么可以通过 CRC_CR[CRCPNT]和 CRC_DR 配合进行 CRC 初始操作。
2、 向输入数据寄存器 CRC_DIN 写入一个数据,例如 0x63,则在下一个时钟周期内,CRC 结果
将被计算出来
3、 读取 CRC 结果:写 CRC_CR[CRCPNT]位为 1,软件读取结果输出寄存器 CRC_DR,得到高
字节数据;写 CRC_CR[CRCPNT]位为 0,再读 CRC_DR,得到低字节数;合并起来就是正确的 CRC
结果。
23.4.2
批量计算 ROM 数据 CRC
要计算 ROM 中某片连续区域数据的 CRC 值,请按以下步骤进行:
1、 初始化 CRC_DR,方法同单字节 CRC 初始化;
2、 向 CRC_BEG 写入适当值,设置要计算的 ROM 的起始扇区;
3、 向 CRC_CNT 写入适当值,设置起始扇区到结束扇区的扇区偏移量
4、 向 CRC_CR[AUTOINT]写 1,保持其它位不变,会启动自动计算过程。
5、 读取 CRC 结果的方法同单字节 CRC 的读取方法
REV_1.1
142
www.fortiortech.com
DATA_IN
FU5821
3FFF
…
0x03FF
…
128 sectors
0x007F
…
A sector
0x0001
0x0000
图 23-3 ROM 访问分区图
如图 23-3 所示。整个 ROM 共 16K 字节,分成 128 个 sector,编号从 sector0 到 sector127。
每个 sector 包含 128 个字节。在进行 CRC 批量计算时,起始 sector 的值 CRC0BEG 可以是 0x00~
0x7F 之间的任何值,包括 0x00 和 0x7F;需要计算的 sector 总数的数值 CRC0CNT 可以是 0x00~
0x7F,包括 0x00 和 0x7F。
需要注意的是,随着 CRC_BEG 的值的增大,CRC_CNT 的值应该相应减小。例如,如果
CRC_BEG 的值为 0x7F,则 CRC_CNT 的值只能是 0x00,即只能计算最后一个 sector 中数据的
CRC 值。此时,如果不小心将 CRC_CNT 的值设置为 0x01 或更大的值,则 CRC 控制器硬件会自
动限制计算的字节数,使 CRC 引擎只计算最后一个 sector 中数据的 CRC 值。
REV_1.1
143
www.fortiortech.com
FU5821
23.5
CRC 寄存器
控制寄存器:CRC_CR(0x4022)
23.5.1
表 23-2 CRC_CR(0x4022)
位
7
6
5
RSV
名称
4
3
2
1
0
CRCDONE
CRCDINI
CRCVAL
AUTOINT
CRCPNT
类型
R
R
R
R
R/W
R/W
R/W
R/W
复位值
0
0
0
1
0
0
0
0
字段
名称
[7:5]
RSV
描述
保留
自动 CRC 计算完成标志。
[4]
CRCDONE
在自动 CRC 计算模式过程中,硬件自动将这一位写 0,并且软件代码也会停止执行;
在其它情况下,硬件自动将这一位置为 1,所以,软件读取这一位始终返回 1。
CRC 结果初始化使能
0:初始化无效
[3]
CRCDINI
1:初始化有效;
当软件向这一位写 1 时,硬件并没有真正将 1 写入此位,而是同步产生一个时钟周期
的高电平脉冲,送到 CRC 引擎,作为 CRC 结果初始化的条件。所以,不管软件向这
一位写入什么值,读取时总是返回 0。
CRC 结果初始化选择位。
[2]
CRCVAL
0:将 CRC 结果初始化为 0x0000
1:将 CRC 结果初始化为 0xFFFF
CRC 自动计算使能。
当向此位写 1 时,会自动对 Flash 的某片连续的块中的数据进行 CRC 计算。计算的起
[1]
AUTOINT
始块为 CRC0BEG,共计算 CRC0CNT 个块。
注:在启用自动 CRC 计算功能之前,应先将其它位配置好,再将这一位写 1。换句说
话,这一位不能与其它位同时配置。
CRC 结果指针。
[0]
CRCPNT
0:读取 CRC0DATA 寄存器时,访问的是 16 位 CRC 结果的低字节(7-0 位)
1:读取 CRC0DATA 寄存器时,访问的是 16 位 CRC 结果的高字节(15-8 位)
注:由于 CRC 计算过程分为两大类,一类是单个字节的 CRC 计算,一类是 ROM 数据批量
CRC 自动计算。向控制寄存器 CRC0STA 的 bit[1]写入 1,会立即启动 CRC 自动计算过程。如果要
计算软件写入 CRC0DIN 寄存器中的单个字节的 CRC 值,则 CRC0STA 寄存器的 bit[1]只能为 0。
REV_1.1
144
www.fortiortech.com
FU5821
23.5.2
输入数据寄存器:CRC_DIN(0x4021)
表 23-3 CRC0DIN(0x4021)
位
7
6
5
4
3
2
1
0
CRC_DIN
名称
类型
W
W
W
W
W
W
W
W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
CRC 模块输入数据。
[7:0]
CRC_DIN
每次向此寄存器写入一个数据时,CRC 模块就自动在现有 CRC 结果的基础上,根据输
入数据计算出新的 CRC 结果,并覆盖原 CRC 结果。
注:此寄存器是一个虚拟寄存器,写入的数据并不保存。读取此地址时返回 0x00。
23.5.3
结果输出寄存器:CRC_DR(0x4023)
表 23-4 CRC_DAT(0x4023)
位
7
6
5
4
3
2
1
0
CRC_DR
名称
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
CRC 结果输出。
[7:0]
CRC_DR
每次读、写此寄存器时,会根据控制寄存器 CRC0STA 中的结果指针 CRC0PNT 来决定
访问的是 CRC 结果的高字节还是低字节。
注:由于此寄存器的值除了直接由软件决定以外,还可由其它信号导致发生变化,所以直接放
在 CRC 模块内部,而不放在寄存器专用模块里。
REV_1.1
145
www.fortiortech.com
FU5821
自动计算起点寄存器:CRC_BEG(0x4024)
23.5.4
表 23-5 CRC_BEG(0x4024)
位
7
名称
RSV
类型
R
R/W
R/W
R/W
复位值
0
0
0
0
字段
名称
[7]
RSV
6
5
4
3
2
1
0
R/W
R/W
R/W
R/W
0
0
0
0
CRC_BEG
描述
保留
自动计算 CRC 的 ROM 起始 sector。
[6:0]
CRC_BEG
例如:如果 CRC0BEG[7:0]的值是 1,每个 Sector size 是 256 个字节,则自动 CRC 计
算的起始地址是:1×256=256,实际上是从第二个 sector 的第一个字节开始
自动计算块数寄存器:CRC_CNT(0x4025)
23.5.5
表 23-6 CRC_CNT(0x4025)
位
7
名称
RSV
类型
R
R/W
R/W
R/W
复位值
0
0
0
0
字段
名称
7
RSV
6
5
4
3
2
1
0
R/W
R/W
R/W
R/W
0
0
0
0
CRC_CNT
描述
保留
自动 CRC 计算的扇区偏移。
[6:0]
CRC_CNT
此值定义了需要计算 CRC 值的 ROM 扇区的偏移,通过此值可决定自动 CRC 计算的结
束扇区。
REV_1.1
146
www.fortiortech.com
FU5821
休眠模式
24
24.1
简介
FU5821 系列提供了三种工作模式:正常,待机和睡眠。通过设置寄存器 PCON 的值选择不同的
工作模式。
各种功耗模式下的模块工作情况总结如表 24-1 所示:
表 24-1 功耗模式
电源
描述
模式
正常
唤醒源
NA
除去被关掉的外设,其他模块全速工作
CPU 时钟被门控,其他功能模块关闭或工作,
待机
由其控制位决定。
看门狗时钟被门控住。
功耗性能
功耗较高,
性能最好。
任何中断
功耗低
外部/Debug 复位
性能灵活
外部中断,
功耗很低
外部/Debug 复位
性能灵活
FLASH Deep-Sleep。
模拟快时钟电路关闭,MCU 软件应注意在进入
睡眠
睡眠前,确保 ADC、TIM1、电机控制/驱动电路
已处于空闲。
看门狗时钟被关闭。
REV_1.1
147
www.fortiortech.com
FU5821
24.2
PCON 寄存器
表 24-2 PCON(0x87)
位
7
6
RSV
名称
5
4
3
2
1
0
GF3
GF2
GF1
LDOM
STOP
IDLE
类型
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位值
0
0
0
0
0
0
0
0
字段
名称
描述
[7:6]
RSV
保留
[5]
GF3
通用标志位 3
[4]
GF2
通用标志位 2
[3]
GF1
通用标志位 1
LDO5 深度睡眠选择
[2]
LDOM
0 :STOP 睡眠时 LDO5 正常工作。
1 :STOP 睡眠时 LDO5 低耗电模式。
[1]
STOP
写 1 使芯片进入睡眠模式,唤醒后由硬件自动清 0
写 1 使芯片进入待机模式,唤醒后由硬件自动清 0
功耗模式:
[0]
IDLE
{STOP,IDLE} =1x,系统睡眠
{STOP,IDLE} =01,系统待机
{STOP,IDLE} =00,系统正常工作
REV_1.1
148
www.fortiortech.com
FU5821
代码保护
25
25.1
简介
MCU 提供了一种 FALSH 全芯片加密的方式用于保护客户的软件知识产权。此功能可以很好的
保护软件免受非法的用户操作。当 FLASH 被加密后,里面的数据无法读取,只能通过硬件 CRC 校
验来对比程序是否一致。
25.2
操作说明
图 25-1 代码保护配置
REV_1.1
149
www.fortiortech.com
FU5821
图 25-2 代码保护 全保护模式
芯片支持用户对烧录到 FLASH 的代码加密进行知识产权保护,方法及步骤依次如图 25-1 和图
25-2 所示:
步骤一:
打开 8051 集成开发工具,编译前进入 Target Options 中并选择 Debug 选项卡,按照上图 25-1 所
示进行选择,并点击 Settings 进入下一步设置。
步骤二:
按照图 25-2 所示进行选择并设置,点击 OK。然后编译工程并下载,得到的.BIN 文件,烧录到
FLASH 中之后即可达到代码保护的效果。
需要说明的是,芯片具有全代码保护模式,图 25-2 所示设置为全代码保护模式,设置之后
FLASH 中的所有代码都会被保护。
每扇区大小为 128 字节。
REV_1.1
150
www.fortiortech.com
FU5821
Copyright Notice
Copyright by Fortior Technology (Shenzhen) Co., Ltd. All Rights Reserved.
Right to make changes —Fortior Technology (Shenzhen) Co., Ltd RSVs the right to make changes in the
products - including circuits, standard cells, and/or software - described or contained herein in order to
improve design and/or performance. The information contained in this manual is provided for the general
use by our customers. Our customers should be aware that the personal computer field is the subject of
many patents. Our customers should ensure that they take appropriate action so that their use of our
products does not infringe upon any patents. It is the policy of Fortior Technology (Shenzhen) Co., Ltd. to
respect the valid patent rights of third parties and not to infringe upon or assist others to infringe upon such
rights.
This manual is copyrighted by Fortior Technology (Shenzhen) Co., Ltd. You may not reproduce, transmit,
transcribe, store in a retrieval system, or translate into any language, in any form or by any means,
electronic, mechanical, magnetic, optical, chemical, manual, or otherwise, any part of this publication
without the expressly written permission from Fortior Technology (Shenzhen) Co., Ltd.
Fortior Technology(Shenzhen) Co.,Ltd.
Room203,2/F, Building No.11,Keji Central Road2,
SoftwarePark, High-Tech Industrial Park, Shenzhen, P.R. China 518057
Tel: 0755-26867710
Fax: 0755-26867715
URL: http://www.fortiortech.com
Contained herein
Copyright by Fortior Technology (Shenzhen) Co.,Ltd all rights Reserved.
REV_1.1
151
www.fortiortech.com