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.

BQ35100: Serval questions related to CHEM_ID and current detection

Part Number: BQ35100
Other Parts Discussed in Thread: BQSTUDIO, GPCCHEM

Dear TI-forum users,

While studying the BQ35100 for a while there are serval things that remain unclear. The device has problems reading a current of +/-8mA, reading the Current() register always gives the value 0mA.
Strangely enough the voltage measurement ( Voltage() ) is accurate. From my understanding there is a need to use a op-amp to amplify the current, before the device is able to read the current of 8mA. 
Using the coulomb counter (ACC mode) for a current draw below the 10mA is probably useless. Changing the recommended shunt of 0.1 Ohm to a higher resistance of 5 Ohm doesn't change the voltage accuracy, also the current remains 0mA. 

Also there is no manual available that defines how to change the CHEM_ID of the BQ35100. Nor what hardware is needed to change the CHEM_ID of production ICs.
I'm wondering how to setup a single BQ35100 IC to flash the right CHEM_ID (607) from BQSTUDIO to the BQ35100.    

In short:

  1. How does the device accurately measures the voltage (while the current measurement always remains 0mA)?
  2. What is the range of the current measurement?
  3. If there is a need for an op-amp, which op-amp is commonly used in combination with the BQ35100?
  4. What hardware do you need to change the CHEM_ID? (preferably just the IC and some sort of flashing device because of mass productions) 
  5. How to change the CHEM_ID?
  6. What is a golden image, how to create one and use it?

Answering these questions will help me a lot and probably lead to a first production.
The current draw of 0.05uA when GE is disabled is unique and perfect for my situation. So hopefully there is a easy way to fix the current measurement
or change the CHEM_ID to 607 so one of these functions work properly.

Hopefully someone could help me out.

Thank you for your time!

Sincerely,

Jorg 

  • Hi Jorg

    Something is definitly wrong, for current to not be measured correctly. What mode are you running the gauge? SOH mode? For current measurement to be correct it has to be Accumulator or EOS mode. Refer to the TRM on how to set these modes. Also, ensure you run current calibration on your board.s

    To change the chem id, you need bqstudio. There is no way around not using our tool bqstudio to change the chem id and then to configure the gauge.

    For this gauge,  I would recommend going by nomenclature of the cells. You can also run gpcchem, though i am not certain on its accuracy for primary cells.

    The golden image is also created with bqstudio. Pls see the app notes for the device under its product folder.

    thanks

    Onyx

  • Thank you for the fast response!

    It is clear now that BQSTUDIO is needed to make the EOS mode work properly.
    -Do I need extra hardware equipment for that?

    Also, the current measurement is implemented as described in the TRM:

    "Current(): 0x0C/0x0D This read-only command pair returns a signed integer value that is the average current flowing through the sense resistor. It is updated every 1 second with units of 1 mA per bit."

    I'm using this command while in EOS mode. I use the same method for reading the 0x0C register as for the voltage. Reading returns 0 into the buffer.

    void readInternalCurrent( void )
    {
        uint8_t current[2] = {0};
    
        readFromRegister( BQ35100_READ_CURRENT, current, 2 );
        DelayMs( 100 );
        printf("Internal current: %d mA", (int16_t) ( current[1] << 8 | current[0] ));
    }

    -Is this the right method?

    -So the current command now gives a value back. I called the function after sending the guagedisable command. But the problem is that the current value is a negative value. Does this mean that the current draw is about -13mA? So that the battery is deloading. If that is what it is supposed to do, then the current measurements are working now! 

    Please let me know if negative values are normal, then my problem is solved.

  • If you are discharging or have a load connected and then you are reading negative current, then that is correct.

    thanks

    Onyx