基于Atmega8的数字功放设计

发布者:静逸心境最新更新时间:2006-11-15 来源: 国外电子元器件关键字:PWM  A/D  计数 手机看文章 扫描二维码
随时随地手机看文章
1 引言

数字功放由于其效率高、易与数字音源对接等优点而在现实生活中具有越来越广泛的应用。它主要包含两部分,图1为数字功放的基本框图。其中PWM变换大致有两种,一是模拟PWM,即将输入的模拟信号或数字信号经D/A后与三角波进行比较,这种变换必须要有频率上百kHz、线性度好、满幅的三角波,而且还要有高速模拟比较器,否则将影响PWM波形在解调后的波形,这些都将增加成本和设计复杂度(使用集成D类功放或D类控制芯片另当别论)。二是数字式PWM,即将输入数字信号或模拟信号经A/D后与计数器相比较,即用计数的方法代替三角波,从而避免了三角波非线性所引起的失真。同传统的模拟方式相比,数字方式具有设计简单,效率更高,抗干扰性更强等优点。而Atmega8单片机中的定时器1可以工作在PWM模式,它只要将其AD中的值移到PWM的输出比较寄存器中即可完成PWM调制,实现起来相当简便。

为了提高输出功率,大多数D类功放都以BTL方式来驱动。

而无论是模拟式还是数字式PWM,BTL两路输出信号的选择也都有两种方案,即同相驱动和反相驱动。前者在零信号时,其两路信号的叠加效果几乎为零,而后者在零信号时,叠加在滤波器上的电压会变大,当然可以通过修改滤波器参数来降低其在负载上的压降,但这样会增加系统功耗,而且不便于整体实现。因此,本文选用数字式PWM,并采取同相驱动方式实现数字功放功能,从而进一步降低了静态功耗,提高了效率。

2 硬件设计

该设计的硬件电路分为三部分,包括前置放大、A/D与PWM转换、功率放大及滤波等,其硬件电路原理如图2所示。本系统的PWM频率至少要调制到信号最高频率(20kHz)的5倍以上,才能保证音频信号很好的还原。若工作频率为16MHz,则PWM的计数最大值(以下简称TOP)将为: fCLK-I/O/fpwm=16MHz/100kHz=160。此外,A/D的采样值(最大255)也必须除以一定的数值才能作为PWM输出比较寄存器(以下简称OCR1A/OCR1B)的值,这显然会降低AD的等效精度。而要保证AD原有的精度和PWM频率,则应提高晶振。经测试:mega8在32MHz下还可正常工作,此时AD采样值可直接作为OCR1A/OCR1B值,此时的PWM频率为32MHz/255=125.5kHz。

2.1 前置放大

前置放大部分主要由AD公司的低功耗、低噪声、单电源、轨对轨输入输出放大器AD8605和数字电位器组成。AD8605的静态电流只有0.9mA(5V),电源范围为2.7V~5.5V,带宽为10MHz。数字电位器采用的X9C102有100个台阶,大小为1kΩ最小可达40Ω,它和AD8605可组成同相放大器。图2中的R2选为1kΩ,放大倍数可在2到250之间调整。

2.2 A/D及PWM部分

本设计中的A/D和PWM都是通过mega8来完成的。在AVR家族中,Atmega8是一个非常特殊的单片机,它内部集成了较大容量的存储器和丰富的硬件接口电路,具有AVR高档单片机MEGA系列的全部性能和特点,但由于采用了小引脚封装(DIP 28),所以其价格与低档单片机相当,因而性价比极高,而且有ISP功能,下载极其方便。

图2

  Atmega8单片机功能齐全、接口丰富。它有6通道A/D,包括4路10位A/D和2路8位A/D。而片中的3个PWM通道可实现任意小于16位,以及相位和频率可调的脉宽调制输出。此外,Atmega8中的每个I/O引脚均采用推挽式驱动,因此不仅能提供大电流驱动,而且还可以吸收20mA的电流。Atmega8的PWM有3种工作模式:快速PWM模式、相位可调PWM模式和相位频率可调PWM模式。其中后两者都采用双程计数器,所以其PWM频率只有快速模式的一半。本文选用第一种工作模式。该模式是利用定时器/计数器1来完成的,而且计数器为单程向上加1,从0x0000一直加到TOP,在下一计数脉冲到来时清零,然后再从0x0000开始加1计数。在设置正向比较匹配输出时,当计数值与OCR1A/OCR1B的值相同时,对输出比较匹配位(以下简称OC1A/OC1B)进行置位操作当计数器的值从TOP返回0x00时则清零OC1A/OC1B。而在设置反向比较输出时,其输出正好与同向比较时相反。从两路PWM的产生过程来看,两路的变化是同时的,因而避免了由于两路延时不同所引起的额外损耗。

  2.3 功率放大部分

功率放大部分采用两片IRF7389,每一片中内置一对VMOS管,N沟道和P沟道的导通电阻分别为46、98mΩVGS=4.5V时,最大输出功率为30W。此外,IRF7389还内置高速恢复二极管,能降低谐波失真。图2中的C17 、C16是加速电容,可用来改善激励波形,以使VMOS管迅速由截止转换为导通,或由导通迅速转为截止,以达到减少死区时间,改善输出波形之目的。图2中的 R7、R8主要起保护作用。

3 软件设计及系统实验

本系统软件由AD中断服务程序、定时中断服务程序、PWM程序、按键中断服务程序组成。

系统上电后, AD中断程序、时钟中断程序、



  PWM程序首先进行初始化,然后在程序运行初始阶段进行音量的AGC控制。考虑到人耳对接收声音强度的对数关系,放大器的增益从2倍到20倍间设计成对数增加方式,而无须手动调整放大倍数,从而使输出能保证在一定范围内,以使放大器工作在线性区。具体过程见图3所示。在播放过程中,可以通过按键调用中断子程序来调节音量。

Atmega8的AD转换在转换精度要求低于 10位时,ADC的采样时钟可以高于200kHz,因而可获得更高的采样率。另外设置SFIOR寄存器中的ADHSM 位可提高ADC的时钟频率。本系统采用ADC内部参考电源和连续转换模式,并选用ADC4通道(精度为8位),实验测得的转换速度可达40kHz。

PWM的A、B通道初始化采用相同的工作方式,零输入时,A、B同相输出。而当正信号输入时,A通道的脉宽增加,此时由于B通道的比较值与A通道互补,所以B通道脉宽减少;当有负信号输入时,A通道的脉宽减少,B通道的脉宽增加。

通过测试本系统在5V电源下,负载为8Ω时的最大输出不失真正弦波峰峰值为8.4V(即4.2×2),输出功率为1.1W,16MHz时的电源电流为278mA,效率为80%。而在32MHz时,AD的等效精度会提高,音质更好,但系统静态功耗电流将增加,然而,由于该损耗基本固定,因此用Atmega8来设计数字功放更适合在较大功率的场合使用。此外,加大IRF7389源极间电压可增大输出PWM电平,从而增大输出功率,进一步提高效率。

4 结束语

选用Atmega8单片机设计功放非常简单,而且灵活性好,可扩展性强,通过调整程序还可满足不同需求。通过修改数字滤波程序即可改变功放频响,若再加一片存储器,即可实现录音、复读、设定播放时间和显示音量等。而这些功能仅仅通过集成D类功放是无法完成的。

关键字:PWM  A/D  计数 引用地址:基于Atmega8的数字功放设计

上一篇:基于Atmega8的数字功放设计
下一篇:基于单片机的FPGA并行配置方法

推荐阅读最新更新时间:2024-12-17 15:01

基于采用ATMEGA16单片机的定时计数器,实现LED亮度自动调节
ATMEGA16的定时/计数器 T/C1定时器A/B比较匹配中断和溢出中断实现LED亮度自动调节。 这里没有什么要注意的,只要理解并会控制T/C1的两个比较匹配中断A/B和溢出中断。 然后就是仿真图片~ //------------------------------------------------------------------------------ //通过比较匹配中断和定时器溢出中断(T1)来控制LED亮度的自动变化 //定时器T1的定时长度设置为32.768ms,定时器T1的比较匹配寄存器设置为10位快速PWM模式 //在定时器T1发生溢出中断之前,首先比较中断触发,点亮LED灯;定时
[单片机]
基于采用ATMEGA16单片机的定时<font color='red'>计数</font>器,实现LED亮度自动调节
Intersil推出新款紧凑型多相PWM稳压器
  Intersil公司日前宣布,推出符合Intel移动电压定位(IMVP-6.5TM)标准的新款紧凑型多相PWM稳压器 --- ISL62882和ISL62883。Intersil的ISL62882和ISL62883可降低各种基于Intel处理器的移动手持设备、笔记本电脑、网络系统和嵌入式设计的总器件成本和占位面积,其中包括基于Ibex Peak-M芯片组的新型Capella平台。    每款新稳压器均支持使用可编程的三相、两相或单相工作的各种CPU。可配置的过冲减小功能提供了最小的Vout过冲,该功能可提前获知电压误读,以及产品性能不佳或发生故障的潜在可能。两款器件具有减相、二极管仿真、可优化轻负载效率的自适应体二极管
[电源管理]
stm32库函数学习篇----通用定时器(PWM功能)
上午花了半天时间熟悉了stm32的PWM模块。中午利用午饭时间把PWM功能调试成功。当然,很简单的东西,也许很多前辈估计都不屑一顾的东西。 今天最大的感叹就是网络资源实在是个巨大的宝库,真的很庆幸,在这个复杂的社会环境里,在一个到处充斥着私心、私利的时代,各个网站,各个论坛上的众多网友都时刻保持着开源的氛围。学习一定要和他人交流,而网络提供了这么一个极好的平台。 废话少说,言归正传。 实现功能:采用定时器2的通道2,使PA1输出频率1K,占空比40的PWM波形,用PA8随意延时取反led灯,指示程序运行。 首先熟悉一下定时器的PWM相关部分。看图最明白 其实PWM就是定时器的一个比较功能而已。 CNT里的值不断++
[单片机]
stm32库函数学习篇----通用定时器(<font color='red'>PWM</font>功能)
编写单片机计数器程序对脉冲进行计数程序
编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。 解答:将P1.1的输入脉冲接入INT0,即使用T0 计数器 完成对P1.1口的脉冲计数。编写程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: JNB P1.0,MAIN MOV TMOD,#05H ;定时器/计数器T0为计数方式1 SETB TR0 ;启动T0,开始计数
[单片机]
51单片机—使用PWM对直流电机调速
- 什么是PWM PWM(脉宽调制),是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。 (脉冲可以理解为是IO口的一次高低电平改变) - PWM是怎么对直流电机进行调速的 使用PWM对电极调速时,是靠改变占空比(改变脉冲宽度)来控制输出电压的,电压较小电机转速就会下降;再通过改变周期(脉冲的周期)来控制其输出频率,脉冲频率对电机的转速有着决定性作用,脉冲频率越高连续性就越好。 我们一般时通过改变占空比来改变电机转速的。 (占空比:占空比是指一个脉冲循环内,通电(高电平)时间相对于总时间所占的比例。) - 通过定时器中断实现PWM调速 因为51单片机不附带PWM硬件电路,所以我们一般通过软件模拟PW
[单片机]
关于STM32的D M A问题集锦
1、求教DMA存取AD9235的数据问题 问:AD9235输出12位数据(D11-D0),将(D11-D0)分别接到13个I/O口上,用stm32的DMA将数据存进stm32内部? 答:可以,也可以通过实时的去读取IO口的状态。 2、是否可以直接使用DMA将高速的SPI数据传输并写到内部FLASH?这样是否存在溢出问题? 问:使用DMA将SPI的数据传输并写到内部FLASH时,如果SPI速度较高,是否会存在溢出问题,通常是如何解决的呢? 答:任何接受数据处理的时候都会遇到溢出的问题,只要产生中断,马上把数据读取走就不会溢出。而在处理的过程中,建议使用缓冲区功能,将数据放入缓冲区,然后再放入到FLASH中。
[单片机]
STM32 F207的PWM输入捕获频率和占空比
最近要做一个项目,需要对外部的PWM信号统计频率和占空比,那做吧 使用的是STM32F207的片子 看datasheet,发现定时器几大功能之一就是对PWM信号的捕获比较.说明定时器即可以产生PWM信号,还可以对外部的PWM信号捕获. 自己仿真一下吧,将D0脚作用PWM信号的输出,用定时器3调整其高低电平输出时间,就算是一路占空比可调的PWM信号了. 将定时器2的CH2作为PWM信号的输入脚,即GPIOA1脚,将D0接到A1脚上. 先配置一下吧 //GPIO配置 RCC_AHBxPeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //A口 RCC_AHBxPeriphClo
[单片机]
【C51自学笔记】D/A转换器++DAC0832芯片+A/D转换器+ADC0804芯片
D/A转换器:数字量D和模拟量A之间的转换。 D——》A:((高电平-低电平)/2^8 )*n n:输出的八位对应的十六进制数据对应的十进制 基本原理: 性能指标: 1、分辨率 分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。 分辨率与输入数字量的位数有确定的关系,可以表示成FS/2n。 FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。 2、线性度 线性度(也称非线性误
[单片机]
【C51自学笔记】<font color='red'>D</font>/<font color='red'>A</font>转换器++DAC0832芯片+<font color='red'>A</font>/<font color='red'>D</font>转换器+ADC0804芯片
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved