本实验是为了熟悉增强型脉冲宽度调制 (EPWM) 模块。实验中将配置一个 EPWM 模块,使其生成指定频率和占空比的 PWM 信号。然后,我们将使用模数转换器 (ADC) 对该 PWM 信号进行采样。这需要第二个 EPWM 信号来触发 ADC 转换启动 (SOC) 信号,以便 ADC 开始采样。我们还将使用增强型捕获 (ECAP) 模块测量第一个 PWM 信号的占空比和周期。
实验中将使用 Sysconfig GUI 工具,通过其中一个 EPWM 模块生成波形。PWM 波形的周期和占空比将由其中一个 ECAP 模块测量。此外,我们将使用 ADC 对 PWM 波形进行采样。我们将相应的样本存储在循环缓冲区中,以便在 Code Composer Studio 调试会话中查看 PWM 波形。SysConfig GUI 工具还将用于配置 ECAP 和 ADC 模块。

C2000™LAUNCHXL-F28379DLaunchPad™是一款完整的低成本开发板,LAUNCHXL-F28379D包含开发基于 F2837xD 微控制器的应用程序所需的所有硬件和软件。

首先,将一个空项目从 C2000Ware 导入到 CCS 工作区:
- 打开 CCS,然后依次选择“File”→“Import Projects”。
- 点击“Browse”按钮,找到[C20000ware]/driverlibf2837xdexamplescpu1empty_projects
目录。 - 在“Discovered projects”下,现在可以看到empty_projects。

- 点击“Finish”将 empty_projects] 项目导入并复制到您的 CCS 工作区。
- 项目导入后,将项目重命名为想要的名称, 项目资源管理器窗口应如下所示:

选择开发板/芯片
点击芯片视图附近的”switch”,配置正确的开发板。

配置GPIO
首先要设置一个 GPIO,以便使用开发板的 LED 灯作为指示灯。在项目中,双击打开 .syscfg 文件,在 SysConfig 图形用户界面 (GUI) 中,选择“Hardware”选项卡。使用的是 Launchpad,点击“LED”处的“+”添加 LED4。

配置 EPWM
对于 F2837xD、F2837xS、F2838x、F28003x、F280013x、F280015x、F28P65x 和 F28P55x 器件:这些器件的内部振荡器产生的 SYSCLK 频率高于 100MHz。例如,F28003x 的 EPWM 时钟频率为 120MHz。F2837xD、F2837xS 和 F2838x 的最大 EPWM 时钟频率仍然为 100MHz,但 ADC 时钟频率等于器件的 SYSCLK。在以下模块中选择时钟分频器时,您可能需要修改分频器才能获得完全相同的结果。
设置EPWM1
现在将配置 EPWM1A 输出 2kHz PWM 波形,占空比为 25%。首先将设置 EPWM 时钟预分频器。EPWM 时钟频率已设置为 100MHz。如果使用的是基于 F2837xD 或 F2838x 的设备,则 EPWM 时钟频率默认为 DEVICE_SYSCLK_FREQ 的一半; 否则,DEVICE_SYSCLK_FREQ 和 EPWM 时钟频率相等。由于时基计数器为 16 位宽(),因此无需对 EPWM 时钟进行分频。 因此,我们将时钟分频设置为 1。
接下来将设置时基周期。在本实验中,使用上下计数模式,该模式可产生对称的PWM波形。 因此,时基周期的计算方法如下:

对于非对称PWM,也就是对于仅向上计数模式或向下计数模式,计算如下:

此外,将周期负载模式设置为影子负载模式,并将相移设置为 0,因为将不会执行任何同步。
接下来,将配置 EPWM1A 计数器比较模块的参数,以实现 25% 的占空比。由于我们将处于增减计数模式,因此计数器比较事件将发生两次:一次在向上计数时,一次在向下计数时。对于 25% 的占空比,这意味着:

全局变量 ePwm_curDuty 将相应地进行初始化。对于严格的递增计数或递减计数模式,计算方法如下:

接下来,将设置计数器比较加载模式,使其在 EPWM 计数器为零或周期值时加载新的计数器比较值。这将允许我们在实时 CCS 调试会话中更改 ePwm_curDuty 的值。同时启用影子加载模式,以避免在更改计数器比较值时出现输出毛刺。
最后,将计数器模式设置为上下计数模式。注意,此时仍然没有启用 EPWM 模块的时钟。EPWM1A 的配置步骤如下:
- 首先单击 SysConfig“Software”选项卡的 EPWM 模块旁边的“+”以添加 EPWM 模块的实例。

- 展开“EPWM 时间基准”下拉菜单,如下配置。

- 展开“EPWM 计数器比较”下拉菜单,如下配置。

- 展开“EPWM Action Qualifier”下拉菜单,并展开“EPWMxA 事件输出配置”下拉菜单,如下配置。









