微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

使用硬件SPWM计算MCU定时器溢出时间

2016-06-20 09:37 来源:电源网综合 编辑:铃铛

SPWM的基本原理是在进行脉宽调制时,使脉冲系列的占空比按正弦规律来安排。当正弦值为最大值时,脉冲的宽度也最大,而脉冲间的间隔则最小,反之,当正弦值较小时,脉冲的宽度也小,而脉冲间的间隔则较大,这样的电压脉冲系列可以使负载电流中的高次谐波成分大为减小,称为正弦波脉宽调制。

硬件SPWM的方法就是将频率固定好,频率固定就意味着X轴的时间T也就固定下来,Y轴是振幅。有了这个参数后把正弘波分为360份,每度1份,先计算上面图的面积,得出后匹配脉冲面积。最后计算出每个脉冲的时间和占空比时间,以次作为单片机的定时器溢出时间。

此方法虽然较为复杂,但却行之有效。单片机基本上不点用资源,定时器中断,付下次溢出的初始值,输出SPWM,再等下次中断,不需要复杂计算公式写进MCU中,还要开几个定时器和ADC。

软件实现方法

定义一个时间数组time[359]={0,1,2......}//里面是通过计算得到的脉冲宽度时间和占空比时间。作用:作为定时器溢出值。

定义一个Count//溢出次数,溢出360次为一个半周。bitPF//定义正负半标记bit=0上半周,bit=1下半周,初始化TH0和TL0数值任意定。

定时器中断

THTL=time[Count]//设定下次的溢出时间。

Count++

if(Count==360){bit!=bit,Count=0,THTL=time[0]}//上下半周设定。

if(bit==0){PORT!=PORT}//送出SPWM信号,上半周,要几路送几路。

else{PORT!=PORT}//下半周,送出SPWM信号,要几路送几路。三相上添加延时处理。

在设置完毕后就可以对溢出时间进行计算了。这种方式虽然有些繁琐,但得出的结果却非常准确。尤其是在大多数MCU开发者不愿进行开源的情况下更是非常有用。本文从硬件和软件方面,给出了利用SPWM来进行单片机MCU溢出时间计算方式,正遇到此类问题的朋友不妨按照文中的方法试一试。

标签: SPWM MCU

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
2024慕尼黑上海电子展精彩回顾
2024.06技术专题

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006