现在下在使用BQ24195做一个移动电源, 现在遇到的问题是电池升压无法打开,,,PMID输出一个和电池相近的电压,,,编程是按手册进行的, 不知道哪里出问题了,,名位有没有可参考的代码
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,请问可以具体描述下你的寄存器值都是多少吗,另外是否有charger连接到了VBUS,是否有看门狗超时等。谢谢!
你好,首先程序初始化时,我是用的手册默认值
I2c_Write_Byte(BQ24195ADD, REG00, Bin(00110000));
I2c_Write_Byte(BQ24195ADD, REG01, Bin(00011011));
I2c_Write_Byte(BQ24195ADD, REG02, Bin(01100000));
I2c_Write_Byte(BQ24195ADD, REG03, Bin(00010001));
I2c_Write_Byte(BQ24195ADD, REG04, Bin(10110010));
I2c_Write_Byte(BQ24195ADD, REG05, Bin(10011010));
I2c_Write_Byte(BQ24195ADD, REG06, Bin(00000011));
I2c_Write_Byte(BQ24195ADD, REG07, Bin(01001011));
需要打开升压时,
I2c_Write_Byte(BQ24195ADD, REG01, Bin(00101011)); //bit5 bit4 = 10
升压时,VBUS是没有接入的,但测量发现有0.6V的电压在上面, 我的电池有4V.
调试中我有关闭看门狗试过,都不行.
这个配置应该没什么问题,而且也排除了看门狗和电池电压过低问题。不过最好能读下charger寄存器确保写入成功。另外OTG引脚有没有拉高?
你好,OTG引脚已经拉高了,读REG08状态寄存器,读到0X00, 按理说打开升压 REG8 bit7 bit6 应该是 : 11–OTG
可以排除读的问题,因为可以读到REG0A的状态0X23,
但是怎么确认有没有写入成功呢, IIC通讯时都是有应答的,,,
升压是否与外围电路配置有关, 2.2uH电感,相关电容都是有接入的
补充: 读到REG09 = 0x10 按手册的意思是 bit 5 bit4 = 01–Input fault (VBUS OVPorVBAT<VBUS<3.8V),
奇怪 我电池有4V ,,VBUS没有接入有0.4V,,怎么会提示这个
BQ24195前面几个寄存器都是可读可写的,可以写完后读回来。所用的外围电路是否和datasheet里的一致?
楼主的实际电路图是否能附上来 以检测一下硬件是否有问题(如果有与电路图不一致的连接和元件 ,请标示出来),特别是电压输入的部分,此外otg引脚的实际电压去测量一下 确保实际的电路上是有足够高的电平。谢谢!
由于boost模式没有开始正常的工作,所以输出端pmid就是bat减去一个mosfet的body diode的电压,即接近4V。
原理图若能截个.jpg文件附上来就最方便阅读了,我没有看到你的原理图,根据你描述的现象,我这边给你一个建议和说明如下
BQ24195只是对电感电流有cycle by cycle的检测和保护,它并不直接有对输出电流的限制,这意味着当输出电流过大导致输出端口电压下降时,BQ24195的bycle by cycle的保护不会触发,因为cycle by cycle的电流保护设计的初衷是为了使得开关电流峰值不会超过msfet的最大峰值导致mosfet损坏。对于输出电流,如果把pmid作为一个USB 口输出时,有时需要加一个USB switch -TPS2511来限制pmid的输出电流,使得这个5.1V不会因为过大的负载电流而被拉低导致触发IPHONE5对USB充电器的UV门限,从而导致IPHOE5认为母线电压太低从而判定充电器不支持对其充电。
总结起来,若是过载引起的,请在你的电路中加入TPS2511这样的USB switch来限流,从而保证符合PMID符合USB母线电压规格。
现在REG08和 09的值是多少? 我看到你在D- D+那边有一些逻辑电路,看起来是要和单片机去模拟USB口插入时的状态,从而使得真正的USB口可以保持与单片机的通讯不受到usb detection的干扰,如果是这样,建议逐步的确认这个部分是否按照预期的流程动作。
REG8 的值为 00101100
REG9的值为 00000000
USB D+ D-接到单片机上,只是让单片机检测USB D+ D-的电压判断USB的类型, 从而决定要不要打开限流等操作
限流操作是必须要进行的,当限流值确定以后buck才能正常的启动,从08 的值来看 bit 7bit6=00 – Unknown (no input, or DPDM detection incomplete
由于现在市面上的USB充电线,有的是数据线兼容的, 有的是直接接US口dapater的充电线,所以建议你仔细的分析设计的类型判断电路是否与芯片内部的设计一直,防止芯片对输入源的判定出现错误。
你试试不要接外部的逻辑器件,只将芯片的D+ D-接到一个USB2.0的data+ 和data_能否正常充电。
請問不用貴公司的EV Board,I2C內存的定義上與芯片ID Code是否有差異
这个芯片的6B 从机地址是默认值,在datasheey和官方资料上并没看到直接修改。建议你抓通讯的波形,看看当你在主机端写D6时,实际的时序是否为6B ,而实际写6B时,是否真没有ACK信号。
如果确定是D6才有ACk ,那么请在TI的BQ24195产品主页上去申请免费样品,同过原厂的器件验证这个从机地址。
一段时间没上论坛了,还有各位回答,很感谢!
开发中遇到的问题都一一解决了,经验不足,走了不少弯路
我来总结一下
1.不能升压
这是手册里的图,而我原理图中 Q1接反了,导致升压后VBUS的电压从Q1反串到Adapter 端,从而把OTG拉低,OTG拉低导至升压无法打开。
2. 电池不通充电
最开始调试时我只是测试了电池上的电压,发现几乎没有压差,以为电池没有充电,后为测量了电池其实有几十ma的充电电流,由于我都是用的默认的配置,
Input CurrentLimit 设置成 000 100ma了 改成101 1.5A后,问题解决,充电电流达到1A.
以上问题很简单,由开从没接触过移动电源,和BQ24195 解决也发了不少时间,希望别人不走弯路吧
Chun DONG,
你好,
input voltage limit是在系统电流或充电电流过大时,导致Vbus端的电压跌落时而采取的调整措施,就是通过减小充电电流来维持Vbus端的电压。虽然一般使用的adapter都是5V,但USB cable上会有压降,且adapter输出电流过大后,其输出电压也会有跌落。因此使用5Vadapter时,一般Vbus端的电压都会低于5V,REG00的Bit6-bit3设置的就是允许的最低的Vbus电压。一般低于5V。
当REG00为0x36时,你测试时的电池电压是多少,若电池电压低于3V是在precharge阶段,充电电流为256mA,可以通过寄存器REG08[5:4]读到。若你读到的是0x2C.,你的输入port是unknown,还有就是input current limit或input voltage limit正在调节中。
决定实际fast charge current的除了寄存器外还有ILIM引脚的电阻值。
Chun DONG,
你好,
“还有就是我在用adapter充电读reg08的时候总是显示unknow port,如果我我用usb充电是可以显示usb host。如果我电池放电,工作在boost状态是08是可以显示otg的”
A:bq24195是通过D+/D-引脚检测来确定接入port的类型,你在用adapter时,结果显示是unknown port,你的adapter的D+/D-应该是浮空的吧。要检测到adapter port,需要将D+/D-直接短接或用200欧姆电阻短接。
“我reg00写0x36,vbus给的电压是5v,电池电压此时是3.79v,读reg08是0x24,为fast charge,我的ILIM引脚的电阻是240欧姆。为什么此时的充电电流只能700MA呢?”
A:你接入的adapter是unknown的,所以默认的input current limit设置为500mA,之后你将REG00写为0x36,将input current limit改为2A。但是请确定REG05[5:4]被改为00,即watchdog 被disable,其默认为40s。若为默认的40s,在软件上不对REG01bit[6]进行reset,就会使其他所有寄存器reset,input current limit又被设为500mA,导致charge current就是约为700mA。
你可以在再读一次REG00,若确实没有将watchdog disable,读回的值就不是你写入的0x36.
“第二就是fast charge的恒流充电到恒压充电的临界点由谁来控制,我猜想我上述的状态是不是在恒压充电,我设置的充电电压是4.208,但是我去测量充电电压是4.19的样子,应该还是在恒流充电吧”
恒流到恒压充电是根据电池电压来控制的,若电池电压到达设定的charge voltage limit(REG04[7:2]),就从恒流进入恒压充电。最后充电完成是由充电电流决定,当充电电流跌落到termination current limit时,就是charge done.
Q: "还有一��问题,就是我的电池充电到快满的时候,充电电流低于256ma的时候,reg08总是在0x34和0x24直接跳变,读取输入电流是低于256ma的,不知道为什么一会儿提示充满,一会儿提示没有充满。"
A:不确定你的应用中电池的负载是怎样的。当充电电流低于256mA时,一个充电周期charge done,BATFET关断。若电池接有负载,电池就开始放电,当电池电压跌落battery recharge threshold 100mV(REG04bit[0])就开始重新充电,或许你看到的就是这个交替的过程。
你可以测试电池电压和充电电流,看是否是在相应的电压时开始charge done或者recharge。
你好谢谢你的回复,我确实接入adapter的时候d-和d+是悬浮的,按照您说的给他们短路,就可以识别出了,但如果我要是接usb,d+和d-应该怎么接呢?
我的watchdog是disable的,现在我的port可以识别充电电流就可以达到2A了。
我设置charge voltage limit(REG04[7:2])为默认值4.208V。当电池充电时,在电池电压为3.5v到4.3(不知道为什么超过4.2)充电电流都是2A,而且时间很短。之后电池电压下降,维持在4.19V, 充电电流慢慢下降,这个应该就是fast charge里面的恒压充电阶段。就像您说电池电压达到设置的值就从恒流进入恒压充电,但是在恒压充电的时候,我切断adapter电压,测量电池电压仅仅是3.8V左右。
你好,
bq2419x系列的charger在电池充满后都是可以自动停止充电的。
电池由于有内阻的影响,在充电时电池电压会高于其开路电压,放电时电池电压会低于其开路电压。一般电池在充满时内阻会减小,这也是为什么在恒压充电时,充电电流减小的原因。在charge done后,电池电压会有轻微的下降,但是由于之前充电电流和内阻都很小,所以内阻上的压降也很小,不会达到recharge的门限。而在你的测试中,电池在恒压充电阶段结束充电,电池电压会跌落0.4V,可能是电池老化严重,内阻太大。可以测试实际结束充电时对应的充电电流是多少,以及充电时到充电结束后电池电压的跌落有多大,以此来估算一下电池内阻的影响。或者换一个新的电池试一试,能否排除是电池本身的影响。
你好,
实际应用中,在使用adapter charger port时,D+/D-是由adapter内部短接的,而不是在充电芯片处短接,所以对于充电芯片的D+和D-实际是不需要处理的,当充电芯片的D+D-与接入的port的D+D-连接后,由port端的内部电路决定是哪一种充电方式。标准的USB充电标准请参考附件。
你好
我现在测试遇到两个问题
1. 当VBUS 接5v USB charger port时,电池电压开路测量是3.3v左右,设置REG00设置0x36,同时disable watchdog,测量在充电允许前, VBUS实际电压是4.99v,当CEpin拉低允许给电池充电时,VBUS电压立刻跌到4.348v,此时读取reg08为0xac,reg09为0x01,我的输入电压小于我设置的input voltag limit芯片进入DPM工作状态,并且充电电流在300mA左右(ILIM pin外接169欧姆电阻),不能达到我设置的2A,请问这个是什么情况导致芯片工作DPM。
2. 当电池放电时,我将SYS和地短接,读取reg07 bit5 显示Q4仍然是连接的,请问如果sys短路,芯片如何硬件上起保护作用,我应如何测量?
你好
我现在测试遇到两个问题
1. 当VBUS 接5v USB charger port时,电池电压开路测量是3.3v左右,设置REG00设置0x36,同时disable watchdog,测量在充电允许前, VBUS实际电压是4.99v,当CEpin拉低允许给电池充电时,VBUS电压立刻跌到4.348v,此时读取reg08为0xac,reg09为0x01,我的输入电压小于我设置的input voltag limit芯片进入DPM工作状态,并且充电电流在300mA左右(ILIM pin外接169欧姆电阻),不能达到我设置的2A,请问这个是什么情况导致芯片工作DPM。
2. 当电池放电时,我将SYS和地短接,读取reg07 bit5 显示Q4仍然是连接的,请问如果sys短路,芯片如何硬件上起保护作用,我应如何测量?
想用升压功能,BAT接电池,VBUS 什么也不接,对吗?为什么我的PIMD引脚总是3.8V,电池电压4V。并且没办法写寄存器,只有接适配器时,才能写寄存器