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.

[参考译文] BQ25713:VSYS 轨上的输入电流限制和充电电流在超过6A 后发生变化

Guru**** 2540720 points
Other Parts Discussed in Thread: BQ25713

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1002001/bq25713-input-current-limit-and-charging-current-changes-after-more-than-6a-on-vsys-rail

器件型号:BQ25713

我们在原理图中使用 BQ25713芯片。 原理图设计基于 BQ25713开发板原理图。

我们使用 的是12-14V 适配器和3节锂离子电池。

我们面临着几个问题。

如果我们从 VSYS 汲取的电流不超过6A、则适配器的充电电流和功耗是可以的。

当 VSYS 上的加载消耗的电流超过6A (大约)的时间达到大约10s 时、就会出现此问题。 然后输入电流降至3A 左右、剩余电流从电池消耗。
如果 VSYS 断开连接、电池充电电流也会降至0.4A。 如果我在该状态下连接相同的负载(峰值高于6A)、则输入电流限制在3A 左右、剩余电流再次从电池消耗。

适配器可提供高达10A 的电流。

我的初始 BQ25716配置(POR 之后):

void Configure_BQ25713_on (void)

   //配置 BQ25713
   
   I2C_REG_addr = 0x0C;//MinSysVoltage (两个寄存器) 0x0D - 0x0C
   I2C_DATA_FULL = 0x6E00;//11776mV
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x0E;//输入电流限制(两个寄存器) 0x0F - 0x0E
   I2C_DATA_FULL = 0x7F00;//IIN_HOST = 6350mA
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   //如果输入电压下降超过 InputVoltage 寄存器允许的值,则器件进入 DPM 并减小充电电流。
   
   I2C_REG_addr = 0x0A;//输入电压限制(两个寄存器) 0x0B - 0x0A
   I2C_DATA_FULL = 10880 - 3200;//10880mV - 3200mV 偏移
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x04;//充电电压限制(两个寄存器) 0x05 - 0x04
   I2C_DATA_FULL = 12304;//12304mV (对于锂离子3S2P 电池组、充电电压限制(两个寄存器) 0x05 - 0x04 = 0x3010 (8mV 阶跃))
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x02;//充电电流限制(两个寄存器) 0x03 - 0x02
   I2C_DATA_FULL = 2048;//2048mA
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x00;//充电选项0 (两个寄存器) 0x01 - 0x00
   I2C_DATA_FULL = 0x020E;//多个设置:EN_LWPWR = 0、WDTMR_ADJ =禁用、IDPM_AUTO_DISABLE = 0、OTG_ON_CHROK = 0、EN_OOA = 0、 PWM_FREQ = 800kHz、LOW_PTM_RIPPLE = 0、
   //SYS_SHORT _DISABLE = 0、EN_LEARN = 0、IADT 增益= 20x、IDCHG 增益= 16x、EN_LDO = 1、EN_IDPM = 1、CHRG_INHIBIT = 0
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//Reg 数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x32;//充电选项2 (两个寄存器) 0x33 - 0x32
   /////////////////////////////////// I2C_DATA_FULL = 0x0237;//PKPWR_TOVLD = 1ms、EN_PKPWR_IDPM=0、EN_PKPWR_VSYS_0、PKPWR_OVLD_STAT=0、PKPWR_RELEASE_STAT =0、 PKPWR_TMAX[1:0]=10b (20ms)、
   //EN_EXTLIM = 0 (输入电流限制由 REG0x0F/0E 设置)、IBAT_SEL=0、Q2_OCP=1、ACX_OCP=1、EN_ACOC=0、 ACOC_VTH=1、EN_BATOC=1、BATOC_VTH=1
   /////test
   I2C_DATA_FULL = 0x2237;//PKPWR_TOVLD = 1ms、EN_PKPWR_IDPM...、 EN_EXTLIM = 0 (输入电流限制由 REG0x0F/0E 设置)
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   
   //
   I2C_REG_addr = 0x3A;//ADC 选项(两个寄存器) 0x3B - 0x3A
   I2C_DATA_FULL = 0xA0FF;//启用所有 ADC 和 ADC_CONV = 1秒
   
   I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
   I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
   
   i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度


什么会导致这种奇怪的行为? 初始配置可能错误?



此外,我不知道如何在 CHRG_OK 的任何条件为低电平并且输入电流限制重置为默认值3.3A 后正确地避免 ChargeCurrent()重置零,因此我可以定期运行此代码来恢复值:

i2cReceive (I2C_ADDR_BQ25713、0x20、2、&I2C_DATA[0]);//0x20 =充电状态寄存器

如果(bit_in_set (I2C_DATA[1]、7))//检测到主电源? (MSB.7 AC_STAT = 1 (交流存在))

   //检查在 CHRG_OK 的任何条件为低电平后 ChargeCurrent ()是否复位为零             
   i2cReceive (I2C_ADDR_BQ25713、0x02、2、&I2C_DATA[0]);//充电电流限制寄存器
   如果(I2C_DATA[0]= 0 && I2C_DATA[1]= 0)
   {
      //恢复电荷电流限制值
      I2C_DATA_FULL = 2048;//2048mA
      
      I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
      I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
      
      i2cSend (I2C_ADDR_BQ25713、0x02、   2、   &I2C_DATA[0]);//充电电流限制(两个寄存器) 0x03 - 0x02
   }
   
   //移除适配器后、输入电流限制重置为默认值3.3A    
   //检查输入电流限制是否已重置为默认值          
   i2cReceive (I2C_ADDR_BQ25713、0x0E、2、&I2C_DATA[0]);//输入电流限制寄存器
   如果(I2C_DATA[0]= 0x00 && I2C_DATA[1]= 0x41)
   {
      //恢复输入电流限制值
      I2C_REG_addr = 0x0E;//输入电流限制(两个寄存器) 0x0F - 0x0E
      I2C_DATA_FULL = 0x7F00;//IIN_HOST = 6350mA
      
      I2C_DATA[0]=(I2C_DATA_FULL & 0xFF);//寄存器数据 LSB  
      I2C_DATA[1]=((I2C_DATA_FULL >> 8)和0xFF);//注册数据 MSB
      
      i2cSend (I2C_ADDR_BQ25713、I2C_REG_addr、   2   、&I2C_DATA[0]);/2字节长度
   }             


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dovydas:

    1.您是否在出现故障后尝试通过 I2C 读取充电器状态(0x20/0x21)?

    2.在相同的测试条件下、您是否看到 EVM 存在相同的问题?

    我在我的一侧使用 EVM 测试了您的寄存器设置、但我看不到问题。

    这是您的寄存器从默认上电所做的更改:



    在我的测试中、VBAT ~ 12V、VADAPTER = 13V。6A 和7A 下的系统负载均正常。VBUS 仍提供所有电流。




    我建议检查您的输入源和硬件连接。 任何适配器拔出和插入都会导致输入电流限制和充电电流重置。 任何适配器复位后都需要 MCU 干预。

    我建议您获取 EVM 来了解 BQ25713的行为。

    https://www.ti.com/store/ti/en/p/product/?p=BQ25713EVM-017 

    谢谢、

    Peng




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经有 EVM。 我没有尝试重复 EVM 的问题。

    在故障条件后、寄存器0x20/0x21的值为0x8C00。

    我发现故障条件 BQ25713寄存器复位为默认值、这就是我的输入电流和其他设置发生变化的原因。

    我不知道什么会导致 BQ25713复位。 看门狗在我的初始配置中被禁用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Dovydas:

    在相同的设置(相同的输入适配器、输出条件等)下在 EVM 上运行 MCU 代码可能很有意义、并查看问题是否仍然存在。 如果是代码和设置问题、则 EVM 上也会出现此问题。

    如果不是、则很可能源自 硬件设计。

    谢谢、

    Peng

    *如果我的答案解决了您的问题,请在主题中按“此已解决的我的问题”。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Dovydas:

    由于在过去一周内没有您的回复、我假设问题已解决、我将关闭该主题。

    如果您需要进一步的帮助、请随时在 TI E2E 论坛上与我们联系。

    谢谢、

    彭召

    *如果我的答案解决了您的问题,请在主题中按“此已解决的我的问题”。