一、芯片概述
ADC0808/ADC0809 是德州仪器(TI)推出的 8 位逐次逼近型模数转换器(ADC),集成 8 通道多路复用器,支持单端模拟输入,适用于微处理器系统。其核心特性包括:
- 8 位分辨率:可将模拟信号转换为 256 个离散电平。
- 100μs 转换时间:典型时钟频率为 640kHz 时的转换速度。
- 单 5V 电源供电:低功耗设计,适合嵌入式系统。
- 比率测量转换:通过外部参考电压调整输入范围。
- 三态输出与地址锁存:便于与微控制器直接接口。

二、引脚功能与封装
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. 转换流程
- 通道选择:通过地址线 A/B/C 选择 IN0-IN7 中的一个通道。
- 采样阶段:START 上升沿触发采样,持续 32 个时钟周期,将模拟信号存入采样保持电路。
- 转换阶段:逐次逼近寄存器(SAR)从最高位(MSB)开始,通过比较器将输入电压与内部电容阵列的分压值比较,确定每一位的二进制值。
- 转换完成: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。
五、应用注意事项
- 时钟稳定性:使用稳定的时钟源(如晶体振荡器),避免频率波动影响转换精度。
- 参考电压设计:REF + 需精确稳压(如使用 LM336 基准源),REF - 应良好接地以减少噪声。
- 去耦电容:在 VCC 引脚附近接 100nF 电容,滤除电源噪声。
- 时序匹配:确保 START 和 ALE 信号的脉宽满足要求,地址信号在 ALE 上升沿前稳定。
- 连续转换模式:将 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元器件资料。。