Other Parts Discussed in Thread: TMS320F280039C, SYSCONFIG
主题中讨论的其他器件: SysConfig
工具与软件:
团队成员、您好!
这里我要使用 TBPHSHR 寄存器添加我的2个观察结果、以进行高分辨率相移。
微控制器我正在使用:- TMS320F280039C
SysConfig 中我的当前配置如下所示
EPWMCLK:- 120MHz
时基时钟分频器:-对时钟进行1分频
高速时钟分频器:- 对时钟进行1分频
时基期间- 1000
计数器模式: -递增-计数模式
对于我的 ePWM 外设:- EPWM3 同步输入源是 EPWM4同步输出信号。
目前、我们的相移分辨率为0.36 (360度/1000)。
当 通过提供 相移值启用相移负载来使用 EPWM 相移功能时、我要在 EPWM3和 EPWM4之间实现所需的相移。
1) 1)现在我想使用 HRPWM 来实现 高分辨率相移。
配置 按照以下方式完成




编译工程时、会在生成的文件中生成-> board.c -> Board_init 函数、在其中 调用 EPWM_init 函数、 调用 HRPWM_setPhaseShift 函数。

我应该按预期在 TBPHS 寄存器中得到0x0064、在 TBPHSHR 寄存器中得到0x2800。

如果我们看到它以度为单位、则这意味着36度(TBPHS 寄存器中为0x64) 、这应该会提供 EPWM3和 EPWM4之间以及 TBPHSHR 寄存器(0x2800)之间的833ns 相移 、即40表示 MEP 步长的数量、1 MEP 步长为180ps、这意味着7.2ns (0.31度)。 我预计此处为36.31度。 但我的观察是安静的陌生人。 检查 EPWM3和 EPWM4之间的 PWM 相移时、存在零度相移。

配置中是否缺少任何内容?
2) 2)由于我无法通过上述配置获得所需的相移、因此我没有从 SysConfig 中启用 HRPWM、而是仅在代码中使用 HRPWM_setPhaseShift 函数。
例如、如果我 使用(0x6428)调用 HRPWM_setPhaseShift 函数、这意味着我预计为36.31度( EPWM3和 EPWM4之间的相移应为840.2ns)。 但只有36度相移、仍然会产生剩余的0.31度 相移、尽管 HRPWM 用于高分辨率相移、但仍无法实现。 在这里、我们期望840.2ns、但我们只能实现833ns。 即使在使用 HRPWM_setPhaseShift 函数和 HRPWM_enablePhaseShiftLoad 后、我们仍然无法实现剩余小数部分的有限分辨率。
此外、我们还检查了 HRPWM_setHiResPhaseShiftOnly、但它没有奏效。
我们认为没有 通过不同的测试来验证相同的结果、我们发现我们无法 使用 HRPWM 功能获得剩余小数部分的有限分辨率。

是否还有任何其他需要包含的函数或我们缺失的任何内容请告诉我。
谢谢你。
