
1. 项目背景与核心器件选型在工业测量、医疗设备和环境监测等领域将模拟信号转换为高精度数字表示是一个基础但关键的需求。ADS122U04作为德州仪器(TI)推出的一款24位精密ΔΣ模数转换器(ADC)配合PIC18F26K80这款高性能8位单片机能够构建一个高性价比的模拟信号数字化解决方案。ADS122U04的核心优势在于其24位分辨率、ΔΣ架构和内置可编程增益放大器(PGA)。ΔΣ ADC通过过采样和数字滤波技术能够有效抑制量化噪声特别适合低频高精度测量场景。其内置的PGA支持1~128倍增益可直接连接热电偶、RTD等微弱信号传感器省去外部放大电路。PIC18F26K80作为主控MCU具备以下适配特性64MHz工作频率满足高速数据吞吐需求集成UART模块与ADS122U04的UART接口完美匹配3808字节RAM空间足以缓冲ADC采样数据丰富的外设资源PWM、定时器等便于系统集成2. 硬件系统设计与接口连接2.1 电路原理图设计要点典型的应用电路包含以下关键部分电源滤波电路在ADC的AVDD和DVDD引脚附近放置10μF钽电容0.1μF陶瓷电容组合参考电压电路使用内部2.048V基准时需在REF引脚接0.1μF去耦电容模拟输入保护在AINP/AINN输入端串联100Ω电阻并并联5.1V齐纳二极管信号调理对于高频噪声环境建议增加RC低通滤波器如1kΩ100nF2.2 与PIC18F26K80的接口连接ADS122U04采用4线UART接口具体连接方式ADS122U04 PIC18F26K80 TXD RC7 (UART RX) RXD RC6 (UART TX) DRDY RB0 (外部中断引脚) RST RB1 (GPIO控制)注意UART通信需配置为115200bps、8数据位、无校验位、1停止位。DRDY引脚建议配置为下降沿触发中断以提高采样效率。3. 固件开发与ADC配置3.1 寄存器配置详解ADS122U04通过5个配置寄存器(0x00~0x04)控制工作模式关键配置项包括配置寄存器0 (0x00):BIT[7:6]: 数据速率选择000020SPS01002000SPSBIT[5:3]: 增益设置0001V/V111128V/VBIT[2:0]: 输入多路选择000AIN0/AIN1配置寄存器1 (0x01):BIT[7]: 基准电压选择0内部1外部BIT[6:4]: 传感器激励电流源设置典型初始化配置流程void ADC_Init() { // 复位ADC LATBbits.LATB1 1; __delay_ms(10); LATBbits.LATB1 0; __delay_ms(100); // 写入配置寄存器 UART_Write(0x06); // WRITE_REG命令|起始地址0x00 UART_Write(0x04); // Reg0: 2000SPS, PGA1, AIN0/AIN1 UART_Write(0x00); // Reg1: 内部基准, 电流源关闭 UART_Write(0x00); // Reg2: 保留默认 UART_Write(0x00); // Reg3: 保留默认 UART_Write(0x00); // Reg4: 保留默认 }3.2 数据采集实现连续转换模式下的数据采集示例int32_t Read_ADC_Data() { uint8_t data[3]; int32_t result; // 发送START/SYNC命令 UART_Write(0x08); // 等待DRDY中断 while(INT0IF 0); INT0IF 0; // 读取24位数据 UART_Write(0x12); // RDATA命令 data[0] UART_Read(); data[1] UART_Read(); data[2] UART_Read(); // 组合24位数据 result (data[0] 16) | (data[1] 8) | data[2]; if(result 0x800000) // 处理负数 result | 0xFF000000; return result; }4. 精度优化与噪声抑制4.1 基准电压选择策略根据应用场景选择最优基准源内部2.048V基准适合大多数通用场景温漂典型值5ppm/°C外部基准如REF5025需要更高精度时选择温漂1ppm/°C的外部基准比率测量当传感器采用恒流源供电时可使用供电电压作为基准基准电压噪声对系统影响的计算有效位数(ENOB) (ln(Vref_noise/Vlsb) ln(√(12)))/ln(2) 其中Vlsb Vref/(2^24)4.2 数字滤波技术应用ADS122U04内置sinc3滤波器可通过配置实现不同抑制特性50Hz/60Hz工频抑制设置数据速率为20SPS整数倍高频噪声抑制启用FIR滤波器配置寄存器3的BIT2软件后处理在MCU端实现移动平均或IIR滤波实测数据对比1kHz噪声环境下滤波方式噪声峰峰值有效分辨率无滤波1200LSB14位硬件sinc3滤波80LSB18位硬件软件滤波20LSB20位5. 典型应用场景实现5.1 热电偶温度测量K型热电偶测量实现要点冷端补偿使用ADS122U04内置温度传感器信号调理设置PGA32基准2.048V线性化处理采用查表法或多项式拟合实现代码片段float Read_Thermocouple() { int32_t adc_raw Read_ADC_Data(); float voltage (adc_raw * 2.048f) / 8388608.0f; // 24位有符号转电压 float temp_cjc Read_Internal_Temp(); // 读取冷端温度 // 热电偶电压转温度(简化算法) float temp voltage * 25.0f; // K型约41μV/°C return temp temp_cjc; }5.2 称重传感器应用应变片式称重传感器接口设计电桥激励使用ADS122U04的200μA电流源配置参数PGA128数据速率80SPS校准流程零点校准空载时读取ADC值满量程校准加载已知重量记录ADC值称重数据处理算法实际重量 (当前ADC值 - 零点值) * (满量程重量 / (满量程值 - 零点值))6. 调试技巧与常见问题6.1 典型故障排查无数据输出检查UART波特率是否为115200bps测量DRDY引脚是否正常触发确认RST引脚已完成复位序列数据跳动大检查电源纹波应10mVpp验证基准电压稳定性尝试启用FIR滤波器线性度差检查输入信号是否超出PGA范围验证参考电压负载是否过重检查PCB布局是否遵守模拟/数字分离原则6.2 低功耗设计要点单次转换模式配置void Enter_Single_Shot_Mode() { UART_Write(0x06); // WRITE_REG命令 UART_Write(0x00); // 地址0x00 UART_Write(0x84); // 单次转换模式 }电流消耗实测数据工作模式典型电流唤醒时间连续转换(2kSPS)1.2mA-单次转换50μA5ms休眠模式1μA10ms在实际项目中我发现ADS122U04的DRDY信号线对噪声特别敏感建议采用双绞线连接并在MCU端添加10kΩ上拉电阻。另外当使用高于64倍增益时输入端哪怕微小的漏电流都会导致测量偏差这时需要在输入端增加Guard Ring保护环设计