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.

BQ27621-G1: Unable to Write 0x01 to 0x3F address to access second 32 registers.

Part Number: BQ27621-G1

To access the second 32 Registers of Subclass ID: 82, we must write 0x01 in 0x3F.

But I am unable to write the same on the flash. It is giving an error saying that it cannot write.

Could you pls help me how to access the registers above 32 using 0x3F?

  • Hi Jayanth,

    Can you please confirm that the gauge is unsealed in this state?

    The Quick Start Guide for the bq27621-G1 also has resources and examples of 0x3F being used in this fashion:

    Regards,

    Anthony Baldino

  • Hi Anthony,

    I have followed the above flowchart to access the memory and flash the values on it. Also made sure that the gauge has remained unsealed during this process.

    I am able to send 0x00 to the register 0x3F (Data Block Reg) for all the subclass IDs i.e. from 0x02 to 0x70 (112 in decimal). But it is failing to write 0x01 or 0x02 to the register 0x3F and thus am not able to access registers above 32.

    Could you guide me through this so that I can access all the registers that have offsets above 32 in the subclass like 0x52 and 0x50.

    Because the rate at which the battery is charging is not the rate at which it is discharging.

    Regards

    Jayanth S

  • Hi Jayanth,

    Can you please send me an example of the code that is being used to accomplish this?

    I am under the assumption it follows the same script below and is failing at step 6:

    Regards,

    Anthony Baldino

  • Dear Anthony,

    Yes. Though I am following the above sequence mentioned by you, it is failing at step 6. I am getting an error message like this:

    As you can see from the above SS:

    1. I am able to access and write 0x50 to the address 0x3E.

    2. For the Subclass of 0x50, I am able to write 0x00 to the address 0x3F to choose the First 32 data blocks

    3. When I want to access the second set of Data Blocks i.e. register offsets above 32, I am unable to, as it is failing to write 0x01 to 0x3F address.

    Kindy guide for further actions.

    Regards

    Jayanth S

  • Hi Jayanth,

    I believe that this E2E thread below can help this issue.

    https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/660728/bq27621-g1-strange-data-from-subclass-id-82 

    Seen in this E2E thread, I believe the address count restarts based on the error you are receiving (failed to write to register 96) since you might be trying to access registers higher than the allotted 0x40 to 0x5F. Can you confirm if you are trying to write to register 96?

    Regards,

    Anthony Baldino