搜索
bottom↓
回复: 80

M8L做小功率数字功放 【恢复】

[复制链接]

出0入0汤圆

发表于 2008-11-6 22:31:56 | 显示全部楼层 |阅读模式
M8L做小功率数字功放

 (原文件名:图片 006.jpg) 

点击此处下载 ourdev_486428.rar(文件大小:131K) (原文件名:用M8L做小功率数字功放.rar) 

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2008-11-10 19:55:15 | 显示全部楼层
收到,谢谢!

出0入0汤圆

发表于 2008-11-8 15:05:59 | 显示全部楼层
楼上竟然冒出两位番禺的,我也来报个到,市桥的

出0入0汤圆

发表于 2008-11-8 12:53:22 | 显示全部楼层
看看

出0入0汤圆

发表于 2008-11-8 12:27:14 | 显示全部楼层
我做了一个试了一下,声音小时失真大,不过我是用的9110做的功放,前置没有问题看过波形.

出0入0汤圆

发表于 2008-11-7 21:49:22 | 显示全部楼层
有时间看看

出0入0汤圆

发表于 2008-11-7 15:32:40 | 显示全部楼层
此时OCA和OCB输出什么样的PWM波形呀?

出0入0汤圆

发表于 2008-11-7 15:25:34 | 显示全部楼层
可惜是个单声道的啊,实用性不大

BTW,这个可以输出15W吗

出0入0汤圆

发表于 2008-11-7 13:01:45 | 显示全部楼层
有时间玩玩

出0入0汤圆

发表于 2008-11-7 12:01:48 | 显示全部楼层
帅!

出0入0汤圆

发表于 2008-11-7 12:00:09 | 显示全部楼层
本地的?!

我是石基的!

出0入0汤圆

发表于 2008-11-7 11:59:56 | 显示全部楼层
.

出0入0汤圆

发表于 2008-11-7 11:59:53 | 显示全部楼层
本地的?!

我是石基的!

出0入0汤圆

发表于 2008-11-7 11:59:52 | 显示全部楼层
本地的?!

我是石基的!

出0入0汤圆

发表于 2008-11-7 11:57:28 | 显示全部楼层
11楼:沙湾的:)

出0入0汤圆

发表于 2008-11-7 11:51:33 | 显示全部楼层
以前做过这个,也是按此电路和作者思路做的,只是把358的 放大倍数扩大到15倍,但是做好后发现功放在声音放大些后,喇叭就有咔咔,越大越严重,后来把PWM比较模式改了一下,输出同相,将AD值取反,不是取补码,但待机静态电流变大了.还有就是高音成分被衰减的没有了,在R6处并联一各个10/10uf的电容即可,音质效果和TDA2822效果相当,将VT3,VT4,换成TIP122.VT5,VT6换成TIP127,提升电源电压可以得到大功率输出.

出0入0汤圆

发表于 2008-11-7 11:40:49 | 显示全部楼层
hemjidn

是番禺那里的?!是本地的吗?!

出0入0汤圆

发表于 2008-11-7 11:24:18 | 显示全部楼层
驱动部分再简单点就无敌了

出0入0汤圆

发表于 2008-11-7 11:09:51 | 显示全部楼层
这个的音质肯定无法太讲究

不过做个类似这样的喊话器应该还是没有问题的

出0入0汤圆

发表于 2008-11-7 10:56:04 | 显示全部楼层
效果存疑虑!

16Mhz/255=62.7kHz

如果用8个点还原.则62.7kHz/8 = 7.8375khz.

16点更差!

不知这样分析合理不?!!!!

出0入0汤圆

发表于 2008-11-7 09:54:02 | 显示全部楼层
mark,,,mark,,,哪位烧友来试试音质能让一般人认可不

出0入0汤圆

发表于 2008-11-7 09:25:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-11-7 09:05:29 | 显示全部楼层
学习一下!!改天试试看!!

出0入0汤圆

发表于 2008-11-7 08:49:44 | 显示全部楼层
good
头像被屏蔽

出0入0汤圆

发表于 2008-11-7 08:32:18 | 显示全部楼层
谢谢。COOL !

出0入0汤圆

发表于 2008-11-6 23:00:37 | 显示全部楼层
楼主的文件中包含了代码。

出0入0汤圆

发表于 2008-11-6 22:58:36 | 显示全部楼层
网上有此文转如下:



用M8L做小功率数字功放 

文/王晓波 



数字功放由于其效率高、易与数字音源对接等优点而在现实生活中具有越来越广泛的应用。本文介绍的是一款用单片机ATmega8L(以下简称M8L)制作的小功率数字功放,具有功耗低、成本低、电路简单、音质较好等优点。



一、数字功放原理解析



数字功放,顾名思义就是将数字信号进行功率放大。数字信号通常用"0"来代表低电平,"1"代表高电平,从而组成一连串的方波信号。由于数字信号只有高低电平之分,因此,当用功放管对其进行放大时,功放管完全可以工作在开关状态,而不是放大状态,这样就大大减小了管子静态功耗,提高了效率。



为了实现数字功放,必须将模拟信号转化为数字信号,在这里通过M8L内部自带的十位模数转换器转换即可,然后用M8L的OCR1A和OCR1B引脚产生占空可变的脉冲串,即PWM。PWM信号是以一个固定频率为基础的,为了产生不同的模拟电平,可以通过改变这个脉冲串的占空比实现。要输出高的模拟电平,就增大占空比,反之减小。这样,通过PWM

就将模拟信号转换为数字信号。将PWM信号通过功放管进行进一步放大,再通过低通滤波器就可以产生模拟电平了。50%的占空比输出电源电平的一半,75%的占空比会产生75%电源电平。模拟滤波器可以是一个简单的无源的RC滤波器。滤波器滤除频率比较高的PWM信号,留下模拟信号。在用作数字功放驱动扬声器时,如果不是为了特殊的需要,为了最大限度地提高输出功率,可以不用低通滤波器滤波,因为扬声器就像个低通滤波器,它对高频的PWM信号是不会响应的。通常扬声器的响应频率范围为20Hz~20kHz,远小于PWM信号的频率。



二、电路工作原理



电路原理图如图1所示,电路分为四个部分,包括前置放大、A/D与PWM转换、功率放大及滤波等。



  



1.前置放大电路 

LM358 组成同向放大电路,音频信号从LM358同向输人端输入,放大增益由R2和R1的阻值大小决定,电压放大倍数:Av=l+R2/R1。R3、R4和R5组成分压电路,当没有信号输入时,同向输入端的电压为2.5V,经过C4、R2和R1组成的交流负反馈电路,输出端电压仍为2.5V。当有信号输入时,同向输入端的电压随着音频信号的变化而变化,经过C4、R2和R1组成的交流负反馈电路,输出电压Vout=Vin*Av。输出信号将以2.5V为轴,上下变动。由于工作电压为+5V,为了保证波形不失真,输入信号的峰值应小于2.5V/Av。LM358为单电源双运放,增益频带宽为1MHz,也可双单源工作。LM358的引脚图如图2所示。







2.A/D与PWM转换



这是电路的重要组成部分,由单片机M8L完成。M8L功能齐全、接口丰富。它有6通道A/D,包括4路10位A/D和2路8位A/D。片中的2个PWM通道可实现任意小于16 位相位和频率可调的脉宽调制输出。M8L的PWM有3种工作模式:快速PWM模式、相位可调PWM模式和相位频率可调PWM模式。本电路采用的是快速 PWM模式。M8L内部A/D转换是通过逐次逼近的方法将输入的模拟电压转换成一个10位的数字量。最小值代表GND,最大值代表AREF引脚上的电压再减去1LSB。通过写ADMUX寄存器也可以把AVCC或内部2.56V的参考电压连接到AREF引脚。在AREF上外加电容可以对片内参考电压进行解耦以提高噪声抑制性能。笔者采用的是8倍时钟分频,工作在连续A/D转换模式,每次A/D转换时间需要13个ADC时钟,此时的A/D转换速率为 16MHz/8/13=153.8kHz。为了提高ADC的抗干扰能力,ADC使用10位精度采样,然后将得到的值除以4作为OCR1A的值,OCR1B 则为OCR1A的补码,即255-OCRlA。



快速PWM模式可用来产生高频的PWM波形。快速PWM模式与其他 PWM模式的不同之处是其单边斜坡工作方式。计数器从BOTTOM计到TOP,然后立即回到BOTTOM重新开始。对于普通的比较输出模式,输出比较引脚 OC1x在TCNT1与OCR1x匹配时置位,在TOP时清零;对于反向比较输出模式,OCRlx的动作正好相反。由于使用了单边斜坡模式,快速PWM模式的工作频率比使用双斜坡的相位修正PWM模式高一倍。此高频操作特性使得快速PWM模式十分适合于功率调节,整流和DAC应用。高频可以减小外部元器件 (电感,电容)的物理尺寸,从而降低系统成本。寄存器配置如下:(COMlA1:COM1A0=1:0)/(COM1B1:COMlB0=1:0)。从两路PWM的产生过程来看,两路的变化是同时的,因而避免了由于两路延时不同所引起的额外损耗。M8L最高工作频率为16MHz,PWM采用8位精度,此时的PWM频率为16Mttz/255=62.7kHz。



PWM的A、B通道初始化采用相同的工作方式,零输入时,ADC采样电压为电源电压的一半,此时得到OCR1A和OCR1B的值都为128,A、B同相输出。而当有信号输人时,A通道的脉宽增加,此时由于B 通道的比较值与A通道互补,所以B通道脉宽减少;当有负信号输入时,A通道的脉宽减少,B通道的脉宽增加。由于实现了互补对称放大,此时信号强度将为单个的两倍。



3.功率放大



由6只常用的三极管组成同相驱动方式实现数字功放功能,从而进一步降低了静态功耗,提高了效率。这种做法的好处就是:只有当PB1和PB2两引脚的电平不相同时,才会引起两只对管(VT3和VT6或VT4和 VT5)的导通,相反,当电平相同时,两只对管不导通,电流几乎为零。



4.滤波



由于M8L内部结构的原因,应在ADC采样前进行低通滤波,这里采用的是RC低通滤波器,由R6和C6组成。另外,最好在AREF引脚与负极之间并接一个阻值较大的电容,用来滤除杂波。



三、软件设计及制作



1.软件设计



本系统软件由AD中断服务程序、PWM程序、按键操作程序组成。程序流程框图如图3所示。







2.制作与调试 

笔者制作的数字功放板如图4所示。





 

从电路板上可以看出,笔者先将单片机和运放做在了两块独立的板子上,然后拼合在一起。这样做的好处就是:可以先测试运放工作是否正常。在这里,R3和R4 的选择很关键,阻值必须相等,这样才会在输出端得到以2.5V为轴线的输出波形,也是整个电路的设计关键。如果手头上有示波器,分析波形再好不过了。本人使用的音源是电脑输出的,幅度较小,因此对其进行了放大,放大倍数为Av=1+R2/R1=6.6倍。读者可以根据情况,适当改变。 

ATmega8L后缀为L,属于低功耗、宽电压、低速的型号,无后缀的为高速型。通常市售的多为ATmega8L。许多资料都称ATmega8L最大时钟为8MHz,实际上,经笔者测试,16MHz时,也能正常工作。如果用高于16MHz晶振,此时M8L将以低于16MHz的某个频率工作。为了安全起见,如果你的串行下载线性能不是很好,最好不要外挂16MHz的晶振去写程序,否则,将会导致串行编程失败。笔者使用的下载界面见图5,下载线制作方便,USB供电。







改写时应先将熔丝位的低8位的CKSEL3-0全置为"1",然后点击写入即可,如图5所示。为了单片机工作的稳定性,要在复位脚加-10kΩ的上拉电阻。



程序较为简单,写好程序后,方可通电测试。先断开功率放大部分,在单片机的PB1和PB2脚上接上小功率的扬声器,小于1W即可。测试时外部音源音量应调节适中,否则会产生噪声。读者也可用示波器观察其波形。调节音量大小,如果能听到正常的声音,说明已成功。如果噪声较大,可能是音量较大,或者是运放的增益太大,可适当减小增益。如果没有输出任何声音,说明PWM没有产生,应检查一下程序,PWM的控制字是否设置正确,A/D转换是否打开。测试功率放大部分最好的办法就是用随声听里面的3V直流电机。先去掉输出电容C7, 

直接接上电机,用+5V供电。用手捏其中一输入端,观察电机的转向,再用手捏另一输入端,观察电机的转向。如果两次转向正好相反,说明工作正常。如果没有或只有一路工作,应检测对管是否损坏。 电源分为两个部分,M8L和LM358采用+5V供电,功率放大部分电源VCC除了可以共用电源外,还可以使用高于+5V的独立电源,这样可以进一步提高输出功率。SB为播放和停止开关。



通过笔者测试,共用电源时,电流随着音乐的节奏而变化,在音乐不失真的情况下,最大电流不超过150mA。静态时,电流约为20mA。此时单片机的能耗是主要的。功率放大部分电源VCC使用+8V电源工作时,功率放大部分的最大电流为80mA,此时输出音量与本人用TDA2003制作的功放电路相当。而 TDA2003功放电路的电压为12V,电流为150mA左右。通过比较可知,数字功放的效率要比模拟功放的高很多。



本期配刊光盘中有完整的源程序,供读者参考。源程序是在ICC集成环境下编译的,生成的HEX文件可以直接烧录到M8L中。



 

本文摘自《无线电》 

出0入0汤圆

发表于 2009-4-6 12:31:28 | 显示全部楼层
谢谢楼主上传!
我有这期的无线电杂志,但缺少源码,懒得编了。
我准备用STC12C5410AD做。

出0入0汤圆

发表于 2009-5-17 14:42:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-17 15:14:35 | 显示全部楼层
WOW    神奇
  喊话器里的D功放更神奇,用555做到

出0入0汤圆

发表于 2009-5-17 22:10:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-26 14:03:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-7-10 23:15:55 | 显示全部楼层
不错,下来看看了。

出0入0汤圆

发表于 2009-11-11 22:41:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-11 23:37:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-25 15:16:10 | 显示全部楼层
很有趣。

出0入8汤圆

发表于 2010-3-25 22:51:43 | 显示全部楼层
我都系番禺的  唔知点样先可以稳到你地呢!!

出0入0汤圆

发表于 2010-3-26 16:43:35 | 显示全部楼层
感觉很亲切!
当年一个同学的毕业设计就是“数字功放”,我帮他做的。虽然效果凑合,但是很新奇。
要是换更犀利的MCU说不定更有玩头呢!!

出0入0汤圆

发表于 2010-3-27 14:27:36 | 显示全部楼层
怎么这么多番禺的,我大学城的……

出0入0汤圆

发表于 2010-3-29 17:55:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-29 18:35:45 | 显示全部楼层
标记,学习

出0入0汤圆

发表于 2010-3-29 19:42:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-14 18:56:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-16 22:43:35 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-4-16 23:07:43 | 显示全部楼层
MARK

出0入85汤圆

发表于 2010-4-18 16:09:13 | 显示全部楼层
早做过了,音质肯定不行的嘛,8位的分辨率,动态范围太小了!!!

出0入0汤圆

发表于 2010-4-18 16:54:25 | 显示全部楼层
看看!

出0入0汤圆

发表于 2010-4-21 18:24:50 | 显示全部楼层
以前看过这篇文章。今天想再看一下,百度中搜到的好多链接都要收费或是注册!

还是OURDEV。CN好啊!不但找到了原文章还有插图和源码!

出0入0汤圆

发表于 2010-4-21 20:26:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-25 23:23:50 | 显示全部楼层
感觉可以借鉴一下这LZ的电路,有几个问题想请教,不知道LZ还在没?

手里有个东东,原来的提示音就是单纯的提示音,响一下喇叭,现在想增加语音提示功能,让用户感觉产品档次高了(汗,老板的要求)

我的想法是把语音提示数字化以后固化到程序中,然后用PWM输出,也就是说没有用到前面电路的输入级与转换级,只用到PWM输出与功放部分,但对功放这部分不太熟悉,现在有几个问题:

1.看到功放部分用的是H桥做的驱动,而我现有的电路比较简单,一个三极管集电极开路输出直接带喇叭,不知道H桥相比有什么差别?是音质方面的差别吗?

2.对M8L不太熟悉,现在产品用的是W79E4051,带10位PWM,但是只有一路,不知道与M8L的PWM的单边斜坡工作方式有什么不同,看LZ的程序两路输出之间就是取反的关系,不知道我接H桥的时候直接在电路上接个反相器行不行?

出0入50汤圆

发表于 2010-4-26 14:42:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-26 15:49:35 | 显示全部楼层
强啊,学习了

出0入0汤圆

发表于 2010-5-5 11:16:20 | 显示全部楼层
谢谢!

出0入50汤圆

发表于 2010-5-6 17:30:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-6 21:19:43 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2010-5-27 20:10:25 | 显示全部楼层
好玩的东西多多啊

出0入0汤圆

发表于 2010-5-27 21:02:13 | 显示全部楼层
这个样子的我很多年前就做过,实践和后来的理论证明都效果不可能太好

出0入0汤圆

发表于 2010-8-9 22:46:51 | 显示全部楼层
回复【楼主位】mjkxxn 小马
-----------------------------------------------------------------------

good

出0入0汤圆

发表于 2010-8-11 17:55:09 | 显示全部楼层
大致看了一下,文章的意思是:
模拟信号---》10位A/D转换---》PWM模拟D/A转换---》功率放大

  以我之见,还不如直接对模拟信号进行放大好了,还避免了粗糙的A/D,D/A转换造成的失真

出0入0汤圆

发表于 2010-8-12 16:06:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-12 16:10:22 | 显示全部楼层
回复【58楼】catchfatty
大致看了一下,文章的意思是:
模拟信号---》10位a/d转换---》pwm模拟d/a转换---》功率放大
  以我之见,还不如直接对模拟信号进行放大好了,还避免了粗糙的a/d,d/a转换造成的失真
-----------------------------------------------------------------------

你完全误会文章的意思了。

出0入0汤圆

发表于 2010-9-2 09:34:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-18 11:58:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-18 22:04:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-20 12:18:06 | 显示全部楼层
我也mark下

出0入0汤圆

发表于 2010-11-20 21:53:53 | 显示全部楼层
写个上位机程序 把音频提取成PWM数据
不是成可以带语音输出了。。。

出0入0汤圆

发表于 2010-11-20 22:02:03 | 显示全部楼层
怎么08年的帖子还有人挖坟啊……

出0入0汤圆

发表于 2010-11-21 11:58:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-24 15:51:11 | 显示全部楼层
请问下,C7是有极性的,两对管分别导通时,电流方向不同,电容没有问题吗?

出0入0汤圆

发表于 2011-1-24 17:16:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-20 13:24:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-20 13:39:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-20 15:04:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-25 00:55:39 | 显示全部楼层
酷!

出0入0汤圆

发表于 2011-5-25 08:19:44 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-25 08:46:38 | 显示全部楼层
有空玩玩,
多谢分享

出0入0汤圆

发表于 2011-6-4 18:22:06 | 显示全部楼层
我也想试试!谢谢分享

出0入0汤圆

发表于 2011-8-5 18:28:00 | 显示全部楼层
mark学习了

出0入0汤圆

发表于 2012-4-19 20:31:25 | 显示全部楼层
这个好!

出0入0汤圆

发表于 2012-4-21 20:15:37 | 显示全部楼层
2楼的图肿么挂了?难道是因为我是教育网???

出0入0汤圆

发表于 2012-4-24 11:08:57 | 显示全部楼层
溜溜吧     
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 18:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表