电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
ADC校准问题
已解决
73482
个问题
已帮助
5993
位优秀工程师
ADC校准问题
9383dab1911bec3c
2018-11-29
浏览量:1061
对芯片进行ADC校准,分别采用3.8V 和4.2V进行校准,采用一元二次方程y=ax+b,计算出a、b的值,但是用4V进行检验的时候,误差还是有40mv左右,这是什么问题导致的?
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
请输入用户名
电路上的元器件,比如电阻什么的,精度不高会产生误差;温度不一样也会产生误差,况且这么小的误差,应该影响不大。
发布于
2018-11-30
举报
评论 0
0
0
其他答案
数量:
14
donatello
40mv相当于1v来说误差很小了,不必在意。
发布于
2018-11-29
举报
评论 0
0
0
Linux小学童
器件误差,你给的校准电压也可能有偏差,温度也有影响的。
发布于
2018-11-29
举报
评论 0
0
0
一笔之名也
这个误差是由于你电路上的原因吧,或是你的参数电压不稳定
发布于
2018-11-29
举报
评论 0
0
0
ssc9879
可以参考一下如下文档,其中有关于ADC 系统校准和外部校准的资料
Frequently Asked Question | Education | Analog Devices
发布于
2018-11-30
举报
评论 0
0
0
ssc9879
按照这个说明,使用这个自校准函数前应当使ADC处于掉电状态下,但是这样似乎就与英文的参考手册矛盾了。经过探查,方才知道ST的参考手册叙述文笔和结构编排是TM有多烂!
依据手册介绍,我将STM32的ADC分为三种状态:掉电状态、上电状态、工作状态。
当芯片启动运行时,ADC处于掉电状态。当第一次将ADON位设定为1时,ADC从掉电状态进入上电状态,也就是手册里说的“从掉电状态下唤醒”,这时ADON位已经为1。当我们再次设定ADON位等于1时,这时ADC会按照此时的ADC_CR1、ADC_CR2等寄存器的设置开始转换工作,也就进入了工作状态。这也就是下图红框中话的含义。
<ignore_js_op>
接下来再分析HAL_ADCEx_Calibration_Start这个函数,通过一层一层查找,方知这个函数之所以要放在HAL_ADC_Start()之前或HAL_ADC_Stop()之后是因为这个函数本身就会执行将ADON置1这么一条语句。
也就是,执行自校准时ADC必须处于前面所说的上电状态,如果ADC在工作状态下——正在转换或者进行过转换——则要将ADON位清零,使ADC关闭进入掉电状态下,之后再将ADON置1,进入上电状态,之后再校准,再之后该注入组的注入该规则组的SCAN。也就是函数的使用说明和英文版的参考手册并不矛盾,而是TMD ST根本就没把这个说清楚!
接下来在顺便说一下为什么当ADON=1时再次设定置ADON位为1会进入工作状态(知道的就不必往下看了)
原因就是这句话
<ignore_js_op>
看过正点原子教程的应该都有这个印象,在ADC转换实验中原子将ADC_CR2的EXTSEL位设定为111,将EXTTRIG位设定为1,之后通过SWSTART位置1的方式来启动转换。其实根本不用这么复杂,只需要将ADON再置1就可以启动转换,无论这个转换是单个通道还是还是通道组,效果与软件触发方式完全一样。
接下来再说说规则组的连续转换。
昨天晚上一直在尝试这个,想在中断中读取多个通道的值,一直不成功,只能得到最后一个被转换通道的值,现在才发现,又TM被ST的参考手册坑!了!
关于连续转换模式,手册里是这么说的,
<ignore_js_op>
一个规则通道被转换完毕后EOC会被置位同时进入中断。
但是,在ADC中断章节又是这么说的,
<ignore_js_op>
一个通道组转换完毕后才进入中断,而非单个通道。这也就是说,当规则组采用中断方式时ADC_DR里必定放置的是最后被转换的那个通道的值。那么是不是上面那个连续转换模式的说明写错了。又前后翻了手册n遍发现不是。
发布于
2018-11-30
举报
评论 0
0
0
FEItwo
可能是你的元件有误差,电路问题,电压电流干扰等等都会引起
发布于
2018-11-30
举报
评论 0
0
0
捷波
1%的误差应该还是可以接受的,可以用其他仪表再比对下测量结果。
发布于
2018-11-30
举报
评论 0
0
0
我是假管贴胸小助手
那点误差应该你的电路元器件数值误差,如果要求高的话,建议提高原件的精度。
发布于
2018-11-30
举报
评论 0
0
0
liuxiaofei126
可以选用高精度的元器件误差就小了
发布于
2018-11-30
举报
评论 0
0
0
yhj416606438
可能芯片线性不好吧,用4v校准试试看
发布于
2018-12-01
举报
评论 0
0
0
xdsnet
这个还要看线路接入情况,不过40mV应该在误差范围了吧
发布于
2018-12-03
举报
评论 0
0
0
chen0000009
这个ADC不会是绝对的线性关系的,而且还要考虑到信号存在纹波,可能出现误差
发布于
2018-12-11
举报
评论 0
0
0
序缘阿斌
ADC的校准一般都是很精准的,这个要看看是不是干扰的问题
发布于
2019-01-08
举报
评论 0
0
0
Florrie
主要是看你的线路误差,这个跟你的线路有关系
发布于
2019-01-12
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
ADC校准问题
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: