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.

About VFC offset in the BQ2060A

Other Parts Discussed in Thread: BQ2060A, BQ2060

Hello, everyone. i have encoutered some problems in bq2060a and i don't know how to deal with it..

1. If the average current is nonzero, Can  i send a command to instruct BQ2060A  to start VFC Offset. while the current's values is 0.   Is it necessary to start VFC Offset while the current and average 's value are all 0???

  After starting VFC Offset and have not come to end..IF applying current to the pack., What problems may occure??

2. In mass production. After learning (charge to full .discharge to empty .charge to suitable  capaticy), Some pack's eeprom (eg: Pack Capacity and Pack  configuration are charged into 65535) is changed..

  In sbs interface, the charging voltage and charging current.also can be turned in ohter vlaues, IF I try write correct vlaue to charging voltage, the charging current can be restored to correct one...

 How could i to do to void these problems.........

 

  • Hello Bajybukn,

    The Enable VFC Calibration command 0x0653 does not care whether current flows or not, since an internal short is applied to prevent current through the sense resistor from affecting the offset calibration.  This is the preferred calibration method.

    The Alternate VFC Calibration command 0x067E can achieve a more accurate offset calibration, but only if no charge or load current flows through the sense resistor during the entire calibration process that may take up to 1 hour, but usually only takes about 10 minutes to complete.  If load current is applied before the calibration is complete, it will cause an incorrect offset value to be calculated.  The longer the wait before the load is applied, the smaller the error.  You may determine when the calibration is complete by reading the OCE bit in Pack Status (it is set when calibration is complete).  You may also depress the display switch if LEDs are mounted.  The LED display cannot be activated until calibration is complete.

    The bq2060A has no capability to write a different value into the Pack Capacity and Pack Configuration  EEPROM locations.  These locations can only be written by a host when the pack is unsealed.  Normal SBS operation requires the bq2060A to be sealed.  This will prevent writing to ChargingVoltage.  If the host requires the bq2060A to be unsealed to work, then it must be doing some unauthorized writes.  You should determine why your customer is not sealing the pack to prevent illegal SMBus writing.  It would also be good to disable broadcasts by setting SM bit (bit 0) in Contro Mode unless your customer requires these broadcasts for proper charger operation.  Please set the SEAL bit in Pack Configuration (bit 6) and reset the gauge. 

    Bill

  •   Thanks for your reply..

      While the learning process,  the charging voltage and charging current is charged into oher values. i don't know how to upload log data..

      what i encountered is that charging current is changed into 0mA and the charged current is changed into oher value( eg: 3834mV, My design is 2S2P,the normal charging voltage is 8400mV)..  I usually  write 8400 to charging voltage,  the charging current can be restored to normal value....

     Another question is about fixed EDV,  the A0 and TC factor do not affect in this mode???  I can't imagin  the accuracy of  full compared to real capacity discharge from full to empty. after 50cycle 100cycle 200cycle??

  • Hello Bajybukn,

    The ChargingVoltage programmed in EEPROM is the only value that will be loaded into the ChargingVoltage command address 0x15 except if the EEPROM does not load correctly.  When the bq2060A is reset, it will refresh various RAM data from the EEPROM and perform other initialization tasks.  If the EEPROM checkbyte values are not correct, the firmware will force ChargingVoltage = 0.  It will also force the INIT bit in BatteryStatus = 0.  If the EEPROM loads correctly and INIT=0, ChargingVoltage will always be equal to the EEPROM value unless the the gauge is not sealed and the host is writing (on purpose or accidently) some value into Command 0x15.

    The ChargingCurrent value (Command 0x14) will change, dependng on operating conditions.  If there are no error conditions found, it will be equal to the Fast Charging Current programmed in EEPROM.  If the battery voltage is below EDVF threshold, ChargingCurrent will be set to the Pre-Charge value programmed in EEPROM.  If a fully-charged termination condition is detected, the ChargingCurrent will be set to the Maintenance ChargingCurrent value programmed in EEPROM.  If a fault condition occurs, like overvoltage, overcurrent, overtemperature, etc., ChargingCurrent will be set to 0.  This action is described in the data sheet.  If your host is accidently writing some bad value to ChargingVoltage, it is likely that the gauge is detecting an overvoltage condition and is then forcing ChargingCurrent to 0.    The flags in BatteryStatus should indicate which fault has been detected.

    The A0 and TC factors are not used when fixed EDV thresholds are used.

    Bill

  • Hello, Bill...

    Thanks...

    Now my charging voltage is 3700mV and charging current is 0mA, the Bit "INIT" in Battery status is 0.  How to deal with this problem...

    With your last reply, i set the Bit "SM" in Control Mode,  This problem haven't occured so far (about 10 cycles)

  • Hello Bajybukn,

    INIT=0 can only happen from 3 reasons.

    1.  EEPROM Check Byte #1 and #2 are not correct

    2.  EEPROM is not loading correctly

    3.  Host is accidently writing to BatteryStatus

    EEPROM Check Byte values and other reserved locations are programmed to the correct value when the "WRITE" button is clicked on the EEPROM programming screen.  Send reset (Initialize bq2060) command to the bq2060.  If INIT=0,, then "READ" EEPROM, verify correct EEPROM values including Charging Voltage, and then "WRITE" EEPROM and send reset again.  INIT should now be 1.

    ChargingVoltage will always be set to EEPROM Charging Voltage value unless EEPROM does not load correctly, then ChargingVoltage=0 will be forced.  Any other value is due to accidently writing the ChargingVoltage by the host.

    Accidentaly writing to the gauge is probably due to faulty implementation of SMBus communication protocol by the host -- possibly due to the host not handling a "clock stretch" by the bq2060A.  The need to handle a "clock stretch" in SMBus communication is the same as with I2C communication.  If the SEAL bit in Pack Configuration is set and then a reset sent to the gauge, further writing by the host is prevented.

    Bill

  • Hi, Bill

     I had reset the gauge and sealed the pack(See pickture)....

    Then relearning the pack again.  The bit "INIT" in battery status is  changed into 0  and the pack is still in sealed mode..