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

- 在 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
互补输出

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。