基本定时器
简介
基本定时器 (Basic Timer) 为一款简洁高效的 32 位定时外设,采用纯 32 位计数器架构,不包含预分频功能。定时器在使能后从 0 开始向上计数,当计数值达到用户配置的重载值时,自动产生更新事件,并将计数器清零重新开始计数,以此实现自动重载、连续循环计时功能。
特性
分辨率为 32 位
计数模式为向上计数
支持中断
支持自动重载
名称 |
LS: TIM0 ~ TIM7 |
HP: TIM10 ~ TIM13 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 ~ TIM13 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM7 |
TIM10 ~ TIM14 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 ~ TIM14 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM7 |
TIM10 ~ TIM14 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 ~ TIM14 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM7 |
TIM10 ~ TIM14 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 ~ TIM14 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM7 |
TIM10 ~ TIM14 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 ~ TIM14 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM7 |
TIM10/TIM11 |
|---|---|---|
时钟源 |
SDM 32kHz |
XTAL 40MHz |
备注
TIM10 和 TIM11 的时钟源源自 XTAL 40MHz,经过 40 分频。
名称 |
TIM0 ~ TIM3 |
|---|---|
时钟源 |
SDM 32kHz(默认)或 XTAL 40MHz |
名称 |
TIM0 ~ TIM3 |
|---|---|
时钟源 |
SDM 32kHz(默认)或 XTAL 40MHz |
框图
基本定时器主要由 32 位计数器和自动重载寄存器构成,框图如下所示。
框图中各模块的作用如下:
CK_CNT:计数时钟。基本定时器不含预分频器,该时钟直接驱动计数器。
CNT counter:32 位计数器,每个 CK_CNT 周期计数值加 1。
Auto-reload register:自动重载寄存器,用于保存重载值,决定计数周期。
功能描述
向上计数模式
该定时器为 32 位计数器,并配有自动重载寄存器。软件可读写计数器和自动重载寄存器,计数器运行期间同样可以读写。
时基单元包括:
计数器寄存器 (TIMx_CNT)
自动重载寄存器 (TIMx_ARR)
基本定时器工作在向上计数模式,计数器从 0 计数到重载值(TIMx_ARR 寄存器的内容)。当计数器达到自动重载值时,会产生计数器溢出事件。
预加载自动重载寄存器
自动重载寄存器 TIMx_ARR 支持预加载机制,内部由预加载寄存器和影子寄存器两级构成。软件读写 TIMx_ARR 时访问预加载寄存器,计数器实际比较影子寄存器。TIMx_CR 中的自动重载预加载使能位 ARPE 控制预加载值何时传输至影子寄存器:
ARPE 置位:预加载值仅在 UEV 发生时传输至影子寄存器;
ARPE 清零:预加载值立即写入影子寄存器。
UEV 是定时器内部的同步时刻:发生时,定时器相关寄存器完成更新,计数器进入新一轮计数,同时置位 TIMx_SR 中的 UIF 标志。
更新事件有以下两种触发方式,前提是 TIMx_CR 中的更新禁止位 UDIS 为 0:
硬件触发:计数器向上计数溢出时,硬件自动产生更新事件;
软件触发:软件置位 TIMx_EGR 中的更新产生位 UG,同时会重新初始化计数器。该方式要求 TIMx_CR 中的更新请求源位 URS 为 0。
置位 UDIS 可禁止产生更新事件,此时影子寄存器保持原值,在 UDIS 清零之前任何触发方式均不会产生更新事件。ARPE 置位时,向预加载寄存器写入新的重载值前可先置位 UDIS,避免影子寄存器被同步更新,保证配置写入的稳定性。
中断事件
定时器仅有一种中断源:UEV。更新事件发生时(触发方式及条件参见 预加载自动重载寄存器),若 TIMx_DIER 中的更新中断使能位 UIE 为 1,将触发系统中断。
更新中断的状态可通过 TIMx_SR 中的 UIF 位查看,也可通过写 UIF 位清除。
安全属性
多个基本定时器共用同一外设端口,对应同一个 PPC (Peripheral Protection Controller)。由于共用端口的安全属性由 PPC 统一配置,无法实现单个定时器安全属性的独立配置。为支持单个基本定时器安全属性的灵活配置,每个基本定时器均集成专用的安全控制寄存器。 该安全控制寄存器 TIMx_SEC (REG_TIM_SEC) 中的 SEC 位为安全使能位,用于独立配置对应定时器的安全属性,且仅允许安全域访问,非安全域无法对其执行读写操作。
TIMx_SEC (REG_TIM_SEC) 的 SEC 位置位时,该定时器为安全定时器,其所有寄存器仅可通过安全地址访问,禁止非安全地址访问。
SEC 位清零时,该定时器为非安全定时器。除 TIMx_SEC 外,其余所有寄存器均可通过安全地址与非安全地址访问。
寄存器
Base Address:
TIMER0_REG : 0x41017000
TIMER1_REG : 0x41017200
TIMER2_REG : 0x41017400
TIMER3_REG : 0x41017600
TIMER4_REG : 0x41017800
TIMER5_REG : 0x41017A00
TIMER6_REG : 0x41017C00
TIMER7_REG : 0x41017E00
TIMER10_REG : 0x41100400
TIMER11_REG : 0x41100600
Name |
Address offset |
Access |
Description |
|---|---|---|---|
000h |
R/W |
Users can configure and observe the counter operation. |
|
004h |
R/W |
This register is about the update operation. |
|
008h |
R/W |
This is the interrupt enable register. |
|
00Ch |
R/W |
This register is about timer interrupt and update status. |
|
010h |
R/W |
This register is about update generation, and is user defined. |
|
014h |
R |
This is the timer count register. |
|
01Ch |
R/W |
This is the auto-reload value register. |
|
020h |
R/W |
This register is about security status. |
|
024h |
R/W |
REG_TIM_EN
Name: TIM enable register
Size: 32
Address offset: 000h
Read/write access: R/W
Users can configure and observe the counter operation.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:17 |
RSVD |
R |
- |
Reserved |
16 |
CNT_EN |
R |
0x0 |
Counter working status
|
15:9 |
RSVD |
R |
- |
Reserved |
8 |
CNT_RUN |
R |
0x0 |
Counter run status
|
7:2 |
RSVD |
R |
- |
Reserved |
1 |
CNT_STOP |
R/W |
0x0 |
Disable the counter Poll CNT_RUN to see the counter status. If CNT_RUN is 0, it means that the counter has been disabled internally. |
0 |
CNT_START |
R/W |
0x0 |
Enable the counter Poll CNT_RUN to see the counter status. If CNT_RUN is 1, it means that the counter has been enabled internally. |
REG_TIM_CR
Name: TIM control register
Size: 32
Address offset: 004h
Read/write access: R/W
This register is about the update operation.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:5 |
RSVD |
R |
- |
Reserved |
4 |
ARPE |
R/W |
0x0 |
Enable auto-reload preloading
|
3 |
RSVD |
R |
- |
Reserved |
2 |
URS |
R/W |
0x0 |
Update request source
|
1 |
UDIS |
R/W |
0x0 |
Disable UEV Shadow registers keep their values. Otherwise, buffered registers are then loaded with their preload values when UEV happens. |
0 |
RSVD |
R |
- |
Reserved |
REG_TIM_DIER
Name: TIM interrupt enable register
Size: 32
Address offset: 008h
Read/write access: R/W
This is the interrupt enable register.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UIE |
R/W |
0x0 |
Enable update interrupt |
REG_TIM_SR
Name: TIM status register
Size: 32
Address offset: 00Ch
Read/write access: R/W
This register is about timer interrupt and update status.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31 |
UG_DONE |
R |
0x1 |
UG operation status This bit is cleared by hardware when the UG bit in the TIMx_EGR register is set. When the UG operation is done, hardware set this bit to '1'. So, software can poll this bit to see the UG operation status. |
30:1 |
RSVD |
R |
- |
Reserved |
0 |
UIF |
R/W |
0x0 |
Update interrupt flag |
REG_TIM_EGR
Name: TIM event generation register
Size: 32
Address offset: 010h
Read/write access: R/W
This register is about update generation, and is user defined.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UG |
R/W |
0x0 |
Update generation Re-initialize the counter and generate an update of registers. Note that the prescaler counter is cleared too. (anyway the prescaler ratio is not affected) |
REG_TIM_CNT
Name: TIM counter register
Size: 32
Address offset: 014h
Read/write access: R
This is the timer count register.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
CNT |
R |
0x0 |
Counter value |
REG_TIM_ARR
Name: TIM auto-reload register
Size: 32
Address offset: 01Ch
Read/write access: R/W
This is the auto-reload value register.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
ARR |
R/W |
0xFFFFFFFF |
The value to be loaded in the actual auto-reload register. It can be preloaded by setting ARPE bit in TIM_CR. |
REG_TIM_SEC
Name: TIM security control register
Size: 32
Address offset: 020h
Read/write access: R/W
This register is about security status.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
SEC |
R/W |
0x0 |
Secure timer enable
|
REG_TIM_BASIC_DUMMY
Name: Timer Basic Dummy Register
Size: 32
Address offset: 024h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
DUMMY |
R/W |
ffffh |
Dummy register |
Base Address:
TIMER0_REG : 0x41018000
TIMER1_REG : 0x41018200
TIMER2_REG : 0x41018400
TIMER3_REG : 0x41018600
TIMER4_REG : 0x41018800
TIMER5_REG : 0x41018A00
TIMER6_REG : 0x41018C00
TIMER7_REG : 0x41018E00
TIMER10_REG : 0x41019400
TIMER11_REG : 0x41019600
TIMER12_REG : 0x41019800
TIMER13_REG : 0x41019A00
TIMER14_REG : 0x41019C00
Name |
Address offset |
Access |
Description |
|---|---|---|---|
000h |
R/W |
User can configure and observe the counter operation. |
|
004h |
R/W |
This is the register about update operation. |
|
008h |
R/W |
||
00Ch |
R/W |
This is the register about timer interrupt and update status. |
|
010h |
R/W |
Update generation, user defined |
|
014h |
R |
||
01Ch |
R/W |
||
020h |
R/W |
This is the register about security status. |
|
024h |
R/W |
REG_TIM_EN
Name: TIM enable register
Size: 32
Address offset: 000h
Read/write access: R/W
User can configure and observe the counter operation.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:17 |
RSVD |
R |
- |
Reserved |
16 |
CNT_EN |
R |
0x0 |
Counter working status
|
15:9 |
RSVD |
R |
- |
Reserved |
8 |
CNT_RUN |
R |
0x0 |
Counter run status
|
7:2 |
RSVD |
R |
- |
Reserved |
1 |
CNT_STOP |
R/W |
0x0 |
Disable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 0, it means that the counter has been disabled internally. |
0 |
CNT_START |
R/W |
0x0 |
Enable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 1, it means that the counter has been enabled internally. |
REG_TIM_CR
Name: TIM control register
Size: 32
Address offset: 004h
Read/write access: R/W
This is the register about update operation.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:5 |
RSVD |
R |
- |
Reserved |
4 |
ARPE |
R/W |
0x0 |
Enable auto-reload preloading
|
3 |
RSVD |
R |
- |
Reserved |
2 |
URS |
R/W |
0x0 |
Update request source
|
1 |
UDIS |
R/W |
0x0 |
Disable UEV Shadow registers keep their values. Otherwise, buffered registers are then loaded with their preload values when UEV happens. |
0 |
RSVD |
R |
- |
Reserved |
REG_TIM_DIER
Name: TIM interupt enable register
Size: 32
Address offset: 008h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UIE |
R/W |
0x0 |
Enable update interrupt |
REG_TIM_SR
Name: TIM status register
Size: 32
Address offset: 00Ch
Read/write access: R/W
This is the register about timer interrupt and update status.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31 |
UG_DONE |
R |
0x1 |
UG operation status This bit is cleared by hardware when the UG bit in the TIMx_EGR register is set. When the UG operation is done, hardware sets this bit to '1'. So, software can poll this bit to see the UG operation status. |
30:1 |
RSVD |
R |
- |
Reserved |
0 |
UIF |
R/W |
0x0 |
Update interrupt flag |
REG_TIM_EGR
Name: TIM event generation register
Size: 32
Address offset: 010h
Read/write access: R/W
Update generation, user defined
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UG |
R/W |
0x0 |
Update generation. Re-initialize the counter and generate an update of registers. Note that the prescaler counter is cleared too. (Anyway the prescaler ratio is not affected) |
REG_TIM_CNT
Name: TIM counter register
Size: 32
Address offset: 014h
Read/write access: R
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
CNT |
R |
0x0 |
Counter value |
REG_TIM_ARR
Name: TIM auto-reload register
Size: 32
Address offset: 01Ch
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
ARR |
R/W |
0xFFFFFFFF |
The value to be loaded in the actual auto-reload register. It can be preloaded by setting ARPE bit in TIM_CR. |
REG_TIM_SEC
Name: TIM security control register
Size: 32
Address offset: 020h
Read/write access: R/W
This is the register about security status.
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
SEC |
R/W |
0x0 |
Secure timer enable
|
REG_TIM_BASIC_DUMMY
Name: Timer Baisc Dummy Register
Size: 32
Address offset: 024h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
DUMMY |
R/W |
ffffh |
Dummy register |
REGISTER_CONTENTS=RTL8720E
REGISTER_CONTENTS=RTL8720E
REGISTER_CONTENTS=RTL8720E
Base Address:
TIMER0_REG : 0x4200B000
TIMER1_REG : 0x4200B200
TIMER2_REG : 0x4200B400
TIMER3_REG : 0x4200B600
TIMER4_REG : 0x4200B800
TIMER5_REG : 0x4200BA00
TIMER6_REG : 0x4200BC00
TIMER7_REG : 0x4200BE00
TIMER10_REG : 0x4100A400
TIMER11_REG : 0x4100A600
TIMER12_REG : 0x4100A800
TIMER13_REG : 0x4100AA00
Name |
Address offset |
Access |
Description |
|---|---|---|---|
000h |
R/W |
||
004h |
R/W |
||
008h |
R/W |
||
00Ch |
R/W |
||
010h |
R/W |
||
014h |
R |
||
01Ch |
R/W |
||
020h |
R/W |
REG_TIM_EN
Name: TIM enable register
Size: 32
Address offset: 000h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:17 |
RSVD |
R |
- |
Reserved |
16 |
CNT_EN |
R |
0x0 |
Counter working status
|
15:9 |
RSVD |
R |
- |
Reserved |
8 |
CNT_RUN |
R |
0x0 |
Counter run status
|
7:2 |
RSVD |
R |
- |
Reserved |
1 |
CNT_STOP |
R/W |
0x0 |
Disable the counter. Poll cnt_run to see the counter status. If cnt_run is 0, it means that the counter has been disabled internally. |
0 |
CNT_START |
R/W |
0x0 |
Enable the counter. Poll cnt_run to see the counter status. If cnt_run is 1, it means that the counter has been enabled internally. |
REG_TIM_CR
Name: TIM control register
Size: 32
Address offset: 004h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:5 |
RSVD |
R |
- |
Reserved |
4 |
ARPE |
R/W |
0x0 |
Enable auto-reload preloading
|
3 |
RSVD |
R |
- |
Reserved |
2 |
URS |
R/W |
0x0 |
Update request source
|
1 |
UDIS |
R/W |
0x0 |
Disable uev. Shadow registers keep their values. Otherwise, buffered registers are then loaded with their preload values when uev happen. |
0 |
RSVD |
R |
- |
Reserved |
REG_TIM_DIER
Name: TIM interupt enable register
Size: 32
Address offset: 008h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UIE |
R/W |
0x0 |
Enable update interrupt |
REG_TIM_SR
Name: TIM status register
Size: 32
Address offset: 00Ch
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31 |
UG_DONE |
R |
0x1 |
Ug operation status.This bit is cleared by hardware when the ug bit in the timx_egr register is set. When the ug operation is done, hardware set this bit to '1'. So, software can poll this bit to see the ug operation status. |
30:1 |
RSVD |
R |
- |
Reserved |
0 |
UIF |
R/W |
0x0 |
Update interrupt flag |
REG_TIM_EGR
Name: TIM event generation register
Size: 32
Address offset: 010h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UG |
R/W |
0x0 |
Update generation. Re-initialize the counter and generate an update of registers. Note that the prescaler counter is cleared too.(anyway the prescaler ratio is not affected) |
REG_TIM_CNT
Name: TIM counter
Size: 32
Address offset: 014h
Read/write access: R
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
CNT |
R |
0x0 |
Counter value |
REG_TIM_ARR
Name: TIM auto-reload register
Size: 32
Address offset: 01Ch
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
ARR |
R/W |
0xFFFFFFFF |
The value to be loaded in the actual auto-reload register. It can be preloaded by setting arpe bit in tim_cr. |
REG_TIM_SEC
Name: TIM security control register
Size: 32
Address offset: 020h
Read/write access: R/W
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
SEC |
R/W |
0x0 |
Secure timer enable.
|
Base Address:
TIMER0_REG : 0x40819000
TIMER1_REG : 0x40819200
TIMER2_REG : 0x40819400
TIMER3_REG : 0x40819600
Name |
Address offset |
Access |
Description |
|---|---|---|---|
000h |
R/W |
User can configure and observe the counter operation |
|
004h |
R/W |
Registers about the update operation |
|
008h |
R/W |
Interrupt enable |
|
00Ch |
R/W |
Registers about timer interrupt and update status |
|
010h |
R/W |
Update generation user defined |
|
014h |
R |
Timer count |
|
01Ch |
R/W |
Auto-reload value |
|
020h |
R/W |
Security status |
|
024h |
R/W |
Dummy register |
REG_TIM_EN
Name: TIM enable register
Size: 32
Address offset: 000h
Read/write access: R/W
User can configure and observe the counter operation
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:17 |
RSVD |
R |
- |
Reserved |
16 |
CNT_EN |
R |
0x0 |
Counter working status
|
15:9 |
RSVD |
R |
- |
Reserved |
8 |
CNT_RUN |
R |
0x0 |
Counter run status
|
7:2 |
RSVD |
R |
- |
Reserved |
1 |
CNT_STOP |
R/W |
0x0 |
Disable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 0, it means that the counter has been disabled internally. |
0 |
CNT_START |
R/W |
0x0 |
Enable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 1, it means that the counter has been enabled internally. |
REG_TIM_CR
Name: TIM control register
Size: 32
Address offset: 004h
Read/write access: R/W
Registers about the update operation
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:5 |
RSVD |
R |
- |
Reserved |
4 |
ARPE |
R/W |
0x0 |
Enable auto-reload preloading
|
3 |
RSVD |
R |
- |
Reserved |
2 |
URS |
R/W |
0x0 |
Update request source
|
1 |
UDIS |
R/W |
0x0 |
Disable UEV. Shadow registers keep their values. Otherwise, buffered registers are then loaded with their preload values when UEV happen. |
0 |
RSVD |
R |
- |
Reserved |
REG_TIM_DIER
Name: TIM interupt enable register
Size: 32
Address offset: 008h
Read/write access: R/W
Interrupt enable
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UIE |
R/W |
0x0 |
Enable update interrupt |
REG_TIM_SR
Name: TIM status register
Size: 32
Address offset: 00Ch
Read/write access: R/W
Registers about timer interrupt and update status
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31 |
UG_DONE |
R |
0x1 |
UG operation status This bit is cleared by hardware when the UG bit in the TIMx_EGR register is set. When the UG operation is done, hardware set this bit to '1'. So, software can poll this bit to see the UG operation status. |
30:1 |
RSVD |
R |
- |
Reserved |
0 |
UIF |
R/W |
0x0 |
Update interrupt flag |
REG_TIM_EGR
Name: TIM event generation register
Size: 32
Address offset: 010h
Read/write access: R/W
Update generation user defined
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UG |
R/W |
0x0 |
Update generation. Re-initialize the counter and generate an update of registers. Note that the prescaler counter is cleared too.(anyway the prescaler ratio is not affected) |
REG_TIM_CNT
Name: TIM counter
Size: 32
Address offset: 014h
Read/write access: R
Timer count
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
CNT |
R |
0x0 |
Counter value |
REG_TIM_ARR
Name: TIM auto-reload register
Size: 32
Address offset: 01Ch
Read/write access: R/W
Auto-reload value
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
ARR |
R/W |
0xFFFFFFFF |
The value to be loaded in the actual auto-reload register. It can be preloaded by setting ARPE bit in TIM_CR. |
REG_TIM_SEC
Name: TIM security control register
Size: 32
Address offset: 020h
Read/write access: R/W
Security status
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
SEC |
R/W |
0x0 |
Secure timer enable.
|
REG_TIM_BASIC_DUMMY
Name: Timer Baisc Dummy Register
Size: 32
Address offset: 024h
Read/write access: R/W
Dummy register
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
DUMMY |
R/W |
ffffh |
Dummy register |
Base Address:
TIMER0_REG : 0x40808000
TIMER1_REG : 0x40808200
TIMER2_REG : 0x40808400
TIMER3_REG : 0x40808600
Name |
Address offset |
Access |
Description |
|---|---|---|---|
000h |
R/W |
User can configure and observe the counter operation |
|
004h |
R/W |
Registers about the update operation |
|
008h |
R/W |
Interrupt enable |
|
00Ch |
R/W |
Registers about timer interrupt and update status |
|
010h |
R/W |
Update generation user defined |
|
014h |
R |
Timer count |
|
01Ch |
R/W |
Auto-reload value |
|
020h |
R/W |
Security status |
|
024h |
R/W |
Dummy register |
REG_TIM_EN
Name: TIM enable register
Size: 32
Address offset: 000h
Read/write access: R/W
User can configure and observe the counter operation
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:17 |
RSVD |
R |
- |
Reserved |
16 |
CNT_EN |
R |
0x0 |
Counter working status
|
15:9 |
RSVD |
R |
- |
Reserved |
8 |
CNT_RUN |
R |
0x0 |
Counter run status
|
7:2 |
RSVD |
R |
- |
Reserved |
1 |
CNT_STOP |
R/W |
0x0 |
Disable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 0, it means that the counter has been disabled internally. |
0 |
CNT_START |
R/W |
0x0 |
Enable the counter. Poll CNT_RUN to see the counter status. If CNT_RUN is 1, it means that the counter has been enabled internally. |
REG_TIM_CR
Name: TIM control register
Size: 32
Address offset: 004h
Read/write access: R/W
Registers about the update operation
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:5 |
RSVD |
R |
- |
Reserved |
4 |
ARPE |
R/W |
0x0 |
Enable auto-reload preloading
|
3 |
RSVD |
R |
- |
Reserved |
2 |
URS |
R/W |
0x0 |
Update request source
|
1 |
UDIS |
R/W |
0x0 |
Disable UEV. Shadow registers keep their values. Otherwise, buffered registers are then loaded with their preload values when UEV happen. |
0 |
RSVD |
R |
- |
Reserved |
REG_TIM_DIER
Name: TIM interupt enable register
Size: 32
Address offset: 008h
Read/write access: R/W
Interrupt enable
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UIE |
R/W |
0x0 |
Enable update interrupt |
REG_TIM_SR
Name: TIM status register
Size: 32
Address offset: 00Ch
Read/write access: R/W
Registers about timer interrupt and update status
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31 |
UG_DONE |
R |
0x1 |
UG operation status This bit is cleared by hardware when the UG bit in the TIMx_EGR register is set. When the UG operation is done, hardware set this bit to '1'. So, software can poll this bit to see the UG operation status. |
30:1 |
RSVD |
R |
- |
Reserved |
0 |
UIF |
R/W |
0x0 |
Update interrupt flag |
REG_TIM_EGR
Name: TIM event generation register
Size: 32
Address offset: 010h
Read/write access: R/W
Update generation user defined
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
UG |
R/W |
0x0 |
Update generation. Re-initialize the counter and generate an update of registers. Note that the prescaler counter is cleared too.(anyway the prescaler ratio is not affected) |
REG_TIM_CNT
Name: TIM counter
Size: 32
Address offset: 014h
Read/write access: R
Timer count
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
CNT |
R |
0x0 |
Counter value |
REG_TIM_ARR
Name: TIM auto-reload register
Size: 32
Address offset: 01Ch
Read/write access: R/W
Auto-reload value
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:0 |
ARR |
R/W |
0xFFFFFFFF |
The value to be loaded in the actual auto-reload register. It can be preloaded by setting ARPE bit in TIM_CR. |
REG_TIM_SEC
Name: TIM security control register
Size: 32
Address offset: 020h
Read/write access: R/W
Security status
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:1 |
RSVD |
R |
- |
Reserved |
0 |
SEC |
R/W |
0x0 |
Secure timer enable.
|
REG_TIM_BASIC_DUMMY
Name: Timer Baisc Dummy Register
Size: 32
Address offset: 024h
Read/write access: R/W
Dummy register
Bit |
Symbol |
Access |
INI |
Description |
|---|---|---|---|---|
31:8 |
RSVD |
R |
- |
Reserved |
7:0 |
DUMMY |
R/W |
8'hf0 |
Dummy register |