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: Reading control status register

Part Number: BQ76952

Hello Team

I am trying to read Control Status Register, as I want to get DEEPSLEEP mode of device, but I am always getting value of 0x75 i.e. the device is always being shown in DEEPSLEEP mode.

Upon referring Technical Reference Manual, I find that Control Status Register returns 0xFFA5 and subsequent reads return actual values. Can you please guide me in getting actual values of Control Status Register. I am communicating with BQ76952 over I2C using STM32G0B1 as host controller.

Regards,

Rai

  • Hey Vaibhav,

    Just to clarify, you are trying to check if the device is in DEEPSLEEP mode? Or you're trying to put the device in DEEPSLEEP mode?

    The control status register only returns 0xFFA5 once after you write to it. Writing to this register is not recommended. Anything you read should be the actual value so long as there wasn't a write beforehand.

    Can you try the EXITSLEEPMODE() [0x000E] command and then read from the register again to see if the value updates?

    If you need more information you can always take a look at our software development guide: Software Development Guide

    Thanks,
    Caleb

  • Hey Caleb

    I am trying to check weather device is in DEEPSLEEP or not.

    I'm sure I'm giving EXITSLEEPMODE() instruction, but I'll give it try. Maybe changing order of instruction can help.

    As far as write is concerned I'm not writing and just reading Control Status Register.

    Thanks for reaching out

    Rai

  • Hey Vaibhav,

    I made a mistake in my response yesterday. I mean EXIT_DEEPSLEEP() command. The command code is correct. (0x000E).

    Keep in mind that DEEPSLEEP() and EXIT_DEEPSLEEP are subcommands. Use of subcommands are explained in section two of the software development guide.

    Also keep in mind that commands are to be sent in little endian format.

    Hope this helps,
    Caleb

  • Hey Caleb,

    I got my issue resolved. Turns out I wasn't treating Control Status as a direct command. I am now getting correct values.

    Thanks for your support.

    Thanks,

    Vaibhav