当前位置: 首页 > article >正文

告别内置ADC的烦恼:用ADS1119搞定STM32/DSP的高精度电压采样(附完整代码)

告别内置ADC的烦恼用ADS1119搞定STM32/DSP的高精度电压采样附完整代码在嵌入式系统开发中电压采样是基础却至关重要的环节。许多工程师在使用STM32或DSP内置ADC时常会遇到精度不足、抗干扰能力差、无法测量差分信号等问题。这些问题在精密测量、工业控制或医疗设备等场景中尤为突出。本文将详细介绍如何利用TI的ADS1119外置ADC芯片解决这些痛点并提供完整的驱动代码和实战经验分享。1. 为什么需要外置ADC内置ADC模块虽然方便但在实际应用中存在诸多限制精度有限多数MCU内置ADC为12位而ADS1119提供24位分辨率差分测量缺失许多内置ADC仅支持单端输入抗干扰能力弱MCU内部数字噪声易影响ADC性能输入阻抗低导致测量高阻抗信号时产生误差ADS1119作为专业ADC芯片具有以下优势特性特性ADS1119典型MCU内置ADC分辨率24位12位输入类型差分/单端通常仅单端输入阻抗1GΩ通常几十kΩ增益选项1/4倍固定温度漂移5ppm/°C通常50ppm/°C2. ADS1119关键特性深度解析2.1 轨至轨输入与高阻抗ADS1119的输入缓冲器支持轨至轨输入这意味着输入电压可以非常接近供电电压高输入阻抗(1GΩ)使其非常适合测量高阻抗信号源无需额外缓冲电路即可直接测量电阻分压网络// 测量分压电路示例 // 由于高输入阻抗可直接测量而不影响分压比 float read_voltage_divider() { uint32_t raw read_ads1119(); return raw * (2.048f / 8388607.0f); // 转换为电压值 }2.2 灵活的配置选项ADS1119提供多种可编程选项增益选择1倍增益±2.048V输入范围4倍增益±0.512V输入范围适合小信号采样率选择20SPS最高精度90SPS330SPS1000SPS最快速度工作模式单次转换低功耗连续转换实时监控3. 硬件设计与连接指南3.1 基本电路连接ADS1119采用I2C接口典型连接方式如下MCU ADS1119 3.3V -------- VDD GND -------- GND SCL -------- SCL SDA -------- SDA提示I2C总线建议使用4.7kΩ上拉电阻过大的电阻值会导致信号上升沿变缓影响通信速率。3.2 输入保护电路虽然ADS1119内置保护二极管但在工业环境中建议额外添加保护TVS二极管防止瞬态高压RC滤波抑制高频噪声限流电阻防止过电流被测信号 → 1kΩ电阻 → 100nF电容 → ADS1119输入 ↑ TVS二极管4. 软件驱动实现4.1 初始化流程完整的ADS1119初始化应包括以下步骤发送复位命令0x06配置寄存器输入通道、增益、采样率等验证配置可选启动转换0x08void ads1119_init() { i2c_write(ADS1119_ADDR, 0x06); // 复位 uint8_t config AIN0_TO_AIN1 | GAIN_1 | SPS_20 | CONTINUOUS; i2c_write_reg(ADS1119_ADDR, 0x40, config); // 写配置 i2c_write(ADS1119_ADDR, 0x08); // 启动转换 }4.2 数据读取与处理读取转换结果时需注意等待DRDY引脚变低表示数据就绪24位数据以3字节形式传输需要进行符号扩展和单位转换int32_t read_ads1119() { while(DRDY_PIN_IS_HIGH()); // 等待数据就绪 uint8_t data[3]; i2c_write(ADS1119_ADDR, 0x10); // 发送读数据命令 i2c_read(ADS1119_ADDR, data, 3); // 组合24位数据并进行符号扩展 int32_t result (data[0] 16) | (data[1] 8) | data[2]; if (result 0x800000) { result | 0xFF000000; // 符号扩展 } return result; }注意直接使用整数运算进行电压转换时应先做乘法再做除法避免精度丢失。5. 实战技巧与常见问题5.1 精度优化方法电源去耦在VDD引脚附近放置1μF和100nF电容接地策略使用星型接地避免数字和模拟地环路温度补偿利用内置温度传感器校正漂移软件滤波实现移动平均或中值滤波算法#define SAMPLE_COUNT 16 float read_avg_voltage() { int32_t sum 0; for (int i 0; i SAMPLE_COUNT; i) { sum read_ads1119(); delay_ms(1); } return (sum * 2.048f) / (SAMPLE_COUNT * 8388607.0f); }5.2 常见问题排查问题1读取值始终为0可能原因I2C通信失败检查地址和接线未正确启动转换漏发START命令数据类型转换错误先乘后除问题2测量值跳动大解决方案增加硬件滤波输入端加RC降低采样率提高精度检查电源稳定性问题3负电压测量不准检查要点确保使用差分输入模式正确进行符号扩展验证参考电压稳定性6. 性能实测对比使用6位半万用表作为参考我们对ADS1119进行了系列测试测试条件ADS1119读数万用表读数误差1.000V输入0.9997V1.0001V0.04%0.100V输入0.0998V0.1000V0.2%-1.000V输入-0.9989V-1.0002V0.13%在实际项目中通过优化PCB布局和软件滤波我们成功将测量误差控制在0.05%以内完全满足工业级应用需求。ADS1119的高输入阻抗特性特别适合直接连接传感器省去了额外的信号调理电路既简化了设计又提高了系统可靠性。

相关文章:

告别内置ADC的烦恼:用ADS1119搞定STM32/DSP的高精度电压采样(附完整代码)

告别内置ADC的烦恼:用ADS1119搞定STM32/DSP的高精度电压采样(附完整代码) 在嵌入式系统开发中,电压采样是基础却至关重要的环节。许多工程师在使用STM32或DSP内置ADC时,常会遇到精度不足、抗干扰能力差、无法测量差分信…...

保姆级教程:在Ubuntu 20.04上从源码编译aarch64-linux-gnu交叉工具链(GCC 9.2.0 + Glibc 2.30)

深度实践:从源码构建aarch64-linux-gnu交叉工具链全指南 在嵌入式开发领域,交叉编译工具链的构建能力是区分普通开发者与资深工程师的重要标志。当现成的预编译工具链无法满足特定需求时,从源码手动构建工具链不仅能解决兼容性问题&#xff0…...

从PUMA560到你的项目:手把手教你将经典DH建模流程迁移到自定义机械臂

从PUMA560到自定义机械臂:DH建模实战迁移指南 当机械臂从教科书案例走向真实项目时,最令人头疼的莫过于面对一个全新构型却不知如何下手。本文将以工业界经典的PUMA560为跳板,拆解一套可迁移的DH建模方法论,带您跨越从理论到实践的…...

LLM Notebooks:从零构建RAG问答系统的实践指南

1. 项目概述:一个面向大语言模型实践的“笔记本”仓库最近在GitHub上闲逛,发现了一个挺有意思的仓库,叫qianniuspace/llm_notebooks。光看名字,llm_notebooks,大语言模型笔记本,这指向性就非常明确了。这大…...

STM32CubeMX外设配置实战——以F103C8T6的CAN与DMA为例

1. STM32CubeMX与F103C8T6开发基础 STM32CubeMX是ST官方推出的图形化配置工具,它能极大简化STM32系列MCU的外设初始化流程。对于刚接触STM32开发的工程师来说,这个工具就像"乐高积木说明书"——通过可视化操作就能完成80%的底层配置工作。我最…...

SOCD Cleaner终极指南:彻底解决游戏键盘方向冲突的免费开源神器

SOCD Cleaner终极指南:彻底解决游戏键盘方向冲突的免费开源神器 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为格斗游戏中同时按下W和S导致角色卡顿而烦恼吗?或者在射击游戏急停转…...

AI量化交易框架解析:从架构设计到实战部署

1. 项目概述:一个AI驱动的加密资产对冲基金框架最近在GitHub上看到一个挺有意思的项目,叫“ai-hedge-fund-crypto”。光看名字,就能感受到一股浓浓的“量化AI加密”的混合气息。这其实是一个开源框架,旨在帮助开发者或量化研究员&…...

Fast-GitHub:打破GitHub访问壁垒的智能加速方案

Fast-GitHub:打破GitHub访问壁垒的智能加速方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾因GitHub仓库克…...

HS2-HF_Patch终极指南:一键为Honey Select 2安装完整增强补丁

HS2-HF_Patch终极指南:一键为Honey Select 2安装完整增强补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是专为《Honey Select 2》…...

如何安全备份微信聊天记录:PyWxDump工具使用全指南

如何安全备份微信聊天记录:PyWxDump工具使用全指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 你是否曾因误删重要微信对话而懊悔不已?是否想永久保存珍贵聊天记录却不知从何下手?Py…...

对比直接使用厂商 API 体验 Taotoken 在路由容灾上的价值

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商 API 体验 Taotoken 在路由容灾上的价值 在开发依赖大模型能力的应用时,服务的连续性与稳定性是保障用…...

从零构建AOD-Net:PyTorch实战图像去雾模型开发全流程

1. 环境准备与数据理解 在开始构建AOD-Net之前,我们需要先搭建好开发环境。推荐使用Anaconda创建独立的Python环境,避免与其他项目产生依赖冲突。这里我选择Python 3.8和PyTorch 1.12的组合,这个版本经过实测在图像处理任务中表现稳定。 安装…...

用Python复现FAST天眼数学建模:从坐标变换到促动器伸缩量计算(附完整代码)

用Python复现FAST天眼数学建模:从坐标变换到促动器伸缩量计算(附完整代码) 中国天眼FAST作为全球最大单口径射电望远镜,其主动反射面调节系统堪称现代工程奇迹。当观测不同方位天体时,需要通过促动器精确控制4450块反射…...

5秒无损转换B站缓存视频:m4s-converter完整使用指南

5秒无损转换B站缓存视频:m4s-converter完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵的学习…...

终极macOS清理神器:Pearcleaner 3步彻底卸载应用不留痕迹

终极macOS清理神器:Pearcleaner 3步彻底卸载应用不留痕迹 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾将macOS应用拖入废纸篓后&…...

用ZYNQ和LWIP搞定8路ADS8681数据采集:从Vivado Block Design到上位机TCP通信的完整流程

ZYNQ与LWIP构建的8通道高速数据采集系统实战指南 在工业自动化、测试测量和科研领域,多通道高精度数据采集系统正变得越来越重要。本文将详细介绍如何利用Xilinx ZYNQ SoC和LWIP协议栈,构建一个支持8路ADS8681同步采集的实时数据传输系统。不同于简单的代…...

从8K游戏到HDR电影:拆解Xilinx HDMI 2.1 IP如何支持VRR、ALLM和动态HDR这些炫酷特性

从8K游戏到HDR电影:Xilinx HDMI 2.1 IP如何重塑视听体验 当PS5玩家在《战神:诸神黄昏》中感受到无撕裂的流畅战斗画面,或是家庭影院爱好者在《沙丘》中看到沙漠场景的每一粒沙粒都呈现出惊人的动态范围时,背后都离不开HDMI 2.1的关…...

TongWEB(东方通)实战:从零部署企业级WEB前后端项目

1. 环境准备:银河麒麟系统下的基础搭建 在银河麒麟桌面系统V10(SP1)兆芯版上部署企业级WEB项目,环境准备是第一步。我遇到过不少开发者直接跳过环境检查就急着部署,结果浪费大量时间排查兼容性问题。这里分享几个关键点: 首先是系…...

【人生底稿 28】新疆出差终章:几番波折终汇报,尽兴踏归津门路

三日游玩尽数落幕,忙碌工作正式回归。轻松的闲暇时光悄然收尾,紧绷的工作状态再次上线。整趟新疆之行,在起伏辗转中迎来最终收尾。一、深夜复盘材料,彻夜待汇报游玩结束回到酒店,我没有松懈休息,静下心重新…...

5分钟免费制作专业AI翻唱:AICoverGen完整指南

5分钟免费制作专业AI翻唱:AICoverGen完整指南 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 想让AI帮你翻唱…...

探索Windows HEIC缩略图:跨平台照片管理深度解析

探索Windows HEIC缩略图:跨平台照片管理深度解析 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails Windows HEIC缩略图…...

Netgear路由器终极救援指南:如何用免费开源工具nmrpflash快速修复“变砖“设备

Netgear路由器终极救援指南:如何用免费开源工具nmrpflash快速修复"变砖"设备 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你的Netgear路由器因固件升级失败、意外断电或系统崩…...

HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁

HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是不是曾经打开《Honey Select 2》时&am…...

RAG 系列(十七):Agentic RAG——让 Agent 主导检索过程

Pipeline RAG 的沉默失败 前面十几篇一直在优化一件事:怎么让检索结果更好。更好的分块、更精准的排序、更聪明的问法、CRAG 纠偏、Graph RAG 关系遍历…… 但有一件事始终没变:无论检索结果好不好,都会被传给 LLM 生成答案。 Pipeline RAG 的流程是线性的、固定的: 问…...

如何用Python爬虫将知识星球内容制作成PDF电子书:完整指南

如何用Python爬虫将知识星球内容制作成PDF电子书:完整指南 【免费下载链接】zsxq-spider 爬取知识星球内容,并制作 PDF 电子书。 项目地址: https://gitcode.com/gh_mirrors/zs/zsxq-spider 知识星球作为优质内容社区,汇集了大量付费专…...

OpenCore Legacy Patcher终极指南:5步让老旧Mac完美运行最新macOS系统

OpenCore Legacy Patcher终极指南:5步让老旧Mac完美运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是…...

对比直接使用厂商 API 体验 Taotoken 在模型切换上的便利性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商 API 体验 Taotoken 在模型切换上的便利性 在个人开发项目中接入大模型时,开发者通常面临一个选择&am…...

Real-ESRGAN-GUI 终极指南:免费AI图像增强工具如何让模糊照片重获高清新生

Real-ESRGAN-GUI 终极指南:免费AI图像增强工具如何让模糊照片重获高清新生 【免费下载链接】Real-ESRGAN-GUI Lovely Real-ESRGAN / Real-CUGAN GUI Wrapper 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN-GUI 你是否曾为模糊的老照片感到无奈&a…...

如何为《欧洲卡车模拟2》实现完整智能驾驶体验?ETS2LA自动驾驶插件终极指南

如何为《欧洲卡车模拟2》实现完整智能驾驶体验?ETS2LA自动驾驶插件终极指南 【免费下载链接】Euro-Truck-Simulator-2-Lane-Assist Plugin based interface program for ETS2/ATS. 项目地址: https://gitcode.com/gh_mirrors/eur/Euro-Truck-Simulator-2-Lane-Ass…...

LearningX:构建结构化开发者知识体系,从基础到架构的实践指南

1. 项目概述:一个面向开发者的系统性学习仓库最近在GitHub上看到一个挺有意思的项目,叫“LearningX”。光看名字,你可能会觉得这又是一个普通的“Awesome-XXX”列表,或者是一堆学习资料的简单堆砌。但当我点进去,花了一…...