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: 20k Flash-programming write cycles limitation

Part Number: BQ35100

Hi,

In our design we're planning to use a Lithium thionyl chloride battery (19 Ah) and we need to measure its SoC (%). Our device will read the internal sensor with discharge pulses of 15-20 mA for 60-80 ms with dynamic delays between the discharge pulses from 30 seconds to 30 minutes. The expected battery life is at least 10 years.

As I understand from the datasheet, we can't use the BQ35100 chip in EOS mode as due to the short periods between the discharge pulses the battery won't be able to rest and "any EOS-related data may be compromised". Thus, we're going to use the BQ35100 in the coulomb accumulation (ACC) mode.

However, the BQ35100 has a limitation on the number of Flash-programming write cycles (20,000), which means that the average time between two consecutive writes (i.e. GOUGE_START/GAUGE_STOP commands) should be more than 4.5 hours, which is unacceptable in our case.

Is there a workaround for this 20,000 write cycles limitation? Thanks.

  • Hello,

    The 20,000 data flash writes is the minimum that we expect the gauges to be able to do, if you reference the TRM 5.1.1 the maximum recommended is 200,000 writes.

    I don't believe there is a way around this because the gauge writes to DF automatically when the gauge is cycled to take a measurement.

    Sincerely,

    Wyatt Keller

  • Hi Wyatt,

    It's a bit confusing as according to this thread the value in the datasheet (20,000) is correct:

    Q: 1.Flash-programming write cycles is defined as 20 000 in Datasheet and 200 000 in Technical Reference Manual. Which one is correct ?

    A: 1. The datasheet is correct. The TRM value is too large.

    Could you please confirm that the value from the TRM (200,000) is the maximum number of Flash-programming cycles officially recommended by TI? Should we base our design on 200,000 cycles?

    Thanks,

    Maks.

  • Hello,

    The minimum number of data flash writes that are reliable is 20,000, anything over has a risk of being corrupted. You should base your design on 20,000 writes, anything over this could be at risk.

    Sincerely,

    Wyatt Keller

  • Hi Wyatt,

    Thank you for your answer. In our design we would like to avoid any problems with internal BQ35100 data flash memory.

    As I understand, under normal circumstances the BQ35100 in the Accumulator mode when the GE pin is asserted will read the accumulated capacity value from data flash and then on receiving the GAUGE_STOP command it will write the updated accumulated capacity value to data flash.

    I know it's not recommended approach, but is it possible to read the accumulated capacity at the end of the gauging cycle before pulling the GE pin low without sending the GAUGE_STOP command, effectively avoiding any writes to data flash? In this case our microcontroller will store the accumulated coulomb counter in the firmware and it will read the accumulated capacity from the BQ35100 for the last gauging cycle and add it to the accumulated coulomb counter in the firmware before puling the GE pin low. So basically, the accumulated capacity value inside the BQ35100 will always start with 0 when the GE pin is asserted as the default value in data flash will never be updated.

    The sequence of events in this case will be like the following one:

    1. Assert the GE pin;
    2. Send the GAUGE_START command to the BQ35100;
    3. Do something useful and draw some power from the battery;
    4. Read the accumulated capacity from the BQ35100 and add this value to the internal coulomb counter value in the firmware;
    5. Pull the GE pin low without sending the GAUGE_STOP command first;
    6. Wait in idle until the next cycle;
    7. Repeat from step 1.

    As the gas gauge chip will be working in the Accumulator mode we don't care about storing any EOS data or the accumulated capacity value in data flash. Also, as I understand, the BQ35100 doesn't need to be calibrated in this mode.

    Could you please confirm if the BQ35100 can be used in this scenario? Thanks.

    Best regards,

    Maks.

  • Hello,

    Yes you can perform these steps, if you store the passed charge from the gauge with the MCU before the GE pin is pulled low it should work how you described without writing to the DF.

    The gauge still needs to be calibrated because it needs to set certain offsets depending on your board layout and for accuracy, to do calibration you must be in ACC mode.

    Sincerely,

    Wyatt Keller