搜档网
当前位置:搜档网 › 电赛选拔-可控放大器

电赛选拔-可控放大器

目录

摘要---------------------------------------------------------------------2 第一章设计原理与论证

1.测量放大部分----------------------------------------------------------3 (1)前置放大电路的设计------------------------------------------------3 (2)程控增益放大部分--------------------------------------------------4

2.滤波部分---------------------------------------------------------------4 第二章系统整体设计方案

1.系统原理框图----------------------------------------------------------6

2.整体电路图------------------------------------------------------------6

3.滤波部分---------------------------------------------------------------7

4.单片机控制部分--------------------------------------------------------7

5.软件流程---------------------------------------------------------------8 第三章主要参数计算

1.前端放大电路及程控放大部分-------------------------------------------8

2.通频带计算-------------------------------------------------------------8

3.抗干扰措施------------------------------------------------------------10 第四章参数测试分析

1.放大器测试------------------------------------------------------------10

2.程控滤波器测试-------------------------------------------------------11

3.结论------------------------------------------------------------------11 附录(总程序)-----------------------------------------------------------12

可控放大器

【摘要】

本着简单、准确、可靠、稳定、通用的原则,采用了分级设计匹配互连的思想。系统的特色在于:通过模拟开关,改变反馈电阻阻值,从而改变放大器增益,增益从10dB到60dB可调步距为10dB。

用单片机STC89C52对可编程滤波器芯片MAX262进行程序控制,可以同时对两路输入信号进行二阶低通、高通、带通、带阻以及全通滤波处理,滤波器的中心频率在15kHz~50kHz频率范围内实现64级程控调节,其Q值在0.5~64范围实现128级程控调节。

要求:

1.基本要求

(1)放大器输入正弦信号电压振幅为20mV,电压增益为45dB,通频带为100Hz~20kHz,放大器输出电压无明显失真。

(2)滤波器可设置为低通滤波器,其-3dB截止频率fc在1kHz~10kHz范围内可调,调节的频率步进为1KHz,2fc处放大器与滤波器的总电压增益不大于30dB,RL=1k 。

(3)滤波器可设置为高通滤波器,其-3dB截止频率fc在1kHz~10kHz范围内可调,调节的频率步进为0.5kHz,0.5fc处放大器与滤波器的总电压增益不大于30dB, RL=1k 。

(4)截止频率的误差不大于10%。

(5)有设置参数显示功能。

2、发挥部分

(1)放大器电压增益为55dB,输入正弦信号电压振幅为20mV,增益10dB步进可调,通频带为100Hz~50kHz。

(2)制作一个带通滤波器,中心频率25kHz,通频带5kHz,在20kHz和30kHz频率处,要求放大器与带通滤波器的总电压增益不大于45dB。

(3)上述带通滤波器中心频率可设置,设置范围15kHz~35kHz,步进为2kHz。(4)电压增益、截止频率误差均不大于5%。

(5)其他。

第一章设计原理与论证

根据题目要求分以下几部分进行方案设计与论证:

1、测量放大部分

(1)前置放大电路的设计

方案一:

用LM324放大器,其电源电流很小且与电源电压无关,输入偏流电阻是温度补偿的,也不需外接频率补偿,可做到输出电平与数字电路兼容,但其带宽参数无法满足本设计要求故不采用。

方案二:

采用运算放大器OP07,Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备。

为了达到60DB增益采用两级放大,第一级放大倍数为10,总的放大倍数为第一级放大倍数与第二级放大倍数的乘积。

图1

(2)程控增益放大部分

由一增益可软件编程的放大器,将不同幅度的模拟输入信号放大到某个特定范围,便于A/D转换器进行采样;或者将给定信号放大一个由软件设定的增益后输出。

方案一:集成程控增益放大器。它们具有低漂移、低非线性、高共模抑制比和宽频带等优点,但其增益有限,只能实现特定的几种增益切换。所以我们不采用此方案。

方案二:运放+模拟开关+电阻网络。如图1这种方法利用模拟开关切换电阻反馈网络,从而改变放大电路的闭环增益。此种方法通用性强,经济实惠,效果显著。所以我们用此方案。

2、滤波部分

在业自动化的许多领域都要使用滤波器。一般有源滤波器均由运算放大器和RC元件组成。

方案一:使用RC网络,RC电路尽管可以做到体积小和廉价,但要满足此设计要求,需多个图2结构并联,网络仍然过于庞大。而且其上半周内电容C中积蓄得能量到下半周就会被电阻R消耗一半,因此单纯的RC电路Q值不会大于0.5,选择性差,效果同样不佳。所以我们不采用。

图2

方案二:使用MAX262可编程开关电容通用滤波器,它是美国MAXIM公司开发的一种通用有源滤波器,可用微处理器编程控制,方便的构成各种低通、带通、高通、陷波和全通配置,而且不需要外部元件,可靠性高,对使用环境的要求不高。如图3通过单片机(89s52)对该芯片的6个输入端进行有效设置可实现64个不同的中心频率f0,而且Q值可达128完全满足本题目所以我们采用方案二。

单片机与max262的连接图:

第二章系统整体设计方案

1、系统原理框图,见图4。采用模拟开关CD4051控制反馈电阻调节电压增益,优点是电路简单、通用性强。AT89S52直接驱动数码管显示,滤波部分芯片MAX261输入采用4013分频并用模拟开关控制。

2、整体电路图:

3.滤波部分:

4.单片机控制部分:

5.软件流程如下:

总程序框图,见图5

第三章主要参数计算

1、前端放大电路及程控放大部分

放大电路采用反相放大放大倍数计算公式为Avf=-Rw/Rf Av=20lgAvf

当增益Av=10dB Avf=3.16=Rw/10k。由此可计算出Rw=31.6k欧姆,再经过模拟开关CD4051进而可计算出增益分别为20、30、40、50、60时Rw的值(如图)。调节Rw的值即可获得所需的增益。

2、通频带计算

系统选用模式一实现低通、带通,模式三实现高通。同时89C51的ALE信号送到MAX261的CLKA和CLKB引脚作为时钟信号及晶振频率1/6 及2MHz 作为

MAX261的外部时钟时钟频率,MAX261处理的输入信号范围为15kHz~50kHz,通过改变编程数据F0~F5实现64级中心频率调节。根据厂家的芯片资料fclk/f0=40.84+1.57N1及Q=64/(128-N2)并由查表得出下表数据:

f0fclk MODES

F5~F0N1Q6~Q0N2

1,3

15.6 1kHz125kHz125.6601000016001000

15.6 2kHz250kHz125.6601000016001000

3kHz0.5MHz166.5010101042010101

42.1

15.6 4kHz0.5MHz125.6601000016001000

5kHz0.5MHz100.560000000000000

423 6kHz1MHz166.5010101042010101

7kHz1MHz142.9401101127001111

27

1

15.6 8kHz1MHz125.6601000016001000

9kHz1MHz109.960001117000011

6.8

1

10kHz1MHz100.530000000000000

51.8 11kHz2MHz182.2111010052011010

12kHz2MHz166.5010101042010101

42.2

34 13kHz2MHz153.9310001034010001

14kHz2MHz142.9401101127001101

27

1

21 15kHz2MHz133.5201010121001010

1

16kHz2MHz125.6601000016001000

15.6

17kHz2MHz117.810010111100010111

1

18kHz2MHz111.530001117000011

6.8

1

3

19kHz2MHz105.240000113000001

1

20kHz2MHz100.530000000000000

3、抗干扰措施:

宽带放大器的总增益为0—60dB,因此抗干扰措施必须要做的好,才能避免自激和减少噪声。设计中采用了如下方法:

运算放大器采用低噪声、低失调、高开环增益的OP07,;

在电源端并接0.1uf的电容避免电源的高频干扰,并接20uf的电容避免低频干扰。

所有信号耦合用电解电容两端并接高频瓷片电容,以避免高频增益下降。

第四章参数测试分析

1、放大器测试:

增益(dB) Vi(mv)Vout

0 20 21.3mV

10 20

20 20

30 20

40 20 2.1V

50 20

60 20 2、程控滤波器测试:

V i 1

1

1

1

1

1

1

101010

f

V

o

3.结论

基本要求发挥要求实际性能

(1)放大器输入正弦信号电压振幅为10mV,电压增益为40dB,通频带为100Hz~40kHz,放大器输出电压无明显失真。(1)放大器电压增益为

60dB,输入正弦信号电

压振幅为10mV,增益

10dB步进可调,通频

带为100Hz~

100kHz。

电压增益为60dB,输

入正弦信号电压振幅为

10mV,增益10dB步进

可调,通频带为100Hz~

100kHz。

(2)滤波器可设置为低通滤波器,其-3dB截止频率f c在1kHz~20kHz范围内可调,调节的频率步进为1kHz,2f c处放大器与滤波器的总电压增益不大于30dB,R L=1kW。(2)制作一个带通滤波

器,中心频率50kHz,

通频带10kHz,在

40kHz和60kHz频率

处,要求放大器与带通

滤波器的总电压增益不

大于45dB。

低通滤波器,其-3dB

截止频率f c在1kHz~

20kHz范围内可调,调

节的频率步进为1kHz,

2f c处放大器与滤波器的

总电压增益不大于

30dB,R L=1kW。

(3)滤波器可设置为高通滤波器,其-3dB截止频率f c在1kHz~20kHz范围内可调,调节的频率步进为1kHz,0.5f c处放大器与滤波器的总电压增益不大于30dB,R L=1kW。(3)上述带通滤波器中

心频率可设置,设置范

围40kHz~60kHz,步

进为2kHz。

高通滤波器,其-3dB

截止频率f c在1kHz~

20kHz范围内可调,调

节的频率步进为1kHz,

0.5f c处放大器与滤波器

的总电压增益不大于

30dB,R L=1kW。

(4)截止频率的误差不大于10%。(4)电压增益、截止频

率误差均不大于5%。

带通滤波器,中心频

率50kHz,通频带

10kHz,在40kHz和

60kHz频率处,要求放

大器与带通滤波器的总

电压增益不大于45dB。

(5)有设置参数显示功

能。

(5)其他设置参数显示

附录

1.程序

#include

#include

#include

typedef unsigned char uchar; typedef unsigned int uint; typedef unsigned long ulong;

void Write_Max262(void); void Low_Pass(void);

void High_Pass(void);

uchar Fclk_F0_Q(void);

void fd() ;

uchar code Table[13]={

0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,

0x89,0xc7,0xf6};

uchar code Select[6]={

0x7f,0xbf,0xdf,0xef,0xf7,0xfb};

sbit A0=P1^0;

sbit A1=P1^1;

sbit A2=P1^2;

sbit A3=P1^3;

sbit D0=P1^4;

sbit D1=P1^5;

sbit W_R=P1^6;

sbit sw=P1^7; #define S1 0x38

#define S2 0x34

#define S3 0x2c

#define S4 0x1c

uchar num,dd=0,Mode=3,N1,N2,c,Q=1;

uint f0=40000,fc_H=1000,fc_L=1000,d=0xf6; ulong fclk=200000;

void Delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=124;y>0;y--);

}

void Display(void)

{

static uchar num,Temp;

static uint k;

P2=0xff&d;

k++;

switch(num)

{

case 0:

P0=Table[dd];

break;

case 1:

switch(c)

{

case 0:

P0=Table[0];

Temp=0;

break;

case 1:

P0=Table[10];

Temp=fc_H/1000;

break;

case 2:

P0=Table[11];

Temp=fc_L/1000;

break;

case 3:

P0=Table[8];

Temp=f0/1000;

break;

default:

break;

}

break;

case 2:

P0=Table[Temp/10];

break;

case 3:

P0=Table[Temp%10];

break;

default:

break;

}

switch(c)

{

case 0:

P2=Select[num]&d;

break;

case 1:

case 2:

case 3:

if(k>20)

P2=Select[num]&d;

else

P2=0xff&d;

break;

}

num++;

num%=4;

k%=40;

Delay(1);

}

uchar Keyscan(void)

{

uchar Key;

if((P3&0x3c)==0x3c)

return(0xff);

Delay(10);

if((P3&0x3c)==0x3c)

return(0xff);

Key=P3&0x3c;

while((P3&0x3c)!=0x3c)

{

Display();

}

return(Key);

}

void KeySet(void)

{

uchar i;

switch(Keyscan())

{

case S1:

c++;

c%=4;

break;

case S2:

switch(c)

{

case 1:

fc_H+=1000;

if(fc_H==21000)

fc_H=1000;

break;

case 2:

fc_L+=1000;

if(fc_L==21000)

fc_L=1000;

break;

case 3:

f0+=2000;

if(f0==62000)

f0=40000;

break;

default:

break;

}

break;

case S3:

switch(c)

{

case 1:

fc_H-=1000;

if(fc_H==0)

fc_H=20000;

break;

case 2:

fc_L-=1000;

if(fc_L==0)

fc_L=20000;

break;

case 3:

f0-=2000;

if(f0==38000)

f0=60000;

break;

default:

break;

}

break;

case S4:

switch(c)

{

case 1:

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

{

Q=1;

High_Pass();

Fclk_F0_Q();

Write_Max262();

}

break;

case 2:

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

{

Q=1;

Low_Pass();

Fclk_F0_Q();

Write_Max262();

}

break;

case 3:

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

{

Q=f0/10000;

Fclk_F0_Q();

Write_Max262();

}

break;

}

default :

break;

}

}

void Low_Pass(void)

{

Q=pow(Q,2);

Q*=2;

f0=(uint)(fc_L/(sqrt((1-1/Q)+sqrt(pow(1-1/Q,2)+1))));

}

void High_Pass(void)

{

Q=pow(Q,2);

Q*=2;

f0=(uint)(fc_H*(sqrt((1-1/Q)+sqrt(pow(1 -1/Q,2)+1))));

}

uchar Fclk_F0_Q(void)

{

if(Mode==1)

{

N1=(fclk/f0-28.87872)/1.11072;

N2=(11585.28-Q)/90.51;

}

else

{

N1=(fclk/f0-40.48)/1.57;

N2=(8129-Q)/64;

}

return(N1);

return(N2);

}

void Write_Max262(void)

{

uchar i,j,Temp_Mode,Addr=1;

uint Temp1=0,Temp2=0;

Temp1=(N1<<4)+15;

Temp2=(N2<<4)+15;

W_R=0;

Temp_Mode=Mode;

Temp_Mode=Temp_Mode<<4;

P1=Temp_Mode&0xf0;

_nop_();

_nop_();

W_R=1;

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

{

W_R=0;

P1=Addr | 0xb0;

P1=P1&Temp1;

Addr++;

Temp1>>=2;

Temp1=Temp1|0x000f;

_nop_();

_nop_();

W_R=1;

}

for(j=0;j<4;j++)

{

W_R=0;

P1=Addr | 0xb0;

P1=P1&Temp2;

Addr++;

Temp2>>=2;

Temp2=Temp2|0x000f;

_nop_();

_nop_();

W_R=1;

}

Delay(10);

P1=0xff;

}

void fd()

{ P2=d;

if(sw==0)

{Delay(10);if(sw==0){d--;dd++;if(dd==7 ){d=0xf6;dd=0;}P2=d;}}

while(sw==0) ;

}

void main(void)

{ sw=1;

while(1)

{

fd();

Display();

KeySet();

}

}

相关主题