1、 基于 ATmega128的 DA( DAC0832)设计 院 系 : 武汉理工大学华夏学院 信息工程系 指导老师: 钟学斌 专业班级 : 自动化 1111 学生姓名: 周攀 二 0 一三年 七月二十五日 目 录 1、设计任务 4 2、芯片简介 4 2.1 特点 4 2.2 引脚说明 4 2.3 工作原理 5 2.4 DAC0832 的 三种工作方式 6 3、系统方案设计 7 3.1 数字信号产生模块的论证与选择 7 3.2 DA 转换模块的论证与选择 8 3.3 信号处理 模块的论证与选择 8 3.4 软件程序的分析与实现 8 4、电路设计 11 4.1 系统总体框图 11 4.2 DA 转
2、换电路原理图 12 4.3 信号处电路原理图 13 4.4 电源 13 5、测试方案与测试结果 13 5.1 测试方案 13 5.2 测试条件与仪器 14 5.3 测试结果与分析 14 附录 1 参考文献 16 附录 2 系统原理图 16 1、 设计任务 设计制作一个 DA 转换电路,要求使用 ATmega128 输出数字信号。 DA 转换芯片要求使用 DAC0832。 2、芯片简介 2.1 特点 分辨率为 8 位; 电流 稳定时间 1us; 可单缓冲、双缓冲或直接数字输入; 只需在满量程下调整其 线性度 ; 单一电源供电( +5V +15V); 低功耗, 20mW。 2.2 引脚说明 D0
3、D7: 8 位数据输入线, TTL 电平,有效时间应大于 90ns(否则锁存器的数据会出错 ); ILE:数据锁存允许控制信号输入线,高电平有效; CS:片选信号输入线(选通数据锁存器),低电平有效; WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于 500ns)有效。由 ILE、 CS、 WR1 的逻辑组合产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变换, LE1 的负跳变时将输入数据锁存; XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于 500ns)有效; WR2: DAC 寄存器选通输入线,负 脉冲(脉宽应大于 500ns)有效。由 WR2、 XF
4、ER 的逻辑组合产生 LE2,当 LE2 为高电平时, DAC 寄存器的输出随寄存器的输入而变化, LE2 的负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。 IOUT1:电流输出端 1,其值随 DAC 寄存器的内容线性变化; IOUT2:电流输出端 2,其值与 IOUT1 值之和为一常数; Rfb:反馈信号输入线,改变 Rfb 端外接 电阻 值可调整转换满 量程 精度; Vcc:电源输入端, Vcc 的范围为 +5V +15V; VREF:输入线, VREF 的范围为 -10V +10V; AGND:模拟信号地; DGND:数字信号地。 2.3 工作原理 DAC0832
5、是常用的 8 位电流输出型并行低速数模转换芯片,当需要转换为电压输出时,可外接运算放大器, 运放的反馈电阻可通过 RFB 端引用片内固有电阻 (图 3中的 Rfb) ,也可外接。 内部集成 两级输入寄存器 ,使得数据输入可采用双缓冲、单缓冲或直通方式, 以便适于各种电路的需要 (如要求多路 D/A 异步输入、同步转换等 )。如图 3 所示, DAC0832 由 T 型 R-2R 电阻网络、模拟开关、运算放大器和参考电压 VREF 四大部分组成。 2.4 DAC0832 的三种工作方式: DAC0832 进行 D/A 转换,可以采用两种方法对数据进行锁存。(注意 LE1, LE2 低电平有效,即
6、当它们为低电平时,输入锁存器和 DAC 寄存器工作在直通状态) 第一种方法:输入锁存器工作在锁存状态,而 DAC 寄存器工作在直通状态。具体地说,就是使 WR2 和 XFER 都为低电平,从而 DAC 寄存器的锁存选通端 LE2 为低电平而直通;同时,使输入锁存器的控制信号 ILE处于高电平、 CS处于低电平,这样,当 WR1 端来一个负脉冲时,就可以完成 1 次转换。 第二种方法:输入锁存器工作在直通 状态,而 DAC 寄存器工作在锁存状态。就是使 WR1 和 CS 为低电平, ILE 为高电平,这样,输入锁存器的锁存选通端 LE1 为低电平而直通;当 WR2和 XFER 端输入 1 个负脉
7、冲时,使得 DAC 寄存器工作在锁存状态,提供锁存数据进行转换。 根据上述对 DAC0832的输入锁存器和 DAC寄存器不同的控制方法, DAC0832 有如下 3 种工作方式: (1)单缓冲方式 : 单 缓冲方式是控制输入锁存器和 DAC 寄存器同时接收资料,或者只用输入锁存器而把 DAC 寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。 双缓冲方式 : 双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到 DAC 寄存器,即分两次锁存输入资料。此方式适用于多个 D/A 转换同步输出的情节。 直通方式: 直通方式是资料不经两级锁存器锁存,即 WR1、C
8、S、 WR2、 XFER均接地, ILE 接高电平。数字量一旦输入,就直接进入 DAC 寄存器,进行 D/A 转换。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加 I/O 接口与 CPU 连接,以匹配 CPU 与 D/A 转换。 3、 系统方案设计 ATmega128 只能输出单极性信号,导致 DAC0832 输出的是单极性信号,在 DAC0832 信号输出处还需要加一个信号处理电路。电路由数字信号产生电路,数模转换电路,输出信号处理电路组成。 3.1 数字信号产生 模块的论证与选择 数字信号由 ATmega128 单片机输出, 单片机产生的数字信号的频率和占空比可调,满足产生不同模
9、拟信号的要求。 3.2 DA 转换模块的论证与选择 采用 DAC0832 的直通模式,因为该数模转换电路不涉及多个微型控制器同时使用同一 DAC0832, 所以采用直通模式既能达到要求,操作也简单。 3.3 信号处理模块的论证与选择 信号处理模块有两级运放加抬高电路组成,在一二级运放中加入抬高电路,可实现由单极性信号转换成双极性信号。 3.4 软件程序 /*0832.c */ #include #include #include #define uchar unsigned char #define uint unsigned int 814321NE5532AJG+10814321NE553
10、2AJG10K20K 20K-10V10V-10V信号输出信号输入VREF#define COM_DAC0832_DDR DDRF #define COM_DAC0832_PORT PORTF #define DATA_DAC0832_DDR DDRE #define DATA_DAC0832_PORT PORTE #define COM_DAC0832_CS 0 #define COM_DAC0832_ILE 1 #define COM_DAC0832_WR1 2 #define COM_DAC0832_XFER 3 #define COM_DAC0832_WR2 4 #define CS_
11、L COM_DAC0832_PORT COM_DAC0832_DDR|=BIT(COM_DAC0832_XFER); COM_DAC0832_DDR|=BIT(COM_DAC0832_ILE); COM_DAC0832_DDR|=BIT(COM_DAC0832_WR1); COM_DAC0832_DDR|=BIT(COM_DAC0832_WR2); DATA_DAC0832_DDR=0xff; CS_L; XFER_L; ILE_H; WR1_L; WR2_L; void sanjiaobo() uchar i; for(i=0;i0;i-) DATA_DAC0832_PORT=i; delay_ms(1); void sinbo() float i; for(i=0;i #include