使用 DMA 修改 ePWM 占空比
本示例展示了如何配置直接内存访问 (DMA) 参数来修改 ePWM 占空比。使用 DMA,正弦波数据从查找表复制到 ePWM 比较寄存器。
您可以通过将 ePWM 引脚 (GPIO2) 连接到以下设备来观察占空比变化:
使用示波器监测占空比的变化。
使用 LED (GPIO31/GPIO34) 观察 LED 的亮度变化。
该示例包含一个模型和一个回调脚本。该脚本在模型初始化时运行。回调脚本 (sineTableCalculation.m) 生成一个 500 个样本的正弦波,然后将正弦波缩放到从零到 ePWM 周期寄存器的值的范围内。
所需硬件
F2833x、F2806x、F2807x、F2837x 或 F28004x 控制卡/启动板。
可用模型
F2833x:c2833x_dma_epwm
F2806x:c2806x_dma_epwm
F2807x、F2837x 和 F28004x:c28x7x_c28004x_dma_epwm
模型
c28x7x_c28004x_dma_epwm 模型由使用数据存储存储器、ePWM 和 Memory Copy 模块定义的 duty_cycle_table 查找表组成。duty_cycle_table 查找表存储回调脚本生成的正弦波样本。

ePWM 模块配置为上升-下降模式,周期为 0.002 秒。有关更多信息,请参阅General。
ePWM 模块还配置为生成模块 A 的转换开始事件 (SOCA)。有关更多信息,请参阅Event Trigger。
DMA 参数配置为将 500 个正弦波样本从 duty_cycle_table 查找表传输到 ePWM 比较寄存器。当 ePWM2SOCA 事件触发时,DMA 一次传输一个样本。要配置 DMA 参数,请浏览至配置参数 > 硬件实现 > 目标硬件资源 > DMA_ch1。
Memory Copy 模块向 Scope 模块提供 ePWM 比较寄存器的值。
配置和运行模型
1.在配置参数”窗口中,点击硬件实现 > 目标硬件资源。
2.点击 SCI_A,并将所需波特率(比特/秒) 参数设置为 1.25e6。
3.点击外部模式,然后在 Windows 的设备管理器 > 端口 (COM && LTP) 中将串行端口参数设置为 COM 端口。有关更多信息,请参阅利用串行通信进行参数调节和信号记录。
4.为确保外部模式下运行模型时存在足够内存,请在配置参数窗口中点击代码生成 > 优化。
5.将默认参数行为参数设置为 Inlined,然后点击确定。
6.打开硬件选项卡,然后点击监控和调节。观察示波器上的正弦波数值。
7.您可以将 ePWM 引脚 (GPIO2) 连接到:
使用示波器监测占空比的变化。
使用 LED(GPIO31/GPIO34)观察 LED 的亮度变化。