找回密码
 立即注册
查看: 4492|回复: 27

单片机唤醒后ADC首次读取电池电压不准确

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-8 11:43:30 | 显示全部楼层 |阅读模式
大家好,外部中断触发单片机从掉电模式唤醒后,为什么首次读取电池电压不准确呢,单片机正常工作没进入掉电模式ADC读取电池电压是正确的,为啥唤醒之后首次读数不准确呢?

单片机唤醒后ADC首次读取电池电压不准确-1.png 单片机唤醒后ADC首次读取电池电压不准确-2.png
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:58
  • 最近打卡:2025-06-17 09:13:13

26

主题

1037

回帖

3970

积分

超级版主

积分
3970
发表于 2023-3-8 12:14:18 | 显示全部楼层
ADC是模拟外设,从睡眠唤醒,打开ADC电源开关,到ADC可以正常进行ADC转换是需要等待时间的
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-8 13:50:27 | 显示全部楼层
zh*** 发表于 2023-3-8 12:14
ADC是模拟外设,从睡眠唤醒,打开ADC电源开关,到ADC可以正常进行ADC转换是需要等待时间的
...

打开ADC电源开关再延时一会去ADC转换是否可以解决此问题

点评

应该可以解决  详情 回复 发表于 2023-3-8 13:59
  • 打卡等级:偶尔看看III
  • 打卡总天数:58
  • 最近打卡:2025-06-17 09:13:13

26

主题

1037

回帖

3970

积分

超级版主

积分
3970
发表于 2023-3-8 13:59:17 | 显示全部楼层
98057*** 发表于 2023-3-8 13:50
打开ADC电源开关再延时一会去ADC转换是否可以解决此问题

应该可以解决
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-8 14:19:41 | 显示全部楼层

delay200ms就可以了
  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

734

主题

1万

回帖

1万

积分

管理员

积分
16690
发表于 2023-3-8 14:23:49 | 显示全部楼层
那再尝试延时10mS, 另外不管咋样,采样时间要够
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-25 15:38:27

39

主题

204

回帖

651

积分

高级会员

积分
651
发表于 2023-3-8 14:33:01 | 显示全部楼层
神*** 发表于 2023-3-8 14:23
那再尝试延时10mS, 另外不管咋样,采样时间要够

应该和采样时间没有多大的关系吧,主要是单片机片内的ADC电路从上电到ADC转换开始时刻要有足够的启动时间才能保证ADC的准确度
  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

734

主题

1万

回帖

1万

积分

管理员

积分
16690
发表于 2023-3-8 14:38:16 | 显示全部楼层
大家好,外部中断触发单片机从掉电模式唤醒后,为什么首次读取电池电压不准确呢
====是主电源稳定的情况下,你重新打开ADC的电源,等10mS或者1mS/200uS ?足够了,用不到 200mS

另外不管咋样,你设置的ADC采样时间要够
===你上下你原理图的PDF, 大家帮你分析下,我认为你没找到原因
  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

734

主题

1万

回帖

1万

积分

管理员

积分
16690
发表于 2023-3-8 14:43:49 | 显示全部楼层
你如【ADC内部的采样保持电容】对外部采样时间设置的不够,
【ADC内部的采样保持电容】和你【外部的电压输入源的电位】还没有互相充放电到相同电位的时候,
就开始ADC转换了,那转换的就不是外面真实的电压值,
而只是内部的和外部还没相等的采样保持电容的电压值
  • 打卡等级:常住居民III
  • 打卡总天数:100
  • 最近打卡:2025-06-17 08:13:13

734

主题

1万

回帖

1万

积分

管理员

积分
16690
发表于 2023-3-8 14:44:58 | 显示全部楼层
1.png

没200mS那么夸张


1.png
2.png

ADC的转换时间是固定的,但采样时间,用户要根据实际线路来设置
T = R*C

内部 R《=200欧,C = 17pF, 你外部还有 R和C, 从最长采样时间开始测试

你采样时间不够,就会内部采样保持电容的电位还没有和外部信号源的电压相等,
你就切断了采样通道进行ADC转换,所以就是转换了1个和外界输入还没相等的值 !!!!!
====大家必须知到这个

下面这个夸张的示意图:
C24是MCU内部的ADC采样保持电容/17pF;
R110是MCU的内部通道等效电阻,可能是 700欧 + 200欧的走线电阻
C25是外部输入信号源;
C24和C25如采样时间不够/就是互相充放电时间不够,
那2个电位还没相等,你就关断采样进行转换,那转换出来的值就不是外部C25的电位,
而只是和C25不等的C24当时的电位 !!! 不行
1.png




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

本版积分规则

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

GMT+8, 2025-6-18 00:17 , Processed in 0.400218 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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