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: Subcommand completion check

Part Number: BQ76952

Hi all,

I am creating a driver for the BQ76952 BMS chip and I have a question about the subcommand read process. From the TRM, it says: Read 0x3E and 0x3F. If this returns 0xFF, this indicates the subcommand has not completed operation yet.

I was planning on polling the read back register and checking if !0xFF to know when the subcommand has been completed, but was confused about what register to check for 0xFF. Are they talking about checking the read buffer starting address of 0x40 to see if the subcommand has completed?

Thanks for the assistance.

Sincerely,

Kyle Garland

  • Hi Kyle,

    Most of the subcommands take around 500-600us to execute, but this timing can vary depending on what is being executed in firmware. There are a couple of options that work well when using subcommands:

    1) Poll from 0x3E and 0x3F. When you read back the value that was written (subcommand number), then the subcommand has completed and the correct data is available at 0x40. (Do not poll 0x40 - I think this might delay the subcommand from completing execution).

    2) Wait a set amount of time after sending 0x3E before reading from 0x40. Many users have reported that using a standard 2ms wait time works very well. This gives plenty of margin if the subcommand takes longer to complete. 

    There are also command-only subcommands. For these, I recommend just waiting 2ms because I do not think polling 0x3E/0x3F works the same way.

    Best regards,

    Matt