0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ADC高速采样电路设计详解之STM32踩坑

张飞电子实战营 来源:张飞电子实战营 2024-12-02 09:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、踩坑过程

最近用STM32F334做数字电源,用到了高速ADC采集电压电流。设计的参考电压VREF为3.3V,输入信号经运放跟随后直接接入单片机的采样通道。一开始测试一切正常,但随着输入信号增加到2.5V左右,采集到的电压值突然严重偏大(比如实际2.5V,ADC采集到的电压为2.6V)。
首先排除软件问题,因为电压较低时采集到的数据一切正常。然后检查硬件问题,确认输入信号正常,确认参考电压正常,甚至排除了通道间相互干扰的可能性,最终问题依旧。也怀疑过单片机自身的缺陷,但根据多年的踩坑经验,大概率还是自己的硬件设计或者软件有不完善的地方。

对比以往的经验,所用到的ADC的采样率都很低(基本上小于1kHz),而这次采样率很高(达到300kHz)。因此初步怀疑,这次和以往的不同应该有什么没注意到的问题。由于需要快速采样,本次的ADC时钟到达72MHz,采样时间设为了最小1.5个周期,单次采样时间0.149us左右。配置代码如下

ADC_StructInit(&ADC_InitStructure); ADC_InitStructure.ADC_ContinuousConvMode = ADC_ContinuousConvMode_Disable; //单次触发模式 ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; ADC_InitStructure.ADC_ExternalTrigConvEvent = ADC_ExternalTrigConvEvent_7; //HRTIM_ADCTRG1 event ADC_InitStructure.ADC_ExternalTrigEventEdge = ADC_ExternalTrigEventEdge_RisingEdge; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_OverrunMode = ADC_OverrunMode_Disable; ADC_InitStructure.ADC_AutoInjMode = ADC_AutoInjec_Disable; ADC_InitStructure.ADC_NbrOfRegChannel = 4; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channel configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_1Cycles5); //VISENS ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 2, ADC_SampleTime_1Cycles5); //IOSENS ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 3, ADC_SampleTime_1Cycles5); //VOSENS1 ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 4, ADC_SampleTime_1Cycles5); //VOSENS2

怀疑采样时间太快,导致采集出错,因此将采样时间设大。设大后有明显效果,采集到的值误差变小,基本判定此处有玄机。于是仔细看了下手册关于采样时间的的描述

fb73ec04-ae41-11ef-93f3-92fbcf53809c.png

描述中明确提到,需要有足够的采样时间,确保输入信号对内嵌的保持电容充电并达到稳定状态。之后把采样时间设置到最大,采样的结果好了很多,但却没有完全解决问题。明显这已经不能真正解决问题了,因为采样时间已经超出我能接受的范围。同时还有一个疑惑,如果充电时间太短导致电压未达到实际值,采样结果应该偏小才对,为啥会偏大呢?看来是有必要把ADC的相关问题系统彻底的研究一下了。首先应该深入了解下单片机内ADC的基本原理,在网上找到了一篇文章https://blog.csdn.net/Zhuo3364/article/details/142112282,看完后才真正解开了我的疑惑。问题就出在输入信号的处理上。由于我直接运放跟随后接入ADC,在低速采样时有足够时间来稳定电压,所以不会有问题。但在高速时,采样开关开启的瞬间,放大器会产生尖峰。又由于采集时间很短,尖峰还未消除,采集开关已经关闭,因此实际采样到的值会偏大。至此问题算是真的找到了,下面将ADC采样电路的设计要点总结一下。

二、ADC设计要点总结

1、基准源的设计

首先基准电压肯定要稳,而且应该要有一定的驱动能力。有一篇关于基准的文章https://www.bilibili.com/read/cv35121342/值得仔细研读。

2、输入信号的设计

输入信号为什么要处理

关于输入信号,很多新手都会犯一个错误,就是直接把电阻分压的信号接入ADC采样,如下图示意。为什么说这是个错误呢,经历过的人就知道这样采样得到的值也会有偏差,严重时跟设计完全不符。

fb9dae72-ae41-11ef-93f3-92fbcf53809c.png

这个问题在于,ADC本身有一定的输入阻抗,但阻抗并不高,有些甚至只有几kΩ。这样直接接入信号,ADC的输入阻抗就会起到分压的作用。如下图,ADC的输入阻抗Rz和R2并联后再和R1分压,因此实际分压比就和设计的完全不同了,采样到的值自然会和设计值差别很大。所以输入信号应该要做适当的处理。

fbac9c52-ae41-11ef-93f3-92fbcf53809c.png

常规的处理,就是输入信号加个跟随器,因为放大器的输入阻抗可以认为是无穷大的,所以不存在上述分压的问题。这基本上可以满足绝大部分低速采样的需求,但对于高速采样,只跟随不滤波也会有问题,这也是本次踩坑的点所在。

找了一个专用的ADC手测仔细研究了下,里面重点就强调了输入信号抗混叠的处理。其实就是对输入信号进行低通滤波。

fbbd1352-ae41-11ef-93f3-92fbcf53809c.png

下面这张图片也很好的显示了输入信号加RC滤波和不加的区别,这也是为什么我这次踩坑的原因。从不加RC的曲线可以看到,采样瞬间放大器输出信号产生了一个尖峰,如果采样周期很短,尖峰还未消除,就完成了采样,那么采样到的值肯定偏大。而加了RC的曲线则是平稳上升到实际的值。

fbd87f5c-ae41-11ef-93f3-92fbcf53809c.png

三、反思 很多时候我们以为自己懂了,其实没懂,只是凑巧没出问题而已。知其然后还是应该要知其所以然,面对问题方能处变不惊,游刃有余。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    100

    文章

    7380

    浏览量

    553766
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371116

原文标题:ADC高速采样电路设计详解:STM32 踩坑?

文章出处:【微信号:zfdzszy,微信公众号:张飞电子实战营】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析ADS8364:高性能6通道同步采样ADC的卓越

      在电子设计领域,模拟 - 数字转换器(ADC)的性能直接关乎系统的精度和稳定性。今天,我们将深入探讨德州仪器(Texas Instruments)的ADS8364,一款具备6通道同步采样功能
    的头像 发表于 12-05 14:22 234次阅读
    深入解析ADS8364:高性能6通道同步<b class='flag-5'>采样</b><b class='flag-5'>ADC</b>的卓越<b class='flag-5'>之</b>选

    高速低功耗利器:ADC08D1500 ADC深度解析

      在当今的电子设计领域,高速、低功耗的模数转换器(ADC)需求日益增长。TI的ADC08D1500就是这样一款性能卓越的产品,它能在高速采样
    的头像 发表于 11-30 10:37 395次阅读
    <b class='flag-5'>高速</b>低功耗利器:<b class='flag-5'>ADC</b>08D1500 <b class='flag-5'>ADC</b>深度解析

    STM32 5 个容易的外设使用技巧

    STM32是嵌入式开发领域的热门MCU,功能丰富到几乎可以完成所有常见控制任务:GPIO、ADC、UART、定时器、DMA……应有尽有。但是,正因为功能强大,开发中的机会也随之增多
    的头像 发表于 11-24 19:04 504次阅读
    <b class='flag-5'>STM32</b> 5 个容易<b class='flag-5'>踩</b><b class='flag-5'>坑</b>的外设使用技巧

    ADC12D500RF 12 位中高速 RF 采样 ADC 技术文档总结

    12位1.6/1.0 GSPS ADC12D800/500RF是一种射频采样GSPS的ADC,可以直接实现 采样输入频率最高可达2.7 GHz及以上。
    的头像 发表于 11-18 15:15 323次阅读
    <b class='flag-5'>ADC</b>12D500RF 12 位中<b class='flag-5'>高速</b> RF <b class='flag-5'>采样</b> <b class='flag-5'>ADC</b> 技术文档总结

    ADC3910D065 10 位高速低功耗 ADC 技术文档总结

    ADC3910Dx 和 ADC3910Sx 是系列超低功耗 10 位 125MSPS 高速单通道和双通道模数转换器。高速控制环路受益于仅 1 个时钟周期的短延迟。
    的头像 发表于 10-24 14:36 541次阅读
    <b class='flag-5'>ADC</b>3910D065 10 位<b class='flag-5'>高速</b>低功耗 <b class='flag-5'>ADC</b> 技术文档总结

    ADC356x系列16位高速ADC技术解析与应用指南

    出色的线性度和动态范围,设计用于实现低功耗。ADC356x具有良好的直流精度和IF采样支持,因此适合用于各种应用。仅一个时钟周期的短延迟对高速控制环路有益。ADC功耗随
    的头像 发表于 09-03 14:28 874次阅读
    <b class='flag-5'>ADC</b>356x系列16位<b class='flag-5'>高速</b><b class='flag-5'>ADC</b>技术解析与应用指南

    UWB自动跟随技术原理、算法融合优化和实录

    UWB为什么是最靠谱的自动跟随技术?原理是什么?需要做什么算法融合、优化?我们在开发过程中过的
    的头像 发表于 08-14 17:45 1126次阅读
    UWB自动跟随技术原理、算法融合优化和<b class='flag-5'>踩</b><b class='flag-5'>坑</b>实录

    嵌入式接口通识知识ADC接口

    工作原理ADC完成模拟信号到数字信号的转换,主要包括采样保持、量化、编码几个关键步骤:1.采样保持采样过程是通过采样保持
    发表于 08-14 16:57

    Texas Instruments ADC3908Dx/ADC3908Sx 8位高速ADC数据手册

    Texas Instruments ADC3908Dx/ADC3908Sx 8位高速模数转换器(ADC)是一系列超低功耗8位125MSPS高速
    的头像 发表于 07-17 11:50 576次阅读
    Texas Instruments <b class='flag-5'>ADC</b>3908Dx/<b class='flag-5'>ADC</b>3908Sx 8位<b class='flag-5'>高速</b><b class='flag-5'>ADC</b>数据手册

    大电流(电机)电流采样电路分享与详解

    一、电路分享二、电路详解电路中电流采样主要通过电阻R1和芯片LTC6102进行1、LTC6102简介LTC6102/LTC6102HV是多功
    的头像 发表于 06-09 19:35 1249次阅读
    大电流(电机)电流<b class='flag-5'>采样</b><b class='flag-5'>电路</b>分享与<b class='flag-5'>详解</b>

    高速过电流检测电路设计

    高速过电流检测电路设计
    的头像 发表于 06-06 18:16 551次阅读
    <b class='flag-5'>高速</b>过电流检测<b class='flag-5'>电路设计</b>

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真两类仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的数据采样,因此静态仿真和动态仿真是完全不同的两个概念,所以设置的参数不同。
    的头像 发表于 06-05 10:19 1511次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>ADC</b><b class='flag-5'>电路</b>的静态仿真和动态仿真

    ADC采样率与信号频率:关键概念与设计要点

    在模数转换器(ADC)的设计与应用中,采样率与信号频率的关系是影响系统性能的核心因素。采样率是指ADC对模拟输入进行采样的速度,通常由外部时
    发表于 05-13 09:53

    高速 MOS 驱动电路设计和应用指南

    关于接地和高边栅极驱动电路、AC 耦合和变压器隔离的解决方案。其中一个章节专门来解决同步整流器应用中栅极驱动对 MOSFET 的要求。 另外,文章中还有一些一步一步的参数分析设计实例。*附件:高速MOS驱动电路设计和应用指南.p
    发表于 03-14 14:53

    求助,关于高速ADC采样的几个问题求解

    在非实时连续采集处理的系统中,比如数字示波器。 系统在数据采集时,会通过ADC采集一会数据,然后在通过fpga或者其他处理器处理一会(如显示)。在处理的这时间段内,高速ADC的工作状态是啥样子
    发表于 01-14 07:05