wuliangu 发表于 2024-11-17 15:27

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

#申请原创#
@21小跑堂
基于切换芯片的双电池切换功能电路的设计是为了实现客户的项目需求,因需求不同而电路的难易程度便也会不同,但作为工程师而言也是会想法尽量去简化电路而降低成本。下面就来记录下基于切换芯片的双电池切换功能设计分析。项目功能需求:1、主机在使用内部电池时,装上外部电池,主机需自动切换到外部电池(如果外部电池不取则优先使用外部电池电,并显示外部电池实时电量格数)。2、把外部电池取掉,主机自动切换到内部电池(主机直接使用内部电池电并显示内部电池实时电量格数)。3、当主机装上外部电池,使用外部电池没有电时,主机需自动切换到内部电池(此时主机上显示内部电池实时电量格数,直到内部电池电量用完,主机自动存档关机。4、当DC5V接入使用充电功能时,只给内部电池充电,外部电池不用充电。 下图为基于切换芯片的双电池切换线路:注:图中表格为切换芯片的输出控制逻辑表,后续表述统称逻辑表。 下图为外部电池电量检测线路: 下图为内部电池电量检测线路: 下图为外部电池的插入检测线路: 实现逻辑如下:硬件上,(1)当只有内部电池时,切换芯片U38的第2脚通过电阻R1598被拉高,没有接外部电池时,芯片U38的第1脚能过电阻R1601、R1371、R1370拉到地为低,这时通过逻辑表可以看出切换芯片只有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:只要有外电池存在,就优先使用外部电池的电,判断低电时再自动切换到内部电池模式。 部分元件的使用说明:①、电阻R1601、R1603、R1605、R1362的参数设置要考滤电池的静态功耗,阻值小了这静态功耗会增大。②、电阻R1606的参数值不能取大了,因为外部电池去掉的短时间内OUT_BAT上还有电压存在,为使三极管Q26快速断开,所以此时R1605和R1606的分压要在0.5V以下,R1605和R1606的参数精度可以控制在1%左右。③、二极管D44和D45的使用是为了隔离VBAT和MCU_IO_CTL的电压,其中D44这个二极管在理论上应该是可以去掉的,不过这里还是加上尽量避免两者电压的影响。④、二极管D46的使用,是为了拔DC5V或USB5V的电时,能通过Q27电路尽快给PWR供上电,不加时可能会致使PWR瞬间掉电而使系统不工作。 电源供电的使用说明:①、切换芯片的第2脚是通过电阻R1598上拉到VBAT电源,有的设计是如下图图中用两个二极管通过VBAT和OUT_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上还存在电压,没有立马掉下来,所以电阻R1605和R1606的分压精度有要求,这就会导致有时电路会失灵使系统工作异常。若拔插电池频率快了会易出现。(二)、怎么排除电池移除后这OUT_VBAT上还存在电压的影响?最后,若读者有好的想法不妨留言提出,不甚感激!也欢迎一起讨论,谢谢!

页: [1]
查看完整版本: 基于切换芯片的双电池切换功能