请教单片机SPWM信号的计算方法

[复制链接]
7477|8
 楼主| 771364390 发表于 2012-7-3 17:01 | 显示全部楼层 |阅读模式
我现在刚开始学习SPWM,我用的单片机是STC12C5202AD,要求输出850HZ的正弦波,但我不知道SPWM的占空比怎么算,频率怎么算出来,SPWM是怎么一回事,请各位赐教
amwrdfe 发表于 2012-7-3 17:27 | 显示全部楼层
虽然没搞过,
但能想得出来,跟画正弦波差不多。

正弦波可以用查表法,也可以用math.h库函数,当然你想自己写一个也没问题。
频率嘛,取决于pwm的频率和正弦波的周期采样点。
coody 发表于 2012-7-3 22:36 | 显示全部楼层
先将正弦波按积分或面积法(面积法用EXCEL就可以做出来)计算好每个点的PWM值,建一个表,查表刷新PWM就可以了。

STC12C5202AD的PWM如果用25.6MHZ做时钟,最高可以输出100KHZ的PWM,可以输出118点的SPWM,对应正弦频率847.46HZ

评分

参与人数 1威望 +1 收起 理由
771364390 + 1

查看全部评分

 楼主| 771364390 发表于 2012-7-4 11:25 | 显示全部楼层
3# coody 有计算公式吗,举个例子
 楼主| 771364390 发表于 2012-7-4 11:33 | 显示全部楼层
原理我明白,但是我不懂得怎么计算这些采集点,比如半个正弦波分成32份,输出的各个占空比的时间是多少?其实只计算出1/4周期的占空比就行了 2# amwrdfe
amwrdfe 发表于 2012-7-4 12:26 | 显示全部楼层
1:假设pwm的值是0~100,0对应0%,100对应100%。
2:正弦波周期分为32份,步进角度是360/32
3:正弦的区间值是-1~1,调整为0~100,
4:把采样对应的正弦值用pwm输出,滤除pwm的频率就是正弦波输出。
5:正弦波的频率=pwm频率/32
 楼主| 771364390 发表于 2012-7-4 14:06 | 显示全部楼层
6# amwrdfe 有没有公式可以算出每一步多少占空比?
amwrdfe 发表于 2012-7-4 15:37 | 显示全部楼层
本帖最后由 amwrdfe 于 2012-7-4 15:40 编辑

发现你真的什么都不懂唉。
“4:把采样对应的正弦值用pwm输出,滤除pwm的频率就是正弦波输出。”
这就是你说的占空比,
0度的时候正弦值是0,调整为50,对应占空比是50%。
90度时候正弦值是1,调整为100,对应占空比是100%。
180度的时候正弦值是0,调整为50,对应占空比是50%。
270度的时候正弦值是-1,调整为0,对应占空比是0%
... ...
最后一次回贴.....
 楼主| 771364390 发表于 2012-7-4 16:28 | 显示全部楼层
8# amwrdfe 呵呵 不好意思,数学不好,学的东西都给回老师了,谢谢你耐心讲解,谢谢:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部