0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

痛苦踩坑“电池电压侦测电路”,含泪总结设计要点

工程师看海 来源:电路啊 作者:电路啊 2024-04-07 14:31 次阅读

原文来自:电路啊

硬件,堆经验。 做过一个电纸书阅读器的项目,和Kindle是同类产品

产品中用到一个“电池电压侦测电路”,当时在这个电路上踩坑了,电路本身倒是很简单:

23bc1286-e8ae-11ee-b759-92fbcf53809c.png

和大家分享这个电路的设计要点,以及当时的设计失误,帮助大家积累经验,以后不要踩这种坑。 设计要点一:设定分压电阻的大小 这种便携式掌上阅读器,当然是内置锂电池的:

通过侦测电池电压来判断电池电量,是很常用的做法。 侦测电池电压的电路非常简单:

23bc1286-e8ae-11ee-b759-92fbcf53809c.png

电池电压经过电阻R26和R62分压之后,给到主控芯片MCUADC引脚,通过ADC来侦测电池电压。

为什么要分压?因为ADC引脚可直接侦测的电压范围没有4.2V这么高。 在R62远远小于MCU的ADC引脚的输入阻抗的情况下,可以忽略ADC引脚的输入阻抗,这也是我们需要的。

下面忽略ADC引脚的输入阻抗来计算两个电阻的分压,也就是:

侦测到的电压 = 电池电压 x R62 / (R26 + R62)

侦测到的电压 = 电池电压 x 150 / (300 + 150)

侦测到的电压 = 电池电压 x 1 / 3

当电池电压为4.2V时,经过R26和R62分压,ADC引脚会侦测到1.4V:

23cf5ed6-e8ae-11ee-b759-92fbcf53809c.png

当电池电压为3.5V时,经过R26和R62分压,ADC引脚会侦测到1.17V:

23e7798a-e8ae-11ee-b759-92fbcf53809c.png

所以可以根据侦测到的电压来算出电池电压,也就是:

电池电压 = 侦测到的电压 x 3 查看MCU的数据手册,可以查到ADC引脚的输入阻抗。 为了忽略ADC引脚输入阻抗的影响,R62要尽可能相对地小。 但又不能太小,因为这个电路会一直消耗电池的电量,就算是关机状态下也一直在耗电。 电阻太小会导致关机功耗变大,这里消耗9.3uA:

23f2e61c-e8ae-11ee-b759-92fbcf53809c.png

对阅读器产品来说,可以接受了!

设计要点二:降低纹波电压 为了精确测量电池电压,ADC引脚处的纹波电压要小。 这里用了电容C32来滤波:

24182800-e8ae-11ee-b759-92fbcf53809c.png

为了避免受到干扰,ADC引脚的走线要尽量短,远离干扰源,走线包地处理。ADC引脚处的走线高亮显示如下(这个MCU是BGA封装):

242f3f7c-e8ae-11ee-b759-92fbcf53809c.png

这里的走线不算短,不过经测试纹波电压小于50mV,满足要求。

设计要点三:设定关机电压 阅读器配套的锂电池,充满电是4.2V。 在电压降到3.5V时,经实际测试,阅读器的系统电压还能保持稳定,但继续放电容易导致死机,所以设定3.5V为关机电压。 参考一款锂电池的放电曲线图,以1A电流放电时,一开始放电曲线很平缓。放电到3.5V再往后一些,蓝色的放电曲线呈陡涯式下降,这就是为什么电压变得不稳定了。见下图蓝色曲线的最右侧那一段:

24405cb2-e8ae-11ee-b759-92fbcf53809c.jpg

根据这款产品的实际测试情况,软件设定为当侦测到电池电压降到3.5V时,系统执行关机。也就是:

电池电压为4.2V时,屏幕显示电量为100%;

电池电压为3.5V时,屏幕显示电量为0%,并执行关机动作。

有些电子产品本身功耗低,也不会瞬间拉取大电流,就可以在电池电压更低时才关机。

设计要点四:注意分压电阻的精度 这个电路很简单,电性能测试也没发现什么问题。 试产了100片电路板,装了几十台整机,各种测试都Pass,一切顺利。 于是就批量5千台,准备交第一批货给客户。 这是个定制项目,早就拿到订单,已经临近约定交货的日子。 第一次正式批量,还是要谨慎。在贴片厂生产时,我全程跟线。

生产总体比较顺利,我在产线上没事的时候,无聊地检查着电路图:

突然心里一咯噔,发现这个电池电压侦测电路,分压电阻的精度竟然是5%,不是1%!

248993f0-e8ae-11ee-b759-92fbcf53809c.png

一下子就懵了!

原文来自:电路啊

电池电压侦测的精度非常重要,要知道如果MCU把3.7V的电池电压判断为3.5V,虽然相差才0.2V,但是电量差得可多了,会导致提前很多就关机。 更糟糕的是,如果MCU把3.5V的电池电压判断为3.7V,那么系统不会在正确的电压执行关机。继续使用的话,在MCU将电池电压判断为3.5V之前,可能已经出现死机的情况。 当时马上问产线还能不能改BOM,要更换物料,产线答复说5千片马上就要贴完,现在下更改单来不及了。。。 悲剧了,只能考虑是否手工改板了。把板上5%精度的换成1%精度的,每块板要改2颗电阻,一共就是一万颗电阻。 首先问产线拿了一盘精度为5%的电阻过来,测试看偏差具体是多少。结果发现虽然标称5%精度,实测精度并没有超过1%。测了几十个,基本是这种情况。 这就有点意思了,好像还可以啊!换还是不换呢,陷入了纠结。 最后的决定是,保守一点,换! 于是很苦逼,产线上的熟练焊工并不多,临时给我找来一个,我俩一起改板5千片。

一边改板,一边客户那里催着交货,真是惨痛的教训!

最后:复盘经验 这个事情,是设计上还不够细心,对这个电池电压侦测电路的认识不够深刻,竟然没有重点检查电阻的精度。 5%精度的电阻相对便宜,公司的出货量非常大,单板的成本降低一点点,多出来的利润可以很可观,所以大部分电阻是选用5%精度,个别有需要的地方才会用1%。 所谓成本是设计出来的。 值得一提的是,由于电阻精度对单板的成本影响较小,有些公司的硬件工程师为了方便,统一选用1%精度的,这样就不会出错,也减少了BOM中的物料种类。 那么问题来了,你公司的情况是这么一刀切,还是区分精度使用? 最后,有了这次手工改板5千的教训,以后每次用电阻,我都会仔细检查精度使用是否合理,也算是吃一堑长一智。 另外,“电池电压侦测电路”的两个分压电阻,后来改为了使用0.1%精度,会更靠谱。 本次经验分享就到这里,感谢阅读! 原文来自:电路啊

---The end---

限时免费扫码进群,交流更多行业技术

249c8f1e-e8ae-11ee-b759-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路设计
    +关注

    关注

    6567

    文章

    2318

    浏览量

    195504
  • 电池电压
    +关注

    关注

    0

    文章

    171

    浏览量

    11397
  • 监测电路
    +关注

    关注

    0

    文章

    15

    浏览量

    11782
收藏 人收藏

    评论

    相关推荐

    使用STM32采集电池电压过的那些

    本文来解析一个盆友在使用STM32采集电池电压过的。以STM32F4 的ADC属于逐次逼近SAR 型ADC为例进行分析,参考STM32F405xxDatasheet,对于如何编写A
    发表于 03-01 07:39

    开发STM32 USB HID过的

    记录一下 开发STM32 USB HID过的一、前言二、代码配置一、前言MCU: STM32F103C8T6CubeMX: STM32CubeMX 5.3.0二、代码配置引脚配置时钟树配置我
    发表于 08-24 07:15

    使用树莓派搭建stm32开发环境过的以及碰到的问题

    使用树莓派搭建stm32开发环境了很多,下面主要是记录一下过的,以及碰到的问题。##开发方式的选择1.使用Eclipse+GDB+OpenOCD+STlink这种方式我发现ec
    发表于 08-24 07:47

    有没有关于STM32入门经验分享

    有没有关于STM32入门经验分享
    发表于 10-13 06:52

    NodeMCU开发板经历分享

    写在前面今天入手了一个NodeMCU的板子,准备学习一下物联网相关的知识。不过由于博主学艺不精,在第一步烧写固件上就了,所以就想着把自己的经历写出来分享给大家,希望能有一些帮助
    发表于 11-01 07:55

    Linux学习过程过的与如何解决

    Linux记录记录Linux学习过程过的与如何解决1解决方法:F10进入BIOS使能
    发表于 11-04 08:44

    电源设计容易和线性稳压选型过程

    前文提到了一些线性稳压的主要特点,本文作者将结合NXP智能车大赛实际案例,说一下电源设计容易和线性稳压选型过程。文章目录主要参数输入电压输出电压主要参数在为实际应用
    发表于 11-12 07:54

    移植debian系统过的

    基本的linux系统,板子的交叉编译器是arm-linux-gnueabihf-gcc,这给我带来了不少的麻烦,以至于想重新移植一下debian系统。ok,转入正题,说说这两天我吧。首先...
    发表于 12-14 08:42

    STM32编程常有哪些?

    STM32编程常有哪些?
    发表于 12-17 06:15

    使用MDK5时出现过的一些error过的分享

    使用MDK5时出现过的一些error过的分享
    发表于 12-17 07:49

    记录写SAM4S的bootloader所

    记录写SAM4S的bootloader所
    发表于 01-24 07:16

    总结一下GD32F13x移植过的

    奇奇怪怪的问题,下面总结一下过的。第一次移植GD时,没有完全移植,只是部分外设移植,导致配置混乱。STM和GD在寄存器命名上有区别,部分寄存器GD专用,导致配置困难,所以,最后进行了完全移植。GD和ST的一些差异执行速度差异
    发表于 02-11 07:54

    关于RK1808板子调试过程过的记录

    关于RK1808板子调试过程过的记录
    发表于 02-16 06:38

    总结电池电压侦测电路设计要点 避坑指南

    做硬件,堆经验。 做过一个电纸书阅读器的项目,和Kindle是同类产品: 产品中用到一个“电池电压侦测电路”,当时在这个电路上踩坑了,
    的头像 发表于 08-10 10:42 3497次阅读

    大型翻车现场,痛苦踩坑“电池电压侦测电路”,含泪总结设计要点

    做硬件,堆经验。做过一个电纸书阅读器的项目,和Kindle是同类产品:产品中用到一个“电池电压侦测电路”,当时在这个电路上踩坑了,
    发表于 12-09 10:06 1次下载
    大型翻车现场,<b class='flag-5'>痛苦</b>踩坑“<b class='flag-5'>电池</b><b class='flag-5'>电压</b><b class='flag-5'>侦测</b><b class='flag-5'>电路</b>”,<b class='flag-5'>含泪</b><b class='flag-5'>总结</b>设计<b class='flag-5'>要点</b>