打印

2007年9月专题讨论----PWM的讨论

[复制链接]
楼主: 救火车
手机看帖
扫描二维码
随时随地手机跟帖
21

PC机上有个好玩的事情

   较早接触电脑的朋友都知道,PC机在386以前大都没有声卡,是只能用8253定时器输出小嗽叭发单音,不能讲话的。
  因为8253可以生成PWM波输出,硬是有人利用这特性让这小嗽叭说话了。国内当数“金山影霸2”是这非典应用的代表。
  微软在Window3.X时也曾为没有声卡的386在Window下发声提供过类似的控件,也是运用相似的工作原理,利用PWM波具有DA功能输出音乐。

使用特权

评论回复
22
救火车|  楼主 | 2007-9-1 13:36 | 只看该作者

那利用单片机的PWM发声的可能性有多大?

播放声音文件。

使用特权

评论回复
23
emailli| | 2007-9-1 13:48 | 只看该作者

PWM驱动产生音乐

利用单片机驱动蜂鸣器产生音乐倒是有人再做

但是,利用蜂鸣器来模拟人说话的声音,似乎没有听说过哦。

使用特权

评论回复
24
mannerfh| | 2007-9-1 14:05 | 只看该作者

补充

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

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

使用特权

评论回复
25
mannerfh| | 2007-9-1 14:07 | 只看该作者

增加一点

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


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

使用特权

评论回复
26
mannerfh| | 2007-9-1 14:08 | 只看该作者

再说说

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


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

使用特权

评论回复
27
mannerfh| | 2007-9-1 14:09 | 只看该作者

发了好几次,才弄上来

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


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

使用特权

评论回复
28
mannerfh| | 2007-9-1 14:11 | 只看该作者

怎么发不上来啊,郁闷了

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


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

使用特权

评论回复
29
mannerfh| | 2007-9-1 14:14 | 只看该作者

又来了

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


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

使用特权

评论回复
30
mannerfh| | 2007-9-1 14:16 | 只看该作者

5555

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


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

使用特权

评论回复
31
xukeke| | 2007-9-1 14:40 | 只看该作者

2007年9月专题讨论----PWM的讨论

4)常见带PWM的MCU
5)MCU:PWM的应用问题:位数、精度、稳定度
  
市场上常见超过10位的pwm 价格又在.10元以内都有谁家的.想现实10位的DA

使用特权

评论回复
32
mannerfh| | 2007-9-1 15:44 | 只看该作者

kaq

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

使用特权

评论回复
33
mannerfh| | 2007-9-1 15:45 | 只看该作者

为什么

我发了好几次,为什么贴子发不上来呢???

使用特权

评论回复
34
古道热肠| | 2007-9-1 16:53 | 只看该作者

回emailli

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

使用特权

评论回复
35
古道热肠| | 2007-9-1 16:56 | 只看该作者

回mannerfh

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

使用特权

评论回复
36
emailli| | 2007-9-1 22:25 | 只看该作者

小喇叭有可能

不过声音的确很差。

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

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

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

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

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

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

使用特权

评论回复
37
lin_best| | 2007-9-2 09:20 | 只看该作者

回复pwm的讨论

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

使用特权

评论回复
38
走南闯北| | 2007-9-2 13:27 | 只看该作者

也说说俺用过的PWM

我认为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进行调制很容易实现
   

使用特权

评论回复
39
ryudo| | 2007-9-2 17:55 | 只看该作者

PWM方面我不熟。请所长快显灵。

使用特权

评论回复
40
ryudo| | 2007-9-2 17:56 | 只看该作者

PWM控制可以是开环的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则