找回密码
 立即注册
楼主: newl***

今天 关于ADC,遇到一个奇怪的问题【已解决】

[复制链接]
  • TA的每日心情
    开心
    昨天 18:00
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    20

    主题

    104

    回帖

    240

    积分

    中级会员

    积分
    240
     楼主| 发表于 2023-11-7 15:03:24 | 显示全部楼层
    神农鼎 发表于 2023-11-7 14:51
    讨论ADC, 你应该贴出你的 原理图的 PDF, 或者清晰的原理图图片,如我发的

    好的,我现在正在测试,如果再不行,就贴出原理图,请您和大家帮忙,谢谢。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-11-7 16:27:31 | 显示全部楼层
    梁工 发表于 2023-11-6 17:22
    楼主程序判断2个点ADC值相差3,并且没有任何滤波措施,所以一点干扰或误差,就会导致错误。
    并且ADC转换也 ...

    应该使用10位或12位ADC,这样两个判断点的ADC能拉开比较大的距离。
    使用适当、合理的数字滤波,是指软件滤波,比如平均值、一阶低通滤波等等。
    楼主可以下载官方例子测试,串口直接观察ADC值。
    也可以采样几百值,用EXCEL表分析你的干扰情况。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:00
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    20

    主题

    104

    回帖

    240

    积分

    中级会员

    积分
    240
     楼主| 发表于 2023-11-8 14:08:01 | 显示全部楼层
    梁工 发表于 2023-11-7 16:27
    应该使用10位或12位ADC,这样两个判断点的ADC能拉开比较大的距离。
    使用适当、合理的数字滤波,是指软件 ...

    梁工你好,按照您昨天的提示,我跟踪了下,的确存在干扰,但现在产品成本压缩的厉害,更改电路不可能,
    我采取了多次采样的办法,比如说在一次采样中测到电压小于1.48V,马上连续采样20次,如果这20次都小于1.48V,则终止充电。这个程序用了可能10几年了,我也不好做大的改动。按照前边的方法,到现在程序运行稳定,这几天我再测试下,如果不出问题,就算问题解决了,如果再出问题,再请您和大家帮忙,谢谢。

    点评

    你这种情况,使用数字一阶低通滤波是比较好的,就是不知道你要求的相应速度。或者使用平均值滤波也可以,使用12位的ADC值,比如1ms采样一次,采样100次平均。  详情 回复 发表于 2023-11-8 16:14
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-11-8 16:14:31 | 显示全部楼层
    newlined 发表于 2023-11-8 14:08
    梁工你好,按照您昨天的提示,我跟踪了下,的确存在干扰,但现在产品成本压缩的厉害,更改电路不可能,
    ...

    你这种情况,使用数字一阶低通滤波是比较好的,就是不知道你要求的相应速度。或者使用平均值滤波也可以,使用12位的ADC值,比如1ms采样一次,采样100次平均。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:00
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    20

    主题

    104

    回帖

    240

    积分

    中级会员

    积分
    240
     楼主| 发表于 2023-11-9 14:42:16 | 显示全部楼层
    本帖最后由 newlined 于 2023-11-9 15:02 编辑
    梁工 发表于 2023-11-8 16:14
    你这种情况,使用数字一阶低通滤波是比较好的,就是不知道你要求的相应速度。或者使用平均值滤波也可以, ...

    梁工您好,您说的“数字一阶低通滤波”,我看了下,编程还比较复杂,这个产品对相应速度没有要求,几秒或者几分钟都可以。按照您昨天的提示,我采用多次采样的办法从今天上午开始,用了三块测试的板子,都没有问题了。我想问题应该解决了,非常感谢。

    点评

    “数字一阶低通滤波,就是计算 Y(n) = Y(n-1) * (1-a) + adc*a,这是一阶RC的数字滤波形式,选择合适的a值,a越小,惯性越大,响应越慢,截止频率越低,输出越稳定。  详情 回复 发表于 2023-11-9 16:53
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-11-9 16:53:35 | 显示全部楼层
    newlined 发表于 2023-11-9 14:42
    梁工您好,您说的“数字一阶低通滤波”,我看了下,编程还比较复杂,这个产品对相应速度没有要求,几秒或 ...

    “数字一阶低通滤波,就是计算 Y(n) = Y(n-1) * (1-a) + adc*a,这是一阶RC的数字滤波形式,选择合适的a值,a越小,惯性越大,响应越慢,截止频率越低,输出越稳定。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-12-18 20:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    3

    回帖

    38

    积分

    新手上路

    积分
    38
    发表于 2023-11-9 17:10:18 | 显示全部楼层
    来学习学习,很好的经验
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 05:00 , Processed in 0.067990 second(s), 57 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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