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.

BQ34Z100-G1: Unable to write Manufacturer Info in Flash

Part Number: BQ34Z100-G1

Hello,

I am trying to store some information in the "Manufacturer Info" block on the BQ34Z100-G1, and for some reason the data is not retained after a power-cycle.

Here is the I2C trace:

After power-up, "Manufacturer Info" (block 58) reads as all 0's.

We then write a 32-byte pattern to it, and read it back. It reads back correctly.

However, after a power-cycle, the block again reads as all 0's.

I know there is a protection mechanism to prevent flash writes when cell voltage is below "Flash Update OK Cell Volt" parameter.

In my case, actual cell voltage at the chip is OK - but this checking happens right after power-up, so I suspect the chip may not have a good measurement at that point in time.

Questions:

(1) Does the BQ34Z100-G1 chip need time to measure cell voltages after power-up? If so, how much?

(2) Is there a flag to check whether the cell voltage is actually OK to write flash, as measured by the chip?

(3) Is there a way to _temporarily_ disable this voltage check, without writing flash? This is a bit of a chicken-and-egg problem, because "Flash Update OK Cell Volt" parameter is in Flash...

Thank you!

  • Hello Pavel,

    The check is based on the Voltage() value, it should be quick on bootup, about a second to take a measurement.

    The best way to check is read the Voltage().

    Yes it can be, on the first boot up the value can be changed to 0 is you do not want it to affect the flash updates.

    If the values stay before a power on reset and you're able to read them I don't think this is related to the flash update ok voltage. Try issuing a reset command after changing the values to ensure they are saved in flash, not just RAM.

    Sincerely,

    Wyatt Keller

  • Wyatt,

    Does the read transaction after write actually confirm that the data was written to flash - or only that it was transferred to the RAM buffer?

    The values are reset to 0 even after a hardware reset, not only power-cycle... so I think the data is never written to flash.

    Could I2C timing be an issue in this case? I wait ~500 ms after issuing the Checksum command (0x60), and before reading the buffer back from the chip. Could this I2C read be disturbing the RAM->Flash write?

  • This is working as expected... I believe my problem was being caused by another piece of code clobbering the Manufacturing Info later on.

    Thanks for the help!

  • Hello Pavel,

    Glad to hear you got it resolved. Let us know if you have other questions.

    Sincerely,

    Wyatt Keller