Edit online

EPWM 外部触发信号

Read time: 2 minute(s)

EPWM 外部触发信号 EPWM_ETRG0/1 是按照下面的处理流程框图生成。触发信号 EPWM_ETRG0/1 可以用于对 EPWM 的计数器、对 EPWM 的输出动作、对 ADC 的采样触发信号以及对 EPWM 的同步信号均可以进行控制和修改。

ETRG0/ 1 信号源

EPWM 外部触发信号 EPWM_ETRG0/1 可以通过寄存器 EPWM_ETRG0/1_SRC_SEL 进行配置选择输入信号源,支持的输入信号源如下:

  • 来自比较器的信号,CPM0_COH/ CPM0_COL/ CPM0_COHL/ CPM1_COH/ CPM1_COL/ CPM1_COHL
  • 来自外部的引脚信号,PWM_SYNCIN0/1
  • 来自 EPWM 的触发信号,EPWM_CVRC/D 和 EPWMn_TO
    注: EPWM 生成的输出信号 EPWM_CVRC/D 也可以作为外部触发信号。
  • 来自 ADC 的看门狗信号,ADC0_WDG0/1/2_PWM 和 ADC1_WDG0/1/2_PWM

ETRG0/ 1 信号极性

EPWM_ETRG0/1 选择输入信号源后,需要配置 EPWM_ETRG0_SRC_POL 进行源信号的极性设置。

假设选择了 PWM_SYNCIN0 作为 EPWM_ETRG0 的输入信号源:
  • 配置 EPWM_ETRG0_SRC_POL = 0x0 选择上升沿触发,PWM_SYNCIN0 信号的上升沿将会对应产生一次 EPWM_ETRG0 信号。

  • 配置 EPWM_ETRG0_SRC_POL = 0x1 选择下降沿触发,PWM_SYNCIN0 信号的下降沿将会对应产生一次 EPWM_ETRG0 信号,如下图所示。


  • 配置 EPWM_ETRG0_SRC_POL = 0x2/3 选择上下沿触发,对应的时序如下:

ETRG0/1 信号过滤

EPWM_ETRG0/1 信号支持内部过滤,从而限制 ETRG0/1 仅在特定的时间内生效。EPWM_ETRG0/1 信号过滤的方式有两种:
  • 消隐模式,在定义时间段内屏蔽外部事件。

  • 加窗模式,仅在定义的时间段内外部事件有效。

注: 关于两种信号过滤模式的配置示例,可分别查看 加窗模式配置消隐模式配置
定义时间段的方式:
  1. 设置时间的起点,时间的起点信号主要从下列信号中选择:
    • EPWM_CNT_Z
    • EPWM_CNT_PRD
    • EPWM_CNT_UA
    • EPWM_CNT_DA
    • EPWM_CNT_UB
    • EPWM_CNT_DB
    • EPWM_CNT_UC
    • EPWM_CNT_DC
    • EPWM_CNT_UD
    • EPWM_CNT_DD
  2. 设置时间的长度,时间的长度通过寄存器 EPWM_ETRG0_FLT_LEN 配置,时间单位是 1x 计数器时钟。

加窗模式配置

加窗模式配置示例如下:
  1. 选择 PWM_SYNCIN0 作为 EPWM_ETRG0 的输入信号源。
  2. 配置 EPWM_ETRG0_SRC_POL = 0x2/3 选择上下沿触发,PWM_SYNCIN0 的信号的上下沿均会对应的产生一次 EPWM_ETRG0 信号。
  3. 配置 EPWM_ETRG0_FLT_MOD = 0x3,选择加窗模式,即 ETRG0 仅在定义时间段内有效。
  4. 配置 EPWM_ETRG0_FLT_ST_SET = 0x2,选择 EPWM_CNT_UA 作为滤波起点时刻。
  5. 配置 EPWM_ETRG0_FLT_LEN = 0x2,定义从起点时刻持续 2x 计数器时钟的时间长度作为滤波时间。
实际效果图如下:

消隐模式配置

消隐模式配置示例如下:
  1. 选择 PWM_SYNCIN0 作为 EPWM_ETRG0 的输入信号源。
  2. 配置 EPWM_ETRG0_SRC_POL = 0x2/3 选择上下沿触发,则 PWM_SYNCIN0 信号的上下沿均会对应的产生一次 EPWM_ETRG0 信号。
  3. 配置 EPWM_ETRG0_FLT_MOD = 0x2,选择消隐模式,即在定义时间段内 ETRG0 无效。
  4. 配置 EPWM_ETRG0_FLT_ST_SET = 0x2,选择 EPWM_CNT_UA 作为滤波起点时刻。
  5. 配置 EPWM_ETRG0_FLT_LEN = 0x2,定义从起点时刻持续 2x 计数器时钟的时间长度作为滤波时间。
实际效果如下图:

ETRG0/1 信号累积功能

EPWM_ETRG0/1 支持累积功能,即仅在 ETRG0/1 信号发生的事件数达到设定的阈值 EPWM_ETRG0_ACC_TH 后,才可以输出 ETRG0/1 信号。

累积功能支持以下累积模式:
注: EPWM_ETRG0_ACC_TH 采用影子更新,在每个 EPWM 周期完成后进行更新。
  • 单周期的累积模式,EPWM_ETRG1_ACC_MOD = 0x0

    单周期模式下,每个 EPWM 周期内进行累积,在当前周期内 EPWM_TRG0/1 产生的有效事件数大于阈值后,EPWM_TRG0/1 才有有效,而在下一个新的 EPWM 周期,累积会清 0,需要重新累积超过阈值后,EPWM_TRG0/1 才有效。

    下图为 EPWM_ETRG0 信号的单周期的累积模式,设置阈值 EPWM_ETRG0_ACC_TH = 5,累积功能的时序如下:

  • 多周期的累积模式,EPWM_ETRG1_ACC_MOD = 0x1

    多周期模式下,EPWM_TRG0/1 事件会一直累积,只有在一个 EPWM 周期没有出现一次 EPWM_TRG0/1 时,会对累积进行清除。

    下图为 EPWM_ETRG0 信号的多周期的累积模式,设置阈值 EPWM_ETRG0_ACC_TH = 5,累积功能的时序如下: