使用DSP28335实现20kHz SPWM波形源代码详解

5星 · 超过95%的资源 需积分: 43 357 下载量 122 浏览量 更新于2024-09-12 27 收藏 46KB DOC 举报
本文档主要介绍了在DSP28335处理器上使用自定义代码实现SPWM(正弦脉宽调制)波形的生成过程。SPWM是一种广泛应用在电机控制、电源转换等领域的技术,通过改变脉冲宽度来模拟连续信号,实现精确的电压或电流输出。 首先,文件开始部分包含了所需的库文件头,如" DSP28x_Project.h",可能是一个针对DSP28335平台的标准库,以及与数学计算相关的库。"IQmathLib.h"虽然没有在提供的代码中被包含,但可能是处理复数运算或特定信号处理算法的库。 `#define EPWM1_TIMER_TBPRD3750` 和 `#define EPWM2_TIMER_TBPRD3750` 定义了两个PWM定时器的周期预设值,均为3750个计数周期,这表明作者正在针对两个独立的PWM通道进行配置,频率设置在20kHz,即每个周期为50μs。 接下来,有两个函数被声明:`void InitEPwm1Example(void)` 和 `void InitEPwm2Example(void)`,这两个函数可能是初始化两个EPWM通道的例程,包括设置定时器参数、初始化波形生成模式等。在实际应用中,这些函数会负责配置硬件资源,并设置SPWM的占空比数组。 `interrupt void epwm1_timer_isr(void)` 和 `interrupt void epwm2_timer_isr(void)` 是两个中断服务程序,当对应的PWM定时器溢出时会被触发。在这两个函数中,可能会处理中断事件,更新占空比,以及根据需要调整SPWM输出。 占空比数组`Uint32 TonC[400]`是一个关键部分,它包含了400个不同的时间间隔值,用于生成不同占空比的PWM波形。这个数组反映了正弦波的一个周期,通过改变数组中的值,可以实现不同频率和幅度的SPWM输出。数组中的数字代表了占空比对应的脉冲宽度,例如,第一个值1875个计数周期对应于最高占空比,最后一个值498则对应最低占空比。 总结起来,本文档提供了一个基于DSP28335的SPWM波形生成示例,展示了如何使用自定义代码设置两个PWM通道的定时器,配置中断处理,并通过数组动态生成不同占空比的波形。这对于进行电机控制或者需要精确电压输出的系统设计非常有用。