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.

BQ76972: CRC enable

Part Number: BQ76972

Tool/software:

Hi team

1. If I use BQ76972PFBR not with 02 suffix(datasheet show BQ76972 don't have CRC only 02 have CRC), can I set 0x12 to make device enable CRC? 

2. if reply is Yes above, when I exit config_update mode, MCU should start to send I2C with CRC, right? but if CRC enable configuration doesn't work, how can I know that? because MCU at that time start to send I2C with CRC, not sure if CRC fail or CRC enable configuration fail.

BR

Amber

  • Hello Amber,

    Yes, you can change the comm type to I2C with CRC following the table. When you exit config_update mode, the AFE should start communicating I2C with CRC. You can check the comm lines with a logic analyzer to see if it’s adding the extra CRC byte and see if it’s due to a CRC fail or CRC enable configuration fail. Section 4 I2C With CRC from the Software Development Guide shows an example of it done correctly. You can use also use an online CRC calculator or manually calculate the CRC to determine if the CRC was correctly calculated or not.

    Best Regards,
    Alexis

  • Hi Alexis

    I found SWAP_COMM_MODE() subcommand should be executed after exit config_update mode, is that must?

    And as guide example, I found 0x63 and 0x00 are CRC results, I'd like to know these CRC is sent by BQ76972 or by MCU?

    BR

    Amber

  • Hello Amber,

    If the I2C speed setting is changed while in CONFIG_UPDATE mode, the new speed setting should take effect upon exiting CONFIG_UPDATE mode.

    You would need to use the 0x29e7 SWAP_TO_I2C() subcommand to change the communications interface after changing the Settings:Configuration:Comm Type if you were not entering CONFIG_UPDATE mode to change it. Section 9.2 I2C Communications Subsystem from the technical reference manual explains this in more detail. 


    The CRC results you circled are sent by the MCU. The MCU would send the command and after every data byte, there should be a resulting CRC byte.

    Best Regards,
    Alexis