1. 选择适合的 DSP 芯片和开发板,如 TMS320F28335。
2. 根据具体需求编写 PWM 模块的程序。
3. 确定死区时间的控制方法。可以使用固定的时间,也可以通过 ADC 模块读取外部电压来动态调整死区时间。
4. 在程序中加入死区时间的计算和设置模块。
5. 配置 PWM 模块输出的周期、占空比和相位差。
6. 调试程序并验证输出波形的正确性。
具体实现方式需根据所选的 DSP 芯片和开发环境进行调整,建议参考相关资料或进行实验验证。
什么是死区时间?数据手册的参数
如何计算合理的死区时间?
STM32中配置死区时间
什么是死区时间?PWM是脉冲宽度调制,在电力电子中,最常用的就是整流和逆变。这就需要用到整流桥和逆变桥。
对三相电来说,就需要三个桥臂。以两电平为例,每个桥臂上有两个电力电子器件,比如IGBT。大致如下图所示;
这两个IGBT不能同时导通,否则就会出现短路的情况,从而对系统造成损害。
那为什么会出现同时导通的情况呢?
因为开关元器件的 和 严格意义并不是相同的。
所以在驱动开关元器件门极的时候需要增加一段延时,确保另一个开关管完全关断之后再去打开这个开关元器件,通常存在两种情况;
上半桥关断后,延迟一段时间再打开下半桥;
下半桥关断后,延迟一段时间再打开上半桥;
这样就不会同时导通,从而避免功率元件烧毁;死区时间控制在通常的单片机所配备的PWM中都有这样的功能,下面会进一步介绍。
相对于PWM来说,死区时间是在PWM输出的这个时间,上下管都不会有输出,当然会使波形输出中断,死区时间一般只占百分之几的周期。但是当PWM波本身占空比小时,空出的部分要比死区还大,所以死区会影响输出的纹波,但应该不是起到决定性作用的。
另外如果死区设置过小,但是仍然出现上下管同时导通,因为导通时间非常非常短,电流没有变得很大,不足以烧毁系统,那此时会导致开关元器件发热严重,所以选择合适的死区时间尤为重要,过大过小都不行。
数据手册的参数这里看了一下NXP的IRF540的数据手册,栅极开关时间如下所示;
典型参数
:门极的开通延迟时间
:门极的关断延迟时间
:门极上升时间
:门极下降时间
下面是一个IGBT的数据手册;
开关属性
如何计算合理的死区时间?这里用 表示死区时间,因为门极上升和下降时间通常比延迟时间小很多,所以这里可以不用考虑它们。则死区时间满足;
:最大的关断延迟时间;
:最小的开通延迟时间;
:最大的驱动信号传递延迟时间;
:最小的驱动信号传递延迟时间;
其中 和 正如上文所提到的可以元器件的数据手册中找到; 和 一般由驱动器厂家给出;
如果是MCU的IO驱动的话,需要考虑IO的上升时间和下
如果想两路pwm完全一样是可以的,可以两个定时器同步触发就行了,各用不同的通道,定时超过周期时要有个计数,stm32通用定时器产生pwm时,模式1和模式2的区别在于逻辑不同,模式1比较低输出。
STM32定时器是个强大的模块,使用的频率也是很高的,可以定时器可以做一些基本的定时,做PWM输出或者输入捕获功能,从系统框架,名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。
用来输出给分别的两个灯嘛,看它们的亮暗程度 上次做了一个方波控制器,有个键可以用来调换极性,就是通过PWM1和PWM2来调换极性的。
扩展资料:
如今几乎所有市售的单片机都有PWM模块功能,若没有(如早期的8051),也可以利用定时器及GPIO口来实现。
更为一般的PWM模块控制流程为(笔者使用过TI的2000系列,AVR的Mega系列,TI的LM系列):使能相关的模块(PWM模块以及对应管脚的GPIO模块)。
配置PWM模块的功能,具体有:设置PWM定时器周期,该参数决定PWM波形的频率。
设置PWM定时器比较值,该参数决定PWM波形的占空比。
设置死区(deadband),为避免桥臂的直通需要设置死区,一般较高档的单片机都有该功能。
设置故障处理情况,一般为故障是封锁输出,防止过流损坏功率管,故障一般有比较器或ADC或GPIO检测。
设定同步功能,该功能在多桥臂,即多PWM模块协调工作时尤为重要。
设置相应的中断,编写ISR,一般用于电压电流采样,计算下一个周期的占空比,更改占空比,这部分也会有PI控制的功能。
使能PWM波形发生。
参考资料:百度百科-PWM
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)