adc0809的使用
好的,我们来详细讲解一下 ADC0809 这款经典的 8 位逐次逼近型模数转换器(ADC)的使用方法(基于中文说明)。
ADC0809 核心特点:
- 8 位分辨率: 输出数字量范围 0-255 (00H-FFH)。
- 8 路模拟输入通道 (IN0-IN7): 可通过地址线选择其中一路进行转换。
- 转换时间: 典型值约 100µs (时钟频率 640kHz 时)。
- 输出方式: 并行输出 (DB0-DB7)。
- 工作电压: +5V 单电源供电。
- 接口: 需与微处理器(如 51 单片机、AVR、PIC 等)或数字逻辑电路配合使用。
- 基准电压 (Vref): 需要外部提供,决定了输入模拟电压的范围(通常 Vref+ = +5V, Vref- = 0V/GND,则输入范围 0-5V)。
引脚功能 (关键引脚):
- IN0-IN7: 模拟信号输入通道 0 到 7。
- ADD A, ADD B, ADD C: 地址选择线。用于选择 8 路模拟输入中的哪一路进行转换。通过这三根线的二进制组合 (000 到 111) 对应选择 IN0 到 IN7。
- CBA = 000 -> IN0
- CBA = 001 -> IN1
- ...
- CBA = 111 -> IN7
- ALE (Address Latch Enable): 地址锁存允许信号 (输入,高电平有效)。在 ALE 的上升沿,将当前 ADD A/B/C 上的地址锁存到内部通道选择器中。
- START: 启动转换信号 (输入,高电平有效)。在 START 的上升沿,复位内部逐次逼近寄存器 (SAR);在 START 的下跳沿,开始 A/D 转换过程。START 信号宽度要求 > 100ns。
- EOC (End Of Conversion): 转换结束信号 (输出)。转换进行时为低电平,转换完成后变为高电平。这个信号非常重要,用于通知 CPU 数据已准备好可读取。
- OE (Output Enable): 输出允许信号 (输入,高电平有效)。当 OE 为高电平时,打开 ADC0809 内部的三态输出锁存器,将转换结果的 8 位数字量放到数据总线 (DB0-DB7) 上。OE = 0 时,DB0-DB7 呈高阻态。
- CLK: 时钟输入。提供 ADC 内部工作所需的时序。典型频率范围 10kHz - 1280kHz,常用 500kHz - 640kHz。可以通过单片机定时器、专用振荡器或单片机 ALE 引脚分频获得。
- Vref(+), Vref(-): 基准电压输入。决定了输入模拟电压的范围。通常 Vref(+) 接 +5V (或更精确的基准源),Vref(-) 接 GND (0V)。
- DB0-DB7: 8 位三态数据输出线。转换结果从这里输出。仅在 OE=1 时有效。
- Vcc: 电源 (+5V)。
- GND: 地。
基本工作流程 (与单片机接口为例):
-
硬件连接:
- 将 ADC0809 的 Vcc 接 +5V,GND 接地。
- 连接 Vref(+) 到 +5V (或更精确的基准电压源),Vref(-) 到 GND。
- 将需要转换的模拟信号连接到 IN0-IN7 中的一个或多个通道。
- 将 ADD A/B/C 连接到单片机的 I/O 口或地址总线 (用于选择通道)。
- 将 START 和 ALE 连接在一起,接到一个单片机 I/O 口 (Px.y) 上 (简化时序控制)。
- 将 EOC 连接到一个单片机 I/O 口 (用于查询转换状态) 或连接到外部中断引脚 (用于中断方式)。
- 将 OE 连接到一个单片机 I/O 口。
- 将 CLK 连接到时钟源 (如:单片机的 ALE 引脚通常输出 1/6 系统时钟频率,若单片机晶振 12MHz,则 ALE 为 2MHz,需经 D 触发器 2 分频得到 1MHz 给 ADC0809)。
- 将 DB0-DB7 连接到单片机的数据总线 (若总线扩展) 或并行 I/O 口 (如 P0/P1/P2/P3)。
-
软件流程 (查询 EOC 方式):
// 伪代码/示意代码 (假设单片机为 51 系列) sbit START_ALE = P1^0; // START 和 ALE 连在一起的控制引脚 sbit EOC = P1^1; // EOC 状态引脚 sbit OE = P1^2; // OE 控制引脚 #define AD_DATA P0 // DB0-DB7 连接到 P0 口 void ADC0809_Read(unsigned char channel, unsigned char *result) { // 1. 选择通道 & 锁存地址 (同时启动转换) ADDR_C = channel & 0x01; // 假设 ADD C/B/A 连接到 P2.0, P2.1, P2.2 ADDR_B = (channel >> 1) & 0x01; ADDR_A = (channel >> 2) & 0x01; // 根据实际连接修改 // 或者直接通过控制 START_ALE 引脚的方式(START_ALE 和 ADD C/B/A 都直接由 CPU 控制): // 先将 ADD C/Y/X 设置好对应的通道值(CBA) P2 = (P2 & 0xF8) | (channel & 0x07); // 假设 ADD CBA 在 P2 的低三位 // 产生 ALE 上升沿 (锁存地址) 和 START 下降沿 (开始转换) START_ALE = 1; // ALE 有效 (上升沿锁存地址),同时 START 高 (尚未启动) START_ALE = 0; // START_ALE 变低,产生 START 下降沿 -> 开始转换! (此时 ALE 也无效了) // 2. 等待转换完成 (查询 EOC) while(EOC == 0); // 等待 EOC 变低 (转换开始后为低) while(EOC == 1); // 等待 EOC 变高 (转换完成) --- 注意时序图,START下降沿后EOC很快变低,转换完成变高 // 更严谨的查询通常只需一次检测 EOC 变高: // while(EOC == 0); // 只等待 EOC 变高即可 // 3. 允许数据输出 OE = 1; // 打开输出锁存器 // 4. 读取转换结果 *result = AD_DATA; // 从数据端口读取值 // 5. 关闭输出 OE = 0; // 关闭输出,数据总线高阻态 (可选,下次读取前再打开也行) } -
软件流程 (中断方式 - 更高效):
- 将 EOC 连接到单片机的外部中断引脚 (如 INT0)。
- 在主程序中完成步骤 1 (启动转换)。
- 编写外部中断服务程序 (ISR):
void EXTI0_ISR(void) interrupt 0 { // 假设 EOC 接 INT0 (中断0) OE = 1; // 打开输出 adc_value = AD_DATA; // 读取转换结果 OE = 0; // 关闭输出 (可选) // 如果需要连续转换,可以在这里再次启动下一次转换 (注意时序间隔) } - 在启动转换后,CPU 可以去做其他任务。当 EOC 变高触发中断时,CPU 自动跳转到 ISR 读取数据。
重要注意事项:
- 时序严格性: 必须严格按照芯片手册的时序图操作,特别是
ALE、START、EOC、OE之间的时序关系。脉冲宽度要足够。 - 基准电压 Vref: 这是精度的关键!使用干净的、稳定的基准电压源(如专用的电压基准芯片 TL431、REF5050 等)比直接接 Vcc 能获得更高的精度和稳定性。
- 时钟 CLK: 必须在规定的频率范围内(10kHz - 1280kHz)。频率影响转换速度(转换时间 = 8 * 时钟周期 + 少量时间)。获取方式:
- 单片机振荡器分频: 利用单片机的 ALE 信号(频率通常是晶振频率的 1/6 或 1/12)或定时器产生。
- 专用振荡器电路: 如使用 555 定时器或晶体振荡器芯片搭建。
- 独立时钟源。
- 通道选择: 在启动转换 (
START下降沿) 之前,必须通过ADD A/B/C设置好通道地址,并且ALE上升沿必须有效以锁存该地址。 - EOC 处理:
- 查询法: 简单,但 CPU 在等待转换期间被占用。
- 中断法: CPU 效率高,但需要单片机支持外部中断,并且中断服务程序需要快速读取数据。
- 有些设计可以利用 EOC 信号作为
OE的信号源(通过逻辑门),实现自动读取,但需注意时序是否满足。
- 模拟输入范围: 输入电压必须在 Vref(-) 和 Vref(+) 之间(通常是 0V 到 +5V)。超过此范围可能损坏芯片或导致结果错误。
- 输入阻抗: ADC0809 内部有开关电阻,动态输入阻抗中等。对于高输出阻抗的信号源,需要在外部加入电压跟随器(运算放大器)进行缓冲,避免信号失真。
- 电源去耦: 在 Vcc 和 GND 引脚附近一定要加 0.1µF 的陶瓷去耦电容,尽量靠近芯片引脚放置,以滤除电源噪声,这对 ADC 精度至关重要。可以考虑再加一个 10µF 的电解电容。
- 地线处理: 模拟地 (AGND) 和数字地 (DGND) 虽然在芯片内部是相连的,但在外部布线时,强烈建议将模拟部分(模拟输入、Vref)的地和数字部分(时钟、控制线、数据线)的地分开走线,最后在靠近 ADC0809 的电源引脚处用一点相连(星型接地)。避免数字噪声通过地线串扰到敏感的模拟部分。如果只有一个 GND 引脚,也要注意布线。
- 数字输入控制信号:
START,ALE,OE,ADD A/B/C是数字输入信号,可以直接由单片机 TTL/CMOS 电平的 I/O 口驱动。 - 模拟输入滤波: 在模拟输入端加入一个简单的 RC 低通滤波器 (例如 10kΩ + 0.01µF - 0.1µF),可以滤除高频噪声,提高信噪比(SNR)。
- 转换结果读取时机: 一定要在
EOC变高 之后 才能将OE置高读取数据。读取完成后最好将OE置低(除非马上要再次读取)。
总结使用步骤:
- 连线: 连接电源、地、基准电压、时钟、模拟输入通道、通道地址线、控制线 (START/ALE/EOC/OE)、数据线。
- 初始化: 确保所有控制信号 (START/ALE/OE) 初始为低电平。
- 选择通道: 在 ADD A/B/C 上设置所需通道的二进制地址 (CBA)。
- 锁存地址 & 启动转换: 产生一个
ALE的上升沿(锁存地址),紧接着(通常是同一个信号)产生START的下跳沿(开始转换)。 - 等待转换完成: 查询
EOC引脚直到它变高(或者在中断方式下等待中断发生)。 - 读取数据: 将
OE置高,从数据线 (DB0-DB7) 上读取 8 位转换结果。 - 关闭输出 (可选): 将
OE置低。 - (如需再次转换): 重复步骤 3-7。
通过遵循上述步骤和注意事项,你应该能够成功地设计和实现基于 ADC0809 的模拟量采集系统。务必参考 ADC0809 的官方数据手册 (Datasheet) 以获取最精确的参数、时序图和电气特性。祝你项目顺利!
PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
adc0809是几位转换器 adc0809工作原理简述
ADC0809是一款8位逐次逼近型模数转换器(ADC),广泛应用于需要将模拟信号转换为数字信号的场合。它能够将0到5伏的模拟电压信号转换为8位二进制数字信号。
2024-10-21 09:32:19
adc0809输入电压范围 adc0809和adc0808区别
ADC0809和ADC0808都是8位模数转换器(ADC),它们可以将模拟信号转换为数字信号。这两种芯片广泛应用于各种电子项目中,如数据采集、传
2024-10-21 09:30:58
ADC0809资料
ADC0808/ADC0809 8-Bit µP Compatible A/D Converters with 8-Channel Multiplexer
资料下载
安生且安心
2022-06-28 11:03:32
ADC0809的使用
一、前言介绍使用ADC0809对一个模拟电压进行转换转换后的电压使用数码管显示出来二、ADC0809的介绍1、ADC0809简介
资料下载
佚名
2021-11-10 13:06:00
利用FPGA控制ADC0809采样电压
利用FPGA控制ADC0809采样电压(长城电源技术(山西有限公司)-利用FPGA控制ADC0809采样电压,并通过数码管显示电压数值
资料下载
48674
2021-09-28 11:05:04
基于ADC0809芯片的简单采集系统设计
基于ADC0809芯片的简单采集系统设计(开关电源技术论文)-文档为基于ADC0809芯片的简单采集系统设计总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
资料下载
佚名
2021-09-17 14:16:25
ADC0809驱动FPGA实现的verilog程序
ADC0809驱动FPGA实现的verilog程序(通讯电源技术杂志封面)-该文档为ADC0809驱动FPGA实现的verilog程序总结文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看……………
资料下载
李军
2021-08-31 18:33:38
ADC0809 的逻辑结构及引脚定义
ADC0809 的逻辑结构 ADC0809 是带有 8 位 A / D 转换器、 8 路模拟开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A / D 转换器,是目前应用比较
2023-09-11 14:44:06
ADC0809
ADC0809 - 8-Bit uP Compatible A/D Converters with 8-Channel Multiplexer - National Semiconductor
ADC0809模数转换器主要特性
ADC0809更详细的参数说明可以查看它的芯片手册(英文原版)链接:文章目录1、ADC0809模数转换器主要特性:2、ADC0809外部特征1、
ADC0809是什么?有何功能
项目中由于单片机开发板自带的ADC模块不够用,单片机自带的ADC模块是XPT2046,只有一个外部模拟输入信号通道,不能够满足我的需求,所以我打算采用ADC0
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机