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-R2: Clarify enabling the gauge to enter FULL SLEEP operation

Part Number: BQ34Z100-R2
Other Parts Discussed in Thread: BQSTUDIO

Tool/software:

Hello,

 I’m hoping that you might be able to provide me with some clarification regarding how to enable FULL SLEEP operation of the BQ34Z100-R2 gauge.

 What I would like to do is to configure the Data Memory of the gauge (Golden Image) so that if all conditions are met the gauge will automatically transition from SLEEP to FULL SLEEP mode of operation without any intervention from the host system.

 However, I am getting the impression that the host system has to send the Control() subcommand SET_FULLSLEEP to the gauge at runtime.  Can you confirm that that is the case?

 My concern is that if I command the gauge to enter FULL SLEEP (when it determines that conditions are appropriate) then at some point if the gauge were to reset for any reason it would no longer go into FULL SLEEP mode.  The only way that I can think to avoid this is to periodically send the gauge the SET_FULLSLEEP subcommand to re-assert the requirement to have it go into FULL SLEEP.

Is there some means by which the host system can verify that FULL SLEEP has been enabled on the gauge, or at least determine that the gauge has been reset since the subcommand was last sent?

Adding to the confusion, in BQStudio, in the Commands group if you hover over the button that sends the Control() subcommand SET_FULLSLEEP, the tool-tip that appears indicates that this is not available when the device is SEALED.  However, that contradicts what is presented in the TRM in Table 2.2 Control() Subcommands which indicates that SEALED ACCESS is permitted.  Since the gauge will normally be sealed before the system is deployed, the tool tip must be incorrect.  Can you also confirm this is the case?

Thank you,

Steve

  • Hi Steve,

    You can check the flags below to see when the device has entered full sleep.

    Full sleep mode will be entered when the device is in sleep mode and the timer counts down to 0, set by Full Sleep Wait Time.

    Set_fullsleep should be available when the device is sealed, please use the advanced comms tab in BQstudio to send the cmd.

    Regards,

    Evan

  • Hi Evan,

    Thank you for the response.  In my application I have a host MCU that communicates with the fuel gauge.  My host MCU does not need to be able to check if the gauge is in FULL SLEEP.  In any case, according to the documentation for the CONTROL_STATUS flags, any attempt to read the CONTROL_STATUS flags will never show the [FULLSLEEP] bit set because the communications required to read the flags will have already brought the device out of FULL SLEEP mode.

    I am trying to understand the purpose of the SET_FULLSLEEP subcommand and how it is intended to be used.

    If I were to configure the data flash parameters so that the gauge can enter FULL SLEEP, then using BQStudio I send the SET_FULLSLEEP subcommand does this mean that from that point on the gauge will be able to enter FULL SLEEP if conditions are right?  Is this configuration now persistent?  In other words, if I were to completely power down the gauge and then re-connect it to the battery pack would it still remain configured so that under the appropriate conditions in will enter FULL SLEEP?  Or do I have to use my host MCU to send the SET_FULLSLEEP subcommand again once the gauge has been re-connected?

    Thanks again,

    Steve

  • Hi Steve,

    The device will not enter full sleep mode unless the Set_fullsleep cmd is sent. If you send the full sleep cmd the gauge will enter full sleep if the conditions are met.

    Your host will need to resend the Set_fullsleep command.

    Regards,

    Evan

  • Hi Evan,

    I had a feeling I would need to do that but since my host MCU controls when the system is to go into a low-power state I can send the SET_FULLSLEEP sub-command to the gauge immediately before that so that it can reach its lowest power state.

    Thanks for clearing that up for me,

    Steve