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
信号过滤的方式有两种:
-
消隐模式,在定义时间段内屏蔽外部事件。
-
加窗模式,仅在定义的时间段内外部事件有效。
定义时间段的方式:
- 设置时间的起点,时间的起点信号主要从下列信号中选择:
- 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
- 设置时间的长度,时间的长度通过寄存器 EPWM_ETRG0_FLT_LEN 配置,时间单位是 1x 计数器时钟。
加窗模式配置
加窗模式配置示例如下:
- 选择 PWM_SYNCIN0 作为 EPWM_ETRG0 的输入信号源。
- 配置 EPWM_ETRG0_SRC_POL = 0x2/3 选择上下沿触发,PWM_SYNCIN0 的信号的上下沿均会对应的产生一次 EPWM_ETRG0 信号。
- 配置 EPWM_ETRG0_FLT_MOD = 0x3,选择加窗模式,即 ETRG0 仅在定义时间段内有效。
- 配置 EPWM_ETRG0_FLT_ST_SET = 0x2,选择 EPWM_CNT_UA 作为滤波起点时刻。
- 配置 EPWM_ETRG0_FLT_LEN = 0x2,定义从起点时刻持续 2x 计数器时钟的时间长度作为滤波时间。
实际效果图如下:


消隐模式配置
消隐模式配置示例如下:
- 选择 PWM_SYNCIN0 作为 EPWM_ETRG0 的输入信号源。
- 配置 EPWM_ETRG0_SRC_POL = 0x2/3 选择上下沿触发,则 PWM_SYNCIN0 信号的上下沿均会对应的产生一次 EPWM_ETRG0 信号。
- 配置 EPWM_ETRG0_FLT_MOD = 0x2,选择消隐模式,即在定义时间段内 ETRG0 无效。
- 配置 EPWM_ETRG0_FLT_ST_SET = 0x2,选择 EPWM_CNT_UA 作为滤波起点时刻。
- 配置 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,累积功能的时序如下: