当前位置: 首页 > article >正文

基于AD7705的32路AD采集

CSDN话题挑战赛第2期
参赛话题:学习笔记
在检测技术与应用、DCS的I/O板卡以及信号传输等许多工业生产过程中都需要将数据传输到计算机,这一过程必须先进行A/D转换。目前A/D转换芯片种类非常多,有的价格高且设计复杂,有的转换精度低满足不了要求。为此,挑选了高精度16位A/D转换芯片AD7705,该芯片转换精度高、价格低,满足多种应用。本文设计了以单片机ATmega16为控制核心,以AD7705为前端采集芯片,以CPLD芯片EPM3064为逻辑开关阵列的32通道模拟量采集系统。给出了相应的硬件电路、驱动程序以及应用软件,指出了AD7705在实际应用中应当注意的一些问题。

1.A/D转换芯片AD7705

AD7705具有两个模拟输入通道,利用Σ-Δ转换技术实现了16位无丢失代码性能。模拟调制器具有增益可编程功能,片内设有数字滤波器、处理调制器的输出信号,通过片内控制器可调节滤波器的截止点和输出更新速率。是用于智能系统、微控制器系统和DSP系统的理想产品,其串行接口可配置为3线方式。增益值、信号极性以及更新速率的选择都可通过串行接口由软件来设置。该器件还包括自校准和系统校准功能,以消除器件本身或系统的增益和偏移误差。

2.嵌入式单片机

ATmega16ATmega16是Atmel公司生产的8位嵌入式单片机,它是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。特点为:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,3个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,1个可编程串行USART,1个SPI串行端口等,硬件资源非常丰富。

3.采集系统的设计

采集系统的硬件构成在功能上主要包括线性电源电路、AD7705外围电路、ATmega16外围电路和通道选择电路。

3.1线性电源电路

本电路(图1)电压为+5V和+3.3V。使用电源芯片78L05、Z33等,D1、D2为5V稳压管,D8、D9为3.3V稳压管。C14、C17用于滤除高频杂波,C15、C16用于保证输出电压平坦,外部供电为+12V。
 
 3.2AD7705外围电路
 
  AD7705的外围电路如图2所示。时钟频率设计为2.4576MHz,晶振Y1两端需各接一20pF电容到地以保证时钟频率的精准。电源电压VDD为+5V。AN1+与AN1-,AN2+与AN2-分别接模拟输入信号。芯片REF192为AD公司生产的精密基准电压源,为AD7705提供2.5V基准电压,其输出引脚6到地之间需并接0.1μF和10μF的电容以保证其输出电压平坦。
  
3.3ATmega16外围电路

ATmega16(图3)的供电电压VCC为+5V,时钟频率8MHz。PB5为串行外设接口SPI的主机输出端,PB6为主机输入端,PB7为SPI时钟。PB3、PD4、PD5用作普通的数字接口。AVCC为模拟电源,需经LC网络接至数字电源VCC,L1为10μH,C11为100nF,LC网络用于抑制噪声、提高抗干扰能力。该电路控制AD7705以完成数据的采集,主要是利用其SPI接口对AD7705进行各种初始配置,控制A/D转换并读取转换结果。

3.4通道选择电路

该电路在ATmega16的程序控制下工作,AT-mega16的控制信号通过PA4~PA0以完成32个通道模拟的模拟量采集。以高度集成CPLD芯片EPM3064为解码电路,制作一个5/32解码器,用VHDL语言编写而成,其供电电压3.3V,输入信号PA4~PA0和PD7,输出信号为TD0~TD31。EPM3064是基于EEPROM的CMOS工艺CPLD,其有64个宏单元,100管脚TQFP封装有66个用户I/O管脚,可满足许多应用需要。

PD7作为5/32解码器的使能信号,用于选择采集通道0~31。DS2Y-S为信号继电器,其引脚8、9接AD7705模拟信号1的AN1+与AN1-,引脚4、13接通道0的模拟输入信号AI0+与AI0-。其导通断开通过PNP三极管Q1驱动,控制信号为TD0,二极管D1起续流作用,保护电路正常工作同时具有抑制尖峰干扰作用。通道1~31的选择电路类似,同理设计模拟信号输入AI1~AI31的选择电路。PD7作为使能信号,低电平有效,总共需要32片信号继电器,本质上通道选择电路(图4)是由CPLD芯片EPM3064和信号继电器构建的逻辑阵列开关。

http://www.lryc.cn/news/2417433.html

相关文章:

  • Windows动态桌面原理
  • 旗胜限价房让我深刻体会到我很傻很天真
  • crash调试linux dump信息
  • UT AUSTINVILLA 3D
  • 主板维修从入门到精通
  • activity启动模式应用,如FLAG_ACTIVITY_CLEAR_TOP
  • 分支语句——switch-case
  • 毕业论文中的图表目录
  • 单片机定时器中断(之中断概念)
  • 使用nlite制作集成驱动windows安装光盘及实践心得
  • 关于sqlserver中SqlParameter的用法注意事项
  • ccbp 知识点
  • 服务器出现大量 TIME_WAIT,如何解决
  • JavaSE:实现象棋游戏
  • 古典密码(部分合集)
  • VC6.0常见错误之::Debug Assertion Failed!
  • C#使用FileSystemWatcher来监控指定文件夹,并使用TCP/IP协议通过Socket发送到另外指定文件夹
  • 虚拟机Linux IP地址更改
  • 13 | 如何为团队设定合理的目标呢?
  • input标签 各属性解释
  • 热插拔机制之udev和mdev
  • MFC教程(Visual C++ 6.0)|合集 |更新中
  • bluetooth 外围设备 驱动有问题 解决办法
  • java中Date/Time/Timestamp对应sql
  • 数据库之 MongoDB and SQLite
  • img文件制作linux启动u盘,制作Linux的U盘启动盘
  • Python后端---使用Django+Mysql搭建一个简单的网站
  • 1.4种权限控制
  • Oracle INSERT INTO的几种用法
  • 效率工具:分享7款实用的任务管理软件,值得收藏!