基于MAX038CPP信号发生器制作.docx
- 文档编号:24240435
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:19
- 大小:1.05MB
基于MAX038CPP信号发生器制作.docx
《基于MAX038CPP信号发生器制作.docx》由会员分享,可在线阅读,更多相关《基于MAX038CPP信号发生器制作.docx(19页珍藏版)》请在冰豆网上搜索。
基于MAX038CPP信号发生器制作
模拟电子技术基础课程设计
题目
基于MAX038的信号发生器
专业
电子信息工程
班级
11电信1班
姓名
Mason
学号
指导教师
目录
第一章设计简介3
第二章设计分析3
一、系统框架图3
二、电路设计3
第三章学习感悟9
第四章实物展示10
第五章程序代码12
第六章参考文献17
第一章设计简介
本作品以信号发生器集成ICMAX038CPP为主要芯片,制成宽带宽、高稳定、输出可调、频率可见的简易信号发生仪。
第二章设计分析
一、系统框架图
(图2.1.a)
二、电路设计
2.1基于MAX038CPP信号发生部分
2.1.1MAX038CPP信号发生器芯片简介
MAX038CPP是一款高频率、高精度的信号发生器,它可以产生正弦波、方波、三角波等波形,输出频率可从0.1Hz至20MHz调节,而占空比可从15%到85%调节。
它输出波形的峰峰值恒定为
变化,并且支持锁相环。
MAX038CPP与传统信号发生器芯片相比,MAX038CPP除了频率可调范围宽以后,还具有调频与调相干扰程度小。
(图2.2.1.a芯片引脚图)
引脚名称
引脚说明
REF
参考电压(+2.5V),用于为DADJ、FADJ、IIN提供参考电压、通过电位器将上述引脚连接至REF可实现频率粗调、频率微调、占空比调节。
A0,A1
A0A1
0
1
0
方波
正弦波
1
三角波
正弦波
COSC
外部振荡电容连接引脚。
电容的大小与流入IIN电流的大小决定了输出的中心频率
。
通常电容取20pF~100µF。
DADJ
占空比可调输入端。
当DADJ上的电压从-2.3V变化至+2.3V时,输出波形的占空比从15%到85%变化,大约每伏特变化15%。
另外,在DADJ与REF这间需接1nF的瓷片电容。
FADJ
频率微调输入端。
与DADJ相似,FADJ上电压范围为-2.4V变化到+2.4V。
由于有电流槽,故不使用时不能直接接地。
最大可接电阻12K,这时输出频率倍频。
不允许开路以及其负电压不允许超过-3.5V。
IIN
频率粗调输入端。
通过调节流入IIN的电流可以实现输出频率的粗调(中心频率调节)。
电流范围2µA~750µA,推荐调节范围10µA~400µA。
PDO、PDI
锁相环输出与输入端,不使用时接地。
SYNC
TTL/CMOS互补输出,使用DGND与DV+电源供应。
启用则允许内部振荡器与外部信号同步。
不使用将其开路。
输出占空比为50%的方波。
DGND
SYNC的电源负极与GND之间的电压不能超过0.3V。
DV+
SYNC的电源正极,不使用时保持开路,使用时接V+。
V+
MAX038CPP的正电源(+5V)。
需接旁路电容,1µF瓷片旁路电容或1µF电解电容并联1nF瓷片电容。
OUT
信号输出端,输出波形的幅值恒为
。
V-
MAX038CPP的负电源(-5V)。
需接旁路电容,1µF瓷片旁路电容或1µF电解电容并联1nF瓷片电容。
GND
芯片的模拟地,所有的地引脚以最短路径连接。
内部原理图:
(图2.2.1.b)
相关计算公式:
中心频率计算公式:
或
(1)
输出频率计算公式:
。
(2)
占空比计算公式:
.(3)
电阻电容的选择:
电阻选用精度为1%的金属膜电阻或更好。
电容选择低温度系数无极性电容(建议使用NPO电容)。
尽量不要使用有极性电容,但如果使用了这种电容,将电容的负极接COSC引脚,正极接地。
尽量不要使用大电容去获得低频信号,可以配置合适大电容(100µF),并流入IIN电流调至最小(2µA)可获得低频信号。
布线规则参考:
a)使用一低阻抗地层,并将所有GND以最小路径连接至一起。
b)旁路电容的使用:
在V+、V-输入端接1µF瓷片旁路电容或1µF钽电容并联上1nF瓷片电容。
电容引脚的焊接要尽可能短,特别是1nf的电容。
c)若使用SYNC,则必须将DV+接V+(没必要连接另外的稳压电源),DGND连接至地层,并且1nF瓷片电容放置在DV+与DGND间。
如果不使用SYNC,将DV+开路,但DGND仍需连接地层。
d)所有连线尽可能地短(特别是COSC的连线)。
COSC相关的布线区域下方不要有地层。
使用地将COSC、IIN、FADJ、DADJ包围起来,可以防止其它信号耦合进来。
2.1.2信号发生部分设计原理图
(图2.2.1.c)
(图2.2.1.d)
2.1.3信号发生部分设计分析
占空比(DADJ)调节电阻选取(图R3、R7):
将DADJ通过电阻连接至REF(参考电压+2.5V)。
从图2.2.1.b(芯片原理图)可知,DADJ与FADJ内部均连接了一个250µA电流槽,查阅数据手册(datasheet)可知电阻阻值计算公式:
。
(4)
根据公式(4)以及
的变化范围
,可得最小阻值为800欧姆(取1k)。
最大阻值为19.2k欧姆(取20k可调电阻)。
频率(FADJ)调节电阻选取(图R6、R9):
电阻取值计算公式:
。
(5)
根据公式(4)以及
的变化范围
,可得最小阻值为400欧姆(取1k)。
最大阻值为19.6k欧姆(取20k可调电阻。
频率(IIN)调节电阻选取(图R5、R10):
由于流入IIN最合适电流范围为10
~400
,故由公式:
.(6)
可得电阻阻值范围为6.25k~250k电阻。
故选一个8k电阻与一个250k可调电阻串联至REF与IIN间。
表2.2.1.
(1)输出频率范围与振荡电容
的对应关系
波段
电容值
频率范围
1
20pF
888.9KHz~20.6MHz
2
100pF
67.4KHz~1.78MHz
3
1nF
7.84KHz~215.0KHz
4
10nF
829.8Hz~23.0KHz
5
100nF
86.4Hz~2.40KHz
6
1
F
8.76Hz~242.51Hz
注:
该频率范围是在
=0,调节
获得的数据。
2.2波形放大电路
2.2.1TLE2237CP集成运放简介
●输入失调电压低(典型值为100
)
●电源电压抑制比120dB
●高带宽增益积50MHz
●共模抑制比115dB
●直流增益45V/
2.2.2波形放大电路原理图
2.2.3波形放大电路分析
本设计中使用最基本的反比例运放电路。
将MAX038CPP信号输出端OUT接至正输入端。
2.3基于51单片机的简易频率计
2.3.1频率计简介
本设计中,通过斯密特触发器74LS14对波形整形(方波),再将整形后的信号送至由74HC161与51单片机内部计数器T0构成24位二进制计数器进行脉冲计数。
51单片机定时器T1产生闸门控制时间(1s)控制计数的关断。
该计数值即为当前波形的频率。
最终送至数码管显示。
2.3.2频率计原理图
2.3.3频率计指标与分析
测量范围:
0Hz~16777216Hz(
Hz)
2.3.4源代码
(见附录1)
2.4稳压电路
第三章学习感悟
1,在制作的第一版中,误将频率计的数字地与信号发生器的模拟地相连接。
调试时将两地分开并用0
电阻将两地连接使得器件正常工作。
2,MAX038的输出端通过10uF的电解电容耦合至下一级。
直接耦合可能导致芯片发热。
3,
第四章实物展示
(图4.a)
(图4.b)
(图4.c)
第五章程序代码
/*----------------------ItemDescription-----------------------------------
-ProjectName:
WaveformGenerator
-Files:
-Description:
None
-IDE:
KeiluVision4
-Author:
Mason别名:
小菜
-EmailAddress:
1609099954@
-CreateDate:
2013/5/22
-Performance:
Finished
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
/*----------------------------Head---------------------------------------*/
#include
#include"MICRO.H"
#include"NixieTube.H"
#include"cymometor.H"
#include"delay.H"
/*----------------------------GrobalVariable----------------------------*/
externunsignedlongintfrequence;
/*----------------------------Code---------------------------------------*/
voidmain()
{
Cymomet_Init();
while
(1)
{
Dis_Tube(frequence,0);
}
}
/*----HeadDescription----
-FileName:
cymometor.h
-Author:
Mason别名:
小菜
-CreateDate:
2013/5/30
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
#ifndef_CYMOMETOR_H_
#define_CYMOMETOR_H_
voidCymomet_Init(void);
#endif
/*----FileDescription----
-FileName:
cymometer.c
-Functions:
-Description:
None
-Author:
Mason别名:
小菜
-CreateDate:
2013/5/30
-Performance:
Finished
-GlobalVariable:
None
-FilestaticVariable:
None
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
#include
#include"MICRO.H"
#include"intrins.H"
ucharidatat_count=0,t_threshold=40;
unsignedlongintfrequence;
voidCymomet_Init(void)
{
P1=0xff;
TMOD=0x15;//T1:
16bitTimer;T0:
16bitcounter;
TH1=Timer1_TH;//计时50ms
TL1=Timer1_TL;
TH0=0;
TL0=0;//清空计数值
PT1=1;//将T1的优先级设为最高
EA=1;
ET1=1;
CEPT_161=0;//停止计数
MR_161=0;//计数清零
_nop_();_nop_();
MR_161=1;
TR0=1;//开启定时器
TR1=1;
CEPT_161=1;//开始计数
}
voidT1_ISR(void)interrupt3
{
//TR1=0;
TH1=Timer1_TH;//计时50ms
TL1=Timer1_TL;
if(++t_count>=t_threshold){//
TR0=0;
LATCH=0;
CEPT_161=0;//74LS161计数值保持
t_count=0;//清零
frequence=TH0;//读取计数值
frequence*=256;
frequence+=TL0;
frequence*=256;
frequence+=P1;
TH0=0;//清空计数值
TL0=0;
MR_161=0;
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
MR_161=1;
TR0=1;
CEPT_161=1;//恢复计数
LATCH=1;
}
//TR1=1;
}
//头文件描述
/*----HeadDescription----
-FileName:
NixieTube.H
-Author:
Mason别名:
小菜
-CreateDate:
2013/4/19
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
#ifndef_NIXIETUBE_H_
#define_NIXIETUBE_H_
voidDis_Tube(longintnum,unsignedcharpoint);
#endif
/*----FileDescription----
-FileName:
Nixietube.c
-Functions:
显示数字
-Description:
None
-Author:
Mason别名:
小菜
-CreateDate:
2013/4/19
-Performance:
Finished
-GlobalVariable:
smg_table[18]
-FilestaticVariable:
None
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
/*----------------------------Head---------------------------------------*/
#include
#include"NixieTube.H"
/*------------------------------CodeVariable----------------------------*/
//共阴
charcodesmg_table[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};
/*----------------------------Code---------------------------------------*/
/*----ImportantFunctionDescription----
-FunctionName:
Dis_Tube(longintnum,unsignedcharpoint)
-Description:
若显示的数字为浮点数,将其乘以10的n次方后转成
整后作为num,将其小数点数赋值作为point。
-Author:
Mason别名:
小菜
-CreateDate:
2013/4/19
-Parameters/Arguments:
longintnum:
显示的数字
unsignedcharpoint:
小数点数
-ReturnCode:
None
-GlobalVariable:
smg_table:
显示字模
-staticVariable:
None
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
voidDis_Tube(longintnum,unsignedcharpoint)
{
unsignedchartemp=0x80,t1,t2;//实物驱动
longintn=10;
do{
if(0x80>>point!
=temp)//显示
P0=smg_table[num%n/(n/10)];
elseP0=smg_table[num%n/(n/10)]|0x80;
P2=~temp;
for(t1=10;t1>0;t1--)//延时
for(t2=25;t2>0;t2--);
temp>>=1;
if(num/n==0)temp=0x00;
n=n*10;
}while(temp!
=0x00);
}
/*----HeadDescription----
-FileName:
MICRO_H
-Author:
Mason别名:
小菜
-CreateDate:
2013/3/5
--------------------------------------------
-RevisionHistory
-No.DateRevisedbyItemDescription
-
-------------------------------------------------------------------------*/
#ifndef_MICRO_H_
#define_MICRO_H_
#include
//MICRO
typedefunsignedintuint16;
typedefintWORD;
typedeflongintDWORD;
typedefunsignedcharuchar;
typedefcharBYTE;
//DCDriver/DriverBus
sbitPWML1=P1^3;
sbitPWMR1=P1^4;
//Cymometer
sbitCEPT_161=P3^2;
sbitMR_161=P3^3;
sbitLATCH=P3^7;
#defineTimer0_TH0xD4//定时器初值5ms
#defineTimer0_TL0x0E
#defineTimer1_TH((65535-31300)/256)
#defineTimer1_TL((65535-31300)%256)
//ADC启动转换
#defineEN_ADC00xf8//选择P1.nADC引脚,并使能ADC_START.
#defineEN_ADC10xf9
#defineEN_ADC20xfa
#defineEN_ADC50xfd
#defineEN_ADC60xfe
#defineEN_ADC70xff
#endif
第六章参考文献
[1]《MAX038CPP数据手册》MAXIM
[2]《MAX038高频程控函数发生器设计》倪向东著
[3]《基于MAX038的多功能信号发生器的设计》嵌入式软件院著
[4]《一种基于MAX038的宽频程控波形发生器的设计》张权、姚骏、李斌著
[5]《MAX038高频精密函数发生器原理及应用》蒋金弟、朱永辉、毛培法著
[6]《基于MAX038多功能信号发生器的设计》赵涛、邢灿华、姚西霞、陈晓娟著
[7]《基于STC12C5A60S2的高频高精度频率计的设计》黄俊、余水宝著
[8]《100MHz주파수카운터/펄스카운터》
[9]《自制智能频率计》彭洪波著
[10]《用单片机构成10^-8Hz一100MHz高精度智能频率计》程肇基、蒋勤著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MAX038CPP 信号发生器 制作