STM32使用内部参考电压提高ADC采集准确度

这篇具有很好参考价值的文章主要介绍了STM32使用内部参考电压提高ADC采集准确度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在使用ADC采集外部电压时,一般默认参考电压为MCU的供电电压,例如单片机供电电压为3.3V时,我们计算采集电压的公式为:

假设12位ADC
采集电压=(AD值/4096*3.3

但是如果因为某些原因导致的供电不稳定,而我们任然按照3.3V计算,ADC采集计算出来的电压就会出现误差。
在STM32手册中关于ADC的介绍中提到使用内部参考电压计算实际的VDDA电压。
使用内部参考电压计算实际的 VDDA 电压:

施加给微控制器的 VDDA 电源电压可能会有变化,或无法获得准确值。在制造过程中由 ADC
在 VDDA = 3.3 V 的条件下获得的内置内部参考电压 (VREFINT) 及其校准数据可用于评估实际
的 VDDA 电压。
以下公式可求得为器件供电的实际 VDDA 电压:
VDDA = 3 V x VREFINT_CAL / VREFINT_DATA
其中:
 VREFINT_CAL 是 VREFINT 校准值
 VREFINT_DATA 是由 ADC 转换得到的实际 VREFINT 输出值

将电源相关的 ADC 测量值转换为绝对电压值:
stm32自带adc的测量精度,MCU,stm32,单片机,嵌入式硬件

如何使用内部参考电压

使用STM32CubeMX配置ADC是除了选取自己的需要的ADC通道,还要勾选Vrefint channel,这个通道也可以看做是一路ADC采集,用于后边的计算。
stm32自带adc的测量精度,MCU,stm32,单片机,嵌入式硬件
RANK分配,采用DMA模式时,定义数组时直接对应到数组。
stm32自带adc的测量精度,MCU,stm32,单片机,嵌入式硬件
使能DMA。
stm32自带adc的测量精度,MCU,stm32,单片机,嵌入式硬件
STM32手册中提到:VREFINT 的精确电压由 ST 在生产测试期间对每部件单独测量,储存于系统存储区。这个值是固定的,计算前我们需要将它读出来。

u16 ADC_Buffer[3];//定义u16数组 0.通道4 1.通道7 2.参考电压Vref
u16 VREFT_CAL = 0;//内部基准
VREFT_CAL = *(uint16_t*)(VREFINT_CAL_ADDR);//读取内部基准
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Buffer,3);//开启  ADC---DMA
V= (3*VREFT_CAL*ADC_Buffer[0])/(ADC_Buffer[2]*4096); //校准后的通道4采集电压

以上就是STM32使用内部参考电压提高ADC采集准确度的方法,不过计算电压值,我还是喜欢自己再去实际校准得到一个系数。文章来源地址https://www.toymoban.com/news/detail-610534.html

到了这里,关于STM32使用内部参考电压提高ADC采集准确度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于stm32+HAL库的ADC电压采集实验

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 只会用if的大神提醒您,敌军还有30秒到达战场,碾碎他们!白银局不要怕! 软件:keil5、stm32cubemx、串口调试助手 硬件:stm32f103系列的开发板、杜邦线*1、串口工具 仅此而已!!!正好6神 1、打开cube

    2023年04月15日
    浏览(44)
  • 【STM32+HAL+Proteus】系列学习教程---ADC(查询、中断、DMA模式下的电压采集)

    1、学会STM32CubeMX软件关于ADC的配置 2、掌握ADC三种模式(查询、中断、DMA)编程 3、具体目标:1、将开发板单片机采集到的电压值上传至上位机串口调试助手显示。 ADC(Analog to Digital Converter)即模数转换器,用来将模拟信号转换为数字信号。 A/D转换过程 分辨率:  A/D转换器对

    2024年04月26日
    浏览(40)
  • STM32 TIMER_TRGO触发+ADC采集 + DMA传输 + 中断均方根处理 实现三相电压显示

    STM32 TIMER_TRGO触发+ADC采集 + DMA传输 实现三相电压采集 首先,是实际采集的三相电压值,用excel处理了下: 采集个电压,为什么这么复杂。 开始我也是直接用ADC采集,然后delay,再采集,然后delay,再采集……最后数据处理…… 问题是如果我们用单片机裸跑,每次delay都会卡死

    2024年02月16日
    浏览(41)
  • STM32 CubeMX ADC采集 单通道,多通道,内部温度(轮询,DMA,中断)(HAL库)

    12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右 对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定

    2024年02月06日
    浏览(85)
  • 用STM32单片机ADC+NTC热敏电阻采集温度的设计思路 | 附参考电路

    目录 前言 一、热敏电阻NTC 二、参考电路  三、激励电压选择 记录一些我在工作和学习过程中遇到的问题 NTC:在淘宝随便买的 单片机型号:STM32G030C8T6 目的:用单片机采集NTC温度 本文主要是介绍关于NTC激励电压的选择        热敏电阻 NTC(Negative Temperature Coefficient) , 直

    2024年02月02日
    浏览(53)
  • Proteus使用STM32F103系列芯片仿真ADC电压总是为0问题解答

    STM32F103芯片有一组ADC参考电压端口  对应到Proteus中,发现原理图上并没有但是在“配置供电网”中存在 可以看出,VSSA与VDDA同为3.3V,这就导致采集到的电压没有0电位参考,所以需要将 VSSA 转移到 GND 组   此时再允许正确的ADC程序就可以采集到正确的电压了      

    2024年02月13日
    浏览(50)
  • STM32--ADC数值采样/附ADC采集热敏传感器使用

    目录 一丶ADC介绍 二丶ADC工作原理及管脚分布 三丶代码部分详解 (一)库函数介绍 (二)代码部分整合         ADC模块中文名为模拟/数字转换器,是12位逐次逼近型的模拟数字转换器,一般用于数值的采样   可以将引脚上连续变化的模拟电压转换为内存中存储的数字变

    2024年02月03日
    浏览(50)
  • 内部参考电压的使用应用笔记

      CH32V/F 系列单片机能够在一定的电压范围内进行工作,以 CH32V203C8T6 芯片为例,在不使用 USB 外设时,最低工作电压能够达到 2.4V。较为宽泛的工作电压,允许单片机直接使用电池供电,但由于 CH32V203C8T6 芯片没有独立的 Vref 引脚,使用 ADC 的过程中无法换算出真实的电压。

    2024年02月08日
    浏览(34)
  • STM32+HAL库使用ADC轮询模式采集音频信号

    ADC模块:咪头声音采集模块 缺点:占用CPU的使用率         软件开始ADC转换后,一直等到转换完成后,才向后执行,这个代码在初始化ADC之后执行一次校准(不执行这一步也可以,但精度可能会低一些);然后就可以使用ADC轮询转换了,只需要三步: 启动转换 、 等待转

    2024年02月15日
    浏览(43)
  • STM32-ADC电压采样实验(寄存器版)

    STM32F10X系列支持三路ADC,其ADC通道及对应IO口如下表所示: 其能接受的电压输入范围一般为0-3.3V(V REF- ≤ V IN ≤ V REF+ ),因此,如果需要测量超出0-3.3v量程范围的电压数据,需要在外围硬件增加分压电阻,将电路转换到0-3.3V量程范围内再进行采集。 这里用于做ADC采集的引脚使

    2024年02月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包