购物车0种商品
IC邮购网-IC电子元件采购商城
PWM相关问题的讨论
(2011/10/19 9:19:00)
PWM的讨论
1)PWM原理
2)硬件实现PWM的原理
3)常用分离的PWMIC
4)常见带PWM的MCU
5)MCU:PWM的应用问题:位数、精度、稳定度
6)常见的应用原理图
7)总结对比表

在PWM方面我只是个初学者,还请所长和大侠们多多指教。


网友评论:在我之前的讲述中,把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。


图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/20079114810449.pdf

网友评论:在我之前的讲述中,把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。


图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/20079114946240.pdf

网友评论:发了好多次怎么传不上来呢。郁闷。
在我之前的讲述中,把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。


图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/200791141138402.pdf

网友评论:在我之前的讲述中,把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。


图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/200791141338615.pdf

网友评论:在我之前的讲述中,把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。


图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/20079114166268.pdf

网友评论:4)常见带PWM的MCU
5)MCU:PWM的应用问题:位数、精度、稳定度

市场上常见超过10位的pwm价格又在.10元以内都有谁家的.想现实10位的DA

网友评论:之前,我把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。
图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/200791154412625.pdf

网友评论:我发了好几次,为什么贴子发不上来呢???

网友评论:不是用蜂鸣器产生音乐,是扬声器(俗名小嗽叭),理论上用PWM的确能讲话的,效果应该跟"文曲星"PC505的效果差不多,听得出是电脑发声,不是真人发声。
看过一本PDA维修的书上列出MC68XX龙珠芯片做的PDA,就用PWM的输出驱动三极管推动扬声器发声。这种应用现在都过时了。因为其效果实在太差。

网友评论:PWM作DA的确可行,见过别人的PCB板上有此设计,用PWM输出滤波,再用LM324进行幅度调整,就能输出满足需求的模拟量,用的是STC12系列单片机,我估计设计者是为了用这芯片的硬件PWM吧,才选择它的。

网友评论:不过声音的确很差。

PWM做DA的确可行,并且在低成本的方案中还很不错。

我们公司的仪表输出4-20mA就都是用PWM控制输出的。

不过输出电路并不是那么简单,需要一个达林顿解法的两个三极管,以及一个反馈控制用的运放。

不过这种做法有两个缺点:
第一个是输出响应速度不够快

第二个是输出存在较大的温度漂移和时间漂移。

通常专用的DA芯片只有25ppm的漂移。而此电路我们目前做的最好的情况也大概有90ppm的漂移。

网友评论:在用单片机的pwm做A/D输出时,总是感觉在滤波和驱动能力方面有些问题,不知道那位高手能提供很好的解决方案。

网友评论:我认为PWM是一个功能很强大的东东。现在很多单片机都集成了PWM功能,如果没集成用软件也比较容易模拟。以下是我用过的PWM
一,DA功能,PWM就是一个巧妙的DA,对PWM波形进行积分,就可以得到占空比成正比的电压
1,直流电机调速。我们知道直流电机速度随着电压不同而变化的,单片机输出PWM波形,然后通过驱动电路驱动电机,通过调节占空比得到不同的电压,故电机速度进行变化
2,改变LED等亮度,曾经做过一个LED点阵牌,要求亮度可调节。我用的方法是调节每行点阵的导通时间来改变亮度,其实用的时就PWM原理
二,语音功能。其实还是DA功能
用PWM的确可以生成语音,曾经用SUNPLUS做过语音讲话计算器,这个东西大家几乎都见过,上面的声音就可以用PWM生成,当然SUNPLUS集成了语音功能。我们知道语音波形是比较复杂的,通过参考SUNPLUS硬件集成原理,在没有语音集成的单片机上自己可以用PWM生成任意波形,比如生成正弦波:把正弦波一个周期电压对应的PWM占空比数据做成一个表格,然后在做一个PWM软件驱动程序,留出一个接口,这个驱动程序的功能就是把接口数据转换成对应占空比的波形,然后以一定频率查表,然后把数据丢到这个接口,就可以输出正弦波了,当然单片机IO需要加上积分电路
三,省电功能
曾经做过一个产品,带红外接收,不过要求低功耗,大家知道红外接受头静态电流很大的,为了解决这个问题,我当时的办法是用一个IO控制红外接收头,比如打开红外接收头50ms,关闭450ms,这样耗电就会变为原来的十分之一
四,调制波
比如红外通讯中,数据的传输都要经过调制,利用PWM进行调制很容易实现


网友评论:把PWM工作与双积分A/D工作对比,这样才可以让众网友理解更深刻。

网友评论:建议分解成几个小题目
逐步求精
另外时间上俺估计半个月是不够的.
扫盲有可能可以..
其它就难说了


网友评论:这样的活动,实在是太棒了。让不让我们“盗版”呀?

网友评论:其他的还没有用到

网友评论:PWM我只弄过模拟的,以前大概花了1个月时间摸索过,对驱动及输出部分有所了解。关注单片机的PWM处理方法。。。

网友评论:前天发了N次,也发不上来!
之前,我把占空比和周期混在一起了(古道热肠也帮我指出来了)。
在我用过的带有PWM模块的单片机中,是D/A的一种。大致原理是这样的:有一个计数器,两个16位的比较器。其中,一个比较器用于控制占空比(比较器1),一个用于控制一个脉冲的周期。
运行时,计数器自动加一个步长(可设置,相当于加几是自己定),输出D/A值。
在当计数器的数与比较器1中的设定值相等时,则开始输出低电平
在当计数器的数与比较器2中的设定值相等时,则计数器重要开始计数,下一个周期开始。
输出的电平在经过RC滤波平滑处理后,输出。
图我没发过不知道怎么发,就用文件的形式发了,请高手指点,下次改正。
相关链接:/upfiles/img/20079/200793102341759.pdf

网友评论:PWM波软件实现很容易,用循环程序可以实现所有不同的PWM波.
如果要用硬件来实现的话,就可以用555定时器来实现
总而言之,PWM波的实现只要能够输出各种占空比的方波即可


网友评论:呵~哪位用PWM做音频有经验指导下哦..

小弟要用PWM驱动扬声器,基于SPWM原理..

前段时间做出单频音来了..500HZ.1000Hz.2000Hz等..
用录音软件录下后,发现谐波成分存在,我是用16K的采样率(PWM周期),最严重的问题就是喇叭发出的声音包含有16K的载波频率...听起来噪音很严重..

有点郁闷..我后面没加滤波的,直接占空比变化的PWM接喇叭(利用喇叭的感性)

网友评论:我现来开个头,我做过单片机的PWM输出控制LED亮度的试验。
1、选用单片机P89C51RA2DIP40封装
2、硬件架设,将P89C51RA2替换ME5103仿真器的8031单片机,并在P14引脚串联电阻后接一发光二极管到VCC.
3、实现功能:发光管由亮变暗,短暂停顿后,由暗变亮。
4、软件源代码:

#defineuintunsignedint
#defineucharunsignedchar
#defineulongunsignedlong
#defineboolbit
#definetrue1
#definefalse0

sbitc_PWM_LED=P1^4;
sfrCCON=0xD8;
sfrCMOD=0xD9;
sfrCL=0xE9;
sfrCH=0xF9;
sfrCCAP0L=0xEA;
sfrCCAP1L=0xEB;

sfrCCAP0H=0xFA;
sfrCCAP1H=0xFB;

sfrCCAPM0=0xDA;
sfrCCAPM1=0xDB;
sbitCR=0xDE;

sbitc_MCBoard_LED=P1^4;
#definec_MAX_PWM_Value0xFE
#definec_Min_PWM_Value0x02
#definec_StepValue0x01
#definec_DelayCount0x100
voidTestPWMLED(void)
{
ulongulCount;
ucharucTempValue;

CMOD=0x02;
CL=0x00;
CH=0x00;
CCAP0L=0x10;
CCAP0H=0x10;
CCAPM0=0x42;

CCAP1L=0x10;
CCAP1H=0x10;
CCAPM1=0x42;

CR=1;
ucTempValue=0;
while(1)
{
while(1)
{
if(ucTempValue<c_MAX_PWM_Value)
{
ucTempValue+=c_StepValue;
}
else
{
break;
}

CCAP0H=ucTempValue;
CCAP1H=ucTempValue;

for(ulCount=0;ulCount<c_DelayCount;ulCount++)
{
;
}

}

for(ulCount=0;ulCount<0x10000;ulCount++)
{
;
}


while(1)
{
if(ucTempValue>c_Min_PWM_Value)
{
ucTempValue-=c_StepValue;
}
else
{
break;
}
CCAP0H=ucTempValue;
CCAP1H=ucTempValue;

for(ulCount=0;ulCount<c_DelayCount;ulCount++)
{
;
}

}

for(ulCount=0;ulCount<0x10000;ulCount++)
{
;
}

}

while(1)
{
for(ulCount=0;ulCount<0x1000;ulCount++)
{
}
c_PWM_LED=0;
for(ulCount=0;ulCount<0x1000;ulCount++)
{
}
c_PWM_LED=1;
}
}



网友评论:
200ms调一次脉宽
一次变动0.4ms
周期为20ms
listp=16F54
#include<p16f5x.inc>

__CONFIG_CP_OFF&_WDT_OFF&_HS_OSC


WIDEEQU11H
DO_200MEQU12H
TURNEQU13H
MIDEQU14H
ORG0x1FF;processorresetvector
GOTOSTART
ORG0x000

;初始化
STARTNOP
CLRF10H
MOVFW10H
TRISPORTB
CLRFPORTB
BSFPORTB,3
MOVLW02H
OPTION;8分频
MOVLW.206
MOVWFTMR0;定时400us
MOVLW.50
MOVWFWIDE;脉宽20ms
MOVLW.10
MOVWFDO_200M;200ms调整一次占空比
MOVLW.50
MOVWFTURN;初值为全占空
MOVWFMID
LOOP;0.4ms
MOVFWTMR0
BTFSSSTATUS,Z
GOTOLOOP
LOOP1
MOVLW.206
MOVWFTMR0
;灭
DECFSZTURN,F;
GOTO$+4
BSFPORTB,2
MOVFWMID
MOVWFTURN
;判断是否为20ms
DECFSZWIDE,F
GOTOLOOP
;亮
BCFPORTB,2
MOVLW.50
MOVWFWIDE
MOVFWMID
MOVWFTURN
DECFSZDO_200M,F
GOTOLOOP
;递减脉宽
MOVLW.10
MOVWFDO_200M
DECFSZMID,F
GOTOLOOP
BSFPORTB,2
BCFPORTB,3
GOTO$

网友评论:不过重点是介绍软件滤波

网友评论:pwm就是脉冲调制,通过调制高(或低)电平所占脉冲周期的时间(占空比),
来控制输出的接通时间,以达到功率控制.一般的开关电源都是使用此原理
来稳压的.还有白光LED使用PWM来控制功耗.

网友评论:之前用STC12系列的一款芯片,用到了它的AD采样和PWM输出
AD采回热敏电阻的电压变化,然后改变占空比控制风扇启动~
但不能完全实现PWM输出高电平或低电平,这是为什么?


网友评论:PWM实现方式用很多种,下面是从网上找来的

几种PWM控制方法

看了“农民讲习所”老师的这个帖子,发表如题感慨!^_^

网友评论:用单片机做降压型开关电源!
目前在用单片机做锂电充电器,用PWM控制MOS管恒流给电池充电,从100mA到1A可调,很好用.8位的ADC电流精度可以控制在20mA.

网友评论:PWM就是控制高低电平的比例,主要看你怎么操作

网友评论:pwm在电机调速上用的比较多,通过控制mos管的导通时间,调节电机的电压,从而达到控制电机速度,不过控制曲线不是怎么平滑。

网友评论:速度是调下来了,力矩也损失不少,大家有何良策,我们现在都用大功率电机和机械减速器来补偿这种损失。

网友评论:用PWM做步进电机细分可以改善电机转动的平滑性,且做上细分力矩反而会增大的,网上很多相关的资料,但如何生成一份好的细分及调速表很很重要~

网友评论:小弟,也在自己实验PWM希望能得到高人的指点。
十分感谢!!
如有相关的资料请给小弟发一些zhenyongan2008@163.com
十分感谢

网友评论:如:全通或八九十%的PWM情况下,先正通5ms,再反通2ms等等

网友评论:1。直接应用PWM模块,不同MCU有数种PWM波形,按模式应用简单,而且PWM模块
一般都带RC处理部分。
2。使用I/O口模式,任意定义自己需要是的占空比。
数字信号直接驱动其实效果还是看等效面积,这与积分后的信号是一个原理。。
在频率较大情况小可以等效于积分的效果,比如PWM信号控制LED的亮度,周期10MS左右的PWM信号控制外部不需要加积分电路

网友评论:三,省电功能
曾经做过一个产品,带红外接收,不过要求低功耗,大家知道红外接受头静态电流很大的,为了解决这个问题,我当时的办法是用一个IO控制红外接收头,比如打开红外接收头50ms,关闭450ms,这样耗电就会变为原来的十分之一

这么做不会错过按键吗?

网友评论:好啊!!!

网友评论:/********************************************************************************************
*文件名:test017.c
*功能:模拟PWM输出控制LED的10个亮度级别。
*硬件条件:1.CPU型号:AT89S52
*2.晶振:12.000MHz
*3.用跳线帽短接LED11__P1.7
*用跳线帽短接LED10__P1.6
*用跳线帽短接LED9__P1.5
*说明:要改变LED灯的显示亮度,可以使用PWM输出控制。在一定频率的方波中,调整高电平和低电平
*的占空比,即可实现。例如用低电平点亮一个LED灯,假设把一个周期分为10个时间等份,如果
*方波中的高低电平占空比是9:1,这时就是一个比较暗的亮度,如果占空比是5:5,就是一个中间
*亮度,如果高低电平占空比是1:9,这时就是一个比较亮的亮度,高低电平占空比为10:0时,灯
*是灭的,高低电平占空比为0:10时,灯最亮。
*在本实验中,我们将定时器2的溢出定为1/2000秒,每10次脉冲输出一个200Hz频率。这每10次
*脉冲再用来控制高低电平的10个比值。这样,在每个1/200秒的方波周期中,我们都可以改变
*方波的输出占空比,从而控制LED灯的10个亮度级别。
*注意:为什么输出方波的频率我们选择200Hz这么高呢?因为如果频率太低,人眼就会看到闪烁
*感觉。一般起码要在60Hz以上感觉才好点,120Hz基本上看不到闪烁,因此我们选择200Hz,
*人眼将看不到闪烁,只能看到亮度变化。
*作者:POWER
*日期:2006年12月12号
*斯凯科技主页:www.armsky.net
*龙图开发网:/upfiles/img/20079/2007913211444516.jpg" onload="thumbImg(this)" alt="" />
相关链接:http://www.longtoo.com

网友评论:省电功能
曾经做过一个产品,带红外接收,不过要求低功耗,大家知道红外接受头静态电流很大的,为了解决这个问题,我当时的办法是用一个IO控制红外接收头,比如打开红外接收头50ms,关闭450ms,这样耗电就会变为原来的十分之一

这么做不会错过按键吗?

红外接收头周期性高电平,周期做的要小一些,必须比遥控器发码周期小很多,这样当有红外线发过来的时候就不会漏掉,如果发现有红外线,单片机就使接收头全部有效,当全部接收完毕,再使红外接受头处于省电状态就可以了

网友评论:频率,分辨率呢?

网友评论:对你的程序小弟有几处不明白,还望指点
1.if(scale_0==tt)//按照当前占空比切换输出高电平???????


2.staticuint8tt;//tt用来保存当前时间在1秒中的比例位置1秒是怎么回事

3.scale_0怎么没有初值


4.在每个1/200秒的方波周期中,我们都可以改变方波的输出占空比,那占空比是怎么改变的呢


网友评论:PWM方式发人声似乎是大家热烈讨论的话题,而且似乎一致在说这个办法不行。在下切以为讨论套笼统,结论太粗率啊!

PWM能不能发声?显然是没有任何问题的,而且是可以达到Hi-Fi指标的。



网友评论:数字PWM产生基本上都是2个计数器
外面一个计数器对整个PWM周期计数,里面的计数器计数高/低电平的个数.
设定PWM周期和占空比就可以产生一定占空比的PWM~~
如果要改占空比,把里面那个计数器的计数上限改了就行,改周期则直接改周期计数的上限~~
如果是硬件PWM那就更简单,直接配置相关的寄存器就可以了~



网友评论:哪位大虾讲讲用PWM对单项异步交流电机的调速

网友评论:除了调占空比以外,还是可以调整输出频率

网友评论:共有0-9十个数字语音,暂时为固定三位数报号,可以用下载器编程语音信息,下载到语音报号器中,采用高频率pwm合成语音,现在格式为16k,8bit语音。可以作为公共身份报号,在出租等行业载入车载台中使用,触发端为车载台手柄,按动后报号,手抬起也报一次号,时间大约400ms
只是音质不是太好,清晰度还可以
相关链接:http://www.ednchina.com/blog/JYTZ9988/14838/message.aspx

浏览:(1486)| 评论( 0 )
博文评论

  • 昵 称:
  • 内 容:10~250个字符
  • 验证码: 验证码看不清楚?请点击刷新验证码
  •                      
  • 博文分类

    热点博文

    最新博文

    最新评论

    IC电子元件查询
    IC邮购网电子元件品质保障