74芯片搭建8bit ADC(模数转换器)
简介
该ADC采用逐次逼近型设计,单片机利用并口、以片外RAM映射方式访问,推荐使用51单片机。电路结构完全模仿数电教材相关章节。
简介:该ADC采用逐次逼近型设计,单片机利用并口、以片外RAM映射方式访问,推荐使用51单片机。电路结构完全模仿数电教材相关章节。开源协议
:Public Domain
描述
该ADC采用逐次逼近型设计,包括:
1. 一个8bit R-2R DAC
2. 一个TLV3501高速RRIO电压比较器
3. 一个扫描信号生成单元
4. 一个8位可控翻转式寄存器单元
5. 一个8位串行输出管理
6. 震荡和时钟管理器
7. 简易采样保持器
该模块采用类似8051单片机的xdata内存映射访问,通过片外RAM等效地址映射,利用unsigned char xdata分配一个固定的地址,
向该ADC地址内随便写入一个无符号字符型以开启ADC,
ADC自动开始运行,先将保持器与外界信号断开,然后利用逐次逼近原理,使得DAC产生的电压值最接近输入信号,
此时8位均扫描完成,数据先存入74374输出缓冲寄存器,然后DAC复位,
最后ADC向单片机发送中断信号,单片机利用中断服务函数,以片外RAM的读方式将8位数字值取出,数字值通过51单片机P0口进入单片机。
基本参数:
供电:4.75-5.25V
输入输出接口:CMOS电平
最高主频:1MHz
采样速率:最大20Ksps
保持器最大保持时间:暂无(保持器设计失败,遂弃用)
有效模拟输入范围:GND-VCC
极限模拟输入范围:GND-3V~VCC+3V
输入阻抗:500KΩ+
实物图:
作为测试,我使用STC89C52RC单片机写了一个简单的程序:定时器0每隔1秒钟向ADC发送启动信号,ADC采样完成后利用外部中断0唤醒单片机接收数据,然后数据以3位十进制方式显示在IIC接口的LCD1602屏幕上。源码过于简单,遂不放出。
实测效果如下:测试一节1.5V的单三型电池,返回值80
已知该ADC满量程返回255,最低返回0,于是计算得电压:
该电池万用表实测1.498V,误差在5%左右,勉强可以接受。
目前该设计仍然不完美,由于使用了OPA350+74HC4052的保持器,漏电很大,根本没法保持;
1MHz的主频对于电压比较器的翻转速度很吃力,
DAC输出电压不准,严重影响了测量精度。
本项目的初衷是用于ADC原理的教学,因此设计十分简陋,请各位大神轻喷QAQ
PCB预览:
***(注)***:若设计图预览图加载异常,请使用''编辑器中打开''查看实际设计图纸!
评论