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: After 90.000 writes, the AccumulatedCapacity register does not change

Part Number: BQ35100


The bq35100 is used in the company's main product to measure the consumed uAh in active mode. The ACCUMULATOR mode is used. We have a device that has written to the flash approximately 90.0000 times; the last accumulated capacity read is 4262200296 = FE0C 03E8.

We checked the status register on the bq35100 and found a value of 0x2081 = 0010 0000 1000 0001. Bit 15 is set to zero, indicating that the device has NOT detected a failed write to data flash.

It is worth noting that in our case, the AccumulatedCapacity register was observed to count down from FFFF FFFF to 0 (in our case the min reach was FE0C 03E8). According to the datasheet, the accumulator rises from 0 to 4.29E9 and does not roll over when full.

  • The flash memory wears out with every write. I would attribute this to flash failure. Here is the datasheet snippet that supports this conclusion.

  • Hi Shrish, 

    I'm aware that the maximum write cycle is 200.000. But, as I previously stated, we wrote 90.000 and the STATUS register does not indicate a writing error. Please see my previous message for more information.

    Could it be that the accumulator register was used incorrectly because it is not accumulating it is decreasing the number? What could be the cause of the register only being used 90.000 and making more writing impossible?

  • Hello Leandro,

    The write cycles are 20000 in the datasheet and not 200000.

    But i see that the TRM has 200000. And the example in the TRM does not add up correctly either. I will assign this thread to address the issue.

    Since the FLASHF bit is not set, let's try to see what else could happen. G_DONE flag should be set when the the latest value of AccumulatedCapacity() is written to flash. Can you check if the G_DONE flag is being set?

  • Sorry, I misread the max number for our BQ35100PWR. 

    I don't have the hardware here to check the G_DONE again. But the Code checks this bit before turning off the bq35100 and I don't remember any error in that part of the code. 

    It would be interesting to understand why the AccumulatedCapacity register is not accumulating.
    Thank you for your help.  

  • Hello Leandro,

    How is the number of flash writes being tracked? The max of 20,000 in the datasheet is the bare minimum we expect, usually we can get much higher but it is possible that some units could fail at some point between 20,000 and 200,000 though unlikely.

    The total number of flash writes includes all flash writes, not just for one specific register. So if you are modifying other flash items chances are the count may be higher than 90,000.

    Can you share your SREC from the failing device for us to review?

    Sincerely,

    Wyatt Keller