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.

BQ76952: OTP Programming

Part Number: BQ76952

Hi Ti Experts,

we want to use the bq76952 in standalone mode for a 16S6P (21,6Ah) LiFePo application.

So far we have designed and produced a first PCB version.

In the sluuc33 document I have read, that I am able to programm the OTP memory for two times:

How can I check how often I have programmed the OTP or if there is a OTP Programming left?

I have tried to use the OTP_WR_CHECK Subcommand (0x00A0) with following *.fs-file:

In response I receive the following:

If I check the datasheet it means I can write the OTP memory, is it right?

With this device, I know I wrote the OTP twice. So a further OTP writting should not be possible, isn't it?

Thanks for helping us.

Klaus

  • Hi Klaus,

    See the BQ76952 data sheet https://www.ti.com/document-viewer/BQ76952/datasheet/device-memory-t5345357-6#t5345357-6 for a description of the OTP configuration.  There are 2 writes allowed to a  bit, and 8 writes total due to the checksum storage.

    OTP is blank initially (all 0x00).  Say a parameter was changed from 0 to 6 and written to OTP setting bits 1 and 2 of that location.

    A second write could change that parameter to a 7 by addiitonally setting bit 0.

    A third write could change that parameter to a 5 by using the XOR for bit 1.

    A change to 0xF additionally setting bit 3, or a change to 4 could be allowed using the XOR for bit 0, but a change back to 6 would not be allowed since the XOR was already set for bit 1

    Yes, the "80" in your read should indicate the checks have passed and the selected configuration write was possible.

  • Hi WM5295,

    Thanks for your answer.

    I have tested your example and I think I have understood it.

    I can not write to the MANU_DATA() any more:

     

    But is there any bit which I can check before writing to the OTP?

    If I do the OTP_WR_CHECK I get no LOCK-Bit:

    Thanks for helping us.

    Klaus

  • Hi Klaus,

    I'm not sure what to recommend other than the 0x00a0 OTP_WR_CHECK, if the data bit has been used I would expect the NODATA bit set, perhaps the read of 07 above has made the register match the OTP.  

    The LOCK bit is associated with the security settings, see Security in 7.6.7 and the LOCK_CFG in table 104. 

  • Hi WM5295,

    thanks for your answer.

    I think now it is clear.

    Klaus