Edit online

HRPWM 功能

Read time: 2 minute(s)

HRPWM 的处理为 EPWM 最后一级处理模块,HRPWM 通过动态调整 EPWM 输出的上升沿和下降沿,调整的步进最低 130 ps(在 PWMCS 工作时钟设置为 240MHz 的情况),实现高精度 PWM 输出功能。

输出处理

HRPWM 的输出整形控制上升沿的延迟的寄存器为 HRPWMA/B_P_DLY,控制下降沿的延迟的寄存器为 HRPWMA/B_N_DLY。

下图为 HRPWMA 的输出处理时序图,其中 t_p_dly0/1 为 HRPWMA_P_DLY 控制的延迟时间,t_n_dly0/1 为 HRPWMA_N_DLY 控制的延迟时间,EPWM0_TA 经过 HRPWMA_P_DLY 延迟控制的信号为 EPWM0_TA_P,EPWM0_TA 经过 HRPWMA_N_DLY 延迟控制的信号为 EPWM0_TA_N,最后经过逻辑处理后得出 EPWM0_A_HRPWM。如下图所示:

上图 EPWM0_TA_P、EPWM0_TA_N 经过的以下逻辑处理(HRPWM_AOUT_LOG = 0x0)得到 EPWM0_A_HRPWM:
  • 在 t_p_dly <= t_n_dly 的时候,EPWM0_TA_P 与 EPWM0_TA_N 进行 OR 逻辑处理输出得到 EPWM0_A_HRPWM
  • 在 t_p_dly > t_n_dly 的时候,EPWM0_TA_P 与 EPWM0_TA_N 进行 AND 逻辑处理输出得到 EPWM0_A_HRPWM

互补输出



1. HRPWM 逻辑处理

EPWM_A_HRPWM 和 EPWM_B_HRPWM 的输出逻辑处理,可以分别通过 HRPWM_AOUT_LOG 和 HRPWM_BOUT_LOG 进行选择正常逻辑处理或互补逻辑处理。

互补逻辑处理方式与正常逻辑处理相反,具体如下:
  • 在 t_p_dly <= t_n_dly 的时候,EPWM_TA/B_P 与 EPWM_TA/B_N 进行 AND 逻辑处理输出得到 EPWM0_A_HRPWM
  • 在 t_p_dly > t_n_dly 的时候,EPWM_TA/B_P 与 EPWM_TA/B_N 进行 OR 逻辑处理输出得到 EPWM0_A_HRPWM

高精度频率输出

高精度频率输出,是增加输出 EPWM 信号频率的可调精度的功能。

高精度的周期的功能通过设置寄存器 HPWM_PRD_EN = 0x1 后,高精度周期值生效,也就是 HRPWM_PRD_VAL 生效。寄存器字段 HRPWM_PRD_VAL 为影子更新,更新的时间点 可通过 HRPWM_PRD_VAL_LP 配置。

下面举例说明高精度周期的生效方式:

以 EPWM0 为例,计数器时钟为 240 MHz,设置 EPWM0 的计数器为递增计数,设置 PRD 值为 1,那么这里对应整数周期是 2 * 4.16 ns,而在高精度的 EPWM 周期值上设置为 8,即是小数周期实现 8 * 130 ps = 1.04 ns。所以经过整数和小数综合得到实现的周期为 2 * 4.16 ns + 8 * 130 ps = 9.36 ns。

注: 若需要同时进行高精度频率+占空比输出,动作的比较值只能采用 CMPA 进行。