《课程设计论文基于Atmega128的并行AD(TLC0820)设计.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于Atmega128的并行AD(TLC0820)设计.doc(20页珍藏版)》请在三一办公上搜索。
1、基于Atmega128的并行AD(TLC0820)设计院系:实验学生:指导老师: 二零一一年七月目录1、设计任务42、芯片简介4 2.1 特点4 2.2 引脚说明4 2.3 工作原理5 2.4 时序分析63、系统方案设计9 3.1 信号输入处理模块的论证与选择93.2 AD转换模块的论证与选择10 3.3 软件程序模块的论证与选择 104、系统理论分析与计算 11 4.1 信号输入处理电路的分析与计算11 4.2 AD转换电路的分析与计算11 4.3软件程序的分析与实现115、电路设计165.1 系统总体框图165.2 信号输入处理电路原理图165.3 AD转换电路原理图165.4 电源176
2、、测试方案与测试结果176.1 测试方案176.2 测试条件与仪器176.3 测试结果与分析17 6.3.1 测试结果(数据)18 6.3.2 测试分析与结论.18附录1 参考文献 19附录2 系统原理图 19 1、设计任务 设计制作一个AD转换电路,要求使用Atmega128对测量数据进行处理及显示。AD转换芯片要求使用先进的LinCMOS 8 位模数转换器TLC0820(与ADC0820完全兼容)。2、芯片简介2.1 特点 先进的LinCMOS 硅门技术 8 位分辨率 差分基准输入 并行微处理器接口 在温度范围内转化及存取时间 读方式2.5 s Max 无需外部时钟或振荡器 片内的采样与保
3、持 单-5 伏电源 TLC0820A 可直接替代国家半导体ADC0820C/CC 及AD 公司的AD7820K/B/T2.2 引脚说明引脚号 名称 I/O 说明 1 ANLG LN I 模拟输入端 13 CS I 片选端。CS 须保持低电平以便AD识别RD 或WR 27 D0D7 O 数据端,3 态数据输出 10 GND 地 9 INT O 中断。在写读方式时,中断输出 (INT )变低提示内部计数延迟时间 td(int)完成及结果数据在输出锁定。典型的延迟时间 td(int) 是 800ns ,在WS 上升缘后开始(见工作特性及图3 )。如果RD 在td(int)结束前变低则 INT 在 t
4、d(RIL)结束时变低且转换结果即可读出 (见图 2 )。INT 由RD 可CS 上升缘复位 7 MODE I 方式选择。MODE 通过类似下拉电阻的50A 电流源与GND相连。当 MODE低电平选择读方式。当MODE高电平则选择写-读方式 19 NC 无内部连接 18 OFLW O 溢出指示端。正常情况时OFLW是一逻辑高电平。可是如果模拟输入比Vref+高,OFLW在转换结束时将变低。可用于级联两个或多个器件以提高分辨率 (9 或 10 位) 8 RD I 读。CS 低电平的写读方式下,3 态数据输出D0 至D7 在RD 变低时被激活。通过在内部计数延迟时间结束之前读数据,RD也可用2.3
5、 工作原理TLC0820AC 和TLC0820AI 均采用取样数据比较器技术及普遍用于许多高速转换器的快闪技术。应用两个4 位快闪模数转换器完成 8 位输出。 推荐的模拟输入电压范围是0.1V 至VCC+0.1V 。小于Vref-+1/2LSB 或大于Vref+1/2LSB 的模拟输入信号 分别转换为00 00 00 00 或 11 11 11 11 。基准输入是全差分的,其共模极限为电源决定。基准输入值决定模 拟输入满量程范围。这允许ADC 的增益通过改变Vref+及Vref- 电压值而变化以便于比率转换。 器件在两种方式下工作:读及写读方式,可通过MODE 选择。 高4 位快闪ADC 通过
6、同时工作的 16 个比较器测量输入信号。高精度的4 位DAC 这时从转换结果产生一离散的模拟电压。一段延迟时间后,第二组比较器根据输入电平及 DAC 输出间的模拟电压差完成低四位转换。每一个转换结果输入一个 8 位锁定电路并且在RD 的下降沿输出至3 态输出缓冲器。2.4 时序分析只读模式。 MODE处于低电平时,转换器被设为(只)读方式。在只读方式下,WR/RDY 被用作输出且被认为是准备好端。在此状态,WR/RDY 低电平且 CS 低电平指示器件忙。转换开始于RD 的下降沿且在INT 下降和WR/RDY 恢复至高阻抗状态后1.6s内完成。此时数据输出亦从高阻抗状态转变为有效状态。数据读出后
7、,RD 处高电平状态,INT 恢复高电平状态,数据输出恢复至高阻抗状态。写读方式 当MODE 处高电平状态,转换器被设为写读方式且WR/RDY 被看作是写操作端。(1) 模式一 在此状态,WR/RDY 低电平且 CS 低电平指示器件忙。转换开始于WR的上升沿且在INT下降的800ns内完成。保存CS低电平、WR高电平状态,RD读取信号要在INT下降前准备好,在INT下降沿开始读数据,数据输出亦从高阻抗状态转变为有效状态。数据读出后,RD 处高电平状态,INT 恢复高电平状态,数据输出恢复至高阻抗状态。(2) 模式二 此状态类似于模式一,WR/RDY 低电平且 CS 低电平指示器件忙,转换开始于
8、WR/RDY上升沿,大约在 WR/RDY 恢复高电平后800ns内完成。INT下降沿表示转换完成,此时,在RD的下降沿开始读数据,数据输出亦从高阻抗状态转变为有效状态。数据读出后,RD 处高电平状态,INT 恢复高电平状态,数据输出恢复至高阻抗状态。(3) 模式三此工作方式操作简单,将CS、RD一直处低电平状态,转换开始于WR的上升沿,转换大约在800ns内完成,INT下降沿表示转换完成,数据可读出。INT为高电平状态时,数据输出呈高阻抗状态。在这种状态下,数据呈现的高阻态可以引起数据误读,影响精确度。3、系统方案设计本系统方案根据TLC0820的输入信号要求设计相对应的输入信号处理模块,并根
9、据芯片的几种工作模式来选择芯片的连接电路以及程序的设计。程序的设计是由芯片驱动程序设计、采样数据处理程序设计、显示程序设计等三个模块组成。电路由运放比例缩小电路、电位抬高电路、反相等比跟随电路以及AD转换电路等电路模块组成。真有效值计算公式:3.1 信号输入处理模块的论证与选择根据TLC0820的测量信号输入要求“0.2V 至VCC+0.2V”可见,输入信号要求单极性且峰峰值不得超过电源电压0.2V。一般的输入信号均为双极性,如果输入信号峰峰值很大就需要将其等比缩小并将其的基准电压值抬高。比例缩小电路:方案一:通过电阻网络缩小信号幅值。即通过分压电阻来实现,此方案对电阻的精确度要求很高,别电阻
10、容易受温度影响,最后的结果误差可能很大,再者大电阻对信号的能量有损耗并且都含有一定的寄生电容,也会对分压效果有很大影响。所以放弃此方案。方案二:通过运放缩小信号幅值。根据运放组成的比例放大电路的原理来构成比例缩小电路。即,只需要增大输入电阻的阻值以及减小反馈电阻的阻值来完成放大比例小于1的缩小。运放的精度比较高,且受外界影响比较小,所以选择此方案。通交隔直电容 在缩小电路后面加一个4.7uf的电解电容,来防止抬高电位的直流量灌入缩小运放中。因为比例缩小运放的输出阻抗很小,而后一级的等比跟随输入阻抗很大,所以必需加通交隔直电容。抬高电位电路 用分压电阻网络来完成。等比跟随电路因为AD转换要求输入
11、阻抗很小来完成最大功率传输,所以前级应加电压跟随器。由于前级比例缩小电路将信号反相,所以此极只能用反相等比运放完成电压跟随器的功能。3.2 AD转换模块的论证与选择采用TLC0820写读方式的模式三进行实验。因为它的操作简单,在程序的设计里面要注意等待转换的完成,否则可能读到数据端口的高阻态而影响精确度。3.3 软件程序模块的论证与选择由芯片驱动程序设计、采样数据处理程序设计、显示程序设计等三个模块组成。 芯片驱动程序是根据时序分析里面,对写读方式的模式三的时序图来编写程序。 采样数据处理是通过冒泡发得到数据中的最大值和最小值。通过均方根运算得到其真有效值。4、系统理论分析与计算 4.1 信号
12、输入处理电路的分析与计算比例缩小等比跟随 4.2 AD转换电路的分析与计算 根据采样定理,;而工程上我们要求。所以采样频率设为300KHz。采样点数设为300个。 4.3软件程序的分析与计算实验程序:/*0801.h */#define uchar unsigned char#define uint unsigned int#define ulong unsigned long/*main.c*/#include #include #include #include 0801.h#define N 300 /采样点的个数#define V 5.0 /满数字量的幅值量 float DATN; /
13、采样到的数据放入一个大数组中uint q=0; /一个返回值float V_max,V_min; /定义最大最小值float V_effective; /定义有效值void RMS() /通过冒泡发得到采样数据中的最大值和最小值 int i;float convert; V_effective=0.0; V_max=V_min=DAT0; for(i=0;iV_max) V_max=DATi; /循环比较得最大if(DATiV_min) V_min=DATi; /循环比较得最小 for(i=0;iN;i+) convert=V*DATi/256; V_effective+=convert*co
14、nvert; V_effective=sqrt(V_effective/(N); /计算得到真有效值 void main() uint c1,c2,c3,i,j,DAT_30; init(); pwm(); /送给0820的writ端口的PWM信号(100KHz) while(1) for(i=0;iN;i+) DATq=PINC; /采样并放入数组 q+; RMS(); /计算 q=0; c1=(V*V_max/256)*10000; /乘以10000将小数化为整数是为了便于1602显示 c2=(V*V_min/256)*10000; c3=V_effective*10000; show_1
15、602(c1,c3); /显示 void init() PORTB=0xff; DDRB=0xff; PORTE=0xff; DDRE=0xff; PORTC=0x00; DDRC=0x00; PORTD&=BIT(0); DDRD&=BIT(0); EICRA|=BIT(ISC01); EIMSK|=BIT(INT0); SEI();/*1602.c*/#include #include #include 0801.h const uchar ju_1=MAX:;const uchar ju_2=T-RMS:;const uchar ASCII=48,49,50,51,52,53,54,55
16、,56,57,46,47,114,86; /0 1 2 3 4 5 6 7 8 9 10.1112r 13svoid show_1602(uint x,uint y) uchar DAT_18=0,DAT_28=0,; uchar m,n,i,j; PORTB&=BIT(2); write_com(0x38); delay(5); /write_com(0x01); /delay(5); write_com(0x0c); delay(5); write_com(0x06); delay(5); DAT_10=x/100000; DAT_11=x/10000%1000; DAT_12=10; D
17、AT_13=x/1000%10; DAT_14=x/100%10; DAT_15=x/10%10; DAT_16=x%10; DAT_17=13; DAT_20=y/100000; DAT_21=y/10000%10; DAT_22=10; DAT_23=y/1000%10; DAT_24=y/100%10; DAT_25=y/10%10; DAT_26=y%10; DAT_27=13; write_com(0x80+0x01); delay(5); for(n=0;n4;n+) write_dat(ju_1n); delay(1); write_com(0x80+0x06); delay(5
18、); for(m=0;m8;m+) write_dat(ASCIIDAT_1m); delay(1); write_com(0x80+0x40); delay(5); for(i=0;i6;i+) write_dat(ju_2i); delay(1); write_com(0x80+0x46); delay(5); for(j=0;j8;j+) write_dat(ASCIIDAT_2j); delay(1); void qinpin() write_com(0x01); delay(27);void write_com(uchar com) PORTB&=BIT(0); PORTB&=BIT
19、(1); PORTE=com; PORTB|=BIT(2); delay(1); PORTB&=BIT(2);void write_dat(uchar dat) PORTB|=BIT(0); PORTB&=BIT(1); PORTE=dat; PORTB|=BIT(2); delay(1); PORTB&=BIT(2); /*pwm.c*/#include #include #include 0801.h void pwm() TCCR0|=BIT(WGM01)|BIT(COM00)|BIT(CS00); OCR0=21;/*delay.c*/#include #include #includ
20、e 0801.h void delay(uint ms) int j; for(;ms0;ms-) for(j=0;j1141;j+)NOP();5、电路设计5.1 系统总体框图5.2 信号输入处理电路原理图5.3 AD转换电路原理图5.4 电源电源为AD芯片提供+5V电源,为输入处理电路提供12V电源,确保电路的正常稳定工作。要确保正负极接法的准确性。6、测试方案与测试结果6.1 测试方案 将电路分级进行测试,也就是说,从方波振荡信号产生到最后波形合成,一级一级的检测。确认一级准确无误后,再接上下一级电路,测量前后两级是否正常工作。所有模块板子都要保证所有地线共线、电源线共线。6.2 测试条
21、件与仪器测试条件:检查无误,硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:数字万用表、示波器、稳压电源。6.3 测试结果与分析6.3.1 测试结果(数据)f(KHz)VMAX(源)VMAX(测)VRMS(源)VRMS(测)5.03.863.902.652.7210.03.863.902.672.7515.043.863.902.682.7220.083.863.912.682.7025.103.863.902.682.6930.03.863.882.682.6735.153.863.882.662.6640.203.863.882.682.7245.083.863.902.682.6850.553.883.902.672.68 6.3.2 测试分析与结论 根据实验数据,随着输入信号频率的增加,误差也随着增加。误差基本保持在40mv以内。误差率为:1%。附录1 参考文献1 邱关源、罗先觉 主编电路。北京:高等教育出版社。2006.52 康光华 主编模拟电子技术基础。北京:高等教育出版社。2006.13 森 荣二 主编LC滤波器设计于制作。北京:科学出版社。2006.1 4 马场清太郎 主编运算放大器应用电路设计。北京:科学出版社。2007.4附录2 系统原理图 20