用单片的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”这个范围就行了吧?
最后附上我参考的文档
此帖出自
小平头技术问答
先搞清楚正负电源的本质实际上就是电流的方向。搞清楚这一点,对于喇叭这个负载,我们搞个H桥驱动,通过控制不同桥臂上开关管导通和关断,来实现通过喇叭的电流方向变化。
这样你得到的SPWM就是控制桥臂开关的基础。为什么说是基础?因为你要做处理,防止H桥臂同一侧的上下管直通烧毁。所以一个是原来SPWM波形,一个是他的反相,这两个再稍做处理增加死区(即上下两个开关管同时关断)。
回答的很好,可是层主死区时间怎么设置啊,我是输出了两路互补的SPWM波,死区是要设置在哪啊?
死区的作用就是让桥臂同一侧上下两个开关管同时关断(这个说法有些不严谨,严谨点的说法就是:第一个先关断,此时第二个本来就在关断状态,这时就是死区的起点,两个一起关断一段时间,这段时间就是死区,然后第二个开始开通,第一个保持关断状态,这是死区的结束点)
关于怎么设置死区:主要看你用的是什么样的MCU或DSP(更准确点的叫法是DSC,像TI的C2000),有些MCU或DSC的PWM输出可以设置成互补(也就是反相)输出,这时一般就有设置死区的寄存器来设置死区时间。如果你用的MCU或DSC没有这套东西,那没办法,只能你自己编程是去设计相关机制了。
恩码了这么多字,感谢你的回答我用的是mcu是MSP430,用定时器输出两路互补的SPWM,所以也没有专门设置死区的寄存器,只能通过延时才完成。所以我想的是,要在每输出半个正弦波的开始和结束,都设置延时。
概念错了!
死区是驱动桥臂同一侧上下开关管时,两个驱动波形之间的一起关断的这段时间。所以是两路互补PWM输出之间一起关断的这段时间,是每个PWM的每个周期开始和结束都要有。前面有网友说要分N段,那么就是在每一段开始和结尾都要有死区。不是每输出半个正弦波的开始和结束!
一周热门 更多>