找回密码
 立即注册
查看: 80|回复: 7

ADC采集后求均值的问题

[复制链接]

该用户从未签到

1

主题

1

回帖

15

积分

新手上路

积分
15
发表于 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, 下载次数: 3

回复 送花

使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 95 天

    [LV.6]常住居民II

    70

    主题

    611

    回帖

    1888

    积分

    超级版主

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

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

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

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

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    4 小时前
  • 签到天数: 103 天

    [LV.6]常住居民II

    14

    主题

    407

    回帖

    990

    积分

    荣誉版主

    热心市民

    积分
    990
    发表于 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

    回帖

    15

    积分

    新手上路

    积分
    15
     楼主| 发表于 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
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    4 小时前
  • 签到天数: 103 天

    [LV.6]常住居民II

    14

    主题

    407

    回帖

    990

    积分

    荣誉版主

    热心市民

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

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

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 05:18 , Processed in 0.068730 second(s), 62 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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