980578873 发表于 2023-3-8 11:43:30

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

大家好,外部中断触发单片机从掉电模式唤醒后,为什么首次读取电池电压不准确呢,单片机正常工作没进入掉电模式ADC读取电池电压是正确的,为啥唤醒之后首次读数不准确呢?


zhp 发表于 2023-3-8 12:14:18

ADC是模拟外设,从睡眠唤醒,打开ADC电源开关,到ADC可以正常进行ADC转换是需要等待时间的

980578873 发表于 2023-3-8 13:50:27

zhp 发表于 2023-3-8 12:14
ADC是模拟外设,从睡眠唤醒,打开ADC电源开关,到ADC可以正常进行ADC转换是需要等待时间的
...

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

zhp 发表于 2023-3-8 13:59:17

980578873 发表于 2023-3-8 13:50
打开ADC电源开关再延时一会去ADC转换是否可以解决此问题

应该可以解决

980578873 发表于 2023-3-8 14:19:41

zhp 发表于 2023-3-8 13:59
应该可以解决

delay200ms就可以了

神农鼎 发表于 2023-3-8 14:23:49

那再尝试延时10mS, 另外不管咋样,采样时间要够

980578873 发表于 2023-3-8 14:33:01

神农鼎 发表于 2023-3-8 14:23
那再尝试延时10mS, 另外不管咋样,采样时间要够

应该和采样时间没有多大的关系吧,主要是单片机片内的ADC电路从上电到ADC转换开始时刻要有足够的启动时间才能保证ADC的准确度

神农鼎 发表于 2023-3-8 14:38:16

大家好,外部中断触发单片机从掉电模式唤醒后,为什么首次读取电池电压不准确呢
====是主电源稳定的情况下,你重新打开ADC的电源,等10mS或者1mS/200uS ?足够了,用不到 200mS

另外不管咋样,你设置的ADC采样时间要够
===你上下你原理图的PDF, 大家帮你分析下,我认为你没找到原因

神农鼎 发表于 2023-3-8 14:43:49

你如【ADC内部的采样保持电容】对外部采样时间设置的不够,
【ADC内部的采样保持电容】和你【外部的电压输入源的电位】还没有互相充放电到相同电位的时候,
就开始ADC转换了,那转换的就不是外面真实的电压值,
而只是内部的和外部还没相等的采样保持电容的电压值

神农鼎 发表于 2023-3-8 14:44:58



没200mS那么夸张





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] 2 3
查看完整版本: 单片机唤醒后ADC首次读取电池电压不准确