搜索
bottom↓
回复: 22

看到网友分享设计中的疑似电池电压测量电路的设计疑问

[复制链接]

出3670入191汤圆

发表于 2022-2-22 13:39:20 | 显示全部楼层 |阅读模式
有一个网友在网上分享了他打样的PCB,我看到他充电芯片旁边放了一堆器件,仔细看了一下,是如下图所示的电路图(只能看到连线和位号,所以具体阻值和Q2、Q3的型号是我猜测的)。

我推测这个电路只是用来测量电池电压(电量)的,它存在的好处是省电,因为在默认状态下,mcu的MCU_VBAT_SWITCH引脚为低电平,Q2和Q3截止(只有体二极管的反向漏电流)。
但是这个功能模块用了5个电阻和2个管子,也有复杂、成本、占地方等缺点。

我的疑问是,如果把R12、R13用阻值比较大的电阻不行吗?比如2M电阻,则电流也只有4/2M=2uA的电流啊。

求帮忙分析。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2022-2-22 13:43:31 来自手机 | 显示全部楼层
要ADC输入阻电阻高才行

出10入120汤圆

发表于 2022-2-22 13:50:55 | 显示全部楼层
既然是可控分压,就没有必要用很大的电阻,这个电路使用起来应该是没有什么问题的。

出330入1925汤圆

发表于 2022-2-22 13:53:53 | 显示全部楼层
很多MCU的ADC通常很不完美(甚至独立的ADC也有),并不是绝缘体一样的东西,所以当输入信号串联了很大的电阻时,会因为有电流而导致电压发生变化,就不准了。
AVR的ATmega328输入有100M,但STM32f051最大却也只有50K。。在这一点上反而被AVR吊打。
如果是用AVR,用M级的电阻可能也没问题,但STM32上去根本就测不到正常的结果。

出0入91汤圆

发表于 2022-2-22 14:06:46 | 显示全部楼层
你好像完全没搞懂这两个电阻的作用 ,这样个电阻是用来分压的     电池电压盲猜 最大电压大于单片机的 ADC 最大电压了 所以才要分压

另外2M 的电阻 会直接导致测量到的ADC 值不准 拨动  易干扰,导致结果完全不正确   100K 就会出问题了  你还上了2M

另外 ADC 采样本身就是高阻的  也不耗费多少电流

出3670入191汤圆

 楼主| 发表于 2022-2-22 14:18:04 | 显示全部楼层
谢谢各位的回复,我明白了。

我主要的问题就是没有意识到分压的两个电阻需要考虑AD的输入阻抗所以不能用很大阻值的这一点。

出0入399汤圆

发表于 2022-2-22 16:53:44 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出3670入191汤圆

 楼主| 发表于 2022-3-5 21:12:58 | 显示全部楼层
谢谢各位的回复。

我今天在验证板上实际实验了一下,我用的R12=20KΩ,R13=10KΩ,使用stm32f103c8进行测试(电压3.3V,12Bit ADC),ADC实测值记为fvalue,转换公式为
  1. Voltage = fvalue * 3.3 / 4096 * (10 + 20) / 10
复制代码


万用表测得电池电压为3.94V,程序输出为3.93V。
貌似很吻合,但是我有一事不解。
既然stm32 adc的输入阻抗较低,那么我在上述公式计算的时候,接地10KΩ的阻值是否要考虑是和ADC的50KΩ并联的(电流分流),这样R13进行分压计算时的阻值应该取为
  1. R = (50 * 10) / (50 + 10) = 8.33KΩ
复制代码
比较合适?
但是按这种方式的话,计算出来的电池电压反而为4.35V,与实际偏差更大。
这是为什么?

谢谢@R88 的回复,但是你贴的图我一下子看不懂,改天我再仔细看看。

出0入0汤圆

发表于 2022-3-5 22:16:04 | 显示全部楼层
Rabbitoose 发表于 2022-3-5 21:12
谢谢各位的回复。

我今天在验证板上实际实验了一下,我用的R12=20KΩ,R13=10KΩ,使用stm32f103c8进行测 ...
(引用自8楼)

ADC输入阻抗并没有50K这么低

出350入477汤圆

发表于 2022-3-5 22:35:25 来自手机 | 显示全部楼层
小白躺手吃 发表于 2022-3-5 22:16
ADC输入阻抗并没有50K这么低
(引用自9楼)

等效的输入阻抗与AD的采样周期数有关。上面有AD内部的输入电路原理图。采样时间越短,等效的输入阻抗就越小。

出0入0汤圆

发表于 2022-3-7 09:57:42 | 显示全部楼层
redroof 发表于 2022-3-5 22:35
等效的输入阻抗与AD的采样周期数有关。上面有AD内部的输入电路原理图。采样时间越短,等效的输入阻抗就越 ...
(引用自10楼)

嗯是的,楼主这问题应该是充分充电了,所以无需再考虑等效电阻并联的问题

出3670入191汤圆

 楼主| 发表于 2022-3-7 10:15:23 | 显示全部楼层
谢谢 @cne53102 @R88 @redroof 三位大哥的回复。由于我底子薄弱,必须得仔细看才能抓住你们话中的要点。

今天我做了一番功课,再次将我的应用情景具体计算一遍,交个作业,并且还有疑问,请再帮我看看。

我用的是stm32f103c8,参考 @R88 大哥给的资料,具体计算如下:

采样频率fADC(Hz)
在时钟树中,设置APB2分频设为1(即72MHz),ADC预分频设为6(即12MHz),即采样频率为12MHz。

采样时间(S)
我在STM32CubeMX中在Rank中将Sampling Time设为1.5 Cycles,则采样时间为
ts = 1.5*(1/fADC) = 1.5*(1/12MHz) = 0.125uS
(另外,转换时间需要在采样时间之上再加上12.5 Cycles,但是我这里应该使用采样时间计算,没错吧?)

采样电阻RADC(Ω)
根据mcu手册中5.3.18 12-bit ADC characteristics表中的数据,其采样电阻为1KΩ。

内部采样保持电容CADC(F)
同上,根据手册得知为8pF。

分辨率
是12-bit ADC,故分辨率为4096。

转换精度要求
按0.1LSB

最后按照公式计算,传感器等效电路R0的最大值为:
R0=-T/(C*ln(0.1/4096))-RADC=-0.125uS/(8pF*(-10.62))-1KΩ=0.125*1000000/8/10.62-1000=470Ω

这个结果表明输入阻抗得很小才行啊,那么我之前采用了20k+10k的分压电路,为什么最后得出的结果跟实际电压又很吻合呢?真的会如@小白躺手吃 说的那样已经充分充电了吗?

所以,要得到更准确的结果,我需要把采样时间设为一个更大的值比如55.5 Cycles,则等效电路R0的最大值为:
R0 = 55.5/12*1000000/8/10.62-1000=53.4kΩ

实际应用中是不是会在采样频率满足的前提下使用更大的采样周期?

出350入477汤圆

发表于 2022-3-7 11:47:24 | 显示全部楼层
Rabbitoose 发表于 2022-3-7 10:15
谢谢 @cne53102 @R88 @redroof 三位大哥的回复。由于我底子薄弱,必须得仔细看才能抓住你们话中的要点。

...
(引用自12楼)

因为你是单通道采样的,只用了这一个通道,而且被采样的数据又是恒定值。这时候当然不需要考虑采样时间,反正第一个周期充一点,第二个周期在充一点,总会充够的。
不信你可以轮流采两个通道,一个通道是你正常的信号,另一个通道接地。
看这个时候你的采样结果是对是错

出0入399汤圆

发表于 2022-3-7 17:14:42 | 显示全部楼层
Rabbitoose 发表于 2022-3-7 10:15
谢谢 @cne53102 @R88 @redroof 三位大哥的回复。由于我底子薄弱,必须得仔细看才能抓住你们话中的要点。

...
(引用自12楼)

我发的是多个通道共用一个采样保持电路,当然你要是只用了一个ad口,不用那个计算也行,如果你用了2个ad口,就需要在规定的时间里面充满电。其实就是RC充电时间的计算。

出215入169汤圆

发表于 2022-3-7 17:17:48 | 显示全部楼层
r13接到ad输入,不是应该并个电容吗

出0入362汤圆

发表于 2022-3-7 17:23:27 | 显示全部楼层
不用这么复杂吧, 只要两个电阻串联就行了, 上端接电池, 中间接ADC, 底下接到gpio. 底下的gpio拉低时测量, 不测量时切到高阻就行了.

如果嫌底下的gpio的箝位二极管倒灌, 那就把底下再接个NMOS, 用一个gpio控制.

测量也省事, 底下gpio用一路timer, 占空比设到很低, 用边沿触发adc采样就行了.

出0入0汤圆

发表于 2022-3-7 17:48:16 来自手机 | 显示全部楼层
tomzbj 发表于 2022-3-7 17:23
不用这么复杂吧, 只要两个电阻串联就行了, 上端接电池, 中间接ADC, 底下接到gpio. 底下的gpio拉低时测量,  ...
(引用自16楼)

在电流要求的情况下不能这样接,会有几ua的漏电

出3670入191汤圆

 楼主| 发表于 2022-3-7 19:50:09 | 显示全部楼层
谢谢@redroof和@R88的再次指导,这个知识点我已经大致明白了,回头再看书补补功课吧。

谢谢!

出3670入191汤圆

 楼主| 发表于 2022-3-7 20:05:23 | 显示全部楼层
tomzbj 发表于 2022-3-7 17:23
不用这么复杂吧, 只要两个电阻串联就行了, 上端接电池, 中间接ADC, 底下接到gpio. 底下的gpio拉低时测量,  ...
(引用自16楼)


是这样吧?

这样确实简单了很多,跟你上次指点我3V控制5V开关的电路有异曲同工之妙。
我后面就按照这种方式使用。

谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2022-3-8 15:19:49 | 显示全部楼层
Rabbitoose 发表于 2022-3-7 20:05
是这样吧?

这样确实简单了很多,跟你上次指点我3V控制5V开关的电路有异曲同工之妙。
(引用自19楼)

这个两个电路前提是 MCU IO支持大于3.3v耐压 如5v耐压 。。。

出3670入191汤圆

 楼主| 发表于 2022-3-8 16:50:14 | 显示全部楼层
acmilannast 发表于 2022-3-8 15:19
这个两个电路前提是 MCU IO支持大于3.3v耐压 如5v耐压 。。。
(引用自20楼)

嗯,确实是的。谢谢提醒。

出0入309汤圆

发表于 2022-3-10 10:57:37 | 显示全部楼层
看到这个帖子我想到之前用CH573测量电池电压,看到客服说用1M+2M分压可以省电,我就这么干了。结果测量结果误差在0.5V以上。手册里没有标ADC输入阻抗,但IO的输入漏电流最大是3uA,那MOhm级电阻肯定是不能用了。我指出这点后客服就装死了。

这种情况应该就只能使用这种比较复杂的电路了。

出0入57汤圆

发表于 2022-3-11 13:46:52 | 显示全部楼层
别小看那几uA电流,对于很多要求低功耗且电池更换麻烦(例如某些特殊位置的采样装置)来说,减小这几uA对产品寿命影响非常大
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 06:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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