<<<写在前面>>>

最近想做一块移动充电板子,想着以后其他小制作能用得上,起个名字就叫“蒸汽核心”吧,电源就像心脏,为机器提供源源不断的能源,所以这块板卡就是心脏卡。在选择PMIC的时候选中了BQ24610,不得不说这是颗PMIC真的坑啊啊啊啊!!第一版做出来后端系统电始终是2V,查了半天规格书没发现问题,结果找了一下TI的论坛才发现不止我一个人遇到,捣鼓捣鼓就有了下面这块板子,先上图!!!

1.jpg
2.jpg
3.jpg
4.jpg

回板了,以后要换方案也不一定,如果功率上到百瓦这颗心脏就可能顶不住了

实物图
实物图

做了个程序 DEMO

15.png
7.jpg
8.jpg

硬件设计

BQ24610

特性简介

参考链接:https://www.ti.com.cn/document-viewer/cn/bq24610/datasheet
BQ2461x 1 节至 6 节电池的独立同步降压电池充电器控制器

特性

600kHz NMOS-NMOS 同步降压转换器
适用于锂离子或锂聚合物电池的独立充电器
工作输入范围为 5V 至 28V VCC,支持 1 节至 6 节电池 (BQ24610)
工作输入范围为 5V 至 24V VCC,支持 1 节至 5 节电池 (BQ24617)
充电电流和适配器电流高达 10A
自动选择适配器或电池作为系统电源
电池检测
FET 提供反向输入保护
充电使能引脚
适用于同步降压转换器的 6V 栅极驱动
关闭状态电池放电电流 < 15µA
关闭状态输入静态电流 < 1.5mA

原理图 设计

原理图部分基本没什么大的问题有疑问可以去看我之前转载的文章

原理图设计
原理图设计

Layout 设计指导

以下来自TI官方论坛下载

BQ24610, BQ24616, BQ24617, BQ24618, and BQ24630

下面有翻译

Layout设计指导
Layout设计指导
Layout设计指导
Layout设计指导
Layout设计指导
Layout设计指导
指导方案:
  • 建议采用多层PCB。至少布置两层地面。BQ24610EVM使用4层PCB(顶层,两个信号层和底层)
  • 将输入电容尽可能靠近QH MOSFET的漏极和QL MOSFET的源极,并使用尽可能短的铜走线连接。这些部件应该放在PCB的同一层上,而不是在不同的层上,并且应该使用过孔来进行连接。
  • IC应放置在开关MOSFET栅极端子附近,以保持栅极驱动信号走线短,以实现干净的MOSFET驱动。IC可以放置在PCB的另一侧,与开关mosfet分开
  • 将电感输入端尽可能靠近开关MOSFET输出端。尽量减少该走线的铜面积,以降低电场和磁场辐射,但使走线足够宽以承载充电电流。不要使用多层并联进行此连接。最小化从该区域到任何其他走线或平面的寄生电容。
  • 充电电流感应电阻应该放在电感输出的右边。将穿过感测电阻连接的感测引线路由回同一层的IC,彼此靠近(最小化环路面积),并且不要将感测引线路由通过大电流路径(参见开尔文连接BQ24610数据表的图27,以获得最佳电流精度)。将去耦电容放在IC旁边的这些走线上。
  • 将输出电容放置在感应电阻输出和接地旁边。在连接系统地之前,必须将输出电容接地连接在连接输入电容接地的同一根铜线上。
  • 模拟地与电源地分开走线,使用单一接地连接将充电器电源地绑在充电器模拟地上。在IC下方,使用倒铜作为模拟接地,但避免电源引脚,以减少电感和电容噪声耦合。使用热垫作为单地连接点,将模拟地和电源地连接在一起。或者使用0-Ω电阻将模拟地连接到电源地(在这种情况下,热垫应连接到模拟地)。强烈建议在热垫下方采用星形连接。
  • 将IC封装背面暴露的热垫焊到PCB接地上是至关重要的。确保IC的正下方有足够的热通孔,并与其他层的接平面相连。
  • 将去耦电容放置在IC引脚旁边,并使走线连接尽可能短。
  • 对于给定的电流路径,所有过孔的大小和数量必须足够。
错误layout布局
错误layout布局
错误layout布局

上图箭头是电流方向,最重大的问题应该是在于精密电阻的焊盘下方的过孔,此国控会影响BQ24610侦测电压和电流,使得输出端只能到2V。

成功的第一版本layout布局
成功layout布局
成功layout布局

上图是按照TI给的设计图基本完全照搬做的,输入18V成功打出18V系统电。

关于充电路径

充电路径layout布局
充电路径layout布局

从系统电经过表层HL MOS 电感 精密电阻 输出,这里由于有电池电压反馈,默认不插入电池该路径关闭。

电池放电路径

放电路径layout布局
放电路径layout布局

通过一个 NMos 输出到系统电。

自举电容

自举电容在BUCK中有关键作用

放电路径layout布局
放电路径layout布局
放电路径layout布局
放电路径layout布局
放电路径layout布局
放电路径layout布局

原文翻译
特性描述(续)
上部装置总是有足够的电压保持完全接通。如果BTST引脚到PH引脚的电压低于4.2 V超过3个周期,则关闭高侧n沟道功率MOSFET,打开低侧n沟道功率MOSFET,将PH节点拉下并给BTST电容充电。然后,高侧驱动器返回到100%占空比工作,直到检测到(BTST- ph)电压再次下降,因为泄漏电流使BTST电容器放电低于4.2 V,并重新发出复位脉冲。
定频振荡器在输入电压、电池电压、充电电流和温度等各种条件下都能严格控制开关频率,简化了输出滤波器的设计,使其远离可听噪声区域。关于如何选择电感、电容和MOSFET,请参见应用和实现

另一款 BUCK IC MP1484(MPS家的)规格书中写到

放电路径layout布局
放电路径layout布局

原文翻译
转换器使用内部n沟道MOSFET开关将输入电压降压到调节的输出电压。由于高侧MOSFET需要大于输入电压的栅极电压,因此需要连接在SW和BS之间的升压电容器来驱动高侧栅极。当SW低时,升压电容器从内部5V轨道充电。

程序设计

函数说明

OLED部分

目前移植 0.91 OLED 成功

OLED部分
OLED部分
OLED部分
OLED部分

移植参考链接:

https://github.com/yangjinhaoaa/OLED0.91-SSD1306-HAL

功率检测

功率检测
功率检测
功率检测
功率检测

移植参考链接:

https://zhuanlan.zhihu.com/p/659846231

电池电压检测

关于电池包电压,下面表格方便查看,列出了1~20串锂电池最高最低电压以及通过分压电阻得出的电压,还有理论上ADC寄存器中的值

功率检测
功率检测
bat Vbat min Vbat max Rup Rlo Vadc min Vadc max adc min adc min
1 3.7 4.2 680 100 0.474358974 0.538461538 4096 589 668
2 7.4 8.4 680 100 0.948717949 1.076923077 4096 1178 1337
3 11.1 12.6 680 100 1.423076923 1.615384615 4096 1766 2005
4 14.8 16.8 680 100 1.897435897 2.153846154 4096 2355 2673
5 18.5 21 680 100 2.371794872 2.692307692 4096 2944 3342
6 22.2 25.2 680 100 2.846153846 3.230769231 4096 3533 4010
7 25.9 29.4 680 100 3.320512821 3.769230769 4097 4122 4680
8 29.6 33.6 680 100 3.794871795 4.307692308 4098 4713 5349
9 33.3 37.8 680 100 4.269230769 4.846153846 4099 5303 6020
10 37 42 680 100 4.743589744 5.384615385 4100 5894 6690
11 40.7 46.2 680 100 5.217948718 5.923076923 4101 6484 7361
12 44.4 50.4 680 100 5.692307692 6.461538462 4102 7076 8032
13 48.1 54.6 680 100 6.166666667 7 4103 7667 8703
14 51.8 58.8 680 100 6.641025641 7.538461538 4104 8259 9375
15 55.5 63 680 100 7.115384615 8.076923077 4105 8851 10047
16 59.2 67.2 680 100 7.58974359 8.615384615 4106 9443 10720
17 62.9 71.4 680 100 8.064102564 9.153846154 4107 10036 11392
18 66.6 75.6 680 100 8.538461538 9.692307692 4108 10629 12065
19 70.3 79.8 680 100 9.012820513 10.23076923 4109 11222 12739
20 74 84 680 100 9.487179487 10.76923077 4110 11816 13413

代码部分使用ADC检测。判断电池部分使用if,简单粗暴,下面是识别1~6串代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if(ADC_Value_int <= 300){
OLED_ShowNum(110,0,0,1,16);
}
if(ADC_Value_int >= 588 && ADC_Value_int <= 689){
OLED_ShowNum(110,0,1,1,16);
}
if(ADC_Value_int >= 1177 && ADC_Value_int <= 1337){
OLED_ShowNum(110,0,2,1,16);
}
if(ADC_Value_int >= 1766 && ADC_Value_int <= 2005){
OLED_ShowNum(110,0,3,1,16);
}
if(ADC_Value_int >= 2355 && ADC_Value_int <= 2674){
OLED_ShowNum(110,0,4,1,16);
}
if(ADC_Value_int >= 2943 && ADC_Value_int <= 3342){
OLED_ShowNum(110,0,5,1,16);
}
if(ADC_Value_int >= 3532 && ADC_Value_int <= 4011){
OLED_ShowNum(110,0,6,1,16);
}

<<<文末闲语>>>

这个电源暂时没有计划后续做了,原本想要搭配其他板子做扫地机器人,最近时间不够承宇,暂时搁置了。不过在这里也学到了不少和 buck 升压有关的电路知识,虽然没有继续做了,但是也学到了不少。