11. 脉冲宽度调制发生器 (PWM)

11.1. 概述

SWM221系列所有型号PWM操作均相同,不同型号PWM通道数可能不同。使用前需使能PWM模块时钟。

PWM模块用于实现芯片输出特定的方波,控制外部元器件,如步进电机等。计数器可以通过APB总线读写寄存器、和外部硬件同时控制,实现计数过程的控制。同时,CPU和外部硬件也可以共同实现对输出PWM信号的控制。

PWM模块提供了2组(PWM0、PMW1)、8路(PWM0A、PWM0B、PWM0AN、PWM0BN、PWM1A、PWM1B、PWM1AN、PWM1BN)独立通道,支持边沿模式、中心对称模式。

中心对称模式下,输出是互补输出。如PWM0A驱动 PWM0A 和 PWM0AN 两个输出信号,两个信号周期相等、电平值相反,且可设置死区。

11.2. 特性

  • 2组16位宽PWM控制,每组PWM支持4路PWM输出(A/AN/B/BN路),最多可产生8路PWM信号

  • 支持10 位预分频计数器,一个位宽为10位的预分频计数器

  • 每组PWM支持4个翻转点(非对称中心对齐模式下,每路输出支持2个翻转点,其他情况下每路支持1个翻转点)

  • 支持CPU和外部信号两个控制源,同时控制计数器的启动、停止、输出MASK、配置更新四种操作,同时外部信号还可以控制计数器的暂停操作

  • 提供新周期开始中断,高电平结束中断、刹车中断以及中心对称模式下的半周期中断

  • 最多支持7路外部信号控制源和3路外部HALT信号,支持对低4路外部信号和3路外部HALT信号进行滤波功能,支持不滤波、过滤4/8/16pclk宽度四种配置

  • 支持PWM计数周期、翻转周期、死区值、trigger值的动态配置,先发起更新请求,并在周期溢出时完成更新

  • 支持输出两种类型的触发信号,计数器比较匹配触发和计数器溢出触发

  • 可选择初始输出电平选择

  • PWM输出的固定值可配

  • PWM空闲状态下的输出可配

  • 支持刹车功能

  • 支持硬件自动触发ADC采样

11.3. 功能描述

11.3.1. 模块结构框图

PWM 模块结构如 图 25 所示。

../../_images/%E6%A8%A1%E5%9D%97%E7%BB%93%E6%9E%84%E6%A1%86%E5%9B%BE.svg

图 25 PWM 模块结构框图

11.3.2. 时钟分频

通过 CRx 寄存器 CLKSRC 和 CLKDIV位,可进行 PWM 工作时钟频率配置,支持工作时钟的分频范围为系统时钟的 1-1024 倍。

11.3.3. 死区保护

PWM 输出时 Dead Zone(死区)的作用是在电平翻转时插入一个时间间隔,避免关闭前一个设备和打开后一个设备时,因为开关速度的问题,出现同时开启状态而增加负荷的情况(在没有彻底关闭前打开了后一个设备),尤其是电流过大时容易造成短路等损坏设备。

此 PWM 模块每一路 PWM 的死区都独立配置,在独立模式和中心对称模式下均可配。效果为将上升沿推后指定周期。

当高电平周期设置为全 0 或者等于周期数,即占空比设置为 0 或 100 时,死区设置失效,此时输出电平为全低或全高。

死区示意图如 图 26 所示:

../../_images/PWM%E6%AD%BB%E5%8C%BA%E7%A4%BA%E6%84%8F%E5%9B%BE.svg

图 26 PWM 死区示意图

11.3.4. 计数器的启动与停止

边沿对齐模式

向上计数时,如 图 27 中如果IDLEAN为低,则需要插入死区,否则无死区。

START信号为上升沿触发,立即生效(系统时钟)。

STOP信号为高电平期间停止,低电平期间继续计数,立即生效(系统时钟)。

图 27 所示:

../../_images/%E8%BE%B9%E6%B2%BF%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%90%91%E4%B8%8A%E8%AE%A1%E6%95%B0%E6%97%B6%E8%AE%A1%E6%95%B0%E5%99%A8%E5%90%AF%E5%8A%A8%E4%B8%8E%E5%81%9C%E6%AD%A2%E6%B3%A2%E5%BD%A2.svg

图 27 边沿对齐模式下向上计数时计数器启动与停止波形

向下计数时,如 图 28 所示,如果IDLEA为低,则需要插入死区,否则无死区。

../../_images/%E8%BE%B9%E6%B2%BF%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%90%91%E4%B8%8B%E8%AE%A1%E6%95%B0%E6%97%B6%E8%AE%A1%E6%95%B0%E5%99%A8%E5%90%AF%E5%8A%A8%E4%B8%8E%E5%81%9C%E6%AD%A2%E6%B3%A2%E5%BD%A2.svg

图 28 边沿对齐模式下向下计数时计数器启动与停止波形

中心对齐模式

波形如 图 29 所示:

../../_images/%E4%B8%AD%E5%BF%83%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%AE%A1%E6%95%B0%E5%99%A8%E5%90%AF%E5%8A%A8%E4%B8%8E%E5%81%9C%E6%AD%A2%E6%B3%A2%E5%BD%A2.svg

图 29 中心对齐模式下计数器启动与停止波形

非对称中心对齐模式

波形如 图 30 所示:

../../_images/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E4%B8%AD%E5%BF%83%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%AE%A1%E6%95%B0%E5%99%A8%E5%90%AF%E5%8A%A8%E4%B8%8E%E5%81%9C%E6%AD%A2%E6%B3%A2%E5%BD%A2.svg

图 30 非对称中心对齐模式下计数器启动与停止波形

11.3.5. 计数器计数过程

边沿对齐模式

波形如 图 31 所示:

../../_images/%E8%BE%B9%E6%B2%BF%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%AE%A1%E6%95%B0%E5%99%A8%E8%AE%A1%E6%95%B0%E8%BF%87%E7%A8%8B%E6%B3%A2%E5%BD%A2.svg

图 31 边沿对齐模式下计数器计数过程波形

中心对称模式

波形如 图 32 所示:

../../_images/%E4%B8%AD%E5%BF%83%E5%AF%B9%E7%A7%B0%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%AE%A1%E6%95%B0%E5%99%A8%E8%AE%A1%E6%95%B0%E8%BF%87%E7%A8%8B%E6%B3%A2%E5%BD%A2.svg

图 32 中心对称模式下计数器计数过程波形

HWHALT 控制和 SWHALT 控制情况下波形如 图 33 所示:

../../_images/HWHALT%E6%8E%A7%E5%88%B6%E5%92%8CSWHALT%E6%8E%A7%E5%88%B6%E6%83%85%E5%86%B5%E4%B8%8B.svg

图 33 HWHALT 控制和 SWHALT 控制情况下

11.3.6. PWM 外部信号配置说明

../../_images/PWM%E5%A4%96%E9%83%A8%E4%BF%A1%E5%8F%B7%E9%85%8D%E7%BD%AE.png

图 34 PWM外部信号配置

备注

注:ext_event[0~1] 分别接 PWM_EVT0~1,ext_event[2~4] 分别接 SWEV0-2,ext_event[5~6] 分别接 TIMER0~1*

11.3.7. 硬件刹车控制和软件刹车控制

刹车功能可以控制x组y路PWM在BRK过程中输出电平的值,可以通过配置BRKCRx寄存器配置。

刹车功能同时可以控制在BRK过程中计数器是否停止计数。可通过配置BRKCRx寄存器STPCNT位配置在刹车过程中计数器是否继续计数或停止计数并清零。

刹车功能也可以控制在BRK信号撤销后PWM信号是否立即变为原始信号或刹车BRK的值直到当前计数周期溢出,PWM的信号才会跟随原始信号进行翻转。可通过配置BRKCRx寄存器OFFA/OFFB位分别配置A路信号和B路信号。

硬件刹车控制和软件刹车控制计数器计数波形如 图 35 所示:

../../_images/%E7%A1%AC%E4%BB%B6%E5%88%B9%E8%BD%A6%E6%8E%A7%E5%88%B6%E5%92%8C%E8%BD%AF%E4%BB%B6%E5%88%B9%E8%BD%A6%E6%8E%A7%E5%88%B6%E8%AE%A1%E6%95%B0%E5%99%A8%E8%AE%A1%E6%95%B0%E6%83%85%E5%86%B5.svg

图 35 硬件刹车控制和软件刹车控制计数器计数情况

BRK过程并不会影响计数器的周期数、对比值等内容,仅仅控制计数器是否完成一次重新启动。

11.3.8. 计数器重载

RELOAD信号为上升沿触发,不立即生效,需等到计数器溢出后生效。

计数器的RELOAD (重载)动作包含三个源头:由START动作引起、由主动CPU发起、由外部信号发起。

  • 由START动作引起:CPU通过软件或硬件发起一次计数启动(START动作)时,完成自动重载。当计数器第一次启动或计数器从IDLE状态被重新启动时,都会在进入ACTIVE状态之后,自动完成重载动作。

  • 由主动CPU发起:CPU通过写RELOAD寄存器

  • A:当CPU配置RELOAD_EN有效时,每当RPT_CNTER计到0且计数器溢出时,都会完成一次自动重载,即周期性的自动重载

  • B:当CPU配置RESTART_PWMX为1时,计数器会自动完成一次重载+重新启动的动作,即立即重载

  • 外部信号发起:当发生EVMUXx寄存器中RELOAD所配置的ext_event[x]信号(ext_event上升沿),且RELOAD_EN有效时,计数器也会自动完成一次重载+重新启动动作,与CPU发起的立即重载类似

可通过配置IEx寄存器RELOADEN位配置计数器重载中断使能,IFx寄存器查看重载状态,此状态位为写1清零。

图 36 所示:

../../_images/%E8%AE%A1%E6%95%B0%E5%99%A8%E9%87%8D%E8%BD%BD%E6%B3%A2%E5%BD%A2.svg

图 36 计数器重载波形

注:ext_event为计数器硬件触发信号,可以完成如下操作:

(1)计数器启动,上升沿启动

(2)计数器停止,高电平时停止,可以配置为停止到当前值,还是初始值(向上计数情况下,初始值是0,向下计数情况下,初始值是PERIOD)

(3)计数器暂停,高电平期间暂停,低电平期间正常计数

(4)寄存器REALOAD,上升沿触发,在当前周期溢出时完成RELOAD动作

(5)输出MASK,低电平期间PWM正常输出,高电平期间PWM被MASK到指定值

11.3.9. PWM移相

在使用移相功能时,我们通常使用重启PWM来实现。

如在PWMx计数到周期六分之一时,对PWMx执行一次RESTERT,PWMx将从重新计数,及波形延迟了360/60度相位。

波形示意图如 图 37 所示:

../../_images/PWM%E7%A7%BB%E7%9B%B8%E7%A4%BA%E6%84%8F%E5%9B%BE.svg

图 37 PWM移相示意图

11.3.10. PWM信号产生波形

以A路信号为例说明:

边沿对齐模式:

../../_images/%E8%BE%B9%E6%B2%BF%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8BPWM%E4%BF%A1%E5%8F%B7%E4%BA%A7%E7%94%9F%E6%B3%A2%E5%BD%A2.svg

图 38 边沿对齐模式下PWM信号产生波形

中心对齐模式:

../../_images/%E4%B8%AD%E5%BF%83%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8BPWM%E4%BF%A1%E5%8F%B7%E4%BA%A7%E7%94%9F%E6%B3%A2%E5%BD%A2.svg

图 39 中心对齐模式下PWM信号产生波形

非对称中心对齐模式:

../../_images/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E4%B8%AD%E5%BF%83%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8BPWM%E4%BF%A1%E5%8F%B7%E4%BA%A7%E7%94%9F%E6%B3%A2%E5%BD%A2.svg

图 40 非对称中心对齐模式下PWM信号产生波形

BRK情况下中心对齐模式:

../../_images/BRK%E4%B8%AD%E5%BF%83%E5%AF%B9%E9%BD%90%E6%A8%A1%E5%BC%8F%E4%B8%8BPWM%E4%BF%A1%E5%8F%B7%E4%BA%A7%E7%94%9F%E6%B3%A2%E5%BD%A2.svg

图 41 BRK中心对齐模式下PWM信号产生波形

11.3.11. TRIGGER控制

PWM模块在计数过程中,可以根据配置输出三种trigger信号:

PWM计数器比较匹配触发:

PWM计数器在计数过程中,当计到TRIG_CNT中配置的参考值时,就会产生一个周期的trig信号。根据配置,可以将该trig信息映射到输出的trig[7:0]信号上,且输出宽度可以配置,以4个计数周期为单位进行设置,最小长度为0个(即不输出PWM_TRIG,只输出ADC_TRIG),最大长度为252个计数

当重复计数功能有效时,trig信号会在最后一次重复计数时产生。

ADC触发:

在PWM_TRIG输出宽度的正中间,会输出一个pclk的ADC_TRIG信号,用于触发ADC采样。

PWM计数器溢出触发:

当计数器溢出TRIG使能,且计数器发生向上溢出或向下溢出时,会产生一个pclk周期的TRIG信号,与自定义TRIG一致,可以根据配置将该trig信息映射到输出的trig[7:0]信号上。

TRIGGER控制波形如 图 42 所示:

../../_images/TRIGGER%E6%8E%A7%E5%88%B6%E6%B3%A2%E5%BD%A2.svg

图 42 TRIGGER控制波形

11.3.12. 重复计数功能

重复计数器主要用于控制寄存器RELOAD的时机,在周期性自动重载情况下,只有当重复计数器计为0,且计数器溢出时,才会完成重载动作。

../../_images/%E9%87%8D%E5%A4%8D%E8%AE%A1%E6%95%B0%E5%8A%9F%E8%83%BD%E6%B3%A2%E5%BD%A2%E5%9B%BE.svg

图 43 重复计数功能波形图

11.3.13. 触发SAR ADC采样

PWM在任意模式下可以触发ADC,每一路输出独立的ADC触发信号,且每个周期可以设置1个ADC触发点,每个PWM只输出一个触发信号,不区分A.B分别触发。

将SAR ADC配置寄存器(CTRL)中TRIG方式设置为PWM触发。每路PWM对应1个ADTRG值,当PWM计数到指定值,可触发ADC进行采样。

另外,当使用PWM触发ADC时,需将CPU触发通道值与PWM通道触发通道值一致才能触发ADC,即ADC->CHSEL.SW和ADC->CHSEL.PWM的值必须一样,PWM触发ADC才有效。

具体配置方式如下:

  • 配置PWMx路触发ADC控制寄存器,设置触发点是否有效以及PWM触发ADC时间点。

  • 配置ADC的触发方式为PWM触发

  • 使能PWM模块EN位,当计数值到达MATCH设置值时,触发ADC配置寄存器(CTRL)中选中的通道(CHx)进行采样,采样完成后,将产生EOC标志位,并产生ADC中断

示意图如 图 44 所示:

../../_images/PWM%E8%A7%A6%E5%8F%91ADC%E9%87%87%E6%A0%B7%E7%A4%BA%E6%84%8F%E5%9B%BE.svg

图 44 PWM触发ADC采样示意图

11.3.14. 电平翻转

PWM模块支持电平翻转,可通过配置OUTCRx寄存器中INVA和INVB位,分别对应A通道和B通道。

图 45 所示:

../../_images/%E7%94%B5%E5%B9%B3%E7%BF%BB%E8%BD%AC%E7%A4%BA%E6%84%8F%E5%9B%BE.svg

图 45 电平翻转示意图

11.3.15. 挖坑及ADC触发功能

挖坑功能指的是外部信号在高/低电平期间输出被MASK到指定电平,也就是我们下面提到的MASK功能。

当MASK被使能之后,MASK_A/AN/B/BN有效期间,PWM输出被MASK到的值。MASK无效期间,PWM_A/AN/B/BN输出正常值。

此功能可以在PWM波形的任何位置挖坑,挖坑的方向可以是向上、也可以是向下,且A和AN的挖坑方向是可独立配置的。

MASK配置对所有的A/B/AN/BN路同时有效。

PWM输出可以配置为对MASK信号立即生效,还是在原始信号下一次翻转时生效。

可以在PWM_MASK_A/AN/B/BN有效期间,通过配置CMPTRGx寄存器中ATP位选择ADC_TRIG信号产生时机,可以在pwm_trig信号产生的同时,1/8,2/8······7/8等时间点生成一个系统时钟的adc_trig信号

  • 在中心对齐模式下,通过配置CMPTRGx寄存器中DIR位,选择向上/向下计数过程中产生TRIG信号。

  • 通过配置CMPTRGx寄存器中WIDTH位,设置 Trigger计数器产生的匹配信号输出宽度,范围为0-252个计数时钟长度

挖坑前波形如图 图 46 所示。挖坑后波形如图 图 47 所示,设置在 PWM0 计数器等于 1500 处在波形上挖两个电平为零的坑,并在坑的 3/8 宽度位置启动 ADC。

PWM_CmpTrigger(PWM0, 1500, PWM_DIR_UP, 50, PWM_TRG_1, 3),此语句为设置PWM0向上计数,计数值等于1500时发出一个触发信号,触发信号发送到 trigger1。

PWM_OutMask(PWM0, PWM_CH_A, PWM_EVT_1, 0, PWM_EVT_1, 0),词语为设置PWM0A和PWM0AN在event1为高时分别输出0和0。

../../_images/%E6%8C%96%E5%9D%91%E5%89%8D%E6%B3%A2%E5%BD%A2.svg

图 46 挖坑前波形

../../_images/%E6%8C%96%E5%9D%91%E5%90%8E%E6%B3%A2%E5%BD%A2.svg

图 47 挖坑后波形

11.4. 寄存器映射

名称

偏移

复位值

PWM0 BASE:0x40046000

PWM1 BASE:0x40046080

CRx

0x0

0x00000000

OCRx

0x4

0x00000000

BRKCRx

0x8

0x00000000

BRKINx

0xC

0x00000000

PERIODx

0x20

0x00000000

CMPAx

0x24

0x00000000

CMPBx

0x28

0x00000000

DZAx

0x2C

0x00000000

DZBx

0x30

0x00000000

CMPA2x

0x34

0x00000000

CMPB2x

0x38

0x00000000

OVFTRGx

0x50

0x00000000

CMPTRGx

0x54

0x00000000

CMPTRG2x

0x58

0x00000000

EVMUXx

0x60

0x00000000

EVMSKx

0x64

0x00000000

IEx

0x70

0x00000000

IFx

0x74

0x00000000

VALUEx

0x78

0x0000FFFF

SRx

0x7C

0x00000000

START

0x400

0x00000000

SWBRK

0x404

0x00000000

RESET

0x408

0x00000000

RELOADEN

0x40C

0x00000000

PULSE

0x410

0x00000000

FILTER

0x414

0x00000000

BRKPOL

0x418

0x00000000

BRKIE

0x41C

0x00000000

BRKIF

0x420

0x00000000

EVSR

0x424

0x00000000

SWEV

0x428

0x00000000

11.5. 寄存器描述

11.5.1. PWM的工作模式控制寄存器CRx (x=0,1)

偏移: 0x0

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

RPTNUM

15

14

13

12

11

10

9

8

CLKDIV

7

6

5

4

3

2

1

0

CLKDIV

CLKSRC

DIR

MULT

MODE

位域

名称

类型

描述

31:24

RO

23:16

RPTNUM

R/W

重载配置寄存器

n:表示重复计数n+1次之后重载

注1:该重复计数器仅应用于重载动作,仅当重复计数值计到0且计数器溢出之后,才会完成重载动作

注2:计数器每向上或者向下计数一轮,重复计数器减1,即中心对齐模式下每计一个完整的周期,该重复计数器减2

15:6

CLKDIV

R/W

PWM工作时钟频率相对于系统时钟的分频比选择:

0:1分频;

1:2分频;

2:3分频;

以此类推

1023:1024分频

注:最多支持1024分频

5:4

CLKSRC

R/W

第x组PWM的计数时钟选择

00:使用PWM_DIV分频后的时钟计数

01:使用Pulse0作为PWM的计数时钟

10:使用Pulse1作为PWM的计数时钟

11:保留

3

DIR

R/W

初始计数方向配置寄存器

0:向上计数模式

1:向下计数模式

注1:当MODEx=2’b01和2’b10时,表示中心对齐模式下计数器在前半周期的计数方向

注2:向上计数是计数器启动之后初始值为低(begin_with_low)的模式,向下计数是计数器启动之后初始值为高(begin_with_high)的模式

2

MULT

R/W

第x组PWM的计数模式

0:单次计数模式

1:多次计数模式

注1:单次计数模式下,计数器完成一次计数后产生溢出状态

注2:多次计数模式下,计数器始终处在计数过程当中,且每轮计数完成都会产生溢出状态

1:0

MODE

R/W

第x组PWM的工作模式控制

00:边沿对齐模式

01:中心对齐模式,计数器双向计数

10:非对称中心对齐模式,计数器双向计数

11:保留

注1:边沿对齐模式和中心对齐模式下,不论计数器是向上计数还是向下计数,均以CMPA/CMPB为参考值,输出对应的高电平宽度

注2:非对称中心对齐模式下,向上计数过程中以CMPA/CMPB为参考值,向下计数过程中以CMPA2/CMPB2为参考值,输出对应的高电平宽度

11.5.2. PWM配置控制OCRx(x=0,1)

偏移: 0x4

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

FORCEBN

FORCEAN

FORCEB

FORCEA

7

6

5

4

3

2

1

0

INVBN

INVAN

INVB

INVA

IDLEBN

IDLEAN

IDLEB

IDLEA

位域

名称

类型

描述

31:12

RO

11

FORCEBN

R/W

1:工作时将BN路pwmobn强制输出,电平状态由IDLEBNx决定

0:工作时BN路pwmobn正常输出

10

FORCEAN

R/W

1:工作时将AN路pwmoan强制输出,电平状态由IDLEANx决定

0:工作时AN路pwmoan正常输出

9

FORCEB

R/W

1:工作时将B路pwmob强制输出,电平状态由IDLEBx决定

0:工作时B路pwmob正常输出

8

FORCEA

R/W

1:工作时将A路pwmoa强制输出,电平状态由IDLEAx决定

0:工作时A路pwmoa正常输出

7

INVBN

R/W

1:工作时将BN路pwmobn反向后输出

0:工作时将BN路pwmobn按原始值输出

注1:该位直接操作PWM的最终输出电平(死区计算、PWMMASK、BRK操作之后)

6

INVAN

R/W

1:工作时将AN路pwmoan反向后输出

0:工作时将AN路pwmoan按原始值输出

注1:该位直接操作PWM的输出电平(死区计算、PWMMASK、BRK操作之后)

5

INVB

R/W

1:工作时将B路pwmob反向后输出

0:工作时将B路pwmob按原始值输出

注1:该位直接操作PWM的输出电平(死区计算、PWMMASK、BRK操作之后)

4

INVA

R/W

1:工作时将A路pwmoa反向后输出

0:工作时将A路pwmoa按原始值输出

注1:该位直接操作PWM的输出电平(死区计算、PWMMASK、BRK操作之后)

3

IDLEBN

R/W

1:空闲时BN路pwmobn的原始输出为高

0:空闲时BN路pwmobn的原始输出为低

2

IDLEAN

R/W

1:空闲时AN路pwmoan的原始输出为高

0:空闲时AN路pwmoan的原始输出为低

1

IDLEB

R/W

1:空闲时B路pwmob的原始输出为高

0:空闲时B路pwmob的原始输出为低

0

IDLEA

R/W

1:空闲时A路pwmoa的原始输出为高

0:空闲时A路pwmoa的原始输出为低

11.5.3. BRK控制寄存器BRKCRx(x=0,1)

偏移: 0x8

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

HWHALT

SWHALT

15

14

13

12

11

10

9

8

STPCNT

OUTBN

OUTAN

7

6

5

4

3

2

1

0

OFFB

OUTB

OFFA

OUTA

位域

名称

类型

描述

31:18

RO

17

HWHALT

RO

当前外部激活的BRK状态

1:正在进行BRK

0:没有进行BRK

16

SWHALT

RO

当前软件激活的BRK状态

1:正在进行BRK

0:没有进行BRK

15:11

RO

10

STPCNT

R/W

第x组计数器在BRK过程中的状态

0:计数器不受BRK信号影响

1:停止并清除计数值

9

OUTBN

R/W

第x组BN路在BRK过程中输出的电平值

1:刹车过程中输出高电平

0:刹车过程中输出低电平

8

OUTAN

R/W

第x组AN路在BRK过程中输出的电平值

1:刹车过程中输出高电平

0:刹车过程中输出低电平

7:6

5

OFFB

R/W

B路信号在BRK信号撤消之后

0:PWM输出信号立即变回原始信号

1:保持BRK值直到当前计数周期溢出,PWM信号才会跟随原始信号进行翻转

注1:当该位被配置为1时,需要软件保证STPCNT为0(计数器能够正常计数),当STPCNT为1时,该位配置1无效果,按为0时的方式发生作用。

4

OUTB

R/W

第x组B路在BRK过程中输出的电平值

1:刹车过程中输出高电平

0:刹车过程中输出低电平

3:2

RO

1

OFFA

R/W

A路信号在BRK信号撤消之后

0:PWM信号立即变回原始信号

1:保持BRK值直到当前计数周期溢出,PWM信号才会跟随原始信号进行翻转

注1:当该位被配置为1时,需要软件保证STPCNT为0(计数器能够正常计数),当STPCNT为1时,该位配置1无效果,按为0时的方式发生作用。

0

OUTA

R/W

第x组A路在BRK过程中输出的电平值

1:刹车过程中输出高电平

0:刹车过程中输出低电平

备注

注1:SWHALT和HWHALT都受BRKCTRL寄存器控制

注2:配置该BRKCRx寄存器之前,应先配置模块BRK功能的全局寄存器BRKPOL、BRKIE.

11.5.4. 外部BRK选择寄存器BRKINx(x=0,1)

偏移: 0xC

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

BRK2B

BRK1B

BRK0B

BRK2A

BRK1A

BRK0A

位域

名称

类型

描述

31:7

RO

6

BRK2B

R/W

第x组B路是否受外部硬件BRK2信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:B/BN路同时受BRK2B控制

5

BRK1B

R/W

第x组B路是否受外部硬件BRK1信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:B/BN路同时受BRK1B控制

4

BRK0B

R/W

第x组B路是否受外部硬件BRK0信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:B/BN路同时受BRK0B控制

3

RO

2

BRK2A

R/W

第x组A路是否受外部硬件BRK2信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:A/AN路同时受BRK2A控制

1

BRK1A

R/W

第x组A路是否受外部硬件BRK1信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:A/AN路同时受BRK1A控制

0

BRK0A

R/W

第x组A路是否受外部硬件BRK0信号的影响

0:对应刹车信号失效

1:对应刹车信号有效

注1:A/AN路同时受BRK0A控制

11.5.5. PWM的周期数PERIODx(x=0,1)

偏移: 0x20

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PERIOD

7

6

5

4

3

2

1

0

PERIOD

位域

名称

类型

描述

31:16

RO

15:0

PERIOD

R/W

第x组PWM的周期数

注1:实际运行的周期数是该值加1

备注

注1:当周期数等于0时,原始输出保持空闲状态的值

注2:当高电平值CMPA/CMPB为0时,输出翻转不考虑死区值,A/B原始输出保持为0,AN/BN原始输出保持为1

注3:当高电平值CMPA/CMPB小于死区值,A/B原始输出保持为0。

注4:非对称中心对齐模式下,当翻转比较值1大于周期数时,比较值1配置无效,A/B原始输出在周期值向下翻转为1,AN/BN因为此时翻转比较值+死区值也一定大于周期数,因此AN/BN原始输出此时翻转为0。

11.5.6. A路PWM的高电平宽度CMPAx(x=0,1)

偏移: 0x24

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

CMPA

7

6

5

4

3

2

1

0

CMPA

位域

名称

类型

描述

31:16

RO

15:0

CMPA

R/W

第x组A路PWM的高电平宽度

注1:边沿触发模式下,不论向上还是向下计数模式,均以此比较值作为高电平宽度。

注2:中心对齐模式和非对称中心对齐模式下,此比较值为向上计数过程中的高电平宽度值。

11.5.7. B路PWM的高电平宽度CMPBx(x=0,1)

偏移: 0x28

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

CMPB

7

6

5

4

3

2

1

0

CMPB

位域

名称

类型

描述

31:16

RO

15:0

CMPB

R/W

第x组B路PWM的高电平宽度

11.5.8. A路死区长度控制DZAx(x=0,1)

偏移: 0x2C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

DZA

7

6

5

4

3

2

1

0

DZA

位域

名称

类型

描述

31:10

Reserve

RO

9:0

DZA

R/W

第x组A路死区长度控制。

注1:当占空比为0或100时死区失效

注2:只要出现波形上升沿都会计算死区值

例如:当idle值为0,向下计数,开始启动时也会计算死区值。

11.5.9. B路死区长度控制DZBx (x=0,1)

偏移: 0x30

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

DZB

7

6

5

4

3

2

1

0

DZB

位域

名称

类型

描述

31:10

RO

9:0

DZB

R/W

第x组B路死区长度控制

11.5.10. A路PWM的高电平宽度2寄存器CMPA2x (x=0,1)

偏移: 0x34

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

CMPA2

7

6

5

4

3

2

1

0

CMPA2

位域

名称

类型

描述

31:16

RO

15:0

CMPA2

R/W

第x组A路PWM的高电平宽度2。

最小为0

注1:该寄存器仅非对称中心对齐模式下使用,在该模式下,计数器在向上计数过程中以CMPAx作为高电平宽度,向下计数过程中以CMPA2x作为高电平宽度

注2:CMPA2必须小于等于PERIODx,否则在向下计数过程中CMPA2按PERIODx计算,A原始输出始终保持1,AN原始输出始终保持0

11.5.11. B路PWM的高电平宽度2寄存器CMPB2x (x=0,1)

偏移: 0x38

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

CMPB2

7

6

5

4

3

2

1

0

CMPB2

位域

名称

类型

描述

31:16

RO

15:0

CMPB2

R/W

第x组B路PWM的高电平宽度2。

最小为0

注1:该寄存器仅非对称中心对齐模式下使用,在该模式下,计数器在向上计数过程中以CMPBx作为高电平宽度,向下计数过程中以CMPB2x作为高电平宽度

注2:CMPB2必须小于PERIODx,否则在向下计数过程中CMPB2按PERIODx计算,B原始输出始终保持1,BN原始输出始终保持0

11.5.12. 计数器溢出配置寄存器OVFTRGx(x=0,1)

偏移: 0x50

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

MUX

DNEN

UPEN

位域

名称

类型

描述

31: 5

Reserve

RO

4:2

MUX

R/W

计数器溢出信号映射到哪一路trig输出

000:映射到trig[0]

001:映射到trig[1]

010:映射到trig[2]

011:映射到trig[3]

100:映射到trig[4]

101:映射到trig[5]

110:映射到trig[6]

111:映射到trig[7]

1

DNEN

R/W

计数器向下溢出映射使能

1:向下溢出映射使能

0:向下溢出映射不使能

0

UPEN

R/W

计数器向上溢出映射使能

1:向上溢出映射使能

0:向上溢出映射不使能

11.5.13. 触发控制寄存器CMPTRGx (x=0,1)

偏移: 0x54

复位值: 0x00000000

31

30

29

28

27

26

25

24

ATP

DIR

WIDTH

23

22

21

20

19

18

17

16

WIDTH

MUX

EN

15

14

13

12

11

10

9

8

CMP

7

6

5

4

3

2

1

0

CMP

位域

名称

类型

描述

31:29

ATP

R/W

ADC_TRIG信号产生时机选择位

000:表示当pwm_trig信号产生的同时,生成1个系统时钟的adc_trig信号

001:表示在pwm_trig信号持续时间的第1/8时间点处,生成1个系统时钟的adc_trig信号

010:表示在pwm_trig信号持续时间的第2/8时间点处,生成1个系统时钟的adc_trig信号

011:表示在pwm_trig信号持续时间的第3/8时间点处,生成1个系统时钟的adc_trig信号

100:表示在pwm_trig信号持续时间的第4/8时间点处,生成1个系统时钟的adc_trig信号

101:表示在pwm_trig信号持续时间的第5/8时间点处,生成1个系统时钟的adc_trig信号

110:表示在pwm_trig信号持续时间的第6/8时间点处,生成1个系统时钟的adc_trig信号

111:表示在pwm_trig信号持续时间的第7/8时间点处,生成1个系统时钟的adc_trig信号

注:

1:adc_trig相对于pwm_trig的偏移量为:

0+ ((bit[29] == 1) ? trig_cnt[15:3] : 0)

+((bit[30] == 1 ) ? trig_cnt[15:2] : 0)

+((bit[31] == 1 ) ? trig_cnt[15:1] : 0)

2:当pwm_trig宽度不能被8整除时,会按照如注1的情况进行近似计算。

28

DIR

R/W

中心对齐工作模式下,产生TRIG信号的时机

0:向上计数过程中产生TRIG信号

1:向下计数过程中产生TRIG信号

注1:仅在中心对齐模式和非对称中心对齐模式下有效

27:26

RO

25:20

WIDTH

R/W

第x组Trigger计数器产生的匹配信号输出宽度

0:无输出

1:输出4个计数时钟长度

2:输出8个计数时钟长度

3:输出12个计数时钟长度

63:输出252个计数时钟长度

注1:每次计数时,会在计数中间产生一个pclk的trig_adc信号

注2:最多输出252个计数时钟宽度的PWM_TRIG(当系统时钟为125MHz,计数时钟与系统时钟一致的情况下,最多可以产生252*8ns =2.016 us的pwm_trig信号)

注3:当WIDTH配置为0时,不产生pwm_trig信号,只产生trig_adc信号

19:17

MUX

R/W

第x组Trigger计数器产生的匹配信号映射到哪一路trig输出

000:映射到trig[0]

001:映射到trig[1]

010:映射到trig[2]

011:映射到trig[3]

100:映射到trig[4]

101:映射到trig[5]

110:映射到trig[6]

111:映射到trig[7]

16

EN

R/W

第x组Trigger计数器信号是否使能

1:使能

0:不使能

15:0

CMP

R/W

第x组计数器的值与此比较值相等时产生Trigger信号

注1:如果第x组计数器的值和此比较值的值相等,则trigger输出一个精度为4倍计数时钟的高脉冲,宽度可配置,且输出的pwm_trig能够跨计数器的周期。

11.5.14. 触发间隔周期配置寄存器2 CMPTRG2x (x=0,1)

偏移: 0x58

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

INTV

位域

名称

类型

描述

31:3

RO

2:0

INTV

R/W

触发间隔周期选择

000:每周期触发

001:间隔1周期触发一次

010:间隔2周期触发一次

011:间隔3周期触发一次

100:间隔4周期触发一次

101:间隔5周期触发一次

110:间隔6周期触发一次

111:间隔7周期触发一次

11.5.15. PWM外部信号选择寄存器EVMUXx(x=0,1)

偏移: 0x60

复位值: 0x00000000

31

30

29

28

27

26

25

24

MASKBN

MASKAN

23

22

21

20

19

18

17

16

MASKB

MASKA

15

14

13

12

11

10

9

8

RELOAD

PAUSE

7

6

5

4

3

2

1

0

STOP

START

位域

名称

类型

描述

31

RO

30:28

MASKBN

R/W

BN路MASK功能选择寄存器

000:禁用外部信号控制BN路MASK

001:由ext_event[0]控制BN路MASK

010:由ext_event[1]控制BN路MASK

011:由ext_event[2]控制BN路MASK

100:由ext_event[3]控制BN路MASK

101:由ext_event[4]控制BN路MASK

110:由ext_event[5]控制BN路MASK

111:由ext_event[6]控制BN路MASK

27

RO

26:24

MASKAN

R/W

AN路MASK功能选择寄存器

000:禁用外部信号控制AN路MASK

001:由ext_event[0]控制AN路MASK

010:由ext_event[1]控制AN路MASK

011:由ext_event[2]控制AN路MASK

100:由ext_event[3]控制AN路MASK

101:由ext_event[4]控制AN路MASK

110:由ext_event[5]控制AN路MASK

111:由ext_event[6]控制AN路MASK

23

RO

22:20

MASKB

R/W

B路MASK功能选择寄存器

000:禁用外部信号控制B路MASK

001:由ext_event[0]控制B路MASK

010:由ext_event[1]控制B路MASK

011:由ext_event[2]控制B路MASK

100:由ext_event[3]控制B路MASK

101:由ext_event[4]控制B路MASK

110:由ext_event[5]控制B路MASK

111:由ext_event[6]控制B路MASK

19

RO

18:16

MASKA

R/W

A路MASK功能选择寄存器

000:禁用外部信号控制A路MASK

001:由ext_event[0]控制A路MASK

010:由ext_event[1]控制A路MASK

011:由ext_event[2]控制A路MASK

100:由ext_event[3]控制A路MASK

101:由ext_event[4]控制A路MASK

110:由ext_event[5]控制A路MASK

111:由ext_event[6]控制A路MASK

15

RO

14:12

RELOAD

R/W

计数器外部重启功能选择寄存器

000:禁用外部信号重启计数器

001:由ext_event[0]重启计数器

010:由ext_event[1]重启计数器

011:由ext_event[2]重启计数器

100:由ext_event[3]重启计数器

101:由ext_event[4]重启计数器

110:由ext_event[5]重启计数器

111:由ext_event[6]重启计数器

注1:外部发起的重启请求,当RELOAD_EN为1且发生上升沿时,会完成一次“清除+重载+启动”的功能,清除的内容为当前计数值、当前的分频值、当前重复计数值。然后重新启动一次全新的计数过程。

11

RO

10:8

PAUSE

R/W

计数器外部暂停功能选择寄存器

000:禁用外部信号暂停计数器

001:由ext_event[0]暂停计数器

010:由ext_event[1]暂停计数器

011:由ext_event[2]暂停计数器

100:由ext_event[3]暂停计数器

101:由ext_event[4]暂停计数器

110:由ext_event[5]暂停计数器

111:由ext_event[6]暂停计数器

注1:高电平有效

注2:计数器被暂停之后,计数器暂停在当前计数值,当选中的ext_event变为低(不再暂停)之后,计数器马上继续计数

注3:当检测到外部暂停时,计数器最少保持一个计数时钟的暂停

7

RO

6:4

STOP

R/W

计数器外部停止功能选择寄存器

000:禁用外部信号停止计数器

001:由ext_event[0]停止计数器

010:由ext_event[1]停止计数器

011:由ext_event[2]停止计数器

100:由ext_event[3]停止计数器

101:由ext_event[4]停止计数器

110:由ext_event[5]停止计数器

111:由ext_event[6]停止计数器

注1:高电平有效

注2:计数器被停止之后,需要等待选中的ext_event变为低(停止计数的功能失效),再经过CPU或者硬件启动,才会开始计数。

3

RO

2:0

START

R/W

计数器外部启动功能选择寄存器

000:禁用外部信号启动计数器

001:由ext_event[0]启动计数器

010:由ext_event[1]启动计数器

011:由ext_event[2]启动计数器

100:由ext_event[3]启动计数器

101:由ext_event[4]启动计数器

110:由ext_event[5]启动计数器

111:由ext_event[6]启动计数器

备注

注1:ext_event[0~4]分别接PWM_EVT0~4,ext_event[5~6]分别接TIMER0~1

注:2:计数器启动为上升沿触发,立即生效

注3:计数器停止为高电平停止,低电平释放,立即生效(系统时钟域)

注4:计数器暂停为高电平暂停,低电平继续计数,输入信号会同步到计数周期上去,当外部信号的长度小于一个计数时钟时,计数器也会暂停一个计数时钟。

注5:寄存器重启为上升沿触发,当LOAD_EN为1时,立即生效

注6:MASK为高电平时输出设定值,低电平时输出正常值。A/AN/B/BN路输出MASK可以配置为立即生效,也可以配置为等到当前周期溢出之后才会MASK到设定值。当MASK信号撤消之后,也可以配置为立即生效,或者会继续保留MASK值直到当前周期溢出。

11.5.16. PWM外部信号配置寄存器EVMSKx (x=0,1)

偏移: 0x64

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

STPCLR

7

6

5

4

3

2

1

0

IMME

OUTBN

OUTAN

OUTB

OUTA

位域

名称

类型

描述

31:9

RO

8

STPCLR

R/W

计数器外部停止期间计数器是否清除

1:清除

0:保持当前值,不清除

注1:仅在EV_STOP,即计数器外部停止功能下有效

注2:EV_STOP信号引起的计数器停止和清除动作均立即生效,精确到系统时钟域

7:5

RO

4

IMME

R/W

MASK信号是否立即生效

1:立即生效

0:保持当前值,直到计数溢出之后才被MASK

注1:MASK信号撤消时,配置与此处一致

注2:立即生效会精确到系统时钟域;

注3:溢出之后被MASK时,PWM输出会同步到计数器溢出,使用系统时钟对外部输入的MASK触发信号进行采样,当采到MASK触发源为1时,PWM输出被MASK的时间最少持续一个计数溢出。当输入的有效MASK触发信号出现在跨计数器溢出点的情况时,PWM输出MASK值会持续两次计数溢出

3

OUTBN

R/W

输出信号PWMBN被MASK的目标电平值

0:表示MASK到0

1:表示MASK到1

2

OUTAN

R/W

输出信号PWMAN被MASK的目标电平值

0:表示MASK到0

1:表示MASK到1

1

OUTB

R/W

输出信号PWMB被MASK的目标电平值

0:表示MASK到0

1:表示MASK到1

0

OUTA

R/W

输出信号PWMA被MASK的目标电平值

0:表示MASK到0

1:表示MASK到1

11.5.17. 中断使能寄存器IEx (x=0,1)

偏移: 0x70

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

RELOADEN

DNCMPB

DNCMPA

UPCMPB

UPCMPA

DNOVF

UPOVF

位域

名称

类型

描述

31: 7

RO

6

RELOADEN

R/W

第x组PWM计数器重载中断使能

1:使能

0:不使能

5

DNCMPB

R/W

第x组PWM计数器向下计数过程中B路上升沿中断使能

1:使能

0:不使能

4

DNCMPA

R/W

第x组PWM计数器向下计数过程中A路上升沿中断使能

1:使能

0:不使能

3

UPCMPB

R/W

第x组PWM计数器向上计数过程中B路下降沿中断使能

1:使能

0:不使能

2

UPCMPA

R/W

第x组PWM计数器向上计数过程中A路下降沿中断使能

1:使能

0:不使能

1

DNOVF

R/W

第x组PWM计数器向下溢出中断使能

1:使能

0:不使能

0

UPOVF

R/W

第x组PWM计数器向上溢出中断使能

1:使能

0:不使能

11.5.18. PWM的中断状态寄存器IFx(x=0,1)

偏移: 0x74

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

RELOADEN

DNCMPB

DNCMPA

UPCMPB

UPCMPA

DNOVF

UPOVF

位域

名称

类型

描述

31: 7

RO

6

RELOADST

R/W

第x组PWM计数器重载状态,写1清除

1:已经发生

0:没有发生

注1:如下情况下会置位重载状态

1:当reload_en使能之后,每次计数器溢出(向下溢出或者向下溢出)时的自动reload

2:当reload_en使能之后,每个ev_recount发生时的reload

注2:当计数器在start(CPU引起或者ev_start)时,会有一个自动reload,该动作不会置位重载状态

注3:当CPU配置RESTART_PWMX寄存器时,同样也会有一个自动reload,该动作也不会置位重载状态

5

DNCMPB

R/W

第x组PWM计数器向下计数过程中B路上升沿发生状态,写1清除

1:已经发生

0:没有发生

4

DNCMPA

R/W

第x组PWM计数器向下计数过程中A路上升沿发生状态,写1清除

1:已经发生

0:没有发生

3

UPCMPB

R/W

第x组PWM计数器向上计数过程中B路下降沿发生状态,写1清除

1:已经发生

0:没有发生

2

UPCMPA

R/W

第x组PWM计数器向上计数过程中A路下降沿发生状态,写1清除

1:已经发生

0:没有发生

1

DNOVF

R/W

第x组PWM计数器向下溢出状态,写1清除

1:已经发生溢出

0:没有发生溢出

0

UPOVF

R/W

第x组PWM计数器向上溢出状态

1:已经发生溢出

0:没有发生溢出

注1:写1清除

11.5.19. 计数器的当前计数值VALUEx(x=0,1)

偏移: 0x78

复位值: 0x0000FFFF

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

CNT

7

6

5

4

3

2

1

0

CNT

位域

名称

类型

描述

31:16

RO

15:0

CNT

R/W

第x组PWM的当前计数值。

11.5.20. 计数器的当前运行状态SRx(x=0,1)

偏移: 0x7C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

OUTBN

7

6

5

4

3

2

1

0

OUTAN

OUTB

OUTA

DIR

STAT

位域

名称

类型

描述

31:9

RO

8

OUTBN

RO

第x组PWM计数器当前BN路输出

7

OUTAN

RO

第x组PWM计数器当前AN路输出

6

OUTB

RO

第x组PWM计数器当前B路输出

5

OUTA

RO

第x组PWM计数器当前A路输出

4

DIR

RO

第x组PWM计数器当前计数方向

0:向上计数过程当中

1:向下计数过程当中

3:2

RO

1:0

STAT

RO

第x组PWM的计数器状态

00:IDLE状态,计数器不工作

01:ACTIVE状态,计数器正在计数过程中

10:PAUSE状态,计数器被暂停

11.5.21. PWM启动寄存器START

偏移: 0x400

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

PWM1

PWM0

位域

名称

类型

描述

31: 2

RO

1

PWM1

R/W

PWM1计数器启动位

1:启动

0:停止

注1:CPU写该寄存器时,写1表示启动计数器,写0表示停止计数器。

注2:CPU回读时,为1表示发生了CPU启动或者外部硬件启动,为0表示计数器未启动

注3:单次计数模式完成、BRK停止、外部硬件停止发生时,该位也会被置0

0

PWM0

R/W

PWM0计数器启动位

1:启动

0:停止

注1:CPU写该寄存器时,写1表示启动计数器,写0表示停止计数器。

注2:CPU回读时,为1表示发生了CPU启动或者外部硬件启动,为0表示计数器未启动

注3:单次计数模式完成、BRK停止、外部硬件停止发生时,该位也会被置0

11.5.22. 软件BRK操作启动寄存器SWBRK

偏移: 0x404

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PWM1B

PWM0B

7

6

5

4

3

2

1

0

PWM1A

PWM0A

位域

名称

类型

描述

31:10

RO

9

PWM1B

R/W

PWM1的B路软件BRK启动

0:不启动

1:启动

8

PWM0B

R/W

PWM0的B路软件BRK启动

0:不启动

1:启动

7:2

RO

1

PWM1A

R/W

PWM1的A路软件BRK启动

0:不启动

1:启动

0

PWM0A

R/W

PWM0的A路软件BRK启动

0:不启动

1:启动

11.5.23. PWM复位寄存器RESET

偏移: 0x408

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

PWM1

PWM0

位域

名称

类型

描述

31:2

RO

1

PWM1

R/W

PWM1寄存器复位操作

1:复位

0:不复位

注1:软件置位,硬件自动清0

注2:复位范围为该组PWM的全部逻辑

0

PWM0

R/W

PWM0寄存器复位操作

1:复位

0:不复位

注1:软件置位,硬件自动清0

注2:复位范围为该组PWM的全部逻辑

11.5.24. PWM重载请求寄存器RELOADEN

偏移: 0x40C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

RESTART_PWM1

RESTART_PWM0

7

6

5

4

3

2

1

0

RESTART_PWM1

RESTART_PWM0

位域

名称

类型

描述

31:10

RO

9

RESTART_PWM1

R/W

PWM1重新启动

软件置位,硬件自动清除

注1:计数器正常计数过程中置位, PWM会先完成一次“清除+加载”动作,清除的内容为当前计数值、当前的分频值、当前重复计数值。然后重新启动一次全新的计数过程。

注2:当RESTART_PWMX发生之后,在“清除+加载”过程中,PWM输出会保持当前值(不会引入IDLE值),直到重新计数开始之后得到新的输出值。即RESTART_PWMX之后会输出新生成的、与前一次计数没有关系的、完整的PWM波形。

注3:在IDLE状态下置位,效果与START一致,会引起计数器开始计数(自动完成RELOAD)动作

8

RESTART_PWM0

R/W

PWM0重新启动

软件置位,硬件自动清除

注1:计数器正常计数过程中置位, PWM会先完成一次“清除+加载”动作,清除的内容为当前计数值、当前的分频值、当前重复计数值。然后重新启动一次全新的计数过程。

注2:当RESTART_PWMX发生之后,在“清除+加载”过程中,PWM输出会保持当前值(不会引入IDLE值),直到重新计数开始之后得到新的输出值。即RESTART_PWMX之后会输出新生成的、与前一次计数没有关系的、完整的PWM波形。

注3:在IDLE状态下置位,效果与START一致,会引起计数器开始计数(自动完成RELOAD)动作

7:2

1

RELOADEN_PWM1

R/W

PWM1寄存器重载使能,软件置位,软件清除

1:使能

0:不使能

注1:重新加载(PERIOD,COMPA0、DZA、COMPA1、COMPB0、DZB、COMPB1、TRIG_CNT)的使能位, 使能有效时,每次当RPT_CNTER为0且周期溢出时,都会完成加载。

注2:RELOAD使能后,到实际的RELOAD动作(周期溢出时)发生之间,如果上述的寄存器又被赋予了新值,则以最后的值作为重载值。

0

RELOADEN_PWM0

R/W

PWM0寄存器重载使能,软件置位,软件清除

1:使能

0:不使能

注1:重新加载(PERIOD,COMPA0、DZA、COMPA1、COMPB0、DZB、COMPB1、TRIG_CNT)的使能位, 使能有效时,每次当RPT_CNTER为0且周期溢出时,都会完成加载。

注2:RELOAD使能后,到实际的RELOAD动作(周期溢出时)发生之间,如果上述的寄存器又被赋予了新值,则以最后的值作为重载值。

11.5.25. PWM外部脉冲触发沿选择PULSE

偏移: 0x410

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

EDGE1

EDGE0

位域

名称

类型

描述

31:2

RO

1

EDGE1

R/W

外部计数时钟pulse1触发沿选择寄存器

1:上升沿

0:下降沿

注1:外部计数时钟触发计数器过程中,如果发生了RESTART_PWMX功能(外部或者软件),则RESTART_PWMX之后的新计数过程需要等到下一次pulse的触发沿时才会发生

0

EDGE0

R/W

外部计数时钟pulse0触发沿选择寄存器

1:上升沿

0:下降沿

注1:外部计数时钟触发计数器过程中,如果发生了RESTART_PWMX功能(外部或者软件),则RESTART_PWMX之后的新计数过程需要等到下一次pulse的触发沿时才会发生

11.5.26. PWM外部信号滤波选择寄存器FILTER

偏移: 0x414

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

FILTER

位域

名称

类型

描述

31:2

Reserve

RO

保留

1:0

FILTER

R/W

外部信号滤波配置

00:滤波被禁止

01:过滤4个pclk时钟周期

10:过滤8个pclk时钟周期

11:过滤16个pclk时钟周期

注1:ext_event[3:0]和外部BRK信号同时参与滤波,且配置一致

注2:ext_event[6:4]不参与滤波

11.5.27. 外部BRK控制寄存器BRKPOL

偏移: 0x418

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

BRK2

BRK1

BRK0

位域

名称

类型

描述

31:3

RO

2

BRK2

R/W

刹车信号2极性配置

1:硬件刹车输入高电平有效

0:硬件刹车输入低电平有效

1

BRK1

R/W

刹车信号1极性配置

1:硬件刹车输入高电平有效

0:硬件刹车输入低电平有效

0

BRK0

R/W

刹车信号0极性配置

1:硬件刹车输入高电平有效

0:硬件刹车输入低电平有效

11.5.28. 外部BRK中断使能寄存器BRKIE

偏移: 0x41C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

BRK2

BRK1

BRK0

位域

名称

类型

描述

31:3

RO

2

BRK2

R/W

硬件刹车2中断使能。

1:使能

0:不使能

1

BRK1

R/W

硬件刹车1中断使能。

1:使能

0:不使能

0

BRK0

R/W

硬件刹车0中断使能。

1:使能

0:不使能

11.5.29. 外部BRK中断状态寄存器BRKIF

偏移: 0x420

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

BRK2_VAL

BRK1_VAL

BRK0_VAL

BRK2

BRK1

BRK0

位域

名称

类型

描述

31:7

RO

6

BRK2_VAL

RO

硬件刹车2的当前电平值

注1:只单纯记录刹车PIN脚当前电平值,与刹车配置信息无关

5

BRK1_VAL

RO

硬件刹车1的当前电平值

注1:只单纯记录刹车PIN脚当前电平值,与刹车配置信息无关

4

BRK0_VAL

RO

硬件刹车0的当前电平值

注1:只单纯记录刹车PIN脚当前电平值,与刹车配置信息无关

3

RO

2

BRK2

R,W1C

硬件刹车2状态。

1:已经发生

0:没有发生

注1:写1清除

注2:只有在至少有一组PWM选择了某一个刹车时,该刹车对应的中断状态才能生效,否则会一直保持为0

1

BRK1

R,W1C

硬件刹车1状态。

1:已经发生

0:没有发生

注1:写1清除

注2:只有在至少有一组PWM选择了某一个刹车时,该刹车对应的中断状态才能生效,否则会一直保持为0

0

BRK0

R,W1C

硬件刹车0状态。

1:已经发生

0:没有发生

注1:写1清除

注2:只有在至少有一组PWM选择了某一个刹车时,该刹车对应的中断状态才能生效,否则会一直保持为0

11.5.30. 外部信号当前状态寄存器EVSR

偏移: 0x424

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

EV6

EV5

EV4

EV3

EV2

EV1

EV0

位域

名称

类型

描述

31:7

RO

6

EV6

RO

外部信号6的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

5

EV5

RO

外部信号5的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

4

EV4

RO

外部信号4的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

3

EV3

RO

外部信号3的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

2

EV2

RO

外部信号2的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

1

EV1

RO

外部信号1的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

0

EV0

RO

外部信号0的当前电平值

1:高电平

0:低电平

注1:只单纯记录ext_event的当前电平值,与配置信息无关

注2:当短时间内出现多次脉冲时,CPU不一定能够及时获得准确的当前电平值

11.5.31. 软件模拟外部触发源寄存器SWEV

偏移: 0x428

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

SWEV2

SWEV1

SWEV0

位域

名称

类型

描述

31:3

Reserve

保留

2

SWEV2

R/W

软件模拟外部触发信号源ex_trig4

1

SWEV1

R/W

软件模拟外部触发信号源ex_trig3

0

SWEV0

R/W

软件模拟外部触发信号源ex_trig2