利用单片机产生SPWM波的一些疑问

2019-03-25 14:22发布

用单片的PWM的功能产生SPWM波,最后经过低通滤波得到想要的正弦波来驱动喇叭发音!看了一些资料,决定用“面积等效法”来计算脉宽,用查表法来做,有几个疑问:
1:“面积等效法”是将调制波的半个周期,平均分成N等分,那么程序里PWM的频率是多少呢?我的理解是这样:
      假如要产生50HZ的正弦波,半个周期就是100HZ,半个周期平均分成N等分,那么每一份就等于的时间 0.01/N秒
      那么PWM的周期也是 0.01/N秒  不知道对不对
2:  “面积等效法”是将调制波的半个周期,平均分成N等分,那么出来的SPWM波也只有半个周期,那么另外半个周期的波形怎么办呢?


3: SPWM波最后经过RC滤波变成想要的正弦波,如果想要得到50HZ的正弦波,要滤除高次谐波(150HZ,250HZ.......),那么低通滤波的
    截止频率应该在“50HZ<1/(2*PI*RC)<150HZ”这个范围就行了吧?
最后附上我参考的文档
      



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
yang_alex
2019-03-28 02:34
zhangxiajoa 发表于 2017-8-7 09:27
回答的很好,可是层主死区时间怎么设置啊,我是输出了两路互补的SPWM波,死区是要设置在哪啊?

死区的作用就是让桥臂同一侧上下两个开关管同时关断(这个说法有些不严谨,严谨点的说法就是:第一个先关断,此时第二个本来就在关断状态,这时就是死区的起点,两个一起关断一段时间,这段时间就是死区,然后第二个开始开通,第一个保持关断状态,这是死区的结束点)

关于怎么设置死区:主要看你用的是什么样的MCU或DSP(更准确点的叫法是DSC,像TI的C2000),有些MCU或DSC的PWM输出可以设置成互补(也就是反相)输出,这时一般就有设置死区的寄存器来设置死区时间。如果你用的MCU或DSC没有这套东西,那没办法,只能你自己编程是去设计相关机制了。

一周热门 更多>