SRPWM (高精度脉宽调制器)

简介

PWM 脉宽调制是电力电子应用中非常重要的一种控制技术。 ET6000系列实时为控制器在SRPWM(Super Resolution PWM)高精度PWM外设中提供了许多差异化功能,具备灵活的周期、相位以及死区调整; 丰富的同步机制;具备高级的保护功能;支持高达ps级的高精度调制。 用于电机控制和电源控制 (PFC、LLC、OBC……) 等电力电子场景。

ET6001的SRPWM 外设包含 12 通道 PWM 发波子模块,其中有 4 个通道 (0~3 通道,共 8 个支路) 支持高精度 PWM 发波,其余通道仅支持标准精度 PWM 发波。

功能概述

  • 支持输出 12 通道。

    • 每个通道输出2路(A/B)PWM

    • 每个通道的2路PWM可配置为独立或互补关系

  • 支持多个定时单元

    • 12 个22位定时单元,可任意配置为独立或主从关系(通过2路同步信号同步)

    • 每个通道均支持输入2路同步信号和输出2路同步信号

  • 支持高精度功能

    • 每个通道的周期、占空比以及死区可独立进行高精度调整

    • 高精度调整功能可旁路

    • 高精度可达156ps

  • 支持丰富的比较事件

    • 每个通道4个主比较器和4个从比较器

    • 可配置1个周期内单次比较或多次比较

    • 可配置大于等于、小于等于、等于

    • 可作为同步信号输出

  • 支持丰富的波形生成事件PG(PWM Generate)

    • 每个通道支持23种事件生成PWM

    • 每个通道的2路PWM可独立配置波形生成事件

  • 支持突发发波模式

  • 支持丰富的保护机制

    • 支持异常信号预处理

      • 统计

      • 滤波

      • Blanking功能

    • 支持前级保护

      • 每个通道6路异常信号输入

      • 多种保护模式:CBC模式、One-Shot模式、无约束(立即)模式

      • 保护起始结束时机可配

      • 多种保护动作:置0、置1、高阻、取反

    • 支持后级保护

      • 通道内和通道间的互斥保护

      • 互斥保护条件可配

  • 支持 12 路中断

    • 每路中断支持14种中断源,其中事件中断源支持24种中断事件

  • 支持连接到其他片内外设

    • 支持连接到ADC

    • 支持连接到DAC

    • 支持连接到ACMP

  • 支持广播更新寄存器功能

    • 全部通道或者任意指定通道同时配置

  • 支持关键参数寄存器多种加载模式

    • 立即加载模式

    • 通道间同步加载模式

    • 通道内影子加载模式

    • 支持广播更新:全部通道或者任意指定通道同时配置

  • 支持谷值开关功能

软件配置流程

配置流程如下:

  1. 配置IOMUX(必选)

  • 配置相应的引脚为SRPWM模式

  1. TB 时基单元初始化(必选)

  1. CMP 比较值单元初始化(可选)

  1. PG 波形发生单元初始化(可选)

  1. DB死区单元初始化(可选)

  1. BURST 突发单元初始化(可选)

  1. FPP故障预处理单元初始化(可选)

  1. PREP前级保护单元初始化(可选)

  1. PSTP后级保护单元初始化(可选)

  1. Valley谷值开关单元初始化(可选)

  1. 事件输出单元(可选)

  1. 中断(可选)

  1. 使能高精度旁路(必选)

  1. 广播功能(可选)

  1. 使能通道(必选)

时基初始化单元(TB)

计数时钟/计数方式

计数时钟

  • SRPWM模块挂在AHB BUS1上,在SDK等示例中,时钟默认都配置为200Mhz,如果要使用高精度部分,时钟必须固定在200Mhz,所以这里不建议修改。

计数模式

  • 计数方式包含两种模式可选 SRPWM_COUNTMODE_UPSRPWM_COUNTMODE_UPDOWN

  1. 向上计数模式 SRPWM_COUNTMODE_UP :在该模式下,计数器从 0 开始递增计数,计数至 CFG_TB_PRD[cfg_tb_prd[26:5]] - 1 值时,完成一个周期的计数,并且复位至 0 重新开始计数。 * 在计数值为 0 时,信号 SRPWM_PG_EVT_ZERO 事件产生。

    • 在计数值为 CFG_TB_PRD[cfg_tb_prd[26:5]] - 1 的时候,信号 SRPWM_PG_EVT_PRD 事件产生。

      • Fpwm = Tpwm_clk / (CFG_TB_PRD[cfg_tb_prd[26:5]])。

UP计数

备注

这里的周期值配置需要注意和TI的存在差异,ET6001输出频率Fpwm = Tpwm_clk/TB_PRD; TI的输出频率Fpwm = Tpwm_clk/(TB_PRD+1);

  1. 向上向下计数模式 SRPWM_COUNTMODE_UPDOWN :计数器从 0 开始递增计数,计数至 CFG_TB_PRD[cfg_tb_prd[26:5]] 后进行递减计数,当计数器计数为 1,完成一个周期的计数。下一个周期继续从 0 开始进行先递增后递减计数。 * 在计数值为 0 时,信号 SRPWM_PG_EVT_ZERO 事件产生。

    • 在计数值为 CFG_TB_PRD[cfg_tb_prd[26:5]] 的时候,信号 SRPWM_PG_EVT_PRD 事件产生。

    • Fpwm = Tpwm_clk / (2 * CFG_TB_PRD[cfg_tb_prd[26:5]]) 详细计算见 ET6001用户手册。

UPDOWN计数

同步输入

  • 同步输入信号源在TB中进行配置,同步信号用于在事件发生时将对应配置的相位值加载到对应的计数器中,计数器从相位值开始计数, syncIn0syncIn1 信号源选择源如下,可以进行mask_or配置;

#define SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0         ((uint8_t)(0x0001))
#define SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1         ((uint8_t)(0x0002))
#define SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2         ((uint8_t)(0x0004))
#define SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3         ((uint8_t)(0x0008))
#define SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN0               ((uint8_t)(0x0010))
#define SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN1               ((uint8_t)(0x0020))
#define SRPWM_TBCOUNTER_SYNCEVT_SOFTWARE_UPDATE_EVT    ((uint8_t)(0x0040))
  • 如果此时计数方式配置为UPDOWN模式,此时还可以配置同步加载后计数器的计数方向, sync0CountDir `` ``sync1CountDir `` 的配置选项为 ``SRPWM_SYNC_DIR_DOWNSRPWM_SYNC_DIR_UP;

  • 当软件代码中选择了上述任意信号源后,则同步输入功能将被使能。如果没有选择任何信号源,则同步输入功能将被禁用。

  • SRPWM_TBInitTypeDef `` 结构体中的 `waitSync0TimerEn` 用于开启是否在等待到同步信号到来时开始计数器计数,默认值为 ``DISABLE,如果需要在同步信号到来后开始计数,则需要将该值设置为 ENABLE

  • 如果选择源 SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN0SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN1 中的信号,这里的信号来自于其他PWM组的同步输出信号,多组信号源需要通过SRPWMCOM中进行配置,具体配置参考 同步信号输入参考;

同步输入信号源来源
  • 如果信号源选择 SRPWM_TBCOUNTER_SYNCEVT_SOFTWARE_UPDATE_EVT 事件,在需要同步信号的触发时使用 SRPWMCOM_generateSwEvt() 函数进行配置;参数 channelMask 指定SRPWM模块的通道号。

  • 如果信号源选择 SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POSx 事件,x等于0~3; 对应信号源来自外部输入GPIO接口输入或者其他外设模块的故障信号灯,通过XBAR模块输入选择 INPUTXBAR_OUT 信号和 PFXBAR_OUT 信号源;

输入源对应关系前级关系,XBAR中需要在XBAR中进行源选择,如果故障源来自外部IO连接输入选择前INXB_OUT进行配置,如果故障源来自其他模块的信号,如ACMP/ETIMER等选择PFXBAR_OUT进行配置,PFXB也可以选择INXB作为源,但是此时即使是同一个IO的输入也会出现不同的延时:

PWM组

XBAR输入通路

Fault信号预处理组

对应同步输入信号源

SRPWM0~3

INXB_OUT0

SRPWM_FPP_FAULT_SIG_GRP0

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0

INXB_OUT1

SRPWM_FPP_FAULT_SIG_GRP1

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1

PFXB_OUT0

SRPWM_FPP_FAULT_SIG_GRP2

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2

PFXB_OUT1

SRPWM_FPP_FAULT_SIG_GRP3

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3

PFXB_OUT2

SRPWM_FPP_FAULT_SIG_GRP4

PFXB_OUT3

SRPWM_FPP_FAULT_SIG_GRP5

SRPWM4~7

INXB_OUT2

SRPWM_FPP_FAULT_SIG_GRP0

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0

INXB_OUT3

SRPWM_FPP_FAULT_SIG_GRP1

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1

PFXB_OUT4

SRPWM_FPP_FAULT_SIG_GRP2

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2

PFXB_OUT5

SRPWM_FPP_FAULT_SIG_GRP3

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3

PFXB_OUT6

SRPWM_FPP_FAULT_SIG_GRP4

PFXB_OUT7

SRPWM_FPP_FAULT_SIG_GRP5

SRPWM8~11

INXB_OUT4

SRPWM_FPP_FAULT_SIG_GRP0

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0

INXB_OUT5

SRPWM_FPP_FAULT_SIG_GRP1

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1

PFXB_OUT8

SRPWM_FPP_FAULT_SIG_GRP2

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2

PFXB_OUT9

SRPWM_FPP_FAULT_SIG_GRP3

SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3

PFXB_OUT10

SRPWM_FPP_FAULT_SIG_GRP4

PFXB_OUT11

SRPWM_FPP_FAULT_SIG_GRP5

备注

如果同步信号来自其他SRPWM组的输入,信号会有3个cycle的延时; 如果想使用外部的信号来同步可以将同步信号选择同一个,进行相同的输入处理即可;

计数比较单元(CMP)和动作矩阵单元(PG)

这两节主要见用户手册有详细描述,对于API配置方面常用的就是CMP比较值配置和动作波形矩阵两个部分;

CMP

  • 比较单元主要是比较值的配置,包含4个主比较器(COMPA/COMPB/COMPC/COMPD)和4个从比较器(SCOMPA/SCOMPB/SCOMPC/SCOMPD);比较值主要用于产生对应的事件进行动作事件;

  • 这里比较简单,需要注意的是ET系列的事件相对于其他系列多了一个事件产生时间点的差异,常规模式下对应事件的产生都是当比较值等于计时器值时产生;ET600X对应事件同时可以配置为 SRPWM_CMP_EVTOUT_MODE_UP_AND_DOWN_EVENT 模式,在该模式下,事件产生的时间点为:

    • 向上计数时:当比较值大于等于计时器值时产生事件。

    • 向下计数时:当比较值小于等于计时器值时产生事件。

PG

波形发生器有 23 个事件源可选(22 个动作矩阵事件,外加 1 个软件事件 SRPWM_PG_EVT_SW),每个事件可以配置 4 个动作配置,每个事件可单独配置或者同时配置:

  • SRPWM 模块 A/B 路的输出事件通过 SRPWM_setPG() 函数进行配置。

    • 参数 SRPWMx 指定 SRPWM 模块的通道号。

    • 参数 pwmAB 指定选择配置哪一路的输出 SRPWM_ASRPWM_B

    • 参数 event 指定选择哪个事件产生动作。

    • 参数 value 指定选择的对应事件产生什么动作。

23 个事件源如下,事件响应优先级按以下顺序依次从高到低(根据不同计数方向有所不同,但是基本顺序一致), SRPWM_PG_EVT_SW 优先级最高:

SRPWM_PG_EVT_SW
SRPWM_PG_EVT_FPP_FAULT_POS0
SRPWM_PG_EVT_FPP_FAULT_POS1
SRPWM_PG_EVT_FPP_FAULT_POS2
SRPWM_PG_EVT_FPP_FAULT_POS3
SRPWM_PG_EVT_CMPD_UP
SRPWM_PG_EVT_CMPC_UP
SRPWM_PG_EVT_CMPB_UP
SRPWM_PG_EVT_CMPA_UP
SRPWM_PG_EVT_SCMPD_UP
SRPWM_PG_EVT_SCMPC_UP
SRPWM_PG_EVT_SCMPB_UP
SRPWM_PG_EVT_SCMPA_UP
SRPWM_PG_EVT_ZERO
SRPWM_PG_EVT_CMPD_DOWN
SRPWM_PG_EVT_CMPC_DOWN
SRPWM_PG_EVT_CMPB_DOWN
SRPWM_PG_EVT_CMPA_DOWN
SRPWM_PG_EVT_SCMPD_DOWN
SRPWM_PG_EVT_SCMPC_DOWN
SRPWM_PG_EVT_SCMPB_DOWN
SRPWM_PG_EVT_SCMPA_DOWN
SRPWM_PG_EVT_PERIOD

4 个动作矩阵选择如下:

SRPWM_PG_NONE    // 不动作
SRPWM_PG_CLEAR   // 拉低
SRPWM_PG_SET     // 拉高
SRPWM_PG_TOGGLE  // 翻转

死区输出单元(DB)

死区输出的几种模式

这里参考TI的死区输出,在几种输出模式下,ET系列需要进行怎样配置:

死区输出模式
  • 在上图中给出了上升沿延迟和下降沿延迟输出的方式的输出,死区互补输出的几种方式主要通过配置A/B路的死区配置; 示例上下边沿延迟统一配置为10:

  • 死区模式1,死区结构体初始化配置:

    initDBStruct->a.selComplementChannel = DISABLE;
    initDBStruct->a.selRisingDelay       = ENABLE;
    initDBStruct->a.selFallingDelay      = DISABLE;
    initDBStruct->a.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_AFTER;
    initDBStruct->a.risingDelay          = 10;
    initDBStruct->a.fallingDelay         = 0;
    
    initDBStruct->b.selComplementChannel = DISABLE;
    initDBStruct->b.selRisingDelay       = DISABLE;
    initDBStruct->b.selFallingDelay      = ENABLE;
    initDBStruct->b.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_INVERT;
    initDBStruct->b.risingDelay          = 0;
    initDBStruct->b.fallingDelay         = 10;
    
  • 死区模式2,死区结构体初始化配置:

    initDBStruct->a.selComplementChannel = DISABLE;
    initDBStruct->a.selRisingDelay       = ENABLE;
    initDBStruct->a.selFallingDelay      = DISABLE;
    initDBStruct->a.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_INVERT;
    initDBStruct->a.risingDelay          = 10;
    initDBStruct->a.fallingDelay         = 0;
    
    initDBStruct->b.selComplementChannel = DISABLE;
    initDBStruct->b.selRisingDelay       = DISABLE;
    initDBStruct->b.selFallingDelay      = ENABLE;
    initDBStruct->b.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_AFTER;
    initDBStruct->b.risingDelay          = 0;
    initDBStruct->b.fallingDelay         = 10;
    
  • 死区模式3,死区结构体初始化配置:

    initDBStruct->a.selComplementChannel = DISABLE;
    initDBStruct->a.selRisingDelay       = ENABLE;
    initDBStruct->a.selFallingDelay      = DISABLE;
    initDBStruct->a.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_AFTER;
    initDBStruct->a.risingDelay          = 10;
    initDBStruct->a.fallingDelay         = 0;
    
    initDBStruct->b.selComplementChannel = DISABLE;
    initDBStruct->b.selRisingDelay       = DISABLE;
    initDBStruct->b.selFallingDelay      = ENABLE;
    initDBStruct->b.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_AFTER;
    initDBStruct->b.risingDelay          = 0;
    initDBStruct->b.fallingDelay         = 10;
    
  • 死区模式4,死区结构体初始化配置:

    initDBStruct->a.selComplementChannel = DISABLE;
    initDBStruct->a.selRisingDelay       = ENABLE;
    initDBStruct->a.selFallingDelay      = DISABLE;
    initDBStruct->a.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_INVERT;
    initDBStruct->a.risingDelay          = 10;
    initDBStruct->a.fallingDelay         = 0;
    
    initDBStruct->b.selComplementChannel = DISABLE;
    initDBStruct->b.selRisingDelay       = DISABLE;
    initDBStruct->b.selFallingDelay      = ENABLE;
    initDBStruct->b.selOutputState       = SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_INVERT;
    initDBStruct->b.risingDelay          = 0;
    initDBStruct->b.fallingDelay         = 10;
    

突发模式输出单元(Brust mode)

突发模式使能的情况下,有两种模式可选 SRPWM_BURST_N_WAVE_IN_BACKSRPWM_BURST_N_WAVE_IN_FRONT,在突发同步输出使能后同步信号生效,

  • SRPWM_BURST_N_WAVE_IN_BACK 模式为N个发波周期在空闲周期后面。

突发模式输出周期起始后发波
  • SRPWM_BURST_N_WAVE_IN_FRONT 模式为N个发波周期在空闲周期前面。

突发模式输出周期起始先发波

brust模式输出期间是否受外部信号影响说明:

  • 在输出期间,又接受到同步信号时,输出不会被打断重新开始计数;

  • 在突发计数输出期间,突发模式关闭,也会等到当前突发周期输出完成后再关闭,不会被强制打断恢复正常输出;

  • 突发模式的输出单波形为一个PWM周期,没有其他时钟源作为输入;

  • 突发模式的同步信号都是使用的同一个PWM时钟下的计数值,所以不会出现一个突发周期输出完成后没有下一个同步信号来的情况;

  • Brust sync信号源如下:

    #define SRPWM_BURST_START_SYNC_ZERO_EVT          ((uint8_t)(0x0001))
    #define SRPWM_BURST_START_SYNC_PRD_EVT           ((uint8_t)(0x0002))
    #define SRPWM_BURST_START_SYNC_SCMPA_UP_EVT      ((uint8_t)(0x0004))
    #define SRPWM_BURST_START_SYNC_SCMPB_UP_EVT      ((uint8_t)(0x0008))
    #define SRPWM_BURST_START_SYNC_SCMPA_DOWN_EVT    ((uint8_t)(0x0010))
    #define SRPWM_BURST_START_SYNC_SCMPB_DOWN_EVT    ((uint8_t)(0x0020))
    

Fault 信号处理

这个模块是对统一输入的Fault信号进行前级的滤波消隐等处理操作,6组FPP处理单元独立,每路fault信号进行单独处理;下图为Fault信号预处理简略流程,详细可以见用户手册,针对流程中的每个模块配置进行说明:

Fault信号预处理流程

信号沿选择

信号沿选择共4种方式 SRPWM_FPPFaultSigEgdeSel

  • SRPWM_FPP_FAULT_SIG_EGDE_SEL_DIRECT:直接输入,不做任何处理;

  • SRPWM_FPP_FAULT_SIG_EGDE_SEL_INVERT:对输入fault信号取反操作;

  • SRPWM_FPP_FAULT_SIG_EGDE_SEL_POS:对输入fault信号仅取上升沿;

  • SRPWM_FPP_FAULT_SIG_EGDE_SEL_NES:对输入fault信号仅取下降沿;

消隐功能

  • 针对输入的故障信号进行消隐,消隐是指在非消隐区间的fault信号无效;

  • fault信号消隐模式选择共三种 SRPWM_FPPBlankingMode

    • SRPWM_FPP_BLK_MODE_NONE:不做消隐处理,上级信号直接输出;

    • SRPWM_FPP_BLK_MODE_NORMAL:正常消隐模式,常规消隐是指在非消隐区间内,输入的fault信号完全无效,在消隐区间内产生的fault信号有效;

    • SRPWM_FPP_BLK_MODE_LATCH:锁存消隐模式,锁存是指将非消隐有效区间内的fault信号锁存,直到消隐区间内产生一次fault信号后失效,不管非消隐区间产生多少次fault信号,统一只锁存一次有效;

    Fault信号消隐处理
  • 消隐区间有效区间的配置, 消隐区间的开始和结束都通过触发事件产生,消隐信号开始和结束的消隐触发源从 所有事件集合 中选择,信号源为单选:

    小技巧

    如果选择消隐功能后,必须要配置消隐延迟使能,如果想在消隐信号触发后立即生效,将延时时间配置为0即可;

滤波功能

滤波功能在消隐之后,主要用于将意外脉冲信号过滤掉,防止出现误触发操作;使能滤波后,设置滤波窗口,当对应故障信号大于滤波窗口时,对应fault信号才正常输出;

Fault信号滤波处理
  • 每次滤波计数器清零之后只有第一个低于滤波阈值的脉冲信号会被滤掉,后续计数值后持续增加导致滤波不生效,需要使用 SRPWM_setADCTriggerSource() 函数进行清除。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 faultSigGroup 指定清除哪组fault信号的滤波计数值 (SRPWM_FPP_FAULT_SIG_GRPx)。

锁存功能

  • 经过消隐和滤波后到最后的信号输出有两种模式可选 SRPWM_FPPFaultMode

    • SRPWM_FPP_FAULT_MODE_NORMAL:常规fault配置输出;

    • SRPWM_FPP_FAULT_MODE_ONE_BLK_ONE_FAULT:一个消隐周期有效内只输出第一个有效的脉冲事件输出,该模式只能在消隐模式下有效;

锁存输出信号

  • 锁存功能的配置需要注意的功能实现有以下几项:

    • 锁存输入源:经过上述两个步骤的输出,锁存输入源可以选择滤波前的信号 SRPWM_FPP_COUNT_SIG_FILTER_BEFORE 还是滤波后的信号 SRPWM_FPP_COUNT_SIG_FILTER_BEHIND

    • fault信号锁存计数模式,每个fault信号的上升沿计数值增加一次,当fault计数值达到配置阈值后锁存一次故障信号,后续的fault信号不再响应,直到fault 计数值被清零(清零事件:周期事件、过零事件或者软件清除事件)才会再开始下一次fault进行锁存计数;

    Fault信号计数锁存处理
  • 输出的锁存信号有两个来源:消隐部分的消隐锁存输出通路和上面的次数计数并产生相应事件;两者可以或上输出也可以单个输出;

下表为fault源和信号输出的对应关系,方便项目前期的方案制定:

XBAR输入通路

Fault信号预处理组

Fault实时事件

Fault上升沿事件(脉冲)

Fault锁存事件

SRPWM0~3

INXB_OUT0

SRPWM_FPP_FAULT_SIG_GRP0

FPP_FAULT_REAL0

FPP_FAULT_POS0

FPP_FAULT_LATCH0

INXB_OUT1

SRPWM_FPP_FAULT_SIG_GRP1

FPP_FAULT_REAL1

FPP_FAULT_POS1

FPP_FAULT_LATCH1

PFXB_OUT0

SRPWM_FPP_FAULT_SIG_GRP2

FPP_FAULT_REAL2

FPP_FAULT_POS2

FPP_FAULT_LATCH2

PFXB_OUT1

SRPWM_FPP_FAULT_SIG_GRP3

FPP_FAULT_REAL3

FPP_FAULT_POS3

FPP_FAULT_LATCH3

PFXB_OUT2

SRPWM_FPP_FAULT_SIG_GRP4

FPP_FAULT_REAL4

FPP_FAULT_LATCH4

PFXB_OUT3

SRPWM_FPP_FAULT_SIG_GRP5

FPP_FAULT_REAL5

FPP_FAULT_LATCH5

SRPWM4~7

INXB_OUT2

SRPWM_FPP_FAULT_SIG_GRP0

FPP_FAULT_REAL0

FPP_FAULT_POS0

FPP_FAULT_LATCH0

INXB_OUT3

SRPWM_FPP_FAULT_SIG_GRP1

FPP_FAULT_REAL1

FPP_FAULT_POS1

FPP_FAULT_LATCH1

PFXB_OUT4

SRPWM_FPP_FAULT_SIG_GRP2

FPP_FAULT_REAL2

FPP_FAULT_POS2

FPP_FAULT_LATCH2

PFXB_OUT5

SRPWM_FPP_FAULT_SIG_GRP3

FPP_FAULT_REAL3

FPP_FAULT_POS3

FPP_FAULT_LATCH3

PFXB_OUT6

SRPWM_FPP_FAULT_SIG_GRP4

FPP_FAULT_REAL4

FPP_FAULT_LATCH4

PFXB_OUT7

SRPWM_FPP_FAULT_SIG_GRP5

FPP_FAULT_REAL5

FPP_FAULT_LATCH5

SRPWM8~11

INXB_OUT4

SRPWM_FPP_FAULT_SIG_GRP0

FPP_FAULT_REAL0

FPP_FAULT_POS0

FPP_FAULT_LATCH0

INXB_OUT5

SRPWM_FPP_FAULT_SIG_GRP1

FPP_FAULT_REAL1

FPP_FAULT_POS1

FPP_FAULT_LATCH1

PFXB_OUT8

SRPWM_FPP_FAULT_SIG_GRP2

FPP_FAULT_REAL2

FPP_FAULT_POS2

FPP_FAULT_LATCH2

PFXB_OUT9

SRPWM_FPP_FAULT_SIG_GRP3

FPP_FAULT_REAL3

FPP_FAULT_POS3

FPP_FAULT_LATCH3

PFXB_OUT10

SRPWM_FPP_FAULT_SIG_GRP4

FPP_FAULT_REAL4

FPP_FAULT_LATCH4

PFXB_OUT11

SRPWM_FPP_FAULT_SIG_GRP5

FPP_FAULT_REAL5

FPP_FAULT_LATCH5

谷值开关功能配置

  • 谷值开关技术可以用于减少开关损耗,控制PWM的开启时机;具体的事件源流程如下:

Valley信号输入和输出
  • 谷值功能模块每个SRPWM通路只有1组Valley模块,输出的信号也只有一个,所以对应的 FPP_FAULT_POSx 信号输出选择哪一个需要进行配置选择;

  • 谷值配置内部流程,信号从输入到输出需要经过哪些处理过程:

    Valley信号处理流程
    • 输出分为延迟输出和不延迟输出两个部分,延迟输出的延迟时钟个数分为两个来源:

      1. 直接使用软件配置的延迟时间;

      2. 软件的延迟时间 加上两个跳变沿的间隔计数时钟数,(下图中的计数就是加上跳变沿的时钟数作为延迟时钟 SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_AND_SW_DELAY);

      SRPWM_VALLEY_DELAY_MODE_SW_DELAY
      SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_AND_SW_DELAY
      SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE2_AND_SW_DELAY
      SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE4_AND_SW_DELAY
      SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE8_AND_SW_DELAY
      SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE16_AND_SW_DELAY
      
  • 下面为选择某一路输入对应配置的举例:

    Valley信号配置举例
  • Valley功能的配置可以通过 SRPWM_initValley() 函数进行初始化。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 init Valley初始化结构体配置,包含上述流程中的相关参数。

  • 初始化完成后,需要使用 SRPWM_enableValley() 函数进行使能。

  • 谷值检测和捕获的触发信号源:

SRPWM_VALLEY_TRIGGER_SW
SRPWM_VALLEY_TRIGGER_ZERO
SRPWM_VALLEY_TRIGGER_PERIOD
SRPWM_VALLEY_TRIGGER_ZERO_OR_PERIOD
SRPWM_VALLEY_TRIGGER_SCMPC_UP
SRPWM_VALLEY_TRIGGER_SCMPC_DOWN
SRPWM_VALLEY_TRIGGER_SCMPD_UP
SRPWM_VALLEY_TRIGGER_SCMPD_DOWN
SRPWM_VALLEY_TRIGGER_FAULT_POS0
SRPWM_VALLEY_TRIGGER_FAULT_POS1
SRPWM_VALLEY_TRIGGER_FAULT_POS2
SRPWM_VALLEY_TRIGGER_FAULT_POS3

前级保护配置

  • 前级保护信号的输入来自故障信号处理的输出信号,保护方式分为三种模式,并且A/B路的保护模式独立配置;但是如果选择 fastProtectMask 模式使能的话,所有的信号通路都会使能异步信号通路;

  • 前级保护路径总得分3种输出通路:

    前级保护路径
    • 图中通路1是同步模式下前级保护PWM输出;

    • 图中通路2不做前级保护,PWM信号直接输出到下一级;

    • 图中通路3是在异步模式下快速输出,需要使能fastmode,仅输出动作指示信号,与通路2输出的信号在后级保护模块控制PWM动作;

    • 前级保护生效时输出4种状态 SRPWM_PreprotectState

      SRPWM_PREP_STATE_HIZ
      SRPWM_PREP_STATE_CLR
      SRPWM_PREP_STATE_SET
      SRPWM_PREP_STATE_INVERT
      
  • 下面针对三种模式下的第一种通路做配置和输出说明,另外两种通路输出不做细讲。

CBC模式

CBC输出通路1

  • CBC保护模式:fault信号触发有效时,立即将PWM输出置为配置的保护状态,故障信号解除时,保护动作并不立即撤销,需要等待同步事件触发后再撤销,同步事件源从 所有事件集合 中选择;

  • 示例保护A路输出状态,CBC模式下在该初始化配置下输出波形:

    initPREPStruct->a.cbcFaultProtectSig     = SRPWM_PREP_SIG_FAULT_REAL0;
    initPREPStruct->a.cbcFaultProtectState   = SRPWM_PREP_STATE_CLR;
    initPREPStruct->a.cbcEndSyncSel          = SRPWM_ALLEVT_PRD_EVT;
    initPREPStruct->a.setHighDly             = 0;
    initPREPStruct->a.setLowDly              = 10;
    
    对应配置下CBC输出

OS模式

  • OS(One-Shot)保护模式:可配置保护的起始和结束时刻。保护时刻同步源从 所有事件集合 中选择;

    • 若使能了保护的起始和结束功能,PWM进入保护和退出保护状态,需要根据起始和结束同步信号以及异常信号的到来和消失共同决定;

      initPREPStruct->a.osFaultProtectSig      = SRPWM_PREP_SIG_FAULT_LATCH0;
      initPREPStruct->a.osFaultProtectState    = SRPWM_PREP_STATE_CLR;
      initPREPStruct->a.osStartSyncEn          = ENABLE;
      initPREPStruct->a.osEndSyncEn            = ENABLE;
      initPREPStruct->a.osStartSyncSel         = SRPWM_ALLEVT_ZERO_EVT;
      initPREPStruct->a.osEndSyncSel           = SRPWM_ALLEVT_CMPB_DOWN_EVT;
      initPREPStruct->a.setHighDly             = 0;
      initPREPStruct->a.setLowDly              = 0;
      
    对应配置下OS模式输出
    • 若未使能保护的起始和结束功能,异常信号到来时,立即保护,异常信号消失时,立即退出保护,该模式下与UNRES模式下输出一致,但是不能没有最低延时(最小输出脉宽限制);

      initPREPStruct->a.osFaultProtectSig      = SRPWM_PREP_SIG_FAULT_LATCH0;
      initPREPStruct->a.osFaultProtectState    = SRPWM_PREP_STATE_CLR;
      initPREPStruct->a.osStartSyncEn          = DISABLE;
      initPREPStruct->a.osEndSyncEn            = DISABLE;
      initPREPStruct->a.osStartSyncSel         = SRPWM_ALLEVT_ZERO_EVT;
      initPREPStruct->a.osEndSyncSel           = SRPWM_ALLEVT_CMPB_DOWN_EVT;
      initPREPStruct->a.setHighDly             = 0;
      initPREPStruct->a.setLowDly              = 0;
      
    对应配置下OS模式输出
    • 若仅使能保护的起始功能,异常信号和起始信号均到来时,进入保护状态,异常信号消失时,立即退出保护;

      initPREPStruct->a.osFaultProtectSig      = SRPWM_PREP_SIG_FAULT_REAL0;
      initPREPStruct->a.osFaultProtectState    = SRPWM_PREP_STATE_CLR;
      initPREPStruct->a.osStartSyncEn          = ENABLE;
      initPREPStruct->a.osEndSyncEn            = DISABLE;
      initPREPStruct->a.osStartSyncSel         = SRPWM_ALLEVT_ZERO_EVT;
      initPREPStruct->a.osEndSyncSel           = SRPWM_ALLEVT_CMPB_DOWN_EVT;
      initPREPStruct->a.setHighDly             = 0;
      initPREPStruct->a.setLowDly              = 0;
      
    对应配置下OS模式输出
    • 若仅使能保护的结束功能,异常信号到来时,立即保护,异常信号和结束信号均到来时,退出保护状态;

      initPREPStruct->a.osFaultProtectSig      = SRPWM_PREP_SIG_FAULT_REAL0;
      initPREPStruct->a.osFaultProtectState    = SRPWM_PREP_STATE_CLR;
      initPREPStruct->a.osStartSyncEn          = DISABLE;
      initPREPStruct->a.osEndSyncEn            = ENABLE;
      initPREPStruct->a.osStartSyncSel         = SRPWM_ALLEVT_ZERO_EVT;
      initPREPStruct->a.osEndSyncSel           = SRPWM_ALLEVT_SW_EVT;
      initPREPStruct->a.setHighDly             = 0;
      initPREPStruct->a.setLowDly              = 0;
      
    对应配置下OS模式输出

UNRES模式

  • UNRES(无约束)立即保护模式:异常信号到来时,立即保护;异常信号消失时,立即退出保护。故障事件消除的最小保护时间需要大于等于最短持续时间,这是为了防止中间出现预期以外的窄脉冲误触发事件;

  • 示例保护A路输出状态,初始化配置如下:

    initPREPStruct->a.unresFaultProtectSig     = SRPWM_PREP_SIG_FAULT_REAL0;
    initPREPStruct->a.unresFaultProtectState   = SRPWM_PREP_STATE_CLR;
    initPREPStruct->a.setHighDly               = 0;
    initPREPStruct->a.setLowDly                = 0;
    
    • SRPWM模块通道无约束保护模式的最小保护宽度可以通过 SRPWM_setPREPUnresMinTime() 函数进行配置。

      • 参数 SRPWMx 指定SRPWM模块的通道号。

      • 参数 min_time 指定无约束模式下保护状态持续最小脉冲宽度。

    对应配置下无约束输出

次级保护配置

  • 次级保护功能可以在不需要时钟驱动的条件下对 PWM 波信号的快速故障保护,次级保护的输入来源分别来自两个部分:

    • 一个是前级保护模块中输出的PREPPROTECT保护动作指示,该动作指示输出直接作用与次级保护的PWM最后输出;

    • 一个是从前一级高精度模块输出的信号,进行次级保护区域进行处理;

  • 从高精度输出的信号在次级保护中可以经过以下处理的过程,最后输出的A/B两路输出的状态可以受三个信号来源的影响:

    次级保护流程

    最后的输出信号是三种输出状态组合的输出,根据事件状态优先级决定最后的PWM输出;

PSTP逻辑输出参数示例

  • 在PSTP中可以配置互斥模式输出,可以用于防止最后的输出信号出现A/B路同时打开的情况;

    • 互斥状态判断共有4种方式选择,可以在 SRPWMCOM_SRPWM_MutexCondition 结构体中选择;

    • 符合互斥状态的环境下A/B路的输出状态共4种可配:不动作、输出1、输出0、输出高阻;

  • 这里以PSTP保护的过程对信号需要进行的处理进行举例:

    initPSTPStruct->a.invertEn       = ENABLE;
    initPSTPStruct->b.invertEn       = DISABLE;
    initPSTPStruct->swapSyncEn       = DISABLE;
    initPSTPStruct->swapEn           = ENABLE;
    initPSTPStruct->mutexConditionAB = SRPWMCOM_A_HIGH_B_HIGH;
    initPSTPStruct->mutexEn          = ENABLE;
    initPSTPStruct->a.mutexOutState  = SRPWM_PSTP_MUTEX_OUTSTATE_CLEAR;
    initPSTPStruct->b.mutexOutState  = SRPWM_PSTP_MUTEX_OUTSTATE_CLEAR;
    
对应配置输出波形说明
  • 输出事件的优先级除了和事件优先级有关以外,还和输出状态有关,保护动作(除无动作外)优先级为: 置高阻动作(软件强制、故障保护、互斥保护中的任何一个高阻动作)> 软件强制置0 > 软件强制置1 > 故障保护或互斥保护置0 > 故障保护或互斥保护置1 > 故障保护取反 > 无强制动作;

软件强制输出动作配置

  • 软件强制输出状态配置方法:SRPWM模块通道的 cfg_pstp_sft_force 信号的的触发可以通过 SRPWMCOM_forcePSTPOutState() 函数进行配置。

    • 参数 channel 指定SRPWM模块的通道号,哪个SRPWM模块就选择哪个通道。

    • 参数 pwmAB 指定是A路输出还是B路输出 SRPWM_ASRPWM_B

    • 参数 state 指定对应路的PWM强制输出状态,共四种状态,在 SRPWM_PSTPOutState 结构体中选择。

HRPWM(高精度调整单元)

  • 高精度调整单元处于前级保护和次级保护之间,下图为对 高精度处理通路流程,理清信号输入和输出处理通路:

HRPWM模块流程

Bypass通路

  • 通路1为HRPWM bypass通路,从前级输入的信号通过Filter滤波模块后绕开DLL模块直接输出到后级:

    1. Filter滤波部分也可以直接选择不使能,此时前级信号直接输出到后级,信号输出不做延迟;

    2. FILter滤波使能后,但是滤波窗口配置为0,滤波输出信号延迟1个SRPWM 工作周期;

    3. Filter滤波使能后,滤波窗口配置为N,滤波输出信号延迟N+1个SRPWM 工作周期,滤波输出脉冲PWM波脉宽对比输入减少N个SRPWM 工作周期;

    • SRPWM模块通道旁路使能的选择可以通过 SRPWM_enableHRPWMBypass() 函数进行配置。

    • SRPWM模块通道滤波使能的选择可以通过 SRPWM_enableHRPWMFilter() 函数进行配置。

    • SRPWM模块通道滤波使能后对于滤波窗口的宽度可以通过 SRPWM_setHRPWMFilterWidth() 函数进行配置。

      • 参数 SRPWMx 指定SRPWM模块的通道号。

      • 参数 width 指定滤波窗口宽度。

  • 三种滤波模式下输入和输出对比图:

滤波输出
  • 滤波功能的使用需要注意以下几点:

    1. 在使用fastfault模式的情况下,不建议使能滤波功能;

    2. 滤波功能可以用来限制输入给DLL的最小脉冲宽度限制,避免由于窄脉冲波形输入DLL导致不可预见性问题;

高精度调整通路(HRPWM)

  • 通路2为高精度使能配置,高精度可配参数调整部分支持对PWM周期、占空比、死区延迟;将高精度周期参数调整、高精度占空比调整参数和高精度死区参数进行组合运算 产生上边沿和下降沿的调整参数,并且将计算得到的整数倍调整值对PWM信号进行整数倍的上升沿河下降沿调整,将计算得到的小数调整值送往DLL进行调整输出;

  • 使用高精度调整通路,需要注意的事项:

    1. 仅SRPWM0、SRPWM1、SRPWM2、SRPWM3模块的A/B路可以使用HRPWM功能,配置HRPWM输出使能有效;

    2. 要使用HRPWM部分,需要确保SRPWM模块的时钟在200Mhz,高精度微调步长为 (1/200Mhz)/32 = 156.25ps ;

    3. 只有主比较器(CMPA/CMPB/CMPC/CMPD)的值可以进行高精度调整配置;

    4. 并且在输出事件上选用固定的比较值,PWMA路输出使用CMPA产生上升沿事件、使用CMPB产生下降沿事件;PWMB路输出使用CMPC产生上升沿事件、使用CMPD产生下降沿事件;

  • 使能高精度调整需要使能的配置项:

    1. 使用 SRPWM_disableHRPWMBypass() 函数使PWM输出经过高精度调整通路。

    2. 使用 SRPWM_enableHRPWMDLL() 函数使能对应通路的DLL控制通路。

    3. 使用 SRPWMCOM_enableHR() 函数使能对应通路的高精度输出。

  • 高精度调整通路到输出计算方式:高精度调整能配置参数包括周期值、比较值和死区延时值,主要针对在死区模块部分配置选择使用哪个寄存器的高精度配置值进行最后的DLL延迟计算;

高精度调整计算值通路讲解

高精度周期值参数调整

  • 周期值的高精度调整参数,高精度数据宽度为5bit,配置范围为0~31;具体计算可见用户手册中的 19.4.9.4 SRPWM波周期值计算 章节;其中包块两种计数模式下关于周期值的计算方式。

高精度占空比参数调整

  • 高精度占空比的调整包括压缩(上升沿延迟)高脉冲宽度或扩展(下降沿延迟)高脉冲宽度,高精度数据宽度为5bit,配置范围为0~31;

  • 需要根据死区配置通路选择,选择最后计算延迟的计数值:

    • s0a = 0 A路死区输入选择PWMA,A路的占空比参数来自于CMPA和CMPB;

      s3a ≠ 2 : A路的上升沿延迟时间来自于CMPA_HR, A路下降沿的延迟时间来自CMPB_HR;

      s3a = 2 : A路的上升沿延迟时间来自于CMPB_HR, A路下降沿的延迟时间来自CMPA_HR;

    • s0a = 1 A路死区输入选择PWMB,A路的占空比参数来自于CMPC和CMPD;

      s3a ≠ 2 : A路的上升沿延迟时间来自于CMPC_HR, A路下降沿的延迟时间来自CMPD_HR;

      s3a = 2 : A路的上升沿延迟时间来自于CMPD_HR, A路下降沿的延迟时间来自CMPC_HR;

    • s0b = 0 B路死区输入选择PWMB,A路的占空比参数来自于CMPC和CMPD;

      s3b ≠ 2 : B路的上升沿延迟时间来自于CMPC_HR, A路下降沿的延迟时间来自CMPD_HR;

      s3b = 2 : B路的上升沿延迟时间来自于CMPD_HR, A路下降沿的延迟时间来自CMPC_HR;

    • s0b = 1 B路死区输入选择PWMA,A路的占空比参数来自于CMPA和CMPB;

      s3b ≠ 2 : B路的上升沿延迟时间来自于CMPA_HR, A路下降沿的延迟时间来自CMPB_HR;

      s3b = 2 : B路的上升沿延迟时间来自于CMPB_HR, A路下降沿的延迟时间来自CMPA_HR;

  • 占空比高精度配置示例: - 常规占空比高精度配置,默认配置下,仅使能高精度模式输出中关于压缩和扩展值的计算使用的哪个高精度寄存器值。

占空比高精度示例

高精度死区延迟参数调整

  • 高精度死区参数的调整包括上升沿延迟或下降沿延迟宽度,高精度数据宽度为5bit,配置范围为0~31;

  • 根据死区配置通路选择,选择最后计算延迟的计数值:

    • s3a = 0 A路输出不做死区配置,所有死区相关延迟参数配置值无效;

    • s3a ≠ 0 A路输出死区配置有效;

      s1a = 0 : A路的上升沿延迟时间配置无效;

      s1a = 1 : A路的高精度上升沿延迟时间来自于寄存器DB_APOS_DLY的低5bit,可以在初始化时进行配置,也可以使用单独的函数 SRPWM_setDBHR() 函数进行配置。

      s2a = 0 : A路的下降沿延迟时间配置无效;

      s2a = 1 : A路的高精度下降沿延迟时间来自于寄存器DB_ANEG_DLY的低5bit,可以在初始化时进行配置,也可以使用单独的函数 SRPWM_setDBHR() 函数进行配置。

    • s3b = 0 B路输出不做死区配置,所有死区相关延迟参数配置值无效;

    • s3b ≠ 0 B路输出输出死区配置有效;

      s1b = 0 : B路的上升沿延迟时间配置无效;

      s1b = 1 : B路的高精度上升沿延迟时间来自于寄存器DB_BPOS_DLY的低5bit,可以在初始化时进行配置,也可以使用单独的函数 SRPWM_setDBHR() 函数进行配置。

      s2b = 0 : B路的下降沿延迟时间配置无效;

      s2b = 1 : B路的高精度下降沿延迟时间来自于寄存器DB_BNEG_DLY的低5bit,可以在初始化时进行配置,也可以使用单独的函数 SRPWM_setDBHR() 函数进行配置。

  • SRPWM模块死区高精度参数可以通过 SRPWM_setDBHR() 函数进行配置。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 edge 指定需要配置哪一路的高精度延迟时间。

    • 参数 deadTimeHR 指定产生ADC触发信号的事件源。

  • 死区高精度配置示例:

    • 常规死区高精度配置,使能高精度模式输出中关于压缩和扩展值的计算使用的哪个高精度比较值寄存器值,并同时加上死区延迟参数。

死区高精度示例

参数加载方式

参数加载方式主要用在模块中七种关键参数(周期值、相位值、主比较器值、从比较器值、PWM动作矩阵值、死区调整值、Burst发波参数)的加载模式,主要分为立即加载模式和影子加载模式;除列举出的七种关键参数,其他参数均为立即加载模式。

立即加载模式

  • 立即加载模式下,表示对应值配置后立即生效,就是立即写到活动寄存器中;此时的数据为最新配置的数据。

  • 但是在当前模式下容易导致比较值、周期值等配置值被随意修改,导致输出波形异常。

影子加载模式

影子加载模式分通道内的影子加载和通道间的影子加载模式

通道内同步影子加载

这是常规的影子加载方式,通道内影子加载配置需要在对该参数配置时,使能影子加载功能(统一命名都是ShadowLoadEn后缀),并配置影子加载同步触发信号(统一命名ShadowLoadSel,触发信号源选择 同步加载触发事件集合 ),修改的参数值配置先写入影子寄存器值,然后在同步触发信号来时,再从影子寄存器加载到活动寄存器中生效;

  • 配置为向上计数模式,并且使能影子加载模式,同步加载触发事件选择周期更新事件:

变周期加载示例

通道间同步影子加载

通道间的同步加载模式是指同时触发多个SRPWM的多个参数值,这个相当于一个门控信号,仅在这些通道接收到一次配置指令触发后,才能开始响应对应参数配置的同步加载触发事件,否则即使存在同步加载触发事件,也不会生效;

通道间更新流程
  • 需要在配置影子加载模式下,增加 SRPWM_enableShadowMultiRegSync() 函数配置。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 regMask 指定哪几个配置寄存器需要同步更新使能,Mask_OR 方式选择。

      SRPWM_SHD_MULTI_SYNC_PRD
      SRPWM_SHD_MULTI_SYNC_PHASE
      SRPWM_SHD_MULTI_SYNC_CMP
      SRPWM_SHD_MULTI_SYNC_SCMP
      SRPWM_SHD_MULTI_SYNC_PG
      SRPWM_SHD_MULTI_SYNC_DB
      SRPWM_SHD_MULTI_SYNC_BURST
      
  • 这里的通道间的影子加载事件只有SRPWMCOM模块中的软件强制触发事件源有效。上述配置完成后,通过 SRPWMCOM_forceMultiChannelShadow() 函数配置。

    • 参数 channelMask 指定SRPWM模块的通道,Mask_OR 方式选择,共 12 个通道可配。

  • 配置向上计数模式,使能配置周期值/主比较器值参数选择影子加载模式,触发事件源统一选择周期事件同步加载;同步使能通道间的影子加载模式 SRPWM_SHD_MULTI_SYNC_PRD|SRPWM_SHD_MULTI_SYNC_CMP

    变周期比较值加载示例
  • 注意事项:通道间的同步加载,实际加载点还是每个参数配置的对应加载触发事件的时间点,软件强制触发更新事件,只是说明在这次软件强制触发更新后的第一个同步加载触发事件有效,第一个生效后,后面如果没有继续的软件强制更新信号后,会忽略同步加载触发信号;

  • 通道间的同步加载模式还可以进行对齐更新,对齐更新动作需要在软件强制更新事件后,同步加载触发事件也需要等下一个周期开始后,再准备响应同步加载事件;这个需要通过 SRPWM_enableMultiShadowWaitPrd() 函数配置。

    • 对齐更新模式流程:

    1. 等待SRPWMCOM中的软件更新后;

    2. SRPWMx计数周期等到下一个周期开始(zero_evt)事件之后;

    3. 第一次同步加载触发事件生效,影子值加载到活动寄存器;

    4. 后续的同步加载触发事件不生效,继续等待下一次强制软件更新事件。

通道间的互斥信号

通道间的互斥信号判断共 12 组,统一放在SRPWMCOM模块中,信号来源于 12 个SRPWMx中的输出信号,形成互斥判断指示信号后,分别送回 12 个SRPWMx通道中。这些 通道间的互斥标志可与通道内的互斥判断组合得到每一个通道的互斥检测结果 。下图为每组互斥信号的判断流程:

通道间互斥判断示例
  • 12 组互斥信号的输出状态可以在屏蔽中或上输出到某个SRPWM中,根据配置流程可以通过以下几个函数进行:

    1. 使用 SRPWMCOM_initMutex() 函数配置全局互斥初始化,如果每组互斥状态来源一致可以或配置一次配置多组,如果不同则需要每次单独进行初始化配置;

    • 参数 init 初始化参数结构体.

    initStruct->mutexResultGroupMask = SRPWM_MUTEX_RESULT_GRP_0;      //互斥通道组选择,可以mask_or
    initStruct->mutexSig0            = SRPWMCOM_MUTEX_SIG_SRPWM0_A;   //互斥通道信号0源选择
    initStruct->mutexSig1            = SRPWMCOM_MUTEX_SIG_SRPWM0_A;   //互斥通道信号1源选择
    initStruct->mutexCondition       = SRPWMCOM_A_LOW_B_LOW;          //互斥通道状态判断条件
    
    1. 使用 SRPWMCOM_enableMutex() 函数使能对应的互斥信号组使能,每组互斥信号组必须使能后才有效,这是一个单独的寄存器可以同时使能多个互斥通道组。

    • 参数 mutexResultGroupMask 使能哪组互斥通道,可以Mask_OR配置。

    SRPWM_MUTEX_RESULT_GRP_0
    SRPWM_MUTEX_RESULT_GRP_1
    SRPWM_MUTEX_RESULT_GRP_2
    SRPWM_MUTEX_RESULT_GRP_3
    SRPWM_MUTEX_RESULT_GRP_4
    SRPWM_MUTEX_RESULT_GRP_5
    SRPWM_MUTEX_RESULT_GRP_6
    SRPWM_MUTEX_RESULT_GRP_7
    SRPWM_MUTEX_RESULT_GRP_8
    SRPWM_MUTEX_RESULT_GRP_9
    SRPWM_MUTEX_RESULT_GRP_10
    SRPWM_MUTEX_RESULT_GRP_11
    SRPWM_MUTEX_RESULT_GRP_ALL
    
    1. 使用 SRPWMCOM_disableMutexMsk() 函数使能互斥通道组输出到哪个SRPWM中,即取消对应某个SRPWM Channel输出中对对应互斥通道组输出信号的屏蔽,如果某个SRPWM需要的互斥信号来自于多个互斥通道组,可以多次调用对应函数。

    • 参数 channel 指定取消屏蔽的SRPWM模块的通道。

    • 参数 mutexResultGroupMask 指定取消屏蔽的互斥通道组。

  • 这里输出到每组SRPWMx的互斥信号为指示信号,仅用于指示状态,需要配置通道内的互斥功能使能,才能使对应状态能作用到输出上,比如输出到SRPWM0的互斥信号来自于 SRPWM_MUTEX_RESULT_GRP_0SRPWM_MUTEX_RESULT_GRP_1SRPWM_MUTEX_RESULT_GRP_5 三组互斥通道组。 那么最后输出到SRPWM0的互斥信号为这三组互斥判断的结果做或运算,形成最后的互斥标志, 或上的互斥标志再与通道内的互斥标志做或运算作用到输出。

  • 通道间的两路信号做互斥保护,互斥信号进行了锁存,需要软件清除才能退出保护动作,回到正常输出状态,也就是说互斥条件成立,立即进行保护动作,互斥条件消失,需要软件配置 SRPWMCOM_clearMutexStatus() 去清除互斥保护动作。

小技巧

ET6001项目中通道间的互斥和通道内的互斥作用输出存在差异:通道内的互斥保护,在互斥条件成立时,立即进行保护动作,互斥条件消失时,立即退出保护动作,不需要软件清除;而通道间的互斥保护,在互斥条件成立时,立即进行保护动作,互斥条件消失时,需要软件清除对应组的互斥标志才能退出保护动作,等待下一个互斥状态。

广播功能

SRPWM模块的广播功能是指一次可同时配置多个SRPWM组,可以看成一个全局加载配置。传统模式下每组SRPWM配置需要单独进行,如果使用广播加载,可以一次配置多组SRPWM模块;广播加载功能本身不是使用SRPWM外设的寄存器实现的,采用SYSC外设进行实现。

广播配置的实现

广播功能的配置需要通过 SRPWM_GLOBAL 组进行配置,配置实现流程为:

  1. 使用 SRPWMCOM_enableBroadcast() 函数先选择需要进行广播配置的SRPWM,这个函数是对SYSC寄存器进行配置,这里使能后后续广播配置才会加载到对应的SRPWM通道中;

  • 参数 channelMask 使能哪组通道进行广播配置,可以Mask_OR配置。

SRPWM_CHANNEL_0
SRPWM_CHANNEL_1
SRPWM_CHANNEL_2
SRPWM_CHANNEL_3
SRPWM_CHANNEL_4
SRPWM_CHANNEL_5
SRPWM_CHANNEL_6
SRPWM_CHANNEL_7
SRPWM_CHANNEL_8
SRPWM_CHANNEL_9
SRPWM_CHANNEL_10
SRPWM_CHANNEL_11
SRPWM_CHANNEL_ALL
  1. 使用 SRPWM_GLOBAL 作为SRPWM通道组替代原有的SRPWMx,进行时基、比较等常规配置流程;

  2. 每个SRPWM子组的配置都可以使用广播功能进行,但是关于 SRPWMCOM的相关寄存器配置 需要单独进行,在使用广播配置多组SRPWM模块之后,如果要进行输出,仍需使用 SRPWMCOM_enable() 函数进行配置;

  3. 这种方式的配置对于后期的变占空比或者周期等更新配置,可以通过广播功能进行一次配置多个SRPWM模块,减少代码量同时减少配置时间,加快环路频率;

事件输出软件配置

触发/同步/Blanking 信号

ADC触发信号

  • SRPWM 模块送往 ADC 的触发信号从 输出事件可选同步集合 中选择,支持 共 24 种事件源。

  • SRPWM模块每个通道可以选择 2 路 ADC 触发信号输出 SOC_ASOC_B

  • SRPWMM模块 12 个通道总共可以产生 12 x2 路 ADC 触发信号,最终选出 12 路送往 ADC。

  • SRPWM模块通道的ADC触发信号的选择可以通过 SRPWM_setADCTriggerSource() 函数进行配置。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 adcSOCType 指定ADC触发信号的选择。

    • 参数 socSource 指定产生ADC触发信号的事件源。

  • SRPWM模块 12 x2 路ADC 触发信号选出 12 路输出通过 SRPWMCOM_configADCTriggerMux() 函数进行配置。

    • 参数 SRPWMCOM_ADCTrigger 指定产生 12 x2 路 ADC 触发信号。

    • 参数 SRPWM_ADCTriggerNumber 指定送往ADC模块的输出触发信号编号。

小技巧

参数SRPWM_ADCTriggerNumber与ADC模块初始化结构体 ADC_InitTypeDef 成员变量 trigger 一一对应。

1  /* 初始化ADC */
2  ADC_initStruct(&stInit);
3  stInit.virtualChannelMask = ADC_VIRTUAL_CHANNEL0;
4  stInit.triggerMode           = ADC_TRIGGER_MODE_CONTINUOUS;
5  stInit.trigger            = ADC_TRIGGER_SRPWM_TRIGGER_NUM0;
6  ADC_init(ADC0, &stInit);

DAC同步/ACMP同步/ACMPBlanking 信号

  • SRPWM 模块送往 BDAC/ACMP 的触发信号从 输出事件可选同步集合 中选择,支持 共 24 种事件源。

  • SRPWM模块每个通道可以选择 1 路 DAC 触发信号输出。

  • SRPWMM模块 12 个通道总共可以产生 12 路 BDAC 触发信号,最终选出 2 路分别送往送往2个DAC模块。

  • SRPWM模块通道的ADC触发信号的选择可以通过 SRPWM_setDACTrigger() 函数进行配置。

    • 参数 channel 指定SRPWM模块的通道号。

    • 参数 srcEvent 指定产生ADC触发信号的事件源。

    • 参数 dstDacNumber 指定输出的DAC目的模块号。

  • SRPWM模块每个通道可以选择 1 路 ACMP 触发信号输出。

  • SRPWMM模块 12 个通道总共可以产生 12 路 BDAC 触发信号,最终选出 8 路分别送往送往8个ACMP模块DAC子模块。

  • SRPWM模块的ACMP触发信号的选择可以通过 SRPWM_setACMPTrigger() 函数进行配置。

    • 参数 channel 指定SRPWM模块的通道号。

    • 参数 srcEvent 指定产生ADC触发信号的事件源。

    • 参数 dstAcmpNumber 指定输出的ACMP目的模块号。

  • SRPWM模块每个通道可以选择 1 路 ACMP Blanking信号输出。

  • SRPWMM模块 12 个通道总共可以产生 12 路 BDAC Blanking信号,最终选出 8 路分别送往送往8个ACMP模块DAC子模块。

  • SRPWM模块的ACMP Blanking信号的选择可以通过 SRPWM_setACMPBlankingTrigger() 函数进行配置。

    • 参数 channel 指定SRPWM模块的通道号。

    • 参数 srcEvent 指定产生ADC触发信号的事件源。

    • 参数 dstAcmpNumber 指定输出的ACMP目的模块号。

同步信号

  • SRPWM 模块 每个通道可以从 所有事件集合 中选择 一个事件作为同步信号输出。

  • SRPWM 模块 每个通道输出 2 路同步信号, 分别是 sync_out0sync_out1

  • SRPWM 模块 每个通道选择同步信号的输出可以通过 SRPWM_selectSyncOut() 函数进行配置。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 srcSync 指定产生同步信号的事件源。

    • 参数 dstSyncTypeOut 指定输出信号类型(sync_out0sync_out1)。

  • SRPWM 模块 12 个通道输出的 12 对 sync_out[1:0] 信号在 SRPWMCOM_PROC 模块中进行交叉互联处理。可通过 SRPWMCOM_selectSyncToSRPWM() 函数进行配置。

    • 参数 srcSync 指定 12 x2 路sync_out信号源中的一个。

    • 参数 dstSyncTypeIn 指定目的通道的输入信号类型(sync_in0sync_in1)。

    • 参数 dstChannel 指定目的通道号。

  • SRPWM 模块 12 个通道输出的 12 对 sync_out[1:0] 信号可以选出 4路送往 XBAR 模块, 可通过 SRPWMCOM_selectSyncToXBAR() 函数进行配置。

    • 参数 srcSync 指定 12 x2 路sync_out信号源中的一个。

    • 参数 dstXbarNumber 指定目的XBAR通道号(0~3)。

  • SRPWM 模块 12 个通道输出的 12 路 sync_out0 信号可以一一对应直接送往ETIMER模块的 12 个通道。

中断信号

事件中断产生

DMA请求信号

  • SRPWM 模块 每个通道可以产生1bit DMA请求信号, 最终选出4bit 送往 DMAMUX 模块, 可通过函数

  • DMA触发同步信号的产生,来源于 输出事件可选同步集合 中的一个或多个, 可通过函数 SRPWMCOM_enableDMA() 进行配置。

    • 参数 dmaChannel 指定SRPWM模块DMA物理通道号。

    • 参数 channel 指定产生DMA请求的PWM通道。

  • DMA触发信号的倍频和分频操作可以通过 SRPWM_enableDMAFreqDiv()SRPWM_enableDMAFreqMulti() 函数进行配置。

    • 参数 SRPWMx 指定SRPWM模块的通道号。

    • 参数 outEventMask 指定产生DMA请求的输出事件源。

    • 参数 div 指定DMA请求分频系数。

其他相关配置函数:

事件类型说明:

输出事件可选同步集合包含以下信号:

SRPWM_OUTEVT_SYNC_ZERO_EVT
SRPWM_OUTEVT_SYNC_PRD_EVT
SRPWM_OUTEVT_SYNC_CMPA_UP_EVT
SRPWM_OUTEVT_SYNC_CMPB_UP_EVT
SRPWM_OUTEVT_SYNC_CMPC_UP_EVT
SRPWM_OUTEVT_SYNC_CMPD_UP_EVT
SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT
SRPWM_OUTEVT_SYNC_PWMA_NEG
SRPWM_OUTEVT_SYNC_PWMA_POS
SRPWM_OUTEVT_SYNC_PWMB_NEG
SRPWM_OUTEVT_SYNC_PWMB_POS
SRPWM_OUTEVT_SYNC_TIMER_SYNC0
SRPWM_OUTEVT_SYNC_TIMER_SYNC1

所有事件集合包含以下信号:

SRPWM_ALLEVT_ZERO_EVT
SRPWM_ALLEVT_PRD_EVT
SRPWM_ALLEVT_SCMP_UP_EVT0
SRPWM_ALLEVT_SCMP_UP_EVT1
SRPWM_ALLEVT_SCMP_UP_EVT2
SRPWM_ALLEVT_SCMP_UP_EVT3
SRPWM_ALLEVT_SCMP_DOWN_EVT4
SRPWM_ALLEVT_SCMP_DOWN_EVT5
SRPWM_ALLEVT_SCMP_DOWN_EVT6
SRPWM_ALLEVT_SCMP_DOWN_EVT7
SRPWM_ALLEVT_CMP_EVT0
SRPWM_ALLEVT_CMP_EVT1
SRPWM_ALLEVT_CMP_EVT2
SRPWM_ALLEVT_CMP_EVT3
SRPWM_ALLEVT_CMP_EVT4
SRPWM_ALLEVT_CMP_EVT5
SRPWM_ALLEVT_CMP_EVT6
SRPWM_ALLEVT_CMP_EVT7
SRPWM_ALLEVT_FPP_FAULT_POS0
SRPWM_ALLEVT_FPP_FAULT_POS1
SRPWM_ALLEVT_FPP_FAULT_POS2
SRPWM_ALLEVT_FPP_FAULT_POS3
SRPWM_ALLEVT_SYNC0
SRPWM_ALLEVT_SYNC1
SRPWM_ALLEVT_BURST_OVER
SRPWM_ALLEVT_PWMB_NEG
SRPWM_ALLEVT_PWMB_POS
SRPWM_ALLEVT_PWMA_NEG
SRPWM_ALLEVT_PWMA_POS
SRPWM_ALLEVT_SW_EVT

同步加载事件集合包含以下信号:

SRPWM_SYNCEVTLOAD1_ZERO_EVT
SRPWM_SYNCEVTLOAD1_PERIOD_EVT
SRPWM_SYNCEVTLOAD1_SCMPA_UP_EVT
SRPWM_SYNCEVTLOAD1_SCMPB_UP_EVT
SRPWM_SYNCEVTLOAD1_SCMPA_DOWN_EVT
SRPWM_SYNCEVTLOAD1_SCMPB_DOWN_EVT
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS0
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS1
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS2
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS3
SRPWM_SYNCEVTLOAD1_SYNC0
SRPWM_SYNCEVTLOAD1_SYNC1
SRPWM_SYNCEVTLOAD1_BURST_OVER
SRPWM_SYNCEVTLOAD1_SW_EVT

中断源集合包含以下信号:

  • SRPWM_IT_EVT: incident interruption

  • SRPWM_IT_BURST_OVER: burst ends

  • SRPWM_IT_FAULT_REAL0: real time fault0

  • SRPWM_IT_FAULT_REAL1: real time fault1

  • SRPWM_IT_FAULT_REAL2: real time fault2

  • SRPWM_IT_FAULT_REAL3: real time fault3

  • SRPWM_IT_FAULT_REAL4: real time fault4

  • SRPWM_IT_FAULT_REAL5: real time fault5

  • SRPWM_IT_FAULT_LATCH0: fault0 after latching

  • SRPWM_IT_FAULT_LATCH1: fault1 after latching

  • SRPWM_IT_FAULT_LATCH2: fault2 after latching

  • SRPWM_IT_FAULT_LATCH3: fault3 after latching

  • SRPWM_IT_FAULT_LATCH4: fault4 after latching

  • SRPWM_IT_FAULT_LATCH5: fault5 after latching

应用示例

API Reference

Header File

Functions

void SRPWMCOM_enable(uint16_t channelMask)

specifying spwm modules is enabled via the spwmcom module

Attention

This function should be called after all SRPWM_initXXXX() functions.

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

void SRPWMCOM_disable(uint16_t channelMask)

specifying spwm modules is disabled via the spwmcom module

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

void SRPWMCOM_generateSwEvt(uint16_t channelMask)

Generates a Software Event For Various Sync Signal Selections.

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

void SRPWMCOM_enableLatchCnt(uint16_t channel)

enable the counter latch function of the spwm module

参数:

channel – the specified channel

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

void SRPWMCOM_disableLatchCnt(uint16_t channel)

disable the counter latch function of the spwm module

参数:

channel – the specified channel

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

void SRPWMCOM_setLatchCntSrc(uint16_t channel, SRPWMCOM_LatchCntSrc latchSrc)

counter latch sync signal select signal

参数:
  • channel – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • latchSrc – the specified latch source

uint32_t SRPWMCOM_getTimeBaseCounterValue(uint16_t channel)

get the current value of the time base counter by latch

参数:

channel – the specified channel

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

返回:

uint32_t return the time base counter value

void SRPWMCOM_enableBroadcast(uint16_t channelMask)

enable the broadcast function

参数:

channelMask – select the channel to be enabled

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

返回:

* void

void SRPWMCOM_disableBroadcast(uint16_t channelMask)

disable the broadcast function

参数:

channelMask – select the channel to be disabled

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

返回:

* void

void SRPWM_initTBStruct(SRPWM_TBInitTypeDef *initStruct)

TBInitStruct Init.

参数:

initStruct

void SRPWM_initTB(SRPWM_Type *SRPWMx, SRPWM_TBInitTypeDef *init)

initialize time base including period\counting mode\ synchronization signal\ phase etc

参数:
  • SRPWMx – select the specified srpwm

  • init – the pointer to the srpwm init structure

    • periodShadowLoadSel - phase0ShadowLoadSel

      • SRPWM_SYNCEVTLOAD1_ZERO_EVT

      • SRPWM_SYNCEVTLOAD1_PERIOD_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS0

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS1

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS2

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS3

      • SRPWM_SYNCEVTLOAD1_SYNC0

      • SRPWM_SYNCEVTLOAD1_SYNC1

      • SRPWM_SYNCEVTLOAD1_BURST_OVER

      • SRPWM_SYNCEVTLOAD1_SW_EVT

    • syncIn0

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3

      • SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN0

      • SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN1

      • SRPWM_TBCOUNTER_SYNCEVT_SOFTWARE_UPDATE_EVT

    • syncIn1

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2

      • SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3

      • SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN0

      • SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN1

      • SRPWM_TBCOUNTER_SYNCEVT_SOFTWARE_UPDATE_EVT

void SRPWM_initCMPStruct(SRPWM_CMPInitTypeDef *initStruct)

CMPStruct Init.

参数:

initStruct – pointer to the srpwm cmp init structure

void SRPWM_initCMP(SRPWM_Type *SRPWMx, SRPWM_CMPInitTypeDef *init)

initialize the cmp includes 4 cmp 4 scmp and synchronous loading of master slave

参数:
  • SRPWMx – select the specified srpwm

  • init – pointer to the srpwm cmp init structure

    • cmpShadowLoadSel - scmpShadowLoadSel

      • SRPWM_SYNCEVTLOAD1_ZERO_EVT

      • SRPWM_SYNCEVTLOAD1_PERIOD_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS0

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS1

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS2

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS3

      • SRPWM_SYNCEVTLOAD1_SYNC0

      • SRPWM_SYNCEVTLOAD1_SYNC1

      • SRPWM_SYNCEVTLOAD1_BURST_OVER

      • SRPWM_SYNCEVTLOAD1_SW_EVT

void SRPWM_initDBStruct(SRPWM_DBInitTypeDef *initStruct)

DBStruct Init.

参数:

initStruct – pointer to the srpwm db init structure

void SRPWM_initDB(SRPWM_Type *SRPWMx, SRPWM_DBInitTypeDef *init)

initialize the dead zone

参数:
  • SRPWMx – select the specified srpwm

  • init – pointer to the srpwm db init structure

    • shadowLoadSel

      • SRPWM_SYNCEVTLOAD2_ZERO_EVT

      • SRPWM_SYNCEVTLOAD2_PERIOD_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPC_UP_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPD_UP_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPC_DOWN_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPD_DOWN_EVT

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS0

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS1

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS2

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS3

      • SRPWM_SYNCEVTLOAD2_SYNC0

      • SRPWM_SYNCEVTLOAD2_SYNC1

      • SRPWM_SYNCEVTLOAD2_BURST_OVER

      • SRPWM_SYNCEVTLOAD2_SW_EVT

void SRPWM_setTimeBasePeriod(SRPWM_Type *SRPWMx, uint32_t periodCount)

set the period value of standard accuracy

参数:
  • SRPWMx – select the specified srpwm

  • periodCount – the standard precision of the period value range: 0x0 ~ 0x3FFFFF

uint32_t SRPWM_getTimeBasePeriod(SRPWM_Type *SRPWMx)

get the period value of standard accuracy

参数:

SRPWMx – select the specified srpwm

返回:

* uint32_t The period count value.

void SRPWM_setCounterCompareValue(SRPWM_Type *SRPWMx, SRPWM_CounterCompareModule compModule, uint32_t compCount)

set the counter compare value of standard accuracy

参数:
  • SRPWMx – select the specified srpwm

  • compModule – the counter compare module

  • compCount – the standard precision of the comparison value

返回:

* void

void SRPWM_setPhaseShift(SRPWM_Type *SRPWMx, SRPWM_PhaseType phaseType, uint32_t phaseCount)

set the phase shift value

参数:
  • SRPWMx – select the specified srpwm

  • phaseType – the phase type

  • phaseCount – the standard precision of the phase value

返回:

* void

void SRPWM_setDB(SRPWM_Type *SRPWMx, SRPWM_Edge edge, uint16_t deadTime)

set the dead time of the rising edge and falling edge of the ab road

参数:
  • SRPWMx – select the specified srpwm

  • edge – select the rising or falling edge of the dead delay

  • deadTime – standard accuracy for deadband delay

void SRPWMCOM_forcePGSwSigOnePulse(uint16_t channelMask, SRPWM_AB pwmAB)

a software triggered forced action is performed on the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – specify either the a signal or the b signal

void SRPWMCOM_forcePGSwSigHighLevel(uint16_t channelMask, SRPWM_AB pwmAB)

continuously force trigger the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – the specified ab signal

void SRPWMCOM_forcePGSwSigLowLevel(uint16_t channelMask, SRPWM_AB pwmAB)

exit the continuous forced trigger action for the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – the specified ab signal

void SRPWM_initPGStruct(SRPWM_PGInitTypeDef *initStruct)

PGStruct Init.

参数:

initStruct – pointer to the srpwm pg init structure

void SRPWM_initPG(SRPWM_Type *SRPWMx, SRPWM_PGInitTypeDef *init)

initialize the action matrix

参数:
  • SRPWMx – select the specified srpwm

  • init – pointer to the srpwm pg init structure

    • shadowLoadSel

      • SRPWM_SYNCEVTLOAD2_ZERO_EVT

      • SRPWM_SYNCEVTLOAD2_PERIOD_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPC_UP_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPD_UP_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPC_DOWN_EVT

      • SRPWM_SYNCEVTLOAD2_SCMPD_DOWN_EVT

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS0

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS1

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS2

      • SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS3

      • SRPWM_SYNCEVTLOAD2_SYNC0

      • SRPWM_SYNCEVTLOAD2_SYNC1

      • SRPWM_SYNCEVTLOAD2_BURST_OVER

      • SRPWM_SYNCEVTLOAD2_SW_EVT

    • PWMA_PGSwEndSyncSel - PWMA_PGSwStartSyncSel - PWMB_PGSwEndSyncSel - PWMB_PGSwStartSyncSel

      • SRPWM_PG_SWSYNC_ZERO_EVT

      • SRPWM_PG_SWSYNC_PRD_EVT

      • SRPWM_PG_SWSYNC_SCMPA_UP_EVT

      • SRPWM_PG_SWSYNC_SCMPB_UP_EVT

      • SRPWM_PG_SWSYNC_SCMPA_DOWN_EVT

      • SRPWM_PG_SWSYNC_SCMPB_DOWN_EVT

      • SRPWM_PG_SWSYNC_PWMB_NEG

      • SRPWM_PG_SWSYNC_PWMB_POS

      • SRPWM_PG_SWSYNC_PWMA_NEG

      • SRPWM_PG_SWSYNC_PWMA_POS

void SRPWM_setPG(SRPWM_Type *SRPWMx, SRPWM_AB pwmAB, SRPWM_PGEvt event, SRPWM_PGValue value)

sets the action for the specified action event

参数:
  • SRPWMx – select the specified srpwm

  • pwmAB – select the specified srpwm

  • event – select the specified action event

  • value – select the specified action value

void SRPWM_enableInterrupt(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

enables the specified interrupt for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

void SRPWM_disableInterrupt(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

Disable the specified interrupt for the specified module.

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

void SRPWM_setInterruptMask(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

enables the specified interrupt mask for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

void SRPWM_clearInterruptMask(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

Disable the specified interrupt mask for the specified module.

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

void SRPWM_forceInterrupt(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

the software forces an interrupt

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

void SRPWM_clearInterruptStatus(SRPWM_Type *SRPWMx, uint16_t interruptFlagMask)

clear the interrupt flag

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

ITStatus SRPWM_getInterruptStatus(SRPWM_Type *SRPWMx, uint16_t interruptFlag)

gets the specified interrupt source mask state of the specified module

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

返回:

ITStatus

ITStatus SRPWM_getInterruptStatusRaw(SRPWM_Type *SRPWMx, uint16_t interruptFlag)

gets the specified interrupt source raw state of the specified module

参数:
  • SRPWMx – select the specified srpwm

  • interruptFlagMask – the specified interrupt source

    • SRPWM_IT_EVT: incident interruption

    • SRPWM_IT_BURST_OVER: burst ends

    • SRPWM_IT_FAULT_REAL0: real time fault0

    • SRPWM_IT_FAULT_REAL1: real time fault1

    • SRPWM_IT_FAULT_REAL2: real time fault2

    • SRPWM_IT_FAULT_REAL3: real time fault3

    • SRPWM_IT_FAULT_REAL4: real time fault4

    • SRPWM_IT_FAULT_REAL5: real time fault5

    • SRPWM_IT_FAULT_LATCH0: fault0 after latching

    • SRPWM_IT_FAULT_LATCH1: fault1 after latching

    • SRPWM_IT_FAULT_LATCH2: fault2 after latching

    • SRPWM_IT_FAULT_LATCH3: fault3 after latching

    • SRPWM_IT_FAULT_LATCH4: fault4 after latching

    • SRPWM_IT_FAULT_LATCH5: fault5 after latching

返回:

ITStatus

void SRPWM_enableEvtInterrupt(SRPWM_Type *SRPWMx, uint32_t outEventMask)

enable specifies the synchronization signal that the module uses to generate the event interrupt request signal

参数:
  • SRPWMx – select the specified srpwm

  • outEventMask – you can select multiple interrupt events by masking

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_disableEvtInterrupt(SRPWM_Type *SRPWMx, uint32_t outEventMask)

disable specifies the synchronization signal that the module uses to generate the event interrupt request signal

参数:
  • SRPWMx

  • outEventMask – you can select multiple interrupt events by masking

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_enableEvtInterruptFreqDiv(SRPWM_Type *SRPWMx)

enable event interrupt crossover

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableEvtInterruptFreqDiv(SRPWM_Type *SRPWMx)

disable event interrupt crossover

参数:

SRPWMx – select the specified srpwm

void SRPWM_setEvtInterruptFreqDiv(SRPWM_Type *SRPWMx, uint8_t div)

select the crossover factor for event interrupts

参数:
  • SRPWMx – select the specified srpwm

  • div – the frequency divider of the event interrupt signal

void SRPWM_enableEvtInterruptFreqMulti(SRPWM_Type *SRPWMx)

enable event interrupt multiplier

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableEvtInterruptFreqMulti(SRPWM_Type *SRPWMx)

disable event interrupt multiplier

参数:

SRPWMx – select the specified srpwm

void SRPWM_setEvtInterruptFreqMulti(SRPWM_Type *SRPWMx, uint16_t multi)

select the crossover factor for event interrupts

参数:
  • SRPWMx – select the specified srpwm

  • multi – the frequency multiple of the event interrupt signal

void SRPWM_initBurstStruct(SRPWM_BurstInitTypeDef *initStruct)

BurstStruct Init.

参数:

initStruct – pointer to a SRPWM_BurstInitTypeDef structure

void SRPWM_initBurst(SRPWM_Type *SRPWMx, SRPWM_BurstInitTypeDef *init)

initialize the burst function

参数:
  • SRPWMx – select the specified srpwm

  • init – pointer to a SRPWM_BurstInitTypeDef structure

    • shadowLoadSel

      • SRPWM_SYNCEVTLOAD1_ZERO_EVT

      • SRPWM_SYNCEVTLOAD1_PERIOD_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_UP_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPA_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_SCMPB_DOWN_EVT

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS0

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS1

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS2

      • SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS3

      • SRPWM_SYNCEVTLOAD1_SYNC0

      • SRPWM_SYNCEVTLOAD1_SYNC1

      • SRPWM_SYNCEVTLOAD1_BURST_OVER

      • SRPWM_SYNCEVTLOAD1_SW_EVT

    • startSync

      • SRPWM_BURST_START_SYNC_ZERO_EVT

      • SRPWM_BURST_START_SYNC_PRD_EVT

      • SRPWM_BURST_START_SYNC_SCMPA_UP_EVT

      • SRPWM_BURST_START_SYNC_SCMPB_UP_EVT

      • SRPWM_BURST_START_SYNC_SCMPA_DOWN_EVT

      • SRPWM_BURST_START_SYNC_SCMPB_DOWN_EVT

void SRPWM_setBurstM(SRPWM_Type *SRPWMx, uint8_t m)

set the m value of the burst function

参数:
  • SRPWMx – select the specified srpwm

  • m – the m value

void SRPWM_setBurstN(SRPWM_Type *SRPWMx, uint8_t n)

set the n value of the burst function

参数:
  • SRPWMx – select the specified srpwm

  • n – the n value

void SRPWM_initFPPStruct(SRPWM_FPPInitTypeDef *initStruct)

FPPStruct Init.

参数:

initStruct – pointer to a SRPWM_FPPInitTypeDef structure

void SRPWM_initFPP(SRPWM_Type *SRPWMx, SRPWM_FPPInitTypeDef *init)

FPP initialization.

参数:
  • SRPWMx – select the specified srpwm

  • init – pointer to a SRPWM_FPPInitTypeDef structure

    • blkEndSigSel - blkStartSigSel

      • SRPWM_ALLEVT_ZERO_EVT

      • SRPWM_ALLEVT_PRD_EVT

      • SRPWM_ALLEVT_SCMPA_UP_EVT

      • SRPWM_ALLEVT_SCMPB_UP_EVT

      • SRPWM_ALLEVT_SCMPC_UP_EVT

      • SRPWM_ALLEVT_SCMPD_UP_EVT

      • SRPWM_ALLEVT_SCMPA_DOWN_EVT

      • SRPWM_ALLEVT_SCMPB_DOWN_EVT

      • SRPWM_ALLEVT_SCMPC_DOWN_EVT

      • SRPWM_ALLEVT_SCMPD_DOWN_EVT

      • SRPWM_ALLEVT_CMPA_UP_EVT

      • SRPWM_ALLEVT_CMPB_UP_EVT

      • SRPWM_ALLEVT_CMPC_UP_EVT

      • SRPWM_ALLEVT_CMPD_UP_EVT

      • SRPWM_ALLEVT_CMPA_DOWN_EVT

      • SRPWM_ALLEVT_CMPB_DOWN_EVT

      • SRPWM_ALLEVT_CMPC_DOWN_EVT

      • SRPWM_ALLEVT_CMPD_DOWN_EVT

      • SRPWM_ALLEVT_FPP_FAULT_POS0

      • SRPWM_ALLEVT_FPP_FAULT_POS1

      • SRPWM_ALLEVT_FPP_FAULT_POS2

      • SRPWM_ALLEVT_FPP_FAULT_POS3

      • SRPWM_ALLEVT_SYNC0

      • SRPWM_ALLEVT_SYNC1

      • SRPWM_ALLEVT_BURST_OVER

      • SRPWM_ALLEVT_PWMB_NEG

      • SRPWM_ALLEVT_PWMB_POS

      • SRPWM_ALLEVT_PWMA_NEG

      • SRPWM_ALLEVT_PWMA_POS

      • SRPWM_ALLEVT_SW_EVT

    • faultSigGroupMask

      • SRPWM_FPP_FAULT_SIG_GRP0

      • SRPWM_FPP_FAULT_SIG_GRP1

      • SRPWM_FPP_FAULT_SIG_GRP2

      • SRPWM_FPP_FAULT_SIG_GRP3

      • SRPWM_FPP_FAULT_SIG_GRP4

      • SRPWM_FPP_FAULT_SIG_GRP5

void SRPWM_clearFPPFaultCnt(SRPWM_Type *SRPWMx, uint8_t faultSigGroup)

clears the exception count of the specified fpp exception preprocessing signal 0 5 for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • faultSigGroup – specify fpp signals 0~5

    • SRPWM_FPP_FAULT_SIG_GRP0

    • SRPWM_FPP_FAULT_SIG_GRP1

    • SRPWM_FPP_FAULT_SIG_GRP2

    • SRPWM_FPP_FAULT_SIG_GRP3

    • SRPWM_FPP_FAULT_SIG_GRP4

    • SRPWM_FPP_FAULT_SIG_GRP5

void SRPWM_clearFPPLatchFault(SRPWM_Type *SRPWMx, uint8_t faultSigGroup)

clears the specified fpp exception of the specified module preprocesses the latch exception signal 0 5

参数:
  • SRPWMx – select the specified srpwm

  • faultSigGroup – specify fpp signals 0~5

    • SRPWM_FPP_FAULT_SIG_GRP0

    • SRPWM_FPP_FAULT_SIG_GRP1

    • SRPWM_FPP_FAULT_SIG_GRP2

    • SRPWM_FPP_FAULT_SIG_GRP3

    • SRPWM_FPP_FAULT_SIG_GRP4

    • SRPWM_FPP_FAULT_SIG_GRP5

void SRPWM_clearFPPFilterCnt(SRPWM_Type *SRPWMx, uint8_t faultSigGroup)

clears the filter count of 0~5 for the specified fpp exception preprocessing for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • faultSigGroup – specify fpp signals 0~5

    • SRPWM_FPP_FAULT_SIG_GRP0

    • SRPWM_FPP_FAULT_SIG_GRP1

    • SRPWM_FPP_FAULT_SIG_GRP2

    • SRPWM_FPP_FAULT_SIG_GRP3

    • SRPWM_FPP_FAULT_SIG_GRP4

    • SRPWM_FPP_FAULT_SIG_GRP5

FlagStatus SRPWM_getFPPFaultStatus(SRPWM_Type *SRPWMx, uint16_t faultSig)

gets the exception of the specified latch and real time exception signal for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • faultSig – specify fpp signals 0~5

    • SRPWM_FPP_FAULT_REAL0

    • SRPWM_FPP_FAULT_REAL1

    • SRPWM_FPP_FAULT_REAL2

    • SRPWM_FPP_FAULT_REAL3

    • SRPWM_FPP_FAULT_REAL4

    • SRPWM_FPP_FAULT_REAL5

    • SRPWM_FPP_FAULT_LATCH0

    • SRPWM_FPP_FAULT_LATCH1

    • SRPWM_FPP_FAULT_LATCH2

    • SRPWM_FPP_FAULT_LATCH3

    • SRPWM_FPP_FAULT_LATCH4

    • SRPWM_FPP_FAULT_LATCH5

返回:

FlagStatus

uint16_t SRPWM_getFPPFaultCnt(SRPWM_Type *SRPWMx, uint8_t faultSigGroup)

obtain the exception count of the specified fpp exception preprocessing signal 0 5 for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • faultSigGroup – specify fpp signals 0~5

    • SRPWM_FPP_FAULT_SIG_GRP0

    • SRPWM_FPP_FAULT_SIG_GRP1

    • SRPWM_FPP_FAULT_SIG_GRP2

    • SRPWM_FPP_FAULT_SIG_GRP3

    • SRPWM_FPP_FAULT_SIG_GRP4

    • SRPWM_FPP_FAULT_SIG_GRP5

返回:

uint16_t

void SRPWM_initValleyStruct(SRPWM_ValleyInitTypeDef *initStruct)

initializes the SRPWM_ValleyInitTypeDef structure

参数:

initStruct

返回:

* void

void SRPWM_initValley(SRPWM_Type *SRPWMx, SRPWM_ValleyInitTypeDef *init)

configures the specified srpwm valley

参数:
  • SRPWMx – select the specified srpwm

  • init

返回:

* void

void SRPWM_enableValley(SRPWM_Type *SRPWMx)

configures the specified srpwm valley

参数:

SRPWMx – select the specified srpwm

返回:

* void

void SRPWM_disableValley(SRPWM_Type *SRPWMx)

configures the specified srpwm valley

参数:

SRPWMx – select the specified srpwm

返回:

* void

void SRPWM_forceValley(SRPWM_Type *SRPWMx)

configures the specified srpwm valley

参数:

SRPWMx – select the specified srpwm

返回:

* void

void SRPWMCOM_enterPREPOneShot(uint16_t channelMask, SRPWM_AB pwmAB)

forcefully trigger os prep protection once for the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – the specified ab signal

void SRPWMCOM_exitPREPOneShot(uint16_t channelMask, SRPWM_AB pwmAB)

quit forcefully trigger os prep protection once for the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – the specified ab signal

void SRPWMCOM_forcePREPCycleByCycle(uint16_t channelMask, SRPWM_AB pwmAB)

forcefully trigger CBC prep protection once for the ab signal of the specified channel

参数:
  • channelMask – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

    • SRPWM_CHANNEL_ALL

  • pwmAB – optional ab signal

void SRPWM_setPREPUnresMinTime(SRPWM_Type *SRPWMx, uint16_t min_time)

set unres prep protection pulse time min value

参数:
  • SRPWMx – select the specified srpwm

  • min_time – unres protect min time value

void SRPWM_initPREPStruct(SRPWM_PREPInitTypeDef *initStruct)

PREPStruct Init.

参数:

initStruct

void SRPWM_initPREP(SRPWM_Type *SRPWMx, SRPWM_PREPInitTypeDef *init)

initialize the exception pre protection feature

参数:
  • SRPWMx – select the specified srpwm

  • init – parameter for structure SRPWM_PREPInitTypeDef initialization

    • cbcFaultProtectSig - osFaultProtectSig - unresFaultProtectSig

      • SRPWM_PREP_SIG_FAULT_REAL0

      • SRPWM_PREP_SIG_FAULT_REAL1

      • SRPWM_PREP_SIG_FAULT_REAL2

      • SRPWM_PREP_SIG_FAULT_REAL3

      • SRPWM_PREP_SIG_FAULT_REAL4

      • SRPWM_PREP_SIG_FAULT_REAL5

      • SRPWM_PREP_SIG_FAULT_LATCH0

      • SRPWM_PREP_SIG_FAULT_LATCH1

      • SRPWM_PREP_SIG_FAULT_LATCH2

      • SRPWM_PREP_SIG_FAULT_LATCH3

      • SRPWM_PREP_SIG_FAULT_LATCH4

      • SRPWM_PREP_SIG_FAULT_LATCH5

      • SRPWM_PREP_SIG_SW

    • osStartSyncSel - osEndSyncSel - cbcEndSyncSel

      • SRPWM_ALLEVT_ZERO_EVT

      • SRPWM_ALLEVT_PRD_EVT

      • SRPWM_ALLEVT_SCMPA_UP_EVT

      • SRPWM_ALLEVT_SCMPB_UP_EVT

      • SRPWM_ALLEVT_SCMPC_UP_EVT

      • SRPWM_ALLEVT_SCMPD_UP_EVT

      • SRPWM_ALLEVT_SCMPA_DOWN_EVT

      • SRPWM_ALLEVT_SCMPB_DOWN_EVT

      • SRPWM_ALLEVT_SCMPC_DOWN_EVT

      • SRPWM_ALLEVT_SCMPD_DOWN_EVT

      • SRPWM_ALLEVT_CMPA_UP_EVT

      • SRPWM_ALLEVT_CMPB_UP_EVT

      • SRPWM_ALLEVT_CMPC_UP_EVT

      • SRPWM_ALLEVT_CMPD_UP_EVT

      • SRPWM_ALLEVT_CMPA_DOWN_EVT

      • SRPWM_ALLEVT_CMPB_DOWN_EVT

      • SRPWM_ALLEVT_CMPC_DOWN_EVT

      • SRPWM_ALLEVT_CMPD_DOWN_EVT

      • SRPWM_ALLEVT_FPP_FAULT_POS0

      • SRPWM_ALLEVT_FPP_FAULT_POS1

      • SRPWM_ALLEVT_FPP_FAULT_POS2

      • SRPWM_ALLEVT_FPP_FAULT_POS3

      • SRPWM_ALLEVT_SYNC0

      • SRPWM_ALLEVT_SYNC1

      • SRPWM_ALLEVT_BURST_OVER

      • SRPWM_ALLEVT_PWMB_NEG

      • SRPWM_ALLEVT_PWMB_POS

      • SRPWM_ALLEVT_PWMA_NEG

      • SRPWM_ALLEVT_PWMA_POS

      • SRPWM_ALLEVT_SW_EVT

void SRPWM_clearPREPTimer(SRPWM_Type *SRPWMx, uint8_t state)

clears the specified time counter for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • state – the specified time counter

    • SRPWM_PREP_A_SET_TIMER

    • SRPWM_PREP_A_CLR_TIMER

    • SRPWM_PREP_A_INVERT_TIMER

    • SRPWM_PREP_A_HIZ_TIMER

    • SRPWM_PREP_B_SET_TIMER

    • SRPWM_PREP_B_CLR_TIMER

    • SRPWM_PREP_B_INVERT_TIMER

    • SRPWM_PREP_B_HIZ_TIMER

FlagStatus SRPWM_getPREPSigState(SRPWM_Type *SRPWMx, SRPWM_PREP_SigState sigState)

gets the indication status of the specified signal for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • sigState – the specified signal that needs to be acquired

返回:

FlagStatus

uint32_t SRPWM_getPREPFaultTime(SRPWM_Type *SRPWMx, SRPWM_AB ab, SRPWM_PreprotectState sig)

obtains the specified signal exception time before the specified module s prep exception protection

参数:
  • SRPWMx – select the specified srpwm

  • ab – optional pwma and pwmb signals

  • sig – the specified signal that needs to be acquired

返回:

uint16_t

void SRPWMCOM_forcePSTPOutState(uint16_t channel, SRPWM_AB pwmAB, SRPWM_PSTPOutState state)

the A/B signal of the specified channel is forced to output the post protection status

参数:
  • channel – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • pwmAB – optional signals

  • state – optional state

void SRPWMCOM_initMutexStruct(SRPWMCOM_MutexInitTypeDef *initStruct)

MutexStruct Init.

参数:

initStruct

void SRPWMCOM_initMutex(SRPWMCOM_MutexInitTypeDef *init)

initialize the mutex function

参数:

init – the mutex init struct

  • mutexResultGroupMask

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

  • SRPWM_MUTEX_RESULT_GRP_ALL

void SRPWMCOM_enableMutex(uint16_t mutexResultGroupMask)

enables the mutex determination function for the specified channel

参数:

mutexResultGroupMask – the specified mutex group number

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

  • SRPWM_MUTEX_RESULT_GRP_ALL

void SRPWMCOM_disableMutex(uint16_t mutexResultGroupMask)

disable specifies the mutex determination function of the channel

参数:

mutexResultGroupMask – the specified mutex group number

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

  • SRPWM_MUTEX_RESULT_GRP_ALL

void SRPWMCOM_enableMutexMsk(uint16_t channel, uint16_t mutexResultGroupMask)

the mutex generated by enabling masking acts on the specified channel

参数:
  • channel – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • mutexResultGroupMask – the specified mutex group number

    • SRPWM_MUTEX_RESULT_GRP_0

    • SRPWM_MUTEX_RESULT_GRP_1

    • SRPWM_MUTEX_RESULT_GRP_2

    • SRPWM_MUTEX_RESULT_GRP_3

    • SRPWM_MUTEX_RESULT_GRP_4

    • SRPWM_MUTEX_RESULT_GRP_5

    • SRPWM_MUTEX_RESULT_GRP_6

    • SRPWM_MUTEX_RESULT_GRP_7

    • SRPWM_MUTEX_RESULT_GRP_8

    • SRPWM_MUTEX_RESULT_GRP_9

    • SRPWM_MUTEX_RESULT_GRP_10

    • SRPWM_MUTEX_RESULT_GRP_11

    • SRPWM_MUTEX_RESULT_GRP_ALL

void SRPWMCOM_disableMutexMsk(uint16_t channel, uint16_t mutexResultGroupMask)

the mutex created by the incapacitation shield acts on the specified channel

参数:
  • channel – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • mutexResultGroupMask – the specified mutex group number

    • SRPWM_MUTEX_RESULT_GRP_0

    • SRPWM_MUTEX_RESULT_GRP_1

    • SRPWM_MUTEX_RESULT_GRP_2

    • SRPWM_MUTEX_RESULT_GRP_3

    • SRPWM_MUTEX_RESULT_GRP_4

    • SRPWM_MUTEX_RESULT_GRP_5

    • SRPWM_MUTEX_RESULT_GRP_6

    • SRPWM_MUTEX_RESULT_GRP_7

    • SRPWM_MUTEX_RESULT_GRP_8

    • SRPWM_MUTEX_RESULT_GRP_9

    • SRPWM_MUTEX_RESULT_GRP_10

    • SRPWM_MUTEX_RESULT_GRP_11

    • SRPWM_MUTEX_RESULT_GRP_ALL

FlagStatus SRPWMCOM_getMutexStatus(uint16_t mutexResultGroup)

to obtain the mutex status of the specified spwm module note that only one set of spw ms is supported at the same time

参数:

mutexResultGroup – the specified mutex group number

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

返回:

FlagStatus

uint16_t SRPWMCOM_getMutexStatusAllBits(void)

gets the mutex status for all channels

返回:

uint16_t

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

void SRPWMCOM_clearMutexStatus(uint16_t mutexResultGroupMask)

clears the mutex status of the specified spwm

参数:

mutexResultGroupMask

  • SRPWM_MUTEX_RESULT_GRP_0

  • SRPWM_MUTEX_RESULT_GRP_1

  • SRPWM_MUTEX_RESULT_GRP_2

  • SRPWM_MUTEX_RESULT_GRP_3

  • SRPWM_MUTEX_RESULT_GRP_4

  • SRPWM_MUTEX_RESULT_GRP_5

  • SRPWM_MUTEX_RESULT_GRP_6

  • SRPWM_MUTEX_RESULT_GRP_7

  • SRPWM_MUTEX_RESULT_GRP_8

  • SRPWM_MUTEX_RESULT_GRP_9

  • SRPWM_MUTEX_RESULT_GRP_10

  • SRPWM_MUTEX_RESULT_GRP_11

  • SRPWM_MUTEX_RESULT_GRP_ALL

void SRPWM_initPSTPStruct(SRPWM_PSTPInitTypeDef *initStruct)

PSTPStruct Init.

参数:

initStruct – the pointer to the structure of the PSTP init

void SRPWM_initPSTP(SRPWM_Type *SRPWMx, SRPWM_PSTPInitTypeDef *init)

initialize the post protect function

参数:
  • SRPWMx – select the specified srpwm

  • init – the pointer to the structure of the PSTP init

FlagStatus SRPWM_getPSTPFaultState(SRPWM_Type *SRPWMx, SRPWM_PSTPFaultStateSig sig)

gets the exception status of the specified signal for the post processing of the pstp exception for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • sig – the specified signal that needs to be acquired

返回:

FlagStatus

void SRPWM_setPeriodHR(SRPWM_Type *SRPWMx, uint8_t periodHR)

set the period value including high accuracy

参数:
  • SRPWMx – select the specified srpwm

  • periodHR – high accuracy of period values

返回:

* void

void SPPWM_setCompareHR(SRPWM_Type *SRPWMx, SRPWM_Edge edge, uint8_t cmpHR)

set the high accuracy of the compare value

参数:
  • SRPWMx – select the specified srpwm

  • edge – the edge type

  • cmpHR – the high accuracy of the compare value

返回:

* void

void SRPWM_setDBHR(SRPWM_Type *SRPWMx, SRPWM_Edge edge, uint8_t deadTimeHR)

set the high accuracy of the deadband

参数:
  • SRPWMx – select the specified srpwm

  • edge – select the rising or falling edge of the dead delay

  • deadTimeHR – high accuracy of the deadband

返回:

* void

void SRPWMCOM_enableHR(uint16_t channelMask)

the spwmcom common module enables the high precision functions of the specified module

Attention

only channel 0~3 support high precision function

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

void SRPWMCOM_disableHR(uint16_t channelMask)

the spwmcom common module disables the high precision functions of the specified module

Attention

only channel 0~3 support high precision function

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

void SRPWM_enableHRPWMDLL(uint16_t channel, SRPWM_AB ab)

enable the dll function in the sysc module to turn on the high precision function for srpwm

参数:
  • channelMask – pwm channel 0~3

  • ab

void SRPWM_disableHRPWMDLL(uint16_t channel, SRPWM_AB ab)

disables the dll function in the sysc module and turns off the high precision function to the srpwm

参数:
  • channelMask – pwm channel 0~3

  • ab

void SRPWM_enableHRPWMBypass(SRPWM_Type *SRPWMx)

enable specifies the spwm module s high precision bypass function

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableHRPWMBypass(SRPWM_Type *SRPWMx)

disable specifies the spwm module s high precision bypass function

参数:

SRPWMx – select the specified srpwm

void SRPWM_enableHRPWMFilter(SRPWM_Type *SRPWMx)

enable the spwm module s high precision filtering function

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableHRPWMFilter(SRPWM_Type *SRPWMx)

disable the spwm module s high precision filtering function

参数:

SRPWMx – select the specified srpwm

void SRPWM_setHRPWMFilterWidth(SRPWM_Type *SRPWMx, uint16_t width)

configure the high precision input filter length that specifies the spwm module

参数:
  • SRPWMx – select the specified srpwm

  • width – the filter length

uint8_t SRPWM_getHRPWMEgdeDly(SRPWM_Type *SRPWMx, SRPWM_Edge edge)

obtain the delay time of the specified rising and falling edges of the specified module ab signal

参数:
  • SRPWMx – the specified module

  • edge – specify the rising and falling edges of the ab signal

返回:

uint8_t

void SRPWMCOM_enableDMA(SRPWM_DMAChannel dmaChannel, uint16_t channel)

Enables the DMA request for the specified SRPWM channel(s).

备注

This function modifies the DMA selection register and enables the specified DMA channel.

参数:
  • dmaChannel – The DMA channel to be enabled. ref to SRPWM_DMAChannel.

  • channel – the specified channel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

返回:

void

void SRPWMCOM_disableDMA(SRPWM_DMAChannel dmaChannel)

Disables the DMA request for the specified SRPWM channel.

备注

This function modifies the DMA enable register and disables the specified DMA channel.

参数:

dmaChannel – The DMA channel to be disabled. It should be one of the following:

  • SRPWM_DMA_CHANNEL0

  • SRPWM_DMA_CHANNEL1

  • SRPWM_DMA_CHANNEL2

  • SRPWM_DMA_CHANNEL3

返回:

void

void SRPWM_setDMARequest(SRPWM_Type *SRPWMx, uint32_t outEventMask)

enable specifies the synchronization signal that the module uses to generate the dma request signal

参数:
  • SRPWMx – select the specified srpwm

  • outEventMask – synchronize collections with output events. Channel Group Output Event Collections

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_clearDMARequest(SRPWM_Type *SRPWMx, uint32_t outEventMask)

disable specifies the synchronization signal that the module uses to generate the dma request signal

参数:
  • SRPWMx – select the specified srpwm

  • outEventMask – synchronize collections with output events. Channel Group Output Event Collections

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_enableDMAFreqDiv(SRPWM_Type *SRPWMx)

enable the crossover function of dma

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableDMAFreqDiv(SRPWM_Type *SRPWMx)

Disable the crossover function of dma.

参数:

SRPWMx – select the specified srpwm

void SRPWM_setDMAFreqDiv(SRPWM_Type *SRPWMx, uint8_t div)

select the divider factor for the dma request signal

参数:
  • SRPWMx – select the specified srpwm

  • div – the frequency division factor of the dma request event

void SRPWM_enableDMAFreqMulti(SRPWM_Type *SRPWMx)

enable the frequency doubling function after dma crossover

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableDMAFreqMulti(SRPWM_Type *SRPWMx)

disable the frequency doubling function after dma crossover

参数:

SRPWMx – select the specified srpwm

void SRPWM_setDMAFreqMulti(SRPWM_Type *SRPWMx, uint16_t multi)

select the frequency multiplication coefficient of the signal after the dma request signal is divided

参数:
  • SRPWMx – select the specified srpwm

  • multi – the frequency multiplier of the dma request

void SRPWMCOM_selectTriggerToQEP(SRPWMCOM_ADCTrigger srcTrigger, SRPWM_ADCTriggerNumber triggerNumber, SRPWMCOM_QEPx dstQepNumber)

select the sync signal output to QEPx

参数:
  • srcTrigger – the trigger source matrix used to send to the adc

  • dstQepNumber – select the number in the trigger source matrix

  • triggerNumber – select the number in the trigger source matrix

返回:

* void

void SRPWMCOM_configADCTriggerMux(SRPWMCOM_ADCTrigger srcTrigger, SRPWM_ADCTriggerNumber dstTriggerNum)

select which spwm trigger0 1 signal is used as the trigger signal to the sarc module

参数:
  • srcTrigger[in] select the specific trigger source in the trigger source matrix for the specified index

  • dstTriggerNum[out] select the number in the trigger source matrix in the row and column

void SRPWM_setADCTriggerSource(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType, uint32_t socSource)

enable specifies the synchronization signal that the module uses to generate the sadc0 request signal where sadc0 represents one of the two trigs trigger0 which can output an spwm

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of 1 of 2 is required for the adc as the trigger

  • socSource – the trigger source, the trigger source can be one or combination of the following:

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_clearADCTriggerSource(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType, uint32_t socSource)

disable specifies the synchronization signal that the module uses to generate the sadc0 request signal where sadc0 represents one of the two trigs trigger0 which can output an spwm

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of 1 of 2 is required for the adc as the trigger

  • socSource – the trigger source, the trigger source can be one or combination of the following:

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

void SRPWM_enableADCTriggerEventPrescale(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType)

enables the divide function of the trigger signal sent to the adc

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of A of B is required for the adc as the trigger

void SRPWM_disableADCTriggerEventPrescale(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType)

disables the divide function of the trigger signal sent to the adc

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of A of B is required for the adc as the trigger

void SRPWM_setADCTriggerEventPrescale(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType, uint8_t preScaleCount)

select the divider factor of the trigger signal to be sent to the adc

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of A of B is required for the adc as the trigger

  • preScaleCount – the frequency division factor of the trigger signal sent to the adc

void SRPWM_enableADCTriggerFreqMulti(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType)

enable the multiplication function of the signal sent to the adc after it is divided

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of 1 of 2 is required for the adc as the trigger

void SRPWM_disableADCTriggerFreqMulti(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType)

disable the multiplication function of the signal sent to the adc after it is divided

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of 1 of 2 is required for the adc as the trigger

void SRPWM_setADCTriggerFreqMulti(SRPWM_Type *SRPWMx, SRPWM_ADCStartOfConversionType adcSOCType, uint16_t multi)

select the multiplication factor of the signal after the trigger signal sent to the adc is divided

参数:
  • SRPWMx – select the specified srpwm

  • adcSOCType – each pwm block can give the adc two trigger sync signals a choice of 1 of 2 is required for the adc as the trigger

  • multi – the frequency multiplier of the trigger signal sent to the adc

void SRPWMCOM_selectSyncToSRPWM(SRPWMCOM_SRPWM_SYNCOUT srcSync, SRPWM_SyncType dstSyncTypeIn, uint16_t dstChannel)

the synchronization signal(spwmcom sync in 0/1) is selected for each spwm module(spwm sync out 0/1) via the spwmcom module

参数:
  • srcSync – select the sync signal 0 or 1 in detail in sync signal

  • dstSyncTypeIn – select the synchronization signal input type for the destination srpwm

    • SRPWM_SYNC0

    • SRPWM_SYNC1

  • dstChannel

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

void SRPWM_selectSyncOut(SRPWM_Type *SRPWMx, uint32_t srcSync, SRPWM_SyncType dstSyncTypeOut)

select the output of sync signal 0

参数:
  • SRPWMx – select the specified srpwm

  • srcSync – select the specified sync signal

    • SRPWM_ALLEVT_ZERO_EVT

    • SRPWM_ALLEVT_PRD_EVT

    • SRPWM_ALLEVT_SCMPA_UP_EVT

    • SRPWM_ALLEVT_SCMPB_UP_EVT

    • SRPWM_ALLEVT_SCMPC_UP_EVT

    • SRPWM_ALLEVT_SCMPD_UP_EVT

    • SRPWM_ALLEVT_SCMPA_DOWN_EVT

    • SRPWM_ALLEVT_SCMPB_DOWN_EVT

    • SRPWM_ALLEVT_SCMPC_DOWN_EVT

    • SRPWM_ALLEVT_SCMPD_DOWN_EVT

    • SRPWM_ALLEVT_CMPA_UP_EVT

    • SRPWM_ALLEVT_CMPB_UP_EVT

    • SRPWM_ALLEVT_CMPC_UP_EVT

    • SRPWM_ALLEVT_CMPD_UP_EVT

    • SRPWM_ALLEVT_CMPA_DOWN_EVT

    • SRPWM_ALLEVT_CMPB_DOWN_EVT

    • SRPWM_ALLEVT_CMPC_DOWN_EVT

    • SRPWM_ALLEVT_CMPD_DOWN_EVT

    • SRPWM_ALLEVT_FPP_FAULT_POS0

    • SRPWM_ALLEVT_FPP_FAULT_POS1

    • SRPWM_ALLEVT_FPP_FAULT_POS2

    • SRPWM_ALLEVT_FPP_FAULT_POS3

    • SRPWM_ALLEVT_SYNC0

    • SRPWM_ALLEVT_SYNC1

    • SRPWM_ALLEVT_BURST_OVER

    • SRPWM_ALLEVT_PWMB_NEG

    • SRPWM_ALLEVT_PWMB_POS

    • SRPWM_ALLEVT_PWMA_NEG

    • SRPWM_ALLEVT_PWMA_POS

    • SRPWM_ALLEVT_SW_EVT

  • dstSyncTypeOut – select the specified sync signal output type

void SRPWM_selectSyncOutDly(SRPWM_Type *SRPWMx, SRPWM_SyncType syncTypeOut, uint8_t delay)

select the delay of sync signal

参数:
  • SRPWMx – select the specified srpwm

  • syncTypeOut – select the specified sync signal output type

  • delay – delay value

void SRPWMCOM_selectSyncToXBAR(SRPWMCOM_SRPWM_SYNCOUT srcSync, SRPWMCOM_XBARx dstXbarNumber)

select the sync signal output to xbar

参数:
  • srcSync – the specified output signal

  • dstXbarNumber – the specified xbar number

void SRPWM_setDACTrigger(uint16_t channel, uint32_t srcEvent, SRPWMCOM_DACx dstDacNumber)

set the trigger signal of the dac

参数:
  • channel – select the specified srpwm

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • srcEvent – select the specified event

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

  • dstDacNumber – select the ACMP number

返回:

* void

void SRPWM_setACMPTrigger(uint16_t channel, uint32_t srcEvent, SRPWMCOM_ACMPx dstAcmpNumber)

set the trigger signal of the ACMP

参数:
  • channel – select the specified srpwm

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • srcEvent – select the specified event

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

  • dstAcmpNumber – select the ACMP number

返回:

* void

void SRPWM_setACMPBlankingTrigger(uint16_t channel, uint32_t srcEvent, SRPWMCOM_ACMPx dstAcmpNumber)

select the trigger signal of the ACMP blanking

参数:
  • channel – select the specified srpwm

    • SRPWM_CHANNEL_0

    • SRPWM_CHANNEL_1

    • SRPWM_CHANNEL_2

    • SRPWM_CHANNEL_3

    • SRPWM_CHANNEL_4

    • SRPWM_CHANNEL_5

    • SRPWM_CHANNEL_6

    • SRPWM_CHANNEL_7

    • SRPWM_CHANNEL_8

    • SRPWM_CHANNEL_9

    • SRPWM_CHANNEL_10

    • SRPWM_CHANNEL_11

  • srcEvent – select the specified event

    • SRPWM_OUTEVT_SYNC_ZERO_EVT

    • SRPWM_OUTEVT_SYNC_PRD_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT

    • SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT

    • SRPWM_OUTEVT_SYNC_PWMA_NEG

    • SRPWM_OUTEVT_SYNC_PWMA_POS

    • SRPWM_OUTEVT_SYNC_PWMB_NEG

    • SRPWM_OUTEVT_SYNC_PWMB_POS

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC0

    • SRPWM_OUTEVT_SYNC_TIMER_SYNC1

  • dstAcmpNumber – select the ACMP number

返回:

* void

void SRPWMCOM_forceMultiChannelShadow(uint16_t channelMask)

enable Multiple Spwm Module Configuration Registers Force Synchronous Updates

参数:

channelMask

  • SRPWM_CHANNEL_0

  • SRPWM_CHANNEL_1

  • SRPWM_CHANNEL_2

  • SRPWM_CHANNEL_3

  • SRPWM_CHANNEL_4

  • SRPWM_CHANNEL_5

  • SRPWM_CHANNEL_6

  • SRPWM_CHANNEL_7

  • SRPWM_CHANNEL_8

  • SRPWM_CHANNEL_9

  • SRPWM_CHANNEL_10

  • SRPWM_CHANNEL_11

  • SRPWM_CHANNEL_ALL

void SRPWM_enableShadowMultiRegSync(SRPWM_Type *SRPWMx, uint8_t regMask)

multiple configuration registers of an enabling specified module are updated synchronously

参数:
  • SRPWMx – select the specified srpwm

  • regMask – select the specified register

    • SRPWM_SHD_MULTI_SYNC_PRD

    • SRPWM_SHD_MULTI_SYNC_PHASE

    • SRPWM_SHD_MULTI_SYNC_CMP

    • SRPWM_SHD_MULTI_SYNC_SCMP

    • SRPWM_SHD_MULTI_SYNC_PG

    • SRPWM_SHD_MULTI_SYNC_DB

    • SRPWM_SHD_MULTI_SYNC_BURST

void SRPWM_disableShadowMultiRegSync(SRPWM_Type *SRPWMx, uint8_t regMask)

multiple configuration registers of an disabling specified module are updated synchronously

参数:
  • SRPWMx – select the specified srpwm

  • regMask – select the specified register

    • SRPWM_SHD_MULTI_SYNC_PRD

    • SRPWM_SHD_MULTI_SYNC_PHASE

    • SRPWM_SHD_MULTI_SYNC_CMP

    • SRPWM_SHD_MULTI_SYNC_SCMP

    • SRPWM_SHD_MULTI_SYNC_PG

    • SRPWM_SHD_MULTI_SYNC_DB

    • SRPWM_SHD_MULTI_SYNC_BURST

void SRPWM_enableMultiShadowWaitPrd(SRPWM_Type *SRPWMx)

enables the shadow function of the specified module

参数:

SRPWMx – select the specified srpwm

void SRPWM_disableMultiShadowWaitPrd(SRPWM_Type *SRPWMx)

incapacitation specifies the shadow function of the module

参数:

SRPWMx – select the specified srpwm

FlagStatus SRPWM_getShadowUpdateStatus(SRPWM_Type *SRPWMx, SRPWM_ShadowUpdateStatus reg)

gets the shadow update completion status for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • reg – select the specified register

返回:

FlagStatus

void SRPWM_clearShadowUpdateStatus(SRPWM_Type *SRPWMx, SRPWM_ShadowUpdateStatus reg)

clears the shadow update completion status for the specified module

参数:
  • SRPWMx – select the specified srpwm

  • reg – select the specified register

Structures

struct SRPWM_TBInitTypeDef

timebase initializes the struct

struct SRPWM_AB_CMP_HRInitTypeDef
struct SRPWM_CMPInitTypeDef

the comparator initializes the struct

struct SRPWM_AB_PGInitTypeDef

the pwm generator initializes the struct of A/B

struct SRPWM_PGInitTypeDef

the pwm generator initializes the struct

struct SRPWM_AB_DBInitTypeDef

the deadband initializes the struct of A/B

struct SRPWM_DBInitTypeDef

the deadband initializes the struct

struct SRPWM_BurstInitTypeDef

the burst initializes the struct

struct SRPWM_FPPInitTypeDef

the fault pre-protection initializes the struct

struct SRPWM_ValleyInitTypeDef

the valley initializes the struct

struct SRPWM_AB_PREPInitTypeDef

the preprotect initializes the struct of A/B

struct SRPWM_PREPInitTypeDef

the preprotect initializes the struct

struct SRPWM_AB_PSTPInitTypeDef

the postprotect initializes the struct of A/B

struct SRPWM_PSTPInitTypeDef

the postprotect initializes the struct

struct SRPWMCOM_MutexInitTypeDef

the mutex initializes the struct

Macros

SRPWM_CHANNEL_0
SRPWM_CHANNEL_1
SRPWM_CHANNEL_2
SRPWM_CHANNEL_3
SRPWM_CHANNEL_4
SRPWM_CHANNEL_5
SRPWM_CHANNEL_6
SRPWM_CHANNEL_7
SRPWM_CHANNEL_8
SRPWM_CHANNEL_9
SRPWM_CHANNEL_10
SRPWM_CHANNEL_11
SRPWM_CHANNEL_ALL
SRPWM_MUTEX_RESULT_GRP_0
SRPWM_MUTEX_RESULT_GRP_1
SRPWM_MUTEX_RESULT_GRP_2
SRPWM_MUTEX_RESULT_GRP_3
SRPWM_MUTEX_RESULT_GRP_4
SRPWM_MUTEX_RESULT_GRP_5
SRPWM_MUTEX_RESULT_GRP_6
SRPWM_MUTEX_RESULT_GRP_7
SRPWM_MUTEX_RESULT_GRP_8
SRPWM_MUTEX_RESULT_GRP_9
SRPWM_MUTEX_RESULT_GRP_10
SRPWM_MUTEX_RESULT_GRP_11
SRPWM_MUTEX_RESULT_GRP_ALL
SRPWM_SYNCEVTLOAD1_ZERO_EVT
SRPWM_SYNCEVTLOAD1_PERIOD_EVT
SRPWM_SYNCEVTLOAD1_SCMPA_UP_EVT
SRPWM_SYNCEVTLOAD1_SCMPB_UP_EVT
SRPWM_SYNCEVTLOAD1_SCMPA_DOWN_EVT
SRPWM_SYNCEVTLOAD1_SCMPB_DOWN_EVT
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS0
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS1
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS2
SRPWM_SYNCEVTLOAD1_FPP_FAULT_POS3
SRPWM_SYNCEVTLOAD1_SYNC0
SRPWM_SYNCEVTLOAD1_SYNC1
SRPWM_SYNCEVTLOAD1_BURST_OVER
SRPWM_SYNCEVTLOAD1_SW_EVT
SRPWM_SYNCEVTLOAD2_ZERO_EVT
SRPWM_SYNCEVTLOAD2_PERIOD_EVT
SRPWM_SYNCEVTLOAD2_SCMPC_UP_EVT
SRPWM_SYNCEVTLOAD2_SCMPD_UP_EVT
SRPWM_SYNCEVTLOAD2_SCMPC_DOWN_EVT
SRPWM_SYNCEVTLOAD2_SCMPD_DOWN_EVT
SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS0
SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS1
SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS2
SRPWM_SYNCEVTLOAD2_FPP_FAULT_POS3
SRPWM_SYNCEVTLOAD2_SYNC0
SRPWM_SYNCEVTLOAD2_SYNC1
SRPWM_SYNCEVTLOAD2_BURST_OVER
SRPWM_SYNCEVTLOAD2_SW_EVT
SRPWM_ALLEVT_ZERO_EVT
SRPWM_ALLEVT_PRD_EVT
SRPWM_ALLEVT_SCMPA_UP_EVT
SRPWM_ALLEVT_SCMPB_UP_EVT
SRPWM_ALLEVT_SCMPC_UP_EVT
SRPWM_ALLEVT_SCMPD_UP_EVT
SRPWM_ALLEVT_SCMPA_DOWN_EVT
SRPWM_ALLEVT_SCMPB_DOWN_EVT
SRPWM_ALLEVT_SCMPC_DOWN_EVT
SRPWM_ALLEVT_SCMPD_DOWN_EVT
SRPWM_ALLEVT_CMPA_UP_EVT
SRPWM_ALLEVT_CMPB_UP_EVT
SRPWM_ALLEVT_CMPC_UP_EVT
SRPWM_ALLEVT_CMPD_UP_EVT
SRPWM_ALLEVT_CMPA_DOWN_EVT
SRPWM_ALLEVT_CMPB_DOWN_EVT
SRPWM_ALLEVT_CMPC_DOWN_EVT
SRPWM_ALLEVT_CMPD_DOWN_EVT
SRPWM_ALLEVT_FPP_FAULT_POS0
SRPWM_ALLEVT_FPP_FAULT_POS1
SRPWM_ALLEVT_FPP_FAULT_POS2
SRPWM_ALLEVT_FPP_FAULT_POS3
SRPWM_ALLEVT_SYNC0
SRPWM_ALLEVT_SYNC1
SRPWM_ALLEVT_BURST_OVER
SRPWM_ALLEVT_PWMB_NEG
SRPWM_ALLEVT_PWMB_POS
SRPWM_ALLEVT_PWMA_NEG
SRPWM_ALLEVT_PWMA_POS
SRPWM_ALLEVT_SW_EVT
SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS0
SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS1
SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS2
SRPWM_TBCOUNTER_SYNCEVT_FPP_FAULT_POS3
SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN0
SRPWM_TBCOUNTER_SYNCEVT_SYNC_IN1
SRPWM_TBCOUNTER_SYNCEVT_SOFTWARE_UPDATE_EVT
SRPWM_OUTEVT_SYNC_ZERO_EVT
SRPWM_OUTEVT_SYNC_PRD_EVT
SRPWM_OUTEVT_SYNC_CMPA_UP_EVT
SRPWM_OUTEVT_SYNC_CMPB_UP_EVT
SRPWM_OUTEVT_SYNC_CMPC_UP_EVT
SRPWM_OUTEVT_SYNC_CMPD_UP_EVT
SRPWM_OUTEVT_SYNC_CMPA_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPB_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPC_DOWN_EVT
SRPWM_OUTEVT_SYNC_CMPD_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPA_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPB_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPC_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPD_UP_EVT
SRPWM_OUTEVT_SYNC_SCMPA_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPB_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPC_DOWN_EVT
SRPWM_OUTEVT_SYNC_SCMPD_DOWN_EVT
SRPWM_OUTEVT_SYNC_PWMA_NEG
SRPWM_OUTEVT_SYNC_PWMA_POS
SRPWM_OUTEVT_SYNC_PWMB_NEG
SRPWM_OUTEVT_SYNC_PWMB_POS
SRPWM_OUTEVT_SYNC_TIMER_SYNC0
SRPWM_OUTEVT_SYNC_TIMER_SYNC1
SRPWM_BURST_START_SYNC_ZERO_EVT
SRPWM_BURST_START_SYNC_PRD_EVT
SRPWM_BURST_START_SYNC_SCMPA_UP_EVT
SRPWM_BURST_START_SYNC_SCMPB_UP_EVT
SRPWM_BURST_START_SYNC_SCMPA_DOWN_EVT
SRPWM_BURST_START_SYNC_SCMPB_DOWN_EVT
SRPWM_PG_SWSYNC_ZERO_EVT
SRPWM_PG_SWSYNC_PRD_EVT
SRPWM_PG_SWSYNC_SCMPA_UP_EVT
SRPWM_PG_SWSYNC_SCMPB_UP_EVT
SRPWM_PG_SWSYNC_SCMPA_DOWN_EVT
SRPWM_PG_SWSYNC_SCMPB_DOWN_EVT
SRPWM_PG_SWSYNC_PWMB_NEG
SRPWM_PG_SWSYNC_PWMB_POS
SRPWM_PG_SWSYNC_PWMA_NEG
SRPWM_PG_SWSYNC_PWMA_POS
SRPWM_FPP_FAULT_SIG_GRP0
SRPWM_FPP_FAULT_SIG_GRP1
SRPWM_FPP_FAULT_SIG_GRP2
SRPWM_FPP_FAULT_SIG_GRP3
SRPWM_FPP_FAULT_SIG_GRP4
SRPWM_FPP_FAULT_SIG_GRP5
SRPWM_FPP_FAULT_REAL0
SRPWM_FPP_FAULT_REAL1
SRPWM_FPP_FAULT_REAL2
SRPWM_FPP_FAULT_REAL3
SRPWM_FPP_FAULT_REAL4
SRPWM_FPP_FAULT_REAL5
SRPWM_FPP_FAULT_LATCH0
SRPWM_FPP_FAULT_LATCH1
SRPWM_FPP_FAULT_LATCH2
SRPWM_FPP_FAULT_LATCH3
SRPWM_FPP_FAULT_LATCH4
SRPWM_FPP_FAULT_LATCH5
SRPWM_PREP_SIG_FAULT_REAL0
SRPWM_PREP_SIG_FAULT_REAL1
SRPWM_PREP_SIG_FAULT_REAL2
SRPWM_PREP_SIG_FAULT_REAL3
SRPWM_PREP_SIG_FAULT_REAL4
SRPWM_PREP_SIG_FAULT_REAL5
SRPWM_PREP_SIG_FAULT_LATCH0
SRPWM_PREP_SIG_FAULT_LATCH1
SRPWM_PREP_SIG_FAULT_LATCH2
SRPWM_PREP_SIG_FAULT_LATCH3
SRPWM_PREP_SIG_FAULT_LATCH4
SRPWM_PREP_SIG_FAULT_LATCH5
SRPWM_PREP_SIG_SW
SRPWM_PREP_A_SET_TIMER
SRPWM_PREP_A_CLR_TIMER
SRPWM_PREP_A_INVERT_TIMER
SRPWM_PREP_A_HIZ_TIMER
SRPWM_PREP_B_SET_TIMER
SRPWM_PREP_B_CLR_TIMER
SRPWM_PREP_B_INVERT_TIMER
SRPWM_PREP_B_HIZ_TIMER
SRPWM_IT_EVT
SRPWM_IT_BURST_OVER
SRPWM_IT_FAULT_REAL0
SRPWM_IT_FAULT_REAL1
SRPWM_IT_FAULT_REAL2
SRPWM_IT_FAULT_REAL3
SRPWM_IT_FAULT_REAL4
SRPWM_IT_FAULT_REAL5
SRPWM_IT_FAULT_LATCH0
SRPWM_IT_FAULT_LATCH1
SRPWM_IT_FAULT_LATCH2
SRPWM_IT_FAULT_LATCH3
SRPWM_IT_FAULT_LATCH4
SRPWM_IT_FAULT_LATCH5
SRPWM_SHD_MULTI_SYNC_PRD
SRPWM_SHD_MULTI_SYNC_PHASE
SRPWM_SHD_MULTI_SYNC_CMP
SRPWM_SHD_MULTI_SYNC_SCMP
SRPWM_SHD_MULTI_SYNC_PG
SRPWM_SHD_MULTI_SYNC_DB
SRPWM_SHD_MULTI_SYNC_BURST
SRPWMCOM_DMA0_MSK
SRPWMCOM_DMA1_MSK
SRPWMCOM_DMA2_MSK
SRPWMCOM_DMA3_MSK

Enumerations

enum SRPWM_AB

specify the A or B route of the srpwm

Values:

enumerator SRPWM_A

specify the A route of the srpwm

enumerator SRPWM_B

specify the B route of the srpwm

enum SRPWM_CounterCompareModule

specify the counter compare module of the srpwm

Values:

enumerator SRPWM_COUNTER_COMPARE_A

Counter compare A

enumerator SRPWM_COUNTER_COMPARE_B

Counter compare B

enumerator SRPWM_COUNTER_COMPARE_C

Counter compare C

enumerator SRPWM_COUNTER_COMPARE_D

Counter compare D

enumerator SRPWM_COUNTER_COMPARE_A_SLAVE

Counter compare A slave

enumerator SRPWM_COUNTER_COMPARE_B_SLAVE

Counter compare B slave

enumerator SRPWM_COUNTER_COMPARE_C_SLAVE

Counter compare C slave

enumerator SRPWM_COUNTER_COMPARE_D_SLAVE

Counter compare D slave

enum SRPWM_PhaseType

specify the phase type of the srpwm

Values:

enumerator SRPWM_PHASE0

phase 0

enumerator SRPWM_PHASE1

phase 1

enum SRPWM_SyncType

specify the sync number of the srpwm

Values:

enumerator SRPWM_SYNC0
enumerator SRPWM_SYNC1
enum SRPWM_ADCStartOfConversionType

specify the start of conversion type of the srpwm

Values:

enumerator SRPWM_SOC_A
enumerator SRPWM_SOC_B
enum SRPWMCOM_ADCTrigger

Specify the ADC trigger source of the srpwm.

Values:

enumerator SRPWMCOM_ADC_SRPWM0_SOC_A
enumerator SRPWMCOM_ADC_SRPWM0_SOC_B
enumerator SRPWMCOM_ADC_SRPWM1_SOC_A
enumerator SRPWMCOM_ADC_SRPWM1_SOC_B
enumerator SRPWMCOM_ADC_SRPWM2_SOC_A
enumerator SRPWMCOM_ADC_SRPWM2_SOC_B
enumerator SRPWMCOM_ADC_SRPWM3_SOC_A
enumerator SRPWMCOM_ADC_SRPWM3_SOC_B
enumerator SRPWMCOM_ADC_SRPWM4_SOC_A
enumerator SRPWMCOM_ADC_SRPWM4_SOC_B
enumerator SRPWMCOM_ADC_SRPWM5_SOC_A
enumerator SRPWMCOM_ADC_SRPWM5_SOC_B
enumerator SRPWMCOM_ADC_SRPWM6_SOC_A
enumerator SRPWMCOM_ADC_SRPWM6_SOC_B
enumerator SRPWMCOM_ADC_SRPWM7_SOC_A
enumerator SRPWMCOM_ADC_SRPWM7_SOC_B
enumerator SRPWMCOM_ADC_SRPWM8_SOC_A
enumerator SRPWMCOM_ADC_SRPWM8_SOC_B
enumerator SRPWMCOM_ADC_SRPWM9_SOC_A
enumerator SRPWMCOM_ADC_SRPWM9_SOC_B
enumerator SRPWMCOM_ADC_SRPWM10_SOC_A
enumerator SRPWMCOM_ADC_SRPWM10_SOC_B
enumerator SRPWMCOM_ADC_SRPWM11_SOC_A
enumerator SRPWMCOM_ADC_SRPWM11_SOC_B
enum SRPWM_ADCTriggerNumber

specify the trigger number of the srpwm

Values:

enumerator SRPWM_ADC_TRIGGER_NUM0
enumerator SRPWM_ADC_TRIGGER_NUM1
enumerator SRPWM_ADC_TRIGGER_NUM2
enumerator SRPWM_ADC_TRIGGER_NUM3
enumerator SRPWM_ADC_TRIGGER_NUM4
enumerator SRPWM_ADC_TRIGGER_NUM5
enumerator SRPWM_ADC_TRIGGER_NUM6
enumerator SRPWM_ADC_TRIGGER_NUM7
enumerator SRPWM_ADC_TRIGGER_NUM8
enumerator SRPWM_ADC_TRIGGER_NUM9
enumerator SRPWM_ADC_TRIGGER_NUM10
enumerator SRPWM_ADC_TRIGGER_NUM11
enum SRPWMCOM_LatchCntSrc

specifies the source from which the latched timebase counter value is held

Values:

enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM0_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM0_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM1_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM1_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM2_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM2_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM3_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM3_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM4_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM4_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM5_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM5_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM6_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM6_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM7_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM7_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM8_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM8_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM9_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM9_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM10_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM10_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM11_SYNCOUT0
enumerator SRPWMCOM_LATCHCNT_SRC_SRPWM11_SYNCOUT1
enumerator SRPWMCOM_LATCHCNT_SRC_EN_POS_EDGE
enum SRPWMCOM_SRPWM_SYNCOUT

specify the srpwm sync output number

Values:

enumerator SRPWMCOM_SRPWM0_SYNCOUT0
enumerator SRPWMCOM_SRPWM0_SYNCOUT1
enumerator SRPWMCOM_SRPWM1_SYNCOUT0
enumerator SRPWMCOM_SRPWM1_SYNCOUT1
enumerator SRPWMCOM_SRPWM2_SYNCOUT0
enumerator SRPWMCOM_SRPWM2_SYNCOUT1
enumerator SRPWMCOM_SRPWM3_SYNCOUT0
enumerator SRPWMCOM_SRPWM3_SYNCOUT1
enumerator SRPWMCOM_SRPWM4_SYNCOUT0
enumerator SRPWMCOM_SRPWM4_SYNCOUT1
enumerator SRPWMCOM_SRPWM5_SYNCOUT0
enumerator SRPWMCOM_SRPWM5_SYNCOUT1
enumerator SRPWMCOM_SRPWM6_SYNCOUT0
enumerator SRPWMCOM_SRPWM6_SYNCOUT1
enumerator SRPWMCOM_SRPWM7_SYNCOUT0
enumerator SRPWMCOM_SRPWM7_SYNCOUT1
enumerator SRPWMCOM_SRPWM8_SYNCOUT0
enumerator SRPWMCOM_SRPWM8_SYNCOUT1
enumerator SRPWMCOM_SRPWM9_SYNCOUT0
enumerator SRPWMCOM_SRPWM9_SYNCOUT1
enumerator SRPWMCOM_SRPWM10_SYNCOUT0
enumerator SRPWMCOM_SRPWM10_SYNCOUT1
enumerator SRPWMCOM_SRPWM11_SYNCOUT0
enumerator SRPWMCOM_SRPWM11_SYNCOUT1
enum SRPWMCOM_XBARx

specify the xbar number

Values:

enumerator SRPWMCOM_XBAR0
enumerator SRPWMCOM_XBAR1
enumerator SRPWMCOM_XBAR2
enumerator SRPWMCOM_XBAR3
enum SRPWMCOM_DACx

specify the dac number

Values:

enumerator SRPWMCOM_DAC0
enumerator SRPWMCOM_DAC1
enum SRPWMCOM_ACMPx

specify the acmp number

Values:

enumerator SRPWMCOM_ACMP0_H
enumerator SRPWMCOM_ACMP0_L
enumerator SRPWMCOM_ACMP1_H
enumerator SRPWMCOM_ACMP1_L
enumerator SRPWMCOM_ACMP2_H
enumerator SRPWMCOM_ACMP2_L
enumerator SRPWMCOM_ACMP3_H
enumerator SRPWMCOM_ACMP3_L
enum SRPWMCOM_QEPx

specify the qep number

Values:

enumerator SRPWMCOM_QEP0
enumerator SRPWMCOM_QEP1
enum SRPWMCOM_MutexSig

specify the mutex signal

Values:

enumerator SRPWMCOM_MUTEX_SIG_SRPWM0_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM1_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM2_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM3_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM4_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM5_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM6_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM7_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM8_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM9_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM10_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM11_A
enumerator SRPWMCOM_MUTEX_SIG_SRPWM0_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM1_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM2_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM3_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM4_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM5_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM6_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM7_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM8_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM9_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM10_B
enumerator SRPWMCOM_MUTEX_SIG_SRPWM11_B
enum SRPWMCOM_SRPWM_MutexCondition

specify the mutex condition

Values:

enumerator SRPWMCOM_A_LOW_B_LOW
enumerator SRPWMCOM_A_LOW_B_HIGH
enumerator SRPWMCOM_A_HIGH_B_LOW
enumerator SRPWMCOM_A_HIGH_B_HIGH
enum SRPWM_CountMode

specifies the counting mode of the srpwm

Values:

enumerator SRPWM_COUNTMODE_UPDOWN
enumerator SRPWM_COUNTMODE_UP
enum SRPWM_SyncDirMode

specifies the sync direction of the srpwm

Values:

enumerator SRPWM_SYNC_DIR_DOWN
enumerator SRPWM_SYNC_DIR_UP
enum SRPWM_CMPEventOutMode

specifies the event output mode of the srpwm

Values:

enumerator SRPWM_CMP_EVTOUT_MODE_EQUAL_EVENT

an event occurs when the counter value is equal to the comparator value

enumerator SRPWM_CMP_EVTOUT_MODE_UP_AND_DOWN_EVENT

when counting upwards,the counter value is greater than or equal to the comparator value;or when counting downward,less than or equal to the comparator produces an event

enum SRPWM_PGEvt

specify the pwm generate(PG) event

Values:

enumerator SRPWM_PG_EVT_FPP_FAULT_POS0
enumerator SRPWM_PG_EVT_FPP_FAULT_POS1
enumerator SRPWM_PG_EVT_FPP_FAULT_POS2
enumerator SRPWM_PG_EVT_FPP_FAULT_POS3
enumerator SRPWM_PG_EVT_CMPD_UP
enumerator SRPWM_PG_EVT_CMPC_UP
enumerator SRPWM_PG_EVT_CMPB_UP
enumerator SRPWM_PG_EVT_CMPA_UP
enumerator SRPWM_PG_EVT_SCMPD_UP
enumerator SRPWM_PG_EVT_SCMPC_UP
enumerator SRPWM_PG_EVT_SCMPB_UP
enumerator SRPWM_PG_EVT_SCMPA_UP
enumerator SRPWM_PG_EVT_ZERO
enumerator SRPWM_PG_EVT_CMPD_DOWN
enumerator SRPWM_PG_EVT_CMPC_DOWN
enumerator SRPWM_PG_EVT_CMPB_DOWN
enumerator SRPWM_PG_EVT_CMPA_DOWN
enumerator SRPWM_PG_EVT_SCMPD_DOWN
enumerator SRPWM_PG_EVT_SCMPC_DOWN
enumerator SRPWM_PG_EVT_SCMPB_DOWN
enumerator SRPWM_PG_EVT_SCMPA_DOWN
enumerator SRPWM_PG_EVT_PERIOD
enumerator SRPWM_PG_EVT_SW
enum SRPWM_PGValue

specify the output value of the PG event

Values:

enumerator SRPWM_PG_NONE
enumerator SRPWM_PG_CLEAR
enumerator SRPWM_PG_SET
enumerator SRPWM_PG_TOGGLE
enum SRPWM_DBOutputState

specify the output state of the DB

Values:

enumerator SRPWM_DB_OUTPUT_STATE_NONE
enumerator SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_AFTER
enumerator SRPWM_DB_OUTPUT_STATE_POS_OR_NEG_INVERT
enum SRPWM_BurstMode

specifies the wave mode of burst

Values:

enumerator SRPWM_BURST_N_WAVE_IN_BACK
enumerator SRPWM_BURST_N_WAVE_IN_FRONT
enum SRPWM_FPPFaultMode

specify the failure mode of the fpp

Values:

enumerator SRPWM_FPP_FAULT_MODE_NORMAL
enumerator SRPWM_FPP_FAULT_MODE_ONE_BLK_ONE_FAULT
enum SRPWM_FPPBlankingMode

specify the blanking mode of the fpp

Values:

enumerator SRPWM_FPP_BLK_MODE_NONE
enumerator SRPWM_FPP_BLK_MODE_NORMAL
enumerator SRPWM_FPP_BLK_MODE_LATCH
enum SRPWM_FPPFaultSigEgdeSel

specify the edge selection of the fault signal

Values:

enumerator SRPWM_FPP_FAULT_SIG_EGDE_SEL_DIRECT
enumerator SRPWM_FPP_FAULT_SIG_EGDE_SEL_INVERT
enumerator SRPWM_FPP_FAULT_SIG_EGDE_SEL_POS
enumerator SRPWM_FPP_FAULT_SIG_EGDE_SEL_NES
enum SRPWM_FPPCountSigSel

specify the count signal selection of the fpp

Values:

enumerator SRPWM_FPP_COUNT_SIG_FILTER_BEFORE
enumerator SRPWM_FPP_COUNT_SIG_FILTER_BEHIND
enum SRPWM_PREP_SigState

specify the state of the prep signal

Values:

enumerator SRPWM_PREP_A_SIG_STATE_UNRES
enumerator SRPWM_PREP_A_SIG_STATE_OS
enumerator SRPWM_PREP_A_SIG_STATE_CBC
enumerator SRPWM_PREP_A_SIG_STATE_HIZ
enumerator SRPWM_PREP_A_SIG_STATE_INVERT
enumerator SRPWM_PREP_A_SIG_STATE_CLR
enumerator SRPWM_PREP_A_SIG_STATE_SET
enumerator SRPWM_PREP_B_SIG_STATE_UNRES
enumerator SRPWM_PREP_B_SIG_STATE_OS
enumerator SRPWM_PREP_B_SIG_STATE_CBC
enumerator SRPWM_PREP_B_SIG_STATE_HIZ
enumerator SRPWM_PREP_B_SIG_STATE_INVERT
enumerator SRPWM_PREP_B_SIG_STATE_CLR
enumerator SRPWM_PREP_B_SIG_STATE_SET
enum SRPWM_PreprotectState

specify the output state of the prep signal

Values:

enumerator SRPWM_PREP_STATE_HIZ
enumerator SRPWM_PREP_STATE_CLR
enumerator SRPWM_PREP_STATE_SET
enumerator SRPWM_PREP_STATE_INVERT
enum SRPWM_PSTPOutState

specify the output status of the pstp

Values:

enumerator SRPWM_PSTP_MUTEX_OUTSTATE_NONE
enumerator SRPWM_PSTP_MUTEX_OUTSTATE_SET
enumerator SRPWM_PSTP_MUTEX_OUTSTATE_CLEAR
enumerator SRPWM_PSTP_MUTEX_OUTSTATE_HIZ
enum SRPWM_PSTPFaultStateSig

specify the fault state of the pstp

Values:

enumerator SRPWM_PSTP_FAULT_STATE_SIG_A_SET_CLR_HIZ
enumerator SRPWM_PSTP_FAULT_STATE_SIG_B_SET_CLR_HIZ
enumerator SRPWM_PSTP_FAULT_STATE_SIG_AB_MUTEX
enum SRPWM_ValleyEdgeDetectMode

specify the valley edge detect mode

Values:

enumerator SRPWM_VALLEY_EDGE_DETECT_MODE_RISING
enumerator SRPWM_VALLEY_EDGE_DETECT_MODE_FALLING
enumerator SRPWM_VALLEY_EDGE_DETECT_MODE_FALLING_AND_RISING
enum SRPWM_ValleyTrigger

specify the valley trigger mode

Values:

enumerator SRPWM_VALLEY_TRIGGER_SW
enumerator SRPWM_VALLEY_TRIGGER_ZERO
enumerator SRPWM_VALLEY_TRIGGER_PERIOD
enumerator SRPWM_VALLEY_TRIGGER_ZERO_OR_PERIOD
enumerator SRPWM_VALLEY_TRIGGER_SCMPC_UP
enumerator SRPWM_VALLEY_TRIGGER_SCMPC_DOWN
enumerator SRPWM_VALLEY_TRIGGER_SCMPD_UP
enumerator SRPWM_VALLEY_TRIGGER_SCMPD_DOWN
enumerator SRPWM_VALLEY_TRIGGER_FAULT_POS0
enumerator SRPWM_VALLEY_TRIGGER_FAULT_POS1
enumerator SRPWM_VALLEY_TRIGGER_FAULT_POS2
enumerator SRPWM_VALLEY_TRIGGER_FAULT_POS3
enum SRPWM_ValleyTargetEdge

specify the valley target edge

Values:

enumerator SRPWM_VALLEY_TARGET_EDGE_NONE
enumerator SRPWM_VALLEY_TARGET_EDGE_1
enumerator SRPWM_VALLEY_TARGET_EDGE_2
enumerator SRPWM_VALLEY_TARGET_EDGE_3
enumerator SRPWM_VALLEY_TARGET_EDGE_4
enumerator SRPWM_VALLEY_TARGET_EDGE_5
enumerator SRPWM_VALLEY_TARGET_EDGE_6
enumerator SRPWM_VALLEY_TARGET_EDGE_7
enum SRPWM_ValleyCountEdge

specify the valley count edge

Values:

enumerator SRPWM_VALLEY_COUNT_EDGE_NONE
enumerator SRPWM_VALLEY_COUNT_EDGE_1
enumerator SRPWM_VALLEY_COUNT_EDGE_2
enumerator SRPWM_VALLEY_COUNT_EDGE_3
enumerator SRPWM_VALLEY_COUNT_EDGE_4
enumerator SRPWM_VALLEY_COUNT_EDGE_5
enumerator SRPWM_VALLEY_COUNT_EDGE_6
enumerator SRPWM_VALLEY_COUNT_EDGE_7
enumerator SRPWM_VALLEY_COUNT_EDGE_8
enumerator SRPWM_VALLEY_COUNT_EDGE_9
enumerator SRPWM_VALLEY_COUNT_EDGE_10
enumerator SRPWM_VALLEY_COUNT_EDGE_11
enumerator SRPWM_VALLEY_COUNT_EDGE_12
enumerator SRPWM_VALLEY_COUNT_EDGE_13
enumerator SRPWM_VALLEY_COUNT_EDGE_14
enumerator SRPWM_VALLEY_COUNT_EDGE_15
enum SRPWM_ValleyDelayMode

specify the valley delay mode

Values:

enumerator SRPWM_VALLEY_DELAY_MODE_SW_DELAY
enumerator SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_AND_SW_DELAY
enumerator SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE2_AND_SW_DELAY
enumerator SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE4_AND_SW_DELAY
enumerator SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE8_AND_SW_DELAY
enumerator SRPWM_VALLEY_DELAY_MODE_INTERVAL_CNT_DIVIDE16_AND_SW_DELAY
enum SRPWM_ValleyCaptureSrc

specify the valley capture source

Values:

enumerator SRPWM_VALLEY_CAPTURE_SRC_FAULT_REAL0
enumerator SRPWM_VALLEY_CAPTURE_SRC_FAULT_REAL1
enumerator SRPWM_VALLEY_CAPTURE_SRC_FAULT_REAL2
enumerator SRPWM_VALLEY_CAPTURE_SRC_FAULT_REAL3
enum SRPWM_Edge

specify the edge of the signal

Values:

enumerator SRPWM_EDGE_POS_A
enumerator SRPWM_EDGE_NEG_A
enumerator SRPWM_EDGE_POS_B
enumerator SRPWM_EDGE_NEG_B
enum SRPWM_ShadowUpdateStatus

specify the shadow update status

Values:

enumerator SRPWM_SHD_UPT_STATUS_PRD_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_PHASE_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_CMP_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_SCMP_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_PG_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_DB_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_BURST_UPT_DONE
enumerator SRPWM_SHD_UPT_STATUS_MULTI_CFG_DONE
enum SRPWM_DMAChannel

specify the dma channel

Values:

enumerator SRPWM_DMA_CHANNEL0
enumerator SRPWM_DMA_CHANNEL1
enumerator SRPWM_DMA_CHANNEL2
enumerator SRPWM_DMA_CHANNEL3