找回密码
 立即注册
查看: 1252|回复: 17

ADC采集后求均值的问题

[复制链接]

1

主题

1

回帖

17

积分

新手上路

积分
17
发表于 2024-5-5 00:00:29 | 显示全部楼层 |阅读模式
如题,使用的是STC8H8K64U芯片,采集数据后有很大的跳变,导师建议我用ADCEXCFG寄存器对运算数据进行16次采集作平均计算,但我加入之后采集数据没有变化,是我程序用错了吗?(具体程序在附件)


XCPB17R4D56$%XG_V1ZY5L0.png
XHJMGRS9C(C_XD1LCESUR%Q.png
J$V7@7I)XFXS{~%{9Y{0E~J.png

mian.c

19.32 KB, 下载次数: 98

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:186
  • 最近打卡:2025-06-14 09:52:20
已绑定手机

95

主题

976

回帖

2473

积分

超级版主

积分
2473
QQ
发表于 2024-5-6 08:47:56 | 显示全部楼层
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6090

回帖

1万

积分

超级版主

积分
12723
发表于 2024-5-6 09:57:50 | 显示全部楼层
本帖最后由 梁工 于 2024-5-6 09:59 编辑

STC的ADC本身精准、抖动小,如果发现数据抖动大,要先找出抖动原因,不外乎信号有波动(包括纹波)、信号有干扰、参考电压有波动、软件计算处理出错。
先检测参考电压,如果由TL431提供2.5V做参考电压,一定要注意参考电压对地要接10uF~22uF的陶瓷贴片电容,否则TL431会震荡导致读数波动大。
如果是信号波动或受干扰,先从硬件入手尽量让信号稳定、纹波小、滤除干扰,仍不满意,再使用数字滤波,对于规则、正负对称的纹波、波动、干扰,可以使用波动或干扰信号频率10倍以上的速度采样求平均(偶数倍,注意不要去掉最大最小值),即可实现稳定。如果是非规则的尖峰,则采样至少50个样板,去掉一些最大最小值,再求平均。
软件计算出错的查找,可以先不做计算,直接监视原始的ADC值,看是否有波动。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-06-16 00:13:00
已绑定手机

37

主题

2221

回帖

2658

积分

荣誉版主

积分
2658
发表于 2024-5-6 10:00:40 | 显示全部楼层
程序没有用错,可能是测试方法的问题吧,你再试试。
另外,均值滤波对于特别干净的信号是没啥太大效果的,信号混入的随机噪声越多,滤波效果越好,这是信号模型特性决定的。
以下是采用3.3V LDO供电,VREF接3.3V测量内部1.19V电压的波形和数据,这种信号其实算是非常干净的了。

未开启滤波时,数据会出现0x05B3~0x05B6,大约3个字的跳动

不开启均值滤波

不开启均值滤波

开启16点滤波后,数据只出现0x05B3、0x05B4,1个字的跳动

开启16点均值滤波

开启16点均值滤波


睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

1

主题

1

回帖

17

积分

新手上路

积分
17
发表于 2024-5-8 19:06:10 | 显示全部楼层
晓*** 发表于 2024-5-6 10:00
程序没有用错,可能是测试方法的问题吧,你再试试。
另外,均值滤波对于特别干净的信号是没啥太大效果的, ...

那是我硬件电路的问题吗?C:\Users\DELL\Desktop\HJM1~0ZCHG{9R(Z_}`)2T_5.png
HJM1~0ZCHG{9R(Z_}`)2T_5.png

点评

将TL431并联的C1-104改为22uF电容,否则431会震荡,导致数据跳动无法看。 另外,你是采集交流电吗?  详情 回复 发表于 2024-5-9 09:52
把TL431并联的104拆掉,或者换成10UF以上的电容器  详情 回复 发表于 2024-5-8 19:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-06-16 00:13:00
已绑定手机

37

主题

2221

回帖

2658

积分

荣誉版主

积分
2658
发表于 2024-5-8 19:50:53 | 显示全部楼层
本帖最后由 晓飛飛 于 2024-5-8 19:53 编辑
特鲁*** 发表于 2024-5-8 19:06
那是我硬件电路的问题吗?

把TL431并联的104拆掉,或者换成10UF以上的电容器,TL431并104电容可能会产生振荡影响ADC采集。
另外,如果采集到信号幅值太小可以增加上下拉的阻值。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16643
发表于 2024-5-8 21:21:38 | 显示全部楼层
TL431 后面接个22uF电容到地
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6090

回帖

1万

积分

超级版主

积分
12723
发表于 2024-5-9 09:52:53 | 显示全部楼层
特鲁*** 发表于 2024-5-8 19:06
那是我硬件电路的问题吗?

将TL431并联的C1-104改为22uF电容,否则431会震荡,导致数据跳动无法看。
另外,你是采集交流电吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-06-16 08:45:30

6

主题

61

回帖

582

积分

高级会员

积分
582
发表于 2024-6-9 23:07:40 | 显示全部楼层
梁*** 发表于 2024-5-6 09:57
STC的ADC本身精准、抖动小,如果发现数据抖动大,要先找出抖动原因,不外乎信号有波动(包括纹波)、信号有 ...

STC的ADC一致性和稳定性确实很牛,我最近测试在别的论坛发的测试贴.

点评

可在本坛单独开个贴发表  详情 回复 发表于 2024-6-10 10:13
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:99
  • 最近打卡:2025-06-16 09:28:47

733

主题

1万

回帖

1万

积分

管理员

积分
16643
发表于 2024-6-10 10:13:03 | 显示全部楼层
qq6035*** 发表于 2024-6-9 23:07
STC的ADC一致性和稳定性确实很牛,我最近测试在别的论坛发的测试贴.

可在本坛单独开个贴发表
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 18:01 , Processed in 0.175117 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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