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.

BQ76942: OTP write on permanent failure

Part Number: BQ76942
Other Parts Discussed in Thread: BQSTUDIO

We are testing Permanent Failure OTP functionality in BQ76942.
This tests are done on a board with resistors, so no cells are connected.

To do this, we’ve set Manufacturing status to 0x00D0:
OTPW_EN – set
PF_EN       – set
FET_EN     – set

We’ve also set Protection configuration to 0x0722:
PF_OTP    – set
PF_FETS  – set

PF Alert Mask A is set to 0x5F

After this the SOV threshold is set to 3800 and we slowly increase the voltage.
When triggering the fault we can see that permanent fail is triggered in 0x12 Battery Status()
The discharge FET is closed at this time. We can also see that the SAVED_PF_STATUS() 0x0053 is modified at this point.

After this we wait for 30s and then send Shuts down the AFE via pin.
But when we start the AFE up again then the perm fail triggered is cleared and the discharge is once again open.

What have we missed here? What is needed to make the OTP write trigger? We've assumed that the "normal conditions" needed for OTP write (voltage levels etc) is not required when writing PF, is that correct?

Best regards

//Erik Almqvist

  • Hi Erik,

    Are you reading the SAVED_PF_STATUS() after you start the AFE and it is no longer showing the PF occurred?

    The voltage levels for writing the PF do not need to be special. It should work under normal conditions.

    Regards,

    Matt

  • Hi Matt!

    Yes, exactly. If an OTP write of the PF would have been performed, we believe that the SAVED_PF_STATUS() would reflect this - even after a shutdown. Instead, it's reset to zero. We wonder if you could think of any missed criteria for writing the OTP?

    Best regards

    //Erik Almqvist

  • Hi Erik,

    As far as I can tell, your settings are correct (PF_OTP and OTPW_EN are both set). I will test this on a device tomorrow to verify. I don't want to do the experiment on an EVM since it has a permanent effect.

    Best regards,

    Matt

  • Thanks for your support Matt, please update on your findings!

    We assume the OTP write would occur quite fast (e.g seconds...) after the PF flag has been set, is that correct?

    The reason I asked is vague. In one test we did see a reset (that we can't pinpoint the reason for), about a minute after the PF occurred. We figured the OTP should have been written at this point, but it might be worth confirming. Manual states that a reset (e.g. via shutdown pin) do reset the PF. (We've also lost the PF in other tests.)

  • Hi Erik,

    I tried this with the same steps, except I caused an SUV PF (I don't have access to a high voltage lab at the moment). After entering and exiting Shutdown, I still see the SUV is triggered and the SAVE_PF_STATUS() shows the condition was saved.

    The OTP programming should be slower since the voltage is beyond the 10-12V range, but I would expect 30 seconds to be plenty of time. 

    Matt

  • Hi!

    Thanks for your investigations Matt! We did found out what's wrong in our case. Sorry for breaking your hardware from the other side of the globe.

    The reason we had what we did is that we did manage to trigger a reset signal from MCU when re-configuring the AFE after a shutdown. And, as stated in the manual, a reset via PIN do reset the SAVED_PF_STATUS register. We came to this conclusion after some debugging using BQStudio and an erased MCU. We must check this register directly after startup.

    We have some follow-up question in order for us to take the best route going forward.

    A.) The manual uses the terminology "full reset" in some cases without elaborating on when a full reset occurs. Is it only a shutdown that leads to a full reset?
    B.) Is there any functional differences between a RESET 0x0012 command and a RST_SHUT (pin reset)?
    C.) What is the best way of knowing that a OTP write of PF has completed? Is 10 seconds enough?
    D.) What is the transition of "Very Low VBat" from Deepsleep mode to Shutdown mode in Figure 7.1 ("Operational modes") of the BQ76942 manual.


    The reason for asking A.) and B.) is that we had a reset implemented as part of our configuration sequence. This was done in order to handle removal of a configuration parameters by issuing a reset (thus reset to default). As this doesn't seem to work and we'll check if we should change to only performing a reset in other special error. But we find the usage of reset / full reset a bit unclear in the manual.

    Best regards
    //Erik Almqvist

  • Found the answer to D.) myself

    "if the BAT pin voltage falls below VPORA - VPORA_HYS, the device transitions to SHUTDOWN mode"

    BR

    //Erik Almqvist

  • Hi Erik,

    Sorry for the delay - I was out of office the past couple days. 

    The RESET 0x0012 command does a full reset of all of the device registers. The reset using the RST_SHUT pin is only a partial reset - it does not clear the device register settings and it will not clear the PF.

    A Shutdown and re-boot will be similar to the RESET 0x0012 command in that it will completely reset all registers back to defaults (or to OTP programmed values if OTP has been programmed).

    I think 10 seconds should be plenty of time for the OTP to write. It should complete faster than this, but  I do not know the exact timing.

    Best regards,

    Matt

  • Thanks Matt!

    No worries about the delay, I think this forum works excellent for this type of support, and that you respond very fast!

    Do you know if a full reset have any impact on the REGx output that we use to power the MCU, or is this respected by AFE if OTP programmed to stay on? If If this is the case, I assume we should use the POR bit after setup to check if a configuration is needed...

    Best regards

    //Erik Almqvist

  • Hi Erik,

    If it is programmed in the OTP, then the OTP settings will be the defaults, so a full reset should not affect the REGx ouptut.

    Best regards,

    Matt

  • Understood! I think we have all we need now.

    Thanks a lot for your support in these matters!

    Best regards

    //Erik Almqvist