查看: 1709|回复: 6

[求助] KL27Z 16位ADC 采集干电池电压,波动2mv左右

[复制链接]

该用户从未签到

1

主题

4

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2019-9-23
发表于 2019-7-10 20:25:30 | 显示全部楼层 |阅读模式
我用KL27Z的官方的开发板,使用上面的 16位ADC采集干电池电压,配置是采用了参考电压vdda 3.3v,16位单通道采集,然后硬件平均数量是32,连续采了400个数据,将其中的最大值和最小值找到相减,换算一下发现有最大2mV的波动,,,按照数据手册的说明,应该只有300uV的干扰才对呀。。
我换成内部1.2V的参考电压测量其他的稳定输入,也差不多是有一个最大2mV的波动。。不知道是什么原因。
因为后面想要做一个测量小电压的东西,,,现在是用干电池这种稳定电压输出的做了一下实验。有人做过吗

最佳答案

happytaoxiaoli 发表于 2019-7-11 15:58 而且我考虑了一下,,我觉得校准应该是和测得值准不准确有关吧,,就是会不会有一个偏移,,而现在的现象 ... 我之前在没有校准因为工艺导致的精度问题,误差有!如果你确定 ...
回复

使用道具 举报

该用户从未签到

40

主题

500

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1076
最后登录
2024-1-5
发表于 2019-7-10 21:26:58 | 显示全部楼层
ADC里面有个校正寄存器,你校准一下试一试!
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2019-9-23
 楼主| 发表于 2019-7-11 15:17:53 | 显示全部楼层
caoren123 发表于 2019-7-10 21:26
ADC里面有个校正寄存器,你校准一下试一试!

嗯嗯,我看了一下数据手册和API手册,以及官方的ADC例子,找到一个和校准有关的函数,我在程序里边也是使用了这个函数的,就是放在初始化函数里边。不过感觉用了之后结果比不用好一点点,,但还是我上面说的有2mv的误差。
不过函数描述有点没理解,,我是软件触发采集数据呀,,下边的hardwaretrigger是啥意思,,是指我想要自动校准,需要我设置这个硬件触发吗,,
status_t ADC16_DoAutoCalibration        (        ADC_Type *         base        )       

This auto calibration helps to adjust the plus/minus side gain automatically. Execute the calibration before using the converter. Note that the hardware trigger should be used during the calibration.

Parameters
base        ADC16 peripheral base address.
Returns
Execution status.
Return values
kStatus_Success        Calibration is done successfully.
kStatus_Fail        Calibration has failed.
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2019-9-23
 楼主| 发表于 2019-7-11 15:58:23 | 显示全部楼层
caoren123 发表于 2019-7-10 21:26
ADC里面有个校正寄存器,你校准一下试一试!

而且我考虑了一下,,我觉得校准应该是和测得值准不准确有关吧,,就是会不会有一个偏移,,而现在的现象就是有一个波动,,不清楚是什么原因,,诶,还是非常感谢
回复 支持 反对

使用道具 举报

该用户从未签到

40

主题

500

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1076
最后登录
2024-1-5
发表于 2019-7-11 17:17:48 | 显示全部楼层
happytaoxiaoli 发表于 2019-7-11 15:58
而且我考虑了一下,,我觉得校准应该是和测得值准不准确有关吧,,就是会不会有一个偏移,,而现在的现象 ...

我之前在没有校准因为工艺导致的精度问题,误差有!如果你确定你的2mv误差还是挺大的。得到这个误差,你得知道是不是你得电源本身有噪声,还有就是用高精度电压基准源。那天有时间我也找找之前写的代码看看
回复 支持 反对

使用道具 举报

该用户从未签到

40

主题

500

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1076
最后登录
2024-1-5
发表于 2019-7-11 17:26:09 | 显示全部楼层
happytaoxiaoli 发表于 2019-7-11 15:17
嗯嗯,我看了一下数据手册和API手册,以及官方的ADC例子,找到一个和校准有关的函数,我在程序里边也是使 ...

硬件触发,我的理解是通过外部外设,或者GPIO引脚触发。在触发之前还有进行引脚触发的是能设置等等。
关于校正,我之前收录的一段话,你可以参考
增益设置寄存器(K其他系列支持ADC信号的放大,这样微弱的信号也可以处理)
这个设置单元,完成的主要目的是通过,在进行ADC转换之前校准
为什么要做校准?
ADC校准的目的是:大幅减小因内部电容器组的变化而造成的准精度误差。
了解知识:
ADC 带有自动校验功能,并且可以达到确定的精度。在复位之后或者转换开始前, 校验功能必须使能或者有效的校验值被写进。校验功能会修正偏移校验值、负向校验值、 正向校验值。偏移量校验值会自动存在 ADC 偏移纠正寄存器中,正向校验值和负向校验 值会自动存到 ADC 正向校验寄存器和负向校验寄存器(CLPx 和 CLMx)中。在校验之前用 户必须正确配置 ADC 模 块 , 在校验功能完成之后必须将产生的增益值存到相应寄存器中。 在校验之前,用户必须根据有效时钟源和需求,配置好 ADC 时钟源和频率,配置低 功耗模式, 参考电压选择, 采样时间和高速配置。
如果应用程序在很多地方都要用到 ADC, 必须选择高精度配置, 或者根据不同的配置条件选择不同的校验方式。在校验之前,用户必须根据有效时钟源和需求,配置好 ADC 时钟源和频率,配置低 功耗模式, 参考电压选择, 采样时间和高速配置。 如果应用程序在很多地方都要用到 ADC, 必须选择高精度配置, 或者根据不同的配置条件选择不同的校验方式。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

注册会员

Rank: 2

积分
71
最后登录
2019-9-23
 楼主| 发表于 2019-7-17 16:34:53 | 显示全部楼层
caoren123 发表于 2019-7-11 17:17
我之前在没有校准因为工艺导致的精度问题,误差有!如果你确定你的2mv误差还是挺大的。得到这个误差,你 ...

thanks,前几天,对干电池加了个低通滤波,10K的电阻和0.1uf的电容,截止频率160hz,然后噪声一下子降到了0.7mV,,应该还能降低。果然这种精度问题要先确保测量电源和参考电压,在考虑其他。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-27 04:52 , Processed in 0.129777 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表