简介这份资源面向嵌入式硬件与模拟电路设计学习者围绕24位Σ-Δ型模数转换器AD7124展开提供从硬件到软件的完整参考设计。包内包含AD7124评估板的Altium原理图与PCB图采用4层板设计尺寸约60×40mm可直接作为高精度数据采集、工业测量或传感器信号调理项目的布局布线参考同时附带SPI接口驱动源码与中英文技术手册便于理解寄存器配置、采样时序与通信流程。压缩包为zip格式整体约5.41MB文件以原理图、PCB工程、驱动源码及技术文档为主覆盖硬件设计、底层驱动与芯片手册三类用途。目前已有154人学习下载适合需要快速搭建AD7124验证平台、对照官方评估板进行二次开发或课程设计的读者可帮助缩短选型与调试周期提升高精度ADC应用的开发效率。1. 从一颗 24 位 Σ-Δ ADC 说起AD7124 硬件参考设计到底解决什么问题如果你做过称重、热电偶、RTD 或者压力桥式传感器的采集板大概率绕不开一个尴尬MCU 自带的 12 位 ADC 分辨率不够外挂一颗 24 位 Σ-Δ 芯片又不知道外围该怎么搭。AD7124 就是冲着这个场景来的——它是一颗 24 位、低噪声、多通道的 Σ-Δ 型模数转换器内部集成 PGA、激励电流源、基准缓冲和诊断电路专门给精密传感器测量用。标题里那份「原理图 PCB 图 驱动源代码」的参考设计本质是把「芯片手册里的典型连接」翻译成「能直接投板的工程文件」再配一套能跑起来的寄存器配置代码。它适合谁做工业采集、仪器仪表、医疗前端、精密称重的硬件和嵌入式工程师。你不需要从零推导 Σ-Δ 调制器原理但需要知道模拟输入怎么接、基准怎么选、数字接口怎么配、驱动怎么写。这篇笔记就按「这是什么 → 硬件怎么画 → PCB 怎么布 → 驱动怎么写 → 坑在哪」的顺序把 AD7124 参考设计拆成能照着复现的步骤。先立一个判断AD7124 的价值不在 ADC 本身而在它把「高精度模拟前端」这件事的复杂度压到了一块四层板能搞定的程度。2. AD7124 硬件参考设计从芯片手册到可投板原理图2.1 先搞清楚 AD7124 的引脚分组和供电域拿到参考设计之前先别急着抄图。AD7124 的引脚大致分四组模拟输入组AIN0~AIN15差分对可灵活配置、基准组REFIN/REFIN-支持内部基准和外部基准、数字接口组SCLK/DIN/DOUT/RDY/CSSPI 兼容、电源与地组AVDD、AVSS、DVDD、IOVDD、AGND、DGND。参考设计里最容易翻车的是供电域AVDD 和 DVDD 可以不同电平但 IOVDD 必须和主控 IO 电平匹配否则 SPI 通信会玄学丢包。我一般会先画一张供电分配表把每个电源引脚接什么、去耦电容放几颗、放在哪一层先定下来再动原理图。AD7124 的 AVDD 典型 3.3V 或 5VDVDD 1.8V 或 3.3VIOVDD 跟 MCU 走。模拟地和数字地单点连接这个点在参考设计里通常放在芯片正下方的焊盘附近。2.2 模拟输入与基准的连接方式差分、单端和桥式怎么选AD7124 的模拟输入支持全差分、伪差分和单端。参考设计里最常见的是差分接法因为 Σ-Δ 对共模抑制有要求。以称重传感器为例桥式输出的两个差分信号直接进 AIN / AIN-激励电流源从 AIN 对里选一对输出。这里有个细节激励电流源和输入通道是复用引脚的配置寄存器时要先确定哪几个脚做激励、哪几个脚做输入不能冲突。基准的选择直接决定精度。内部基准温漂大精密测量一般用外部基准比如 REF5025 或 ADR4525。参考设计里如果用了外部基准注意 REFIN 和 REFIN- 的走线要短、要对称基准电容按手册推荐值放通常是 0.1μF 加 1μF 组合。下面是一段典型的通道配置寄存器写入逻辑用伪代码表示// AD7124 通道配置示例差分输入 外部基准 增益 128 // 配置寄存器地址参考手册这里只写关键字段 #define AD7124_CFG_0 0x19 #define AD7124_ADC_CTRL 0x01 void ad7124_config_channel(void) { // 使能通道 0设置建立时间 ad7124_write_reg(AD7124_ADC_CTRL, 0x0000); // 先复位默认 // 配置寄存器增益 128外部基准缓冲使能 uint16_t cfg 0; cfg | (0x07 0); // 增益 128 对应编码 cfg | (0x01 3); // 基准选择外部 cfg | (0x01 4); // 输入缓冲使能 ad7124_write_reg(AD7124_CFG_0, cfg); // 通道寄存器使能通道 0正输入 AIN0负输入 AIN1 ad7124_write_reg(0x09, (1 15) | (0 5) | (1 0)); }这段代码的逻辑是先复位控制寄存器再写配置寄存器决定增益和基准最后写通道寄存器把物理引脚映射到通道。参数说明增益 128 对应桥式传感器满量程几十毫伏的场景外部基准位必须和实际硬件一致否则读数会差一个比例输入缓冲使能会降低输入阻抗要求但会增加功耗电池供电场景要权衡。2.3 数字接口与去耦SPI 走线和电源滤波的硬约束AD7124 的 SPI 接口最高时钟有限制参考设计里通常跑在 1MHz 到 5MHz 之间。走线要短SCLK 和 DIN 尽量等长DOUT 和 RDY 不要和模拟走线平行。去耦电容的布局比容值更重要每个电源引脚旁边放 0.1μF芯片电源入口放 1μF 到 10μF模拟电源和数字电源分开滤波。参考设计里如果看到 AVDD 和 DVDD 共用一颗磁珠那基本是偷懒精密测量场景建议分开。提示AD7124 的 RDY 引脚是开漏输出参考设计里一般会接上拉电阻阻值 10kΩ 到 47kΩ具体看主控 IO 的驱动能力。3. PCB 布局与叠层把 24 位精度从原理图搬到板子上3.1 叠层与分区模拟、数字、电源怎么切24 位 ADC 的 PCB 不是「连通就行」。参考设计通常用四层板顶层信号、第二层地、第三层电源、底层信号。模拟区域和数字区域在物理上分开AD7124 放在模拟区中心MCU 和数字接口放在数字区。地平面不要切碎模拟地和数字地在芯片下方单点连接连接点用 0Ω 电阻或直接铺铜桥接。电源层按 AVDD、DVDD、IOVDD 分区每个区用独立的 LDO 或滤波网络。我一般会先画一张分区草图标出模拟输入连接器、基准源、AD7124、MCU、通信接口的位置再决定叠层。如果板子空间紧张至少保证模拟输入走线不跨分割地。参考设计里的叠层参数通常是顶层 1oz 铜介质厚度 0.2mm第二层完整地第三层电源底层信号。这个叠层对 24 位精度够用但前提是布局不乱。3.2 关键走线规则模拟输入、基准和时钟的布线要求模拟输入走线要差分对等长、等宽、紧耦合长度尽量短远离时钟和数字信号。基准走线同理REFIN 和 REFIN- 要对称旁边包地。SPI 时钟线如果必须跨区走内层并包地不要和模拟输入平行。AD7124 的晶振或外部时钟输入如果用到要靠近芯片时钟线不要换层。下面是一组参考设计里常见的走线参数可以直接抄信号类型线宽间距备注模拟差分输入0.2mm0.2mm等长包地基准走线0.25mm0.25mm对称短SPI 信号0.15mm0.15mm内层走包地电源走线0.5mm-按电流算这些参数不是死的但方向要对模拟走线优先数字走线让路。参考设计里如果模拟输入走了很长的排线那精度基本没保障。3.3 接地与屏蔽单点接地和屏蔽罩的实际做法单点接地是 AD7124 参考设计的核心。模拟地和数字地在芯片下方用一颗 0Ω 电阻连接或者用一块窄铜皮桥接。屏蔽罩不是必须但如果板子上有开关电源或无线模块建议给模拟前端加屏蔽罩屏蔽罩接地要单点接模拟地。参考设计里如果看到地平面被数字走线割得七零八落那这块板子的噪声性能要打问号。注意AD7124 的裸露焊盘EPAD必须焊接到地平面并且周围打足够多的过孔这是散热和噪声的关键。4. 驱动源代码SPI 时序、寄存器配置与数据读取4.1 SPI 驱动层时序参数和读写函数AD7124 的 SPI 模式通常是 CPOL0、CPHA1具体看手册时序图。驱动层要封装三个基本函数写寄存器、读寄存器、等待 RDY。写寄存器时先发地址字节含读写位再发数据。读寄存器类似但要在时钟沿采样。下面是一段基于 STM32 HAL 的 SPI 读写示例// AD7124 SPI 读写封装基于 STM32 HAL // CS 手动控制RDY 查询或中断 #define AD7124_CS_LOW() HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET) #define AD7124_CS_HIGH() HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET) uint8_t ad7124_spi_transfer(uint8_t data) { uint8_t rx; HAL_SPI_TransmitReceive(hspi1, data, rx, 1, 100); return rx; } void ad7124_write_reg(uint8_t addr, uint32_t data) { AD7124_CS_LOW(); ad7124_spi_transfer(addr 0x3F); // 写地址最高位 0 ad7124_spi_transfer((data 16) 0xFF); ad7124_spi_transfer((data 8) 0xFF); ad7124_spi_transfer(data 0xFF); AD7124_CS_HIGH(); } uint32_t ad7124_read_reg(uint8_t addr) { uint32_t data 0; AD7124_CS_LOW(); ad7124_spi_transfer(addr | 0x40); // 读地址最高位置 1 data | (uint32_t)ad7124_spi_transfer(0xFF) 16; data | (uint32_t)ad7124_spi_transfer(0xFF) 8; data | ad7124_spi_transfer(0xFF); AD7124_CS_HIGH(); return data; }逻辑说明写寄存器时地址字节最高位为 0读寄存器时为 1。AD7124 的寄存器是 24 位所以每次读写三个字节。参数说明SPI 时钟极性相位要和手册一致CS 拉低到第一个时钟沿之间要有建立时间具体看手册的 t1 到 t4。如果读回数据全 0 或全 1先查 CS 和时钟相位。4.2 寄存器配置流程从复位到连续转换AD7124 上电后要先复位再配置再启动转换。典型流程是写复位寄存器或发 64 个时钟配置 ADC 控制寄存器、配置寄存器、通道寄存器、滤波器寄存器然后写模式寄存器进入连续转换。滤波器寄存器决定输出速率和噪声Sinc4 滤波适合低速率高精度Sinc3 适合中速。下面是一个配置序列的示例void ad7124_init_sequence(void) { // 1. 复位 ad7124_write_reg(0x00, 0x000000); // 复位寄存器 HAL_Delay(10); // 2. 配置 ADC 控制内部基准关闭数据状态使能 ad7124_write_reg(0x01, 0x000000); // 3. 配置寄存器 0增益 128外部基准缓冲开 ad7124_write_reg(0x19, 0x0000C7); // 4. 滤波器寄存器 0Sinc4输出速率 10SPS ad7124_write_reg(0x21, 0x000060); // 5. 通道寄存器 0使能AIN0/AIN1 ad7124_write_reg(0x09, 0x8001); // 6. 模式寄存器连续转换 ad7124_write_reg(0x02, 0x000000); }参数说明滤波器寄存器的值决定输出速率10SPS 对应 24 位有效精度高速率会牺牲分辨率。通道寄存器的使能位和输入选择要跟硬件一致。模式寄存器写 0 是连续转换写 1 是单次转换写 2 是待机。配置完如果读不到数据先查 RDY 引脚是否拉低。4.3 数据读取与软件滤波把 24 位原始码变成可用值AD7124 输出的是 24 位二进制补码读取后要转成有符号整数再根据基准和增益换算成电压。软件滤波常用滑动平均或中值滤波但注意不要过度滤波导致响应变慢。下面是一段读取和换算的代码int32_t ad7124_read_data(void) { uint32_t raw ad7124_read_reg(0x04); // 数据寄存器 // 24 位补码转有符号 if (raw 0x800000) { raw | 0xFF000000; } return (int32_t)raw; } float ad7124_to_voltage(int32_t code, float vref, float gain) { // 满量程 2^23 - 1 return (float)code * vref / (gain * 8388607.0f); }逻辑说明数据寄存器是 24 位读回后要符号扩展。换算公式里 vref 是外部基准电压gain 是 PGA 增益。参数说明如果基准是 2.5V增益 128那么满量程输入是 2.5/128 ≈ 19.5mV适合桥式传感器。软件滤波建议用 4 到 8 点滑动平均再配合硬件滤波电容。5. AD7124 参考设计避坑5 个血泪踩坑记录5.1 现象读数跳动大噪声远超手册标称原因模拟输入走线太长或者基准电容放错位置或者 AVDD 和 DVDD 共用滤波。解决缩短模拟走线基准电容靠近 REFIN 引脚AVDD 和 DVDD 分开滤波模拟地单点连接。5.2 现象SPI 通信失败读回全 0 或全 1原因IOVDD 电平和 MCU 不匹配或者 CS 时序不对或者 SPI 模式设错。解决确认 IOVDD 和 MCU IO 电平一致用示波器看 CS 和 SCLK 的时序对照手册调整 CPOL/CPHA。5.3 现象通道切换后数据错乱原因通道寄存器配置冲突或者建立时间不够。解决检查每个通道的输入引脚是否重复增加建立时间或者在切换通道后丢弃前几次采样。5.4 现象内部基准读数漂移原因内部基准温漂大或者基准缓冲没使能。解决精密测量改用外部基准使能基准缓冲基准源靠近芯片放置。5.5 现象PCB 焊接后芯片发烫原因AVDD 和 DVDD 接反或者 EPAD 没焊好。解决检查电源引脚电压重新焊接 EPAD确保接地过孔足够。6. 进阶技巧用 AD7124 做比率式测量和系统校准比率式测量是 AD7124 的一个隐藏用法用同一个激励电流源驱动桥式传感器和基准电阻这样激励电流的漂移会被抵消。具体做法是把基准电阻和传感器串联REFIN 和 REFIN- 接在基准电阻两端激励电流同时流过两者。这样 ADC 读数直接是传感器电阻和基准电阻的比值不需要绝对基准。参考设计里如果没提这个可以自己改。系统校准分两步零点校准和满量程校准。零点校准是在传感器无负载时读一个码值满量程校准是在已知负载时读一个码值然后做线性拟合。我一般会在固件里留两个校准系数上电时从 Flash 读取。校准周期看应用工业现场建议每周一次。验证方法用高精度源表给一个已知电压看 AD7124 读数误差是否在几个 ppm 以内。如果误差大先查基准再查增益最后查 PCB 布局。我自己的习惯是每块板子回来先跑一遍噪声测试用短路帽短接模拟输入看峰峰值噪声超过手册标称就查布局。这个习惯帮我省了很多后悔药。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?