利用时基计数器同步实现 ePWM 和 eCAP 模块的同步
本示例展示了如何在 C2000™ Microcontroller Blockset 中使用时基计数器同步。
在这个示例中,您将学习如何:
将 ePWM4 与 ePWM1 同步,相位延迟为 120 度。
将 eCAP1 与 ePWM4 同步,相位延迟为 120 度。
当 ePWM 处于上下行模式时,通过相位偏移使 ePWM4 与 ePWM1 同步。
前提条件
完成以下教程:
所需硬件
TI Delfino F28379D LaunchPad 或 TI F2838x 控制卡
可用模型
模型
打开 f2837x_TimeBaseSync.slx 模型。

在该模型中,ePWM1 和 ePWM4 模块配置为生成周期为 1 秒、占空比为 50 % 的信号。同样,eCAP1 配置为工作在 APWM 模式,并生成周期为 1 秒、占空比为 50 % 的信号。ePWM4 模块与 ePWM1 同步,相位差为 120 度;eCAP1 与 ePWM4 同步,相位差为 120 度。
eCAP2、eCAP3 和 eCAP4 用于捕获时基同步模块生成的波形,并将其显示在 Scope 模块中。
配置 ePWM 和 eCAP 模块以实现时基计数器同步
配置 ePWM1 模块,通过将同步输出 (SYNCO) 参数设置为计数器等于零 (CRT=Zero) 来发送信号。

在配置参数中,ePWM4 配置为从 ePWM1 SYNCOUT 获取同步输入。

ePWM4 模块配置为相位偏移值,并在
CTR=Zero时发送 SYNCOUT 信号。

eCAP1 模块配置为在 APWM 模式下运行,并启用模块内的同步输入。如图所示,计数器相位偏移值也在模块参数中设置。

在配置参数中,eCAP1 配置为从 ePWM4 SYNCOUT 获取同步输入。

配置 eCAP 模块以捕获 PWM 波形
硬件中断 eCAP2、eCAP3 和 eCAP4 配置为捕获 Scope 模块上生成的 PWM 波形。eCAP 模块配置为
eCAP模式,以捕获信号的两个事件,即Rising edge和Falling edge。

PWM 信号(GPIO0 处的 ePWM1、GPIO6 处的 ePWM4 和 GPIO24 处的 eCAP1)通过硬件实现 > 目标硬件资源 > 输入 X-BAR 下的输入 X-BAR 提供给 eCAP。

您还可以通过配置参数来验证 GPIO 信号。

注意:Scope 模块仅在您以秒为单位指定时间段时显示信号。对于高频信号,请使用数字示波器 (DSO) 查看信号。
上下模式时基同步
打开 f2837xTimeBaseSyncUpDownMode.slx 模型。

上下行相位偏移的计算
延迟(计数)= 2 × 时间基准周期 ×
/ 360
确保
值在 0 到 180 度之间。为了实现大于 180 的相移,延迟计数应与相移等于 360 -
时计算出的计数相同。但是,必须考虑 ePWM 计数器的方向变化,如下图所示。

从图中可以看出,
注意,在 A 点,第二个 ePWM 计数器将在收到 ePWM1 的同步信号后,从延迟值开始计数。
对于正相移(超前),我们可以观察到第二个 ePWM 计数器将递减(橙色虚线)。
对于负相移(滞后),我们可以观察到第二个 ePWM 计数器将递增(蓝色虚线)。
在该模型中,这是通过使用寄存器读/写模块实现的,其中我们更改了 EPwm4Regs 的相应寄存器字段 PHSDIR,该字段控制同步后 ePWM 计数器的方向。

相位偏移计算
计数器相位偏移值决定相位超前或滞后。
相位是利用以下公式计算的:

其中 PRD = Timer period,CTRPHS = counter phase offset value。
注意:此公式仅适用于向上或向下计数模式。在上下计数模式下,相位取决于控制器的模式以及同步后的方向。
基于相位值的时延由下式给出:

配置模型
1.打开模型。本示例中的模型配置用于 TI Delfino F28379D LaunchPad 硬件。
2.要在其他 TI C2000 处理器上运行该模型,请按 Ctrl+E 打开配置参数对话框,然后导航到硬件实现 > 硬件板选择所需的硬件板。
3.确保将通信接口设置为 XCP on Serial。

运行模型
当您对模型执行监视和调节操作时,主机将与运行生成的可执行文件的目标进行通信。
1.在模型的硬件选项卡上,点击监控和调节。
2.使用诊断查看器跟踪构建进度,并等待代码加载并在目标硬件上运行。
3.观察 Scope 模块中的波形。

其他可以尝试的操作
将时间周期改为 20 kHz,并在数字示波器中监测信号。
尝试与其他 ePWM 和 eCAP 模块进行同步。
通过提供不同的计数器相位偏移值来尝试不同的相位偏移、超前和滞后。
在“模型属性”对话框中,导航到回调选项选项卡> c28xgetPhaseOffsetValue,找到用于根据 ePWM 和 eCAP 模块之间所需的相位延迟计算相位偏移值的文件。