通用定时器和PWM输出¶
功能介绍¶
通用定时器可产生PWM波输出以及定时器中断信号,两个定时器单元可独立作为单独的定时器工作也可以组合成一个级联的定时器。定时器单元进行32位定时器的递减计数,可产生周期性的中断或者PWM波形,两个定时器单元进行级联工作时,需将TIMER_UNIT_0的周期性的中断作为TIMER_UNIT_1的计数时钟。定时器单元从寄存器TIMER_SC递减TIMER_SPWMC时,PWM输出置高,递减到0时PWM输出置低,同时产生可配宽度的中断信号,每个定时器单元具有如下一些特征:
- 多种计数方式:单周期、自动重新开始以及自由计数模式
- PWM输出
- 计数时钟分频
- 级联模式
- 可产生周期性中断
芯片有四个专用TIMER(TIMER0到TIMER3),六个专用PWM(PWM0到PWM5)。
寄存器映射¶
TIMER0 / 1 / 2 / 3 寄存器映射的基地址分别为0x40018000、0x40019000、0x4001A000、0x4001B000,PWM0 / 1 / 2 / 3 / 4 / 5 寄存器映射的基地址分别为0x40014000、0x40015000、0x40016000、0x40017000、0x40034000、0x40035000,具体的寄存器映射见表T-1。
表T-1 TIMER和PWM寄存器映射
偏移量 | 名称 | 位宽 | 类型 | 复位值 | 描述 |
---|---|---|---|---|---|
0x00 | TIMER_CFG | 32 | R/W | 0x00000000 | 配置寄存器 |
0x04 | TIMER_CFG1 | 32 | R/W | 0x00000010 | 配置寄存器1 |
0x08 | TIMER_EW | 32 | R/W | 0x00000000 | 事件寄存器 |
0x0C | TIMER_SC | 32 | R/W | 0x00000000 | 周期寄存器 |
0x10 | TIMER_CC | 32 | RO | 0x00000000 | 计数值寄存器 |
0x14 | TIMER_SPWMC | 32 | R/W | 0x00000000 | PWM周期寄存器(PWM专用) |
0x18 | TIMER_CFG0 | 32 | R/W | 0x00000000 | 配置寄存器0 |
配置寄存器(TIMER_CFG)¶
偏移量:0x00
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:9 | Reserved | 0x00_0000 | R/W | 保留 |
8:7 | TM | 0x0 | R/W | 定时器中断信号宽度: 0x0:由TIMER_CFG1[CT]清除 0x1:2个时钟周期 0x2:4个时钟周期 0x3:8个时钟周期 |
6 | TP | 0 | R/W | 定时器中断极性: 0:高有效 1:低有效 |
5 | CS | 0 | R/W | 计数时钟源: 0:PCLK 1:EXT_CLK(专用PWM接PCLK) |
4:2 | CM | 0x0 | R/W | 计数模式: 0x0:单周期模式 0x1:自动重新计数模式 0x2:自由计数模式 0x3:事件计数模式 0x4-0x7:预留 |
1:0 | TS | 0x0 | R/W | 计数时钟分频: 0x0:不分频 0x1:2分频 0x2:4分频 0x3:16分频 |
配置寄存器1(TIMER_CFG1)¶
偏移量:0x04
复位值:0x00000010
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:4 | Reserved | 0x0000001 | R/W | 保留 |
3 | RU | 0 | R/W | TIMER_CC寄存器所保存的值: 0:该位置位前的计数值 1:当前计数值 |
2 | CT | 0 | R | 清除定时器中断: 0:无影响 1:清除定时器中断 |
1 | PC | 0 | R/W | 暂停计数: 0:正常计数 1:暂停计数 |
0 | RES | 0 | R | 重新计数: 0:无影响 1:从TIMER_SPWMC和TIMER_SC重载,递减计数 |
事件寄存器(TIMER_EW)¶
偏移量:0x08
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:1 | Reserved | 0x0000000 | R/W | 保留 |
0 | EW | 0 | R/W | 事件计数重载,一个时钟周期后自清该位 事件计数模式: 0:无影响 1:计数器减1 |
周期寄存器(TIMER_SC)¶
偏移量:0x0C
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:0 | TIMER_SC | 0x0000000 | R/W | 定时器周期值 |
计数值寄存器(TIMER_CC)¶
偏移量:0x10
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:0 | TIMER_CC | 0x0000000 | R/W | 当前计数值 |
PWM周期寄存器(TIMER_SPWMC)¶
偏移量:0x14
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:0 | TIMER_SPWMC | 0x0000000 | R/W | PWM周期值 |
配置寄存器0(TIMER_CFG0)¶
偏移量:0x18
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:3 | Reserved | 0x0000000 | R/W | 保留 |
2 | TRU_EN | 0 | R/W | 输入信号TIMER_RU使能: 0:TIMER_RU无效 1:TIMER_RU为1时,TIMER_CC更新 |
1 | Reversed | 0 | R/W | 保留 |
0 | TSEL_CLK | 0 | R/W | 计数时钟选择: 0:PCLK或者EXT_CLK 1:级联时钟 |