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.

BQ769142: DAStatus6 passQ overflow?

Part Number: BQ769142

Hi there,

we are currently using the BQ769142 on a custom board and it works like a charm. We are very happy with it.

However, I'm seeing now one strange thing and would like to have some advice as I couldn't find the answer by myself.

We have a microcontroller communicating via I2C with the BQ761942, getting the battery status. One of the data is the integer accumulated charge (byte 0-3 from Dastatus6). this is working great while the battery is either in charge or discharge.

When the battery is not in charge or discharge, we turn off the MCU and put the BQ769142 in Deepsleep in order to save consumption.
If a charge or discharge is needed, the MCU is awak and the I2C resumes, waking up the BQ from Deepsleep. This is working great.

However, if the battery is not in charge or discharge for several minute (about 30-45min), when the MCU wakes up and wakes the BQ769142 up, the value in Dastatus 6 is -32768 instead of anything between -3000 to 3000mAh (max cap of our batteries).  This only happens if we let the MCU off and the BQ in deepsleep for several minutes, as if there is a Reset, fault, overflow or something like that.

Would you have any idea why this value of -32768 appears?

Regards

Olivier

  • Hi Olivier,

    Yes, there is a known behavior in the device where it can initialize to this value. After a Reset using the RST_SHUT pin, the value initializes to -32768 instead of initializing to zero like it should. You can reset this value to zero by sending the RESET_PASSQ() command after the RST_SHUT pin is toggled.

    However, exiting from DEEPSLEEP mode should not produce this issue. Only toggling the RST_SHUT pin should cause this.

    Best regards,

    Matt

  • Hey Matt,

    Thanks for your answer. After checking in our firmware, we are not using RST_SHUT pin and this pin is tied to GND via a 100K pull-down.
    Also, what's strange is that it's happening after a certain time. If I put the BQ769142 in deepsleep and wake it up within 20-30min, it's all fine.
    If I wake it up after 30-45min then I have that value. I also notice that the accumulated passQ time (byte 7-11) is reset to 0.

    Are there any other known behaviours appart from the RST_SHUT pin that could initialize the DASTATUS6 register like that?

    Regards

  • Hi Matt,

    I might have found something. Just noticed we are also toggling TS2 pin to ensure that the BQ769142 is woken up even if it's in SHUTDOWN mode.

    When I remove the toggling of TS2 it seems like I don't get the reset issue of Dastatus6.

    Just did one test so far, I'll need to do a few more to validate.

    What's weird is that this issue only happens when we let the bms chip in deepsleep for more than 30min.. if it's less that 30min we don't get that issue.
    Any ideas why?

    Also, what's the best strategy to know the BQ is in SHUTDOWN mode as I2C communication is down?

  • Hi Olivier,

    Have you maybe set a value in the Auto Shutdown Time register? Since you cannot communicate with the device in Shutdown mode, there may not be an easy way to identify if the device is in Shutdown from the microcontroller. Maybe you can read the Device number - in DEEPSLEEP mode you should be able to read this value. The voltage on REG18 should also turn off during Shutdown.

    Best regards,

    Matt

  • Hi Matt,

    I actually have a value in Auto Shutdown Time set to 1min. But as the BQ is in theory NOT entering Shutdown mode I doubt this could be the issue?
    I'll try to set the value to 0, re-enable toggling of TS2 and see if that will do the job.

    I let you know