锂电池供电时,测量电路应该这样设计才对

随着物联网的发展,单片机+锂电池,这种组合越来越普遍,单片机厂商也不断推出适合物联网的单片机。

先补充一下锂电池的基本知识...

锂电池在充满电的时候,是4.2V;在用完电的时候,不是0V,而是2.7V左右,每个厂家制作的锂电池,略有差异...

鉴于锂电池材料的局限性,电压超过4.2V,会发生危险,比如燃烧;电压低于2.7V左右,会造成无法再次充电,总之...

锂电池电压过高和过低,都会造成永久损坏,所以...

我们的产品在使用锂电池的时候,需要时刻监测锂电池电压。

充电的时候,不要超过4.2V,这个要求,需要产品中加入充电管理芯片,充电管理芯片会自动在4.2V的时候切断充电。

放电的时候,也就是产品在正常使用的时候,不要让锂电池电压低于2.7V,比如,在2.7V的时候,自动强制关机。

那么,锂电池电压监测电路应该怎么设计呢?

如上图所示,应该是初学者最先想到的办法。不过,仔细分析后会发现,有大问题,我们来分析一下···

VBAT连接到锂电池正极,通过两个电阻分压,连接到单片机的ADC引脚。ADC测到的电压,就是锂电池电压的一半···

因为锂电池的电压范围大概在2.7V到4.2V之间,所以ADC引脚的电压会在1.35~2.1V之间,不会超过普通单片机的3.3V电压,看起来很合理,不过···

当产品处于关机状态时,我们以为锂电池就不耗电了,其实,通过电路可以发现,锂电池其实还在通过2个10k的电阻耗电···

随着时间的推移,该产品放着放着电就减少了,而且当电池电压减少到2.7V以下时,就可能无法充起电来了···

我在国外的一款产品上,看到了这样的一个电路,当然,已经把它使用到我的产品当中···

上面电路,很巧妙的解决了这个问题,代价是电路板上多了1个MOS管和2个电阻,CTRL引脚是单片机的一个普通引脚,在单片机断电的时候,要求是高阻态,否则也会耗电···

这里加MOS管并不是用来控制“是否要测量电池电压”,而是为了在产品关机的时候,不要让锂电池电池的电压通过两个分压电阻。

此时,还有个问题要解决···

产品在正常使用的过程中,当电池电压小于3.3V时,LDO的输出电压,就不再是3.3V了,随着电池电压的减小,LDO的输出电压也会减小,此时...

如果一直使用3.3V作为基准来测量电池电压,就会出现错误,所以...

需要使用有基准电压引脚的单片机,或者有“内部参考电压”+“内部测量通道”功能的单片机···

用基准电压引脚计算电池电压,这个大家都清楚,我重点说一下“内部参考电压”+“内部测量通道”这个功能。

简单来说,有了“内部参考电压”+“内部测量通道”之后,我们就可以直接通过内部测量通道得到精确的VDD电压,而不必使用基准电压芯片了,毕竟···

基准电压芯片也挺贵的,还得在电路板上占个地方,以及多几分钱的焊接费用···

下面,我们以STC8G系列单片机为例来说一下。

STC8G的ADC第15通道,用来测量内部参考电压源,内部参考电压为1.19V,通过测量它的值,反推出VDD值。

unsigned int VDDA; // VDDA的电压值 单位毫伏unsigned int *BGV; // 内部参考电压值 单位毫伏
//ADC初始化void ADC_Init(void){  BGV = (int idata *)0xEF;  ADCCFG = 0X2F; // 设置ADC时钟 = 24000000/2/16/512 = 1465Hz 转换结果右对齐}
unsigned int ADCRead(void){  unsigned int res;
  ADC_CONTR |= 0X40; // 启动AD转换  _nop_();  _nop_();  while(!(ADC_CONTR&0X20)); // 查询ADC完成标志  ADC_CONTR &= ~0X20;  // 清除完成标志  res = (ADC_RES<<8)|ADC_RESL; //读取ADC结果
  return res;}
void Fetch_VDDA(void){  unsigned int res=0;  unsigned char i;
  ADC_CONTR = 0X8F; // 使能ADC模块 并选择第15通道  ADCRead();  ADCRead();  for(i=0;i<8;i++)  {    res+=ADCRead();  }  res>>=3; // 读取8次 取平均值  VDDA = (unsigned int)(1023L**BGV/res); // 得出的结果单位是毫伏}

上面代码,获得了真实的VDDA值,然后就可以计算出真实的电池电压。

电子工程师的自我修养 - 锂电池的测量电路相关推荐

  1. 电子工程师的自我修养 - 深度理解三极管datasheet

    三极管的Datasheet这样解读,从此根治继电器罢工! 三极管的Datasheet 里,到底有什么明堂? 看似简单到不能再简单的三极管驱动继电器电路.三极管驱动LED或者LED背光电路,你是不是感觉 ...

  2. 电子工程师的自我修养 - 单片机控制继电器

    实例讲解!单片机控制继电器原理 首先看看继电器的驱动 这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图 为什么要明白这个图的原理? 单片机是一个弱电器件, ...

  3. 电子工程师的自我修养 - 热电阻、热电偶

    热电偶和热电阻有什么区别? 在日常工作当中经常遇到使用温度测量仪表,热电阻与热电偶同为温度测量仪表,同一个测温地点我们选择热电阻还是选择热电偶呢?今天我们来全面剖析一下. 热电偶的结构 热电偶前端接合 ...

  4. 电子工程师的自我修养 - 施密特触发器

    概述 把变化缓慢的输入信号整形成边沿陡峭的矩形脉冲. 施密特的主要作用是使得的小幅值干扰不会对反相器产生影响,从而避免了误动作的发生.斯密特触发器的最主要应用主要是为了提高抗干扰能力.如果刚好设定在5 ...

  5. 《Web全栈工程师的自我修养》读书笔记

    <Web全栈工程师的自我修养>读书笔记 [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://w ...

  6. 免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式

    简介: 今天,阿里技术公布一波阿里P8.P9技术大牛的思维模型,将他们的思维模式呈现出来.你可以在阿里资深专家职业生涯的真切感悟中,找到应对危机的最佳方法.<阿里工程师的自我修养>现已正式 ...

  7. AI工程师的自我修养

    原创:晏茜 资料来源:Lee AI 行业如今是一个炙手可热的行业,也许有一些正从事或曾经从事于其他行业的同学,希望能有一个更好的职业选择,而 AI 行业正如火如荼的发展,他们想加入 AI 发展的浪潮, ...

  8. 一名数据仓库工程师的自我修养

    一名数据仓库工程师的自我修养 第一次写文章 该学的一些技术框架(注意,是必须要会啊.至于怎么学,之后帖子会写的.) 第一部分:首先是工具类的介绍(划重点,要考的!!!!!!!) 第二部分:编程语言类 ...

  9. oCPC实践录 | 广告算法工程师的自我修养

    ​这是AITBOOK的第31篇原创文章 2019年即将过去,2020年马上到来,在这个时候做一下总结,发一下展望是最合适不过的.2019年互联网广告的发展已有人总结为令人失望,2020年估计也好不到哪 ...

最新文章

  1. freemarker include 和 import
  2. 远程控制 vc++实现
  3. golang interface传结构体
  4. 学习笔记Flink(二)—— Flink数据流模型、时间窗口和核心概念
  5. ps抠头发插件_PS顶级抠图插件Topaz Mask AI 1.0.2!支持2020Win/Mac,转发领取
  6. 套用这8种数据治理方法,解决90%的数据治理问题
  7. 暗黑模式盛行,如何设计更好的深色UI ?暗黑模式盛行,如何设计更好的深色UI ?
  8. 智能贴图样机素材在手,海报逼格马上就有!
  9. 光流(五)--HS光流及稠密光流
  10. 三菱plc编程软件gx-developer在win10中无法使用及工程无法建立解决方法
  11. java实现通讯录(手机版)
  12. OpenSSL 生成CA证书及终端用户证书
  13. 7.7.4 积分卡管理系统示例
  14. vivo联手京东,打通线上线下营销生态
  15. ARM-CPU工作原理,基于ARM的SOC讲解
  16. 6 个在 PC上编辑 PDF 的免费软件
  17. 1)股票最大亏损 2)最大面板 远景能源
  18. 李笑来-《自学是门手艺》-笔记
  19. Linux函数调用与栈
  20. 有关AOP术语(织入、增强等)的个人理解

热门文章

  1. 人脸表情识别——fer2013
  2. IDEA打包时clean报错
  3. 六类网线钳能压五类水晶头吗_一分钟自制高质量水晶头,如何区分超5类水晶头与6类水晶头?...
  4. keil如何添加h文件_被Keil坑了一天!实在太意外了!用Keil的来瞅瞅看
  5. xposed 框架学习
  6. 放置街灯(UVA 10859)
  7. java网课|Scanner
  8. C++20,说说 Module 那点事儿
  9. 1-4 python爬取笔趣阁小说(附带完整代码)
  10. Github 之 本地上传代码到 Github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤)