一、芯片概述

ADC0808/ADC0809 是德州仪器(TI)推出的 8 位逐次逼近型模数转换器(ADC),集成 8 通道多路复用器,支持单端模拟输入,适用于微处理器系统。其核心特性包括:

  • 8 位分辨率:可将模拟信号转换为 256 个离散电平。
  • 100μs 转换时间:典型时钟频率为 640kHz 时的转换速度。
  • 单 5V 电源供电:低功耗设计,适合嵌入式系统。
  • 比率测量转换:通过外部参考电压调整输入范围。
  • 三态输出与地址锁存:便于与微控制器直接接口。
ADC0809

二、引脚功能与封装

1. 引脚配置(28 引脚 DIP 封装)

引脚号 符号 功能描述
1-8 IN0-IN7 8 路模拟输入通道
25-27 A, B, C 地址输入(C 为最高位),用于选择模拟通道(如 C=1,B=0,A=1 时选 IN5)
22 ALE 地址锁存使能,上升沿锁存地址信号
6 START 转换启动信号,上升沿初始化转换,下降沿开始采样
7 EOC 转换结束标志,高电平表示转换完成
9 OE 输出使能,高电平允许读取转换结果
10 CLK 时钟输入,典型频率 640kHz,最大 1.28MHz
11 VCC 电源(5V±10%)
12,16 REF+、REF- 参考电压正负极,通常 REF - 接地,REF + 接 VCC 或外部基准
17-24 D0-D7 8 位数字输出(D7 为最高位,D0 为最低位)

引脚参考

2. 封装与尺寸

  • DIP 封装:标准 28 引脚双列直插,适合通孔焊接。
  • FN 封装:表面贴装版本,引脚布局与 DIP 兼容。

三、工作原理与时序

1. 转换流程

  1. 通道选择:通过地址线 A/B/C 选择 IN0-IN7 中的一个通道。
  2. 采样阶段:START 上升沿触发采样,持续 32 个时钟周期,将模拟信号存入采样保持电路。
  3. 转换阶段:逐次逼近寄存器(SAR)从最高位(MSB)开始,通过比较器将输入电压与内部电容阵列的分压值比较,确定每一位的二进制值。
  4. 转换完成:EOC 信号变高,转换结果锁存,可通过 OE 读取。

2. 关键时序参数

参数 最小值 典型值 最大值 单位
时钟频率 10 640 1280 kHz
转换时间 90 100 116 μs
START 脉宽 200 ns
ALE 脉宽 200 ns
地址建立时间 50 ns
EOC 延迟 14.5 μs

四、技术参数与性能

1. 主要性能指标

参数 ADC0808 ADC0809 单位
总未调整误差 ±0.75LSB ±1.25LSB
线性度误差 ±0.25LSB ±0.5LSB
电源灵敏度 ±0.05%/V ±0.05%/V
工作温度范围 -40°C~85°C -40°C~85°C

2. 电气特性

  • 输入范围:模拟输入电压 0~VCC(单端)。
  • 参考电压:REF + 通常接 VCC,REF - 接地,差分参考电压最大 5V。
  • 输出特性:三态 TTL 兼容,高电平≥VCC-0.4V,低电平≤0.45V。

五、应用注意事项

  1. 时钟稳定性:使用稳定的时钟源(如晶体振荡器),避免频率波动影响转换精度。
  2. 参考电压设计:REF + 需精确稳压(如使用 LM336 基准源),REF - 应良好接地以减少噪声。
  3. 去耦电容:在 VCC 引脚附近接 100nF 电容,滤除电源噪声。
  4. 时序匹配:确保 START 和 ALE 信号的脉宽满足要求,地址信号在 ALE 上升沿前稳定。
  5. 连续转换模式:将 EOC 与 START 相连,实现自动连续转换,上电后需手动触发一次启动。

六、典型应用电路

1. 基本连接

plaintext

微控制器(如Arduino)与ADC0809连接示例:
- A0-A2(地址线) → Arduino数字引脚
- ALE → Arduino数字引脚(触发锁存)
- START → Arduino数字引脚(启动转换)
- EOC → Arduino数字引脚(中断或轮询)
- OE → Arduino数字引脚(使能输出)
- D0-D7 → Arduino数字/模拟输入引脚

2. 代码流程

python

# 伪代码示例(Arduino)
void setup() {
  pinMode(ALE, OUTPUT);
  pinMode(START, OUTPUT);
  pinMode(OE, OUTPUT);
  // 初始化其他引脚
}

int readADC(int channel) {
  digitalWrite(ALE, LOW);
  digitalWrite(START, LOW);
  
  // 设置地址
  digitalWrite(A, (channel >> 0) & 1);
  digitalWrite(B, (channel >> 1) & 1);
  digitalWrite(C, (channel >> 2) & 1);
  
  digitalWrite(ALE, HIGH); // 锁存地址
  digitalWrite(START, HIGH); // 启动转换
  delayMicroseconds(1); // 保持高电平至少1μs
  digitalWrite(START, LOW); // 下降沿开始转换
  
  while (digitalRead(EOC) == LOW); // 等待转换完成
  
  digitalWrite(OE, HIGH); // 使能输出
  int value = analogRead(ADC_PIN); // 读取结果(需根据实际引脚调整)
  digitalWrite(OE, LOW); // 禁用输出
  
  return value;
}

七、选型建议

  • 高精度场景:选择ADC0808(误差 ±0.75LSB)。
  • 成本敏感项目:使用ADC0809(误差 ±1.25LSB)。
  • 替代方案:若需更高分辨率,可考虑 12 位 ADC 如 AD574A,或 SPI 接口的 ADC 如 MCP3208。

八、总结

ADC0808/ADC0809 凭借其简单的接口、低功耗和适中的性能,成为嵌入式系统中模数转换的经典选择。通过合理设计外围电路和严格遵循时序要求,可确保其在工业控制、数据采集等场景中稳定运行。

本文参考自ICpdf资料库:ADC0809元器件资料。。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐