脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制一种非常有效技术。简单一点,就是对脉冲宽度的控制。ePWM模块外设是很多功率控制系统必需的控制单元,在商业和工业产品中有着广泛的应用,例如电机驱动控制、数字开关电源、UPS电源等。ePWM还可以用于直接实现DAC功能,在作为DAC输出时,占空比与输出的电压成正比。
F28335集成了6个ePWM通道,每个有两路PWM输出(EPWMxA和EPWMxB),我们 这里用到EPWM1A、EPWM1B、EPWM2A、EPWM2B、EPWM3A和EPWM3B六路PWM,频率均为15K。
死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁。这段延迟时间就是死区。
死区时间是PWM输出时,为了使H桥或半H桥的上下管不会因为开关速度问题发生同时导通而设置的一个保护时段,所以在这个时间,上下管都不会有输出,当然会使波形输出中断,死区时间一般只占百分之几的周期。但是PWM波本身占空比小时,空出的部分要比死区还大,所以死区会影响输出的纹波,但应该不是起到决定性作用的。
硬件连接
图8. 1 PWM管脚
六路pwm输出端引脚
PWM1: GPIO0/EPWM1A,PWM2: GPIO1/EPWM1B;
PWM3: GPIO2/EPWM2A,PWM4: GPIO3/EPWM2B;
PWM5: GPIO4/EPWM3A,PWM6: GPIO5/EPWM3B。
模型搭建
“6路PWM中断实验模型”,如下图:
图8. 2 PWM波形实验模型
用MATLAB/Simulink R2018b或者更高版本MATLAB/Simulink新建仿真模型。
“1”是中断模块,双击该模块打开参数对话框,根据图8.3中断向量表,CPU中断序列选择3,PIE中断序列选择1,优先级选择30,抢占标志位0;
图8. 3中断表
图8.4中断参数配置
“2”是ePWM1模块,在该模块中可以进行PWM1A的配置,双击该模块,打开参数对话框,“General”和 “ePWMA”配置如图8.6所示。
图8. 5 ePWM参数对话框 General与ePWM配置
ePWM1模块的中断设置,勾选使能ePWM中断,中断事件数选择第二个事件。
图8. 6 ePWM参数对话框 Event Trigger选项卡
“3”“4”分别是ePWM2和ePWM3模块,可以进行PWM2A、PWM2B、PWM3A和PWM3B的配置,与“2”ePWM1模块相同配置。
下载运行
第一步:DSP板上电
“Build,Deploy&Start”,模型编译下载按钮,点击该按钮,模型会自动编译,在matlab路径下生成目标代码,同时将程序下载至DSP核心板并自动运行;
图8. 7 PWM波形实验模型
观察实验结果
实现现象:程序运行后,观察PWM输出波形。由于该示波器只有四个通道,只能分别检测ePWM1A、ePWM1B、ePWM3A和ePWM3B。(state=1启动、state=0停止;PWM占空比duty范围0~100)
图8.8 6路PWM波形图
以上就是代码生成PWM中断实验的所有内容啦!大家点点收藏的同时,麻烦点点赞同哦,谢谢! 代码生成模型已在闲鱼(灼青云)上架,有需要的小伙伴可以看看。