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

STM32 ADC精度提升方法

STM32 ADC精度提升方法

  • Fang XS.
  • 1452512966@qq.com
  • 如果有错误,希望被指出,学习技术的路难免会磕磕绊绊
  • 量的积累引起质的变化

硬件方法

  1. 优化布局布线,尽量减小其他干扰
  2. 增加电源、Vref去耦电容
  3. 使用低通滤波器,或加磁珠
  4. 使用DCDC时尽量减小纹波
  5. 使用LDO尽量减小噪声

软件方法

  1. 减小ADC输入时钟
  2. 使用较大采样周期
  3. 增加滤波算法,精度优先首选均值滤波
  4. 在初始化时使用ST自带的校准
  5. 在每次采集数据时使用Vrefint通道校准
  6. 手动校准
  7. 对于没有FPU的MCU,尽量避免浮点数运算
  8. 数字静默,采集时降CPU主频和其他可能影响ADC的时钟

使用Vrefint通道校准方法

以STM32F030C8T为例,规格书描述如下
在这里插入图片描述
这个值是在芯片出厂时,ST针对Vrefint通道进行校准的值,也就是用ADC采集VDDA=3.3V时得到的ADC值,存放在地址0x1FFF F7BA处,2字节大小;
结合这个校准值可以优化ADC转换计算方法:
通道x电压 = (通道xADC值 * 3.3 * VREFINT_CAL) / (通道VrefintADC值 * 4095);
每次ADC采集包含Vrefint通道,将每次采集都进行校准。
去除浮点数运算,DEMO代码如下:

#define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7BA))
#define VREFINT_CAL_VOLTAGE_mV 3300 // Vrefint电压 (mV)
uint32_t CalibrateADC(uint32_t adc_value, uint32_t vrefint_adc) 
{ uint32_t vrefint_cal = *VREFINT_CAL_ADDR; // 读取Vrefint校准值 uint32_t adc_chan_vol_mV = (adc_value * VREFINT_CAL_VOLTAGE_mV * vrefint_cal) / (vrefint_adc * 4095); return adc_chan_vol_mV;}

注:

  1. SAR型ADC相较于其他ADC,容易受干扰影响
  2. 看其他的文章,有的型号可能出现通道间串扰的问题,解决思路跟本文类似,海可以在2个通道采集之间插入一次接地通道的采集,原理是让电容尽可能充分的放电

相关文章:

STM32 ADC精度提升方法

STM32 ADC精度提升方法 Fang XS.1452512966qq.com如果有错误,希望被指出,学习技术的路难免会磕磕绊绊量的积累引起质的变化 硬件方法 优化布局布线,尽量减小其他干扰增加电源、Vref去耦电容使用低通滤波器,或加磁珠使用DCDC时尽…...

Redis为什么设计多个数据库

​关于Redis的知识前面已经介绍过很多了,但有个点没有讲,那就是一个Redis的实例并不是只有一个数据库,一般情况下,默认是Databases 0。 一 内部结构 设计如下: Redis 的源码中定义了 redisDb 结构体来表示单个数据库。这个结构有若干重要字段,比如: dict:该字段存储了…...

零基础学习MySQL---MySQL入门

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、什么是数据库 问:存储数据用文件就可以了,为什么还要弄个数据库呢? 这就不得不提…...

HUAWEI MPLS 静态配置和动态LDP配置

MPLS(Multi-Protocol Label Switching,多协议标签交换技术)技术的出现,极大地推动了互联网的发展和应用。例如:利用MPLS技术,可以有效而灵活地部署VPN(Virtual Private Network,虚拟专用网),TE(Traffic Eng…...

【Rust】——所有的模式语法

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…...

基于Python的求职招聘管理系统【附源码】

摘 要 随着互联网技术的不断发展,人类的生活已经逐渐离不开网络了,在未来的社会中,人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看,我们完全可以肯定&…...

Python23 使用Tensorflow实现线性回归

TensorFlow 是一个开源的软件库,用于数值计算,特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发,并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算,使得它可以轻松地利…...

C++:枚举类的使用案例及场景

一、使用案例 在C中,枚举类(也称为枚举类型或enum class)是C11及以后版本中引入的一种更加强大的枚举类型。与传统的枚举(enum)相比,枚举类提供了更好的类型安全性和作用域控制。下面是一个使用枚举类的案…...

中英双语介绍美国的州:明尼苏达州(Minnesota)

中文版 明尼苏达州简介 明尼苏达州位于美国中北部,以其万湖之州的美誉、丰富的自然资源和多样化的经济结构而著称。以下是对明尼苏达州的详细介绍,包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 明尼苏达州东接威斯康星州&#xff0…...

Python实现万花筒效果:创造炫目的动态图案

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制万花筒图案的函数主循环 完整代码 引言 万花筒效果通过反射和旋转图案创造出美丽的对称图案。在这篇博客中,我们将使用Python来实现一个动态的万花筒效果。通过利用Pygame库&#xf…...

JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数

前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家详细讲讲构造函数与常见内置构造函数,并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎…...

PyQt5水平布局--只需5分钟带你搞懂

PyQt5水平布局(QHBoxLayout)是一种在GUI应用程序中用于组织和排列控件的布局方式。它允许开发者将控件在水平方向上从左到右依次排列,非常适合于需要并排显示控件的场景,如工具栏、水平菜单等。 import sys from PyQt5.QtWidgets…...

telegram mini app和game实现登录功能

接上一篇文章,我们在创建好telegram机器人后,开始开发小游戏或者mini App,那就避免不了登录功能。 公开链接 bot设置教程:https://lengmo714.top/6e79860b.html 参考教程参考教程,telegram已经给我们提供非常多的api,我们在获取用…...

【Python】字典练习

python期考练习 目录 1. 首都名​编辑 2. 摩斯电码 3. 登录 4. 学生的姓名和年龄​编辑 5. 电商 6. 学生基本信息 7. 字母数 1. 首都名 初始字典 (可复制) : d{"China":"Beijing","America":"Washington","Norway":…...

Apache POI、EasyPoi、EasyExcel

目录 ​编辑 (一)Apache PoI 使用 (二)EasyPoi使用 (三)EasyExcel使用 写 读 最简单的读​ 最简单的读的excel示例​ 最简单的读的对象​ (一)Apache PoI 使用 (二&…...

gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message

💖 大家好,我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。📣 个人说明书:Zeeland📣 个人网站:https://me.zeeland.cn/📚 Github…...

TS_类型

目录 1.类型注解 2.类型检查 3.类型推断 4.类型断言 ①尖括号&#xff08;<>&#xff09;语法 ②as语法 5.数据类型 ①boolean ②number ③string ④undefined 和 null ⑤数组和元组 ⑥枚举 ⑦any 和void ⑧symbol ⑨Function ⑩Object 和 object 6.高…...

Linux源码阅读笔记10-进程NICE案例分析2

set_user_nice set_user_nice函数功能&#xff1a;设置某一进程的NICE值&#xff0c;其NICE值的计算是根据进程的静态优先级&#xff08;task_struct->static_prio&#xff09;&#xff0c;直接通过set_user_nice函数更改进程的静态优先级。 内核源码 void set_user_nice…...

Elasticsearch实战教程: 如何在海量级数据中进行快速搜索

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 Elasticsearch&#xff08;简称ES&#xff09;是一个基于Apache Lucene™的开源搜索引擎&#xff0c;无论在开源还是专有领…...

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…...

零基础掌握视频生成插件:从安装到高级应用全指南

零基础掌握视频生成插件&#xff1a;从安装到高级应用全指南 【免费下载链接】sd-webui-mov2mov This is the Mov2mov plugin for Automatic1111/stable-diffusion-webui. 项目地址: https://gitcode.com/gh_mirrors/sd/sd-webui-mov2mov 在数字内容创作领域&#xff0c…...

ML-Agents终极指南:如何快速生成训练数据与合成样本技术

ML-Agents终极指南&#xff1a;如何快速生成训练数据与合成样本技术 【免费下载链接】ml-agents Unity-Technologies/ml-agents: 是一个基于 Python 语言的机器学习库&#xff0c;可以方便地实现机器学习算法的实现和测试。该项目提供了一个简单易用的机器学习库&#xff0c;可…...

2023-12-15 Qt Location开发实战指南:从零构建地图应用

1. Qt Location模块入门指南 第一次接触Qt Location模块时&#xff0c;我完全被它强大的地图功能震撼到了。这个模块完美融合了QML的声明式语法和C的高性能&#xff0c;让开发者能够轻松构建跨平台的地图应用。记得当时为了显示一个简单的地图&#xff0c;我整整折腾了两天&…...

基于STM32与ADS1258的高精度电流数据采集方案实现

1. 高精度电流采集系统设计思路 电流测量在工业自动化、新能源和车载电子等领域都是基础但关键的环节。传统方案使用普通ADC配合分压电阻&#xff0c;精度往往只能达到1%左右&#xff0c;而采用ADS1258这类24位Σ-Δ ADC&#xff0c;配合STM32主控&#xff0c;可以实现0.01%级的…...

5分钟掌握WaveTools:让你的《鸣潮》游戏体验提升200%

5分钟掌握WaveTools&#xff1a;让你的《鸣潮》游戏体验提升200% 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为《鸣潮》的卡顿和掉帧烦恼吗&#xff1f;无论你是刚入坑的新手还是追求极致体验的资…...

基于双向DC - DC变换器(DAB)的储能系统控制仿真

Matlab/Simulink仿真模型&#xff0c;基于双向DC-DC变换器&#xff08;双有源桥变换器DAB&#xff09;的储能系统控制仿真模型&#xff0c;采用电压电流双PI闭环控制策略&#xff0c;单移相控制&#xff0c;在母线电压受到外界干扰的情况下&#xff0c;通过控制电池的充电和放电…...

ESP32开发终极指南:5个关键更新助你构建更强大的物联网设备

ESP32开发终极指南&#xff1a;5个关键更新助你构建更强大的物联网设备 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 ESP32 Arduino核心项目为ESP32系列芯片提供了完整的Arduino开发环境…...

Path of Building:离线构筑规划工具的全方位解析

Path of Building&#xff1a;离线构筑规划工具的全方位解析 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding 定位核心价值&#xff1a;构筑决策的数字沙盘 Path of Building…...

ABAQUS复合材料层合板建模与应力分析实战指南

1. ABAQUS复合材料层合板分析入门指南 第一次接触复合材料分析的朋友可能会觉得有点懵&#xff0c;毕竟这玩意儿跟普通金属材料差别太大了。我刚开始用ABAQUS做复合材料分析时&#xff0c;光是理解"铺层方向"这个概念就花了整整一周时间。不过别担心&#xff0c;今天…...

pose-search:Web端人体姿态识别与动作检索的革新实践

pose-search&#xff1a;Web端人体姿态识别与动作检索的革新实践 【免费下载链接】pose-search x6ud.github.io/pose-search 项目地址: https://gitcode.com/gh_mirrors/po/pose-search 在计算机视觉与Web技术深度融合的今天&#xff0c;pose-search作为一款开源项目&am…...