打印
[技术讨论]

基于切换芯片的双电池切换功能

[复制链接]
65|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuliangu|  楼主 | 2024-11-17 15:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#申请原创#
@21小跑堂
基于切换芯片的双电池切换功能
电路的设计是为了实现客户的项目需求,因需求不同而电路的难易程度便也会不同,但作为工程师而言也是会想法尽量去简化电路而降低成本。下面就来记录下基于切换芯片的双电池切换功能设计分析。
项目功能需求:
1、主机在使用内部电池时,装上外部电池,主机需自动切换到外部电池(如果外部电池不取则优先使用外部电池电,并显示外部电池实时电量格数)。
2、把外部电池取掉,主机自动切换到内部电池(主机直接使用内部电池电并显示内部电池实时电量格数)。
3、当主机装上外部电池,使用外部电池没有电时,主机需自动切换到内部电池(此时主机上显示内部电池实时电量格数,直到内部电池电量用完,主机自动存档关机。
4、当DC5V接入使用充电功能时,只给内部电池充电,外部电池不用充电。
下图为基于切换芯片的双电池切换线路:
注:图中表格为切换芯片的输出控制逻辑表,后续表述统称逻辑表。
下图为外部电池电量检测线路:
下图为内部电池电量检测线路:
下图为外部电池的插入检测线路:
实现逻辑如下:
硬件上
1当只有内部电池时,切换芯片U38的第2脚通过电阻R1598被拉高,没有接外部电池时,芯片U38的第1脚能过电阻R1601R1371R1370拉到地为低,这时通过逻辑表可以看出切换芯片只有VIN1导通,所以是内部电池供电,系统判断到没有外部电池且外部电池电量为小于3.5V低电时,打开内部电池电量检测功能,BAT_MSR网络检测到的电池电量数据同步对应到电量显示图标上,若BAT_MSR网络检测到电池电量为3.5V时,则系统进行低电提示,接着自动存档关机
(2)当插入外部电池时,OUT_VBAT为外部电池电压,通过电阻R1601将切换芯片的第1脚拉高(此时系统通过电池插入检测到低电平时将内部电池电量检测关闭,检测到外部电池的电量高于3.5V时要将MCU_IO_CTL输出为低电平),OUT_VBAT再通过电阻R1605打开三极管Q26,Q26再将三极Q25的基极拉低而断开,切换芯片的第1脚保持高电平,因为第2脚也一直被内部电池拉高的,这时这时通过逻辑表可以看出切换芯片的VIN2导通,所以是外部电池供电。
低电检测情况:若OUTBAT_MSR网络检测到电池电量为3.5V以下时,这时让主控的MCU_IO_CTL输出高电平,通过二极管D45将三级管Q25打开使得切换芯片的第1脚拉成低电平,切换芯片由VIN2导通切换到VIN1导通,所以外部电池供电切换到了内部电池供电,同时系统判断到有外部电池插入且电量为低电时,系统将内部电池电量检测打开,并将电量数据同步对应到电量显示符号上,直到内部电池达到低电时系统再提示低电且自动存档关机。
(3)外部电池拔出时,系统判断到外部电池移除且外部电池电量为小于3.5V低电时,这时打开内部电池电量检测,且将MCU_IO_CTL输出高电平。OUT_VBAT在短时间内还存在有1.5V左右的电压,这时由电阻R1605和电阻R1606分压使得三极管Q26断开,三极管Q25的基极通过电阻R1603、二极管D14被VBAT内部电池拉成高电平,所以三极管Q25导通使得切换芯片的第1脚被拉低,从逻辑表可以看出为VIN1导通,由外部电池供电切换到了内部电池供电。电量检测过程按前面第(1)点的描述来实现。
(4)当外部USB或DC的5V电插入时,通过二极管D47、D48将MOS管Q27的第1脚拉高,这时Q27断开不导通,PWR上的电就不能串到电池上了。充电管理芯片只给内部电池充电。
(5)当外部USB或DC的5V电移除后,MOS管Q27导通,使得电池继续给系统供电维持正常工作。   
1:只要有外电池存在,就优先使用外部电池的电,判断低电时再自动切换到内部电池模式。
部分元件的使用说明:
①、电阻R1601R1603R1605R1362的参数设置要考滤电池的静态功耗,阻值小了这静态功耗会增大。
②、电阻R1606的参数值不能取大了,因为外部电池去掉的短时间内OUT_BAT上还有电压存在,为使三极管Q26快速断开,所以此时R1605R1606的分压要在0.5V以下,R1605R1606的参数精度可以控制在1%左右。
③、二极管D44D45的使用是为了隔离VBATMCU_IO_CTL的电压,其中D44这个二极管在理论上应该是可以去掉的,不过这里还是加上尽量避免两者电压的影响。
④、二极管D46的使用,是为了拔DC5VUSB5V的电时,能通过Q27电路尽快给PWR供上电,不加时可能会致使PWR瞬间掉电而使系统不工作。
电源供电的使用说明:
①、切换芯片的第2脚是通过电阻R1598上拉到VBAT电源,有的设计是如下图
图中用两个二极管通过VBATOUT_VBAT将第2脚拉高,其实从逻辑表功能来看,这里只用VBAT供电就可以满足需求了,所以这省掉了这二极管。
②、二极管D44用的电源是VBAT,就算考滤到内部电池损坏的情况下也不影响电路正常工作。
软件上
1只有内部电池时,机器一上电开机,系统就优先打开外部电池的电量检测功能,然后再检测到没有外部电池插入(这时插入检测BATTERY_INSET_DET网络为高电平)和检测外部电池的电量小于3.5V,同时满足这两个条件时,再将内部电池的电量检测功能打开,且将电量数据同步对应到电量图标上,将MCU_IO_CTL这个IO输出高电平,内部电池的电量检测BAT_MSR网络检测到3.5V低电时,系统进行低电提示且自动存档关机
2当外部电池插入时,系统通过BATTERY_INSET_DET网络检测到低电平和外部电池电量检测到大于3.5V,同时满足这两个条件时,将外部电池检测到的数据同步对应到电量显示图标上,将MCU_IO_CTL输出低电平,当外部电池电量检测OUTBAT_MSR网络检测到3.5V以下电压时,将内部电池的电量检测功能打开,同时将内部电池电量检测数据同步对应到电量显示图标上,将MCU_IO_CTL输出高电平, 这时供电切换到内部电池供电,直到电池电量检测到低电再进行低电提示且自动存档关机。
注:外部电池电量检测功能是一直打开的,区别在于要不要将电量数据同步对应到电量显示图标上。
附:逻辑功能表
  
外部电池电量状态
  
外部电池插入检测状态
电池供电方式
对应电量显示图标
内部电池低电检测功能
MCU_IO_CTL输出
  
小于3.5V
  
高电平
内部电池
内部电量检测
打开
高电平
  
小于3.5V
  
低电平
内部电池
内部电量检测
打开
高电平
  
大于3.5V
  
低电平
外部电池
外部电量检测
关闭
低电平
电路上可以改进的地方:
在外部电池插入检测电路上可以用外部电池增加一根DET线的的方式来做,这时这检测线路开以改成如下方式
这里为什么可以这样设计呢? 因为电池接口客户是可以定做的,所以后面接口可以定义+--三根线的方式。这样可以避免前面电路接OUT_VBAT时的静态功耗考滤。
电路设计中的难点及缺陷:
(一)、Q25的控制方式若改成如下图的方式
这种电路从控制逻辑上是可以说得通,但在实际测试时在拔外部电池时还是会使得机器工作异常,从下图的波形来看,黄色波形没有立即掉电,
说明这Q25没有及时打开。所以这三极管的开关速度是一个问题。因为时间关系,这种方式以后再找时间来分析了。
(二)、Q26的控制,因为外部电池移除时这OUT_VBAT上还存在电压,没有立马掉下来,所以电阻R1605R1606的分压精度有要求,这就会导致有时电路会失灵使系统工作异常。若拔插电池频率快了会易出现。
[size=10.5000pt](二)、怎么排除电池移除后OUT_VBAT上还存在电压的影响?
最后,若读者有好的想法不妨留言提出,不甚感激!也欢迎一起讨论,谢谢!


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

192

帖子

3

粉丝