音频功放器件测试讲解

  • 格式:doc
  • 大小:388.00 KB
  • 文档页数:16

音频功率运放测试讲解

Rev1.0

摘要:

本文主要介绍音频功率运放的种类,特性,及测试方法。以介绍CLASS-AB,CLASS-D类为主。

CLASS-AB,CLASS-D,THD

1. 音频功率运放介绍

音频运放顾名思义用来放大音频信号,其特点是用高转换速率来维持信号的低失真,拥有20Hz到20KHz平坦的频率响应和足够大的输出电流。

近年来,随着消费类电子以及通讯娱乐产品市场的兴起,应用于手机、MP3、MP4等便携式多媒体设备以及电视、家庭音响、汽车音响等设备的音频功率放大器技术得到了长足发展,预期未来还会有更广阔的市场空间。

音频运放根据工作方式分为CLASS-A,B,AB,D

类型 CLASS-A CLASS-B CLASS-AB CLASS-D

效率 20-30% 35-45% 35-45% 70-75%

工作方式 线性放大 线性放大 线性放大 PWM调制

消耗功率 始终工作在放大区,静态消耗大 利用两个对管,分别输出正,负半周,静态消耗小 与输入信号大小有关,静态消耗小 只与器件自身特性有关,静态消耗小

失真 无失真 交越失真,失真较大 一定谐波失真,但失真小 一定谐波失真,但失真小

应用领域 高品质音响 基本被替代 手机,mp3等消费类音频产品领域 手机,mp3等消费类音频产品领域

G类音频运放在D类的基础上加入了静音,音量控制等功能。

目前常见的音频运放封装形式是CSP,MSOP,TSSOP,趋势是向小型化发展。

2. 总谐波失真与信噪比说明

图

图为使用excel打开文件,并且选择制图工具后进行处理后的波形图,结合上图附带对THD进行一下说明。

THD:定义为总谐波失真,测量信号的失真成分,指信号的等效谐波,用信号振幅的百分比表示。将1kHz信号作用到输入端,THD是在2kHz、3kHz、4kHz等整数频点的输出与1kHz频点输出能量的比。

通过以上的定义,可以得出计算公式如下:THD=1020210lg20PPnn

3. CLASS-AB类音频运放介绍

如图,是一个基本的CALSS-AB类音频运放,通过两个反相电路,在输出端得到2倍于输入信号的输出信号。在无信号时也有少量电流流出器件,因此失调电压VOS越小越好,其实际效率也只能做到35%~45%。

图

VDD端是电源电压,在无输入信号时,输出是VDD/2的直流偏置电平,如图。

图 当IN-端输入如图所示交流信号,VO1,VO2则输出具有相同Vpp,直流偏置VDD/2,相位差180度的交流信号,如图。

图

图

接触不好、输入信号峰值大于VDD/2或负载太大都有可能造成输出波形失真,图是比较严重的失真波形。

图 削顶失真

当器件输出频率为1KHz波形正常(如图),频域波形如图,谐波较小。图可见,在1KHz频点有一个主功率值P10≈1,谐波功率PHarmonic和噪声功率Pnoise最高不超过0.001,于是可以推出THD≈20lg(0.001/1)=-60db。 图

图

当输出波形有轻度失真时(如图),则频域波形如图,谐波较大。

图可见,在1KHz频点有一个主功率值P10≈1,谐波功率PHarmonic中P20,、P30、P130这三个谐波功率点功率值接近P10,说明该波形在2KHz,3KHz,13KHz频点上都有很大的噪声,导致了波形的失真。

时域图00.20.40.60.8012345678910时间(mS)电压(V)

图

频域图0.0000010.000010.00010.0010.010.1101020304050607080901001101201301401501601701801900.1KHz

图 4. CLASS-D类音频运放介绍

D类功率放大的工作原理有点类似开关稳压电源,它通过PWM(脉宽调制)的方式来获得功率转换。

图所示电路可以单端或差分输入,通过PWM部分,将输入的音频信号调制到脉冲波型中。然后通过D类功放(脉冲控制的大电流开关放大器)把比较器输出的PWM信号变成高电压、大电流的大功率PWM信号。能够输出的最大功率由负载、电源电压和器件允许流过的电流来决定。H-桥式电路是将信号调整为相位相差180度的差分输出。最后用一个低通滤波器恢复出功率增强了的音频信号。

图

VDD端接+5V电源电压,在无输入信号时,输出幅值等于VDD的方波,如图。

图

当输出端波形经过一阶RC或LC滤波器(滤波器截止频率一般在40KHz左右)后,变成VDD/2的直流偏置电压,如图。

图

图 IN-端输入交流信号如图,输出PWM方波,经过滤波器滤波后,VO1,VO2则输出具有相同Vpp,直流偏置VDD/2,相位差180度的交流信号,如图。

图

CLASS-D类的器件在测试输出信号时,也是将输出信号通过滤波器还原成正弦信号进行分析,与CLASS-AB分析类似。接触不好、输入信号峰值大于VDD/2或负载太大都有可能造成输出波形失真,失真波形与CLASS-AB类似。

5. CLASS-AB,D类测试参数说明及对比

 直流参数

Isd:静态电流测试

Icc:静态工作电流测试

Vbp:BYPASS端静态工作电压(CLASS-AB)

Vos:静态输出电压差

Freq:输出频率(CLASS-D)

注:

对于CLASS-AB,BYPASS和VO+,VO-端的直流工作电压一般都是1/2VDD.受BYPASS端电容影响,此类器件上电时间较慢,一般需要100mS.

只要接触正常,直流参数测试一般不会有什么问题.为了判断接触是否正常,建议测试所有管脚的开短路(测试管脚内部对地二极管).

 交流参数

VOp-p:输出电压峰峰值

Gain:增益

THD:总谐波失真度

Po:功率

注:

交流参数对接触的要求比直流参数要高.有时接触阻抗较大,对交流参数影响很大,直流参数却是正常的.

交流源自身必须干净,否则会将自身的失真带入测试结果中。

为节省测试时间,在处理THD数据时最好采用快速傅立叶变换。

6. 基于STS8107的CLASS-AB类器件测试

 测试原理图及资源配置

 测试电路图

图

 资源配置表

资源板名称 CBIT128 DVI PVI ACSM

 资源管脚对应表

资源 管脚

PVI0 VDD

DVI0 SD

DVI1 IN-

DVI2 BP

DVI3 IN+

ACS0 IN-

ACM0+ VO1

ACM0- VO2

 测试项目和程序

 Isd关断电流

测试条件

(1) K1,K2,K3 断开。

(2) Vsd=0V,Vdd=3.6V,测试VDD管脚电流ISD

程序说明:

该项目主要测试器件关断状态时的消耗电流,由于器件VDD端有挂载电容,为了使电容可以尽快充电稳定,建议先使用大电流量程档建立状态后,转换为小电流量程档进行测试,保证测试精度,缩短测试时间。具体程序见附件。

 Icc

测试条件

VDD端加3.6V,同时SD端加3.6V,测试静态工作电流

程序说明

具体程序见附件。

 Vos

测试条件

VDD端加3.6V,同时SD端加3.6V,测试输出端失调电压

程序说明

具体程序见附件。

 Vbp

测试条件

VDD端加3.6V,同时SD端加3.6V,测试Bypass端电压

程序说明

具体程序见附件。

 Gain,Po,THD

测试条件

VDD端加3.6V,同时SD端加3.6V,Vin端输入0.9765625KHz,1.5Vp-p正弦波。测试输出端电压有效值,计算增益和功率。测试输出端电压频谱信号,计算总谐波失真和信噪比。

程序说明

void test_AC()

{

cbit.SetOn(K2,K3,-1);

pvi0.Connect();

dvi0.Connect();

pvi0.SetModeFVMI(PVI_VRNG_5V,3.6,PVI_IRNG_1A,1,-1);

pvi0.Enable();

delay_ms(1);

dvi0.SetModeFVMI(DVI_VRNG_2V,1.4,DVI_IRNG_40MA,40e-3f,- 40e-3f);

dvi0.Enable();

delay_ms(1);

acsm0.ACSDutConnect();

status=acsm0.ACSConfig(ACS_SINE_WAVE,0.9765625,1.5,0,ACS_FILTER_OFF);

acsm0.EnableACS();

delay_ms(150); //器件建立输出等待时间

status=acsm0.ACMLMeaDutAC(ACM_LADC_VR_5V,ACM_DC_COUPLE,2048, adresult);

for(i=0;i<2;i++)

{

Gain->SetTestResult(i, 0, adresult[i]*2.828/1.5);

//增益计算公式Gain=Vout/Vin,ACM的交流电压测试值是有效值,乘以2.828转成峰峰值

Po->SetTestResult(i, 0, adresult[i]* adresult[i]/8);

//功率计算公式Po=Vout*Vout/Rload

}

status=acsm0.ACMLMeaDutTHD(ACM_LADC_VR_5V,ACM_DC_COUPLE,2048,20,TOTAL_HARM,adresult);

for(i=0;i<2;i++)

{

THD->SetTestResult(i, 0, adresult[i]);

}

acsm0.DisableACM();

acsm0.DisableACS();