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.

BQ40Z50: SMBus block write protocol to recover data flash (0x4000) default value.

Part Number: BQ40Z50
Other Parts Discussed in Thread: BQSTUDIO

Hi experts,

I try to be familar with BQ40Z50 by SMbus block protocol.  Write data flash address 0x4000 with value (0x0555), the default value is (0x2f45). later on, the system can't work normally. The report voltage only is 1/11 of real voltage. 

i want to recover data flash address 0x4000 default value but fail.  The bq40z50 can read and write by SMbus word protocol. It also can read 0x4000 (data flash) by SMbus block read protocol. (1. block wirte   (44+02+00+40) ,02 means length)  2. block read (0555400022).)   

i don't konw if the bq40z50 was broken (trigger protections) or sent error command.  the command is 0x44+ 04+40000+2F45. 0X04 is byte length of 0x4000 and 0x2F45. All are little endian. and data sequence can be viewed right on oscilloscope. Meanwhile, PFStatus() [DFW] value is zero and PEC is disabled. 

 

Thank you for your helps.

  • Hello,

    If you accidentally modified the voltage calibration the gauge may not be able to update flash due to low voltage, are you able to upload the original .srec file to the gauge to get back to factory defaults?

    Sincerely,

    Wyatt Keller

  • Hi  Wyatt Keller,

    Thank you for your helps.  I don't have original .srec. Meanwhile, we tested the guague by our I2C tool with 0x16 slave address. we don't have TI tool. 

    Any other suggestions ? 

    regards,

    zhou zhou  

  • Hi  Wyatt Keller,

    Thank you for your helps.  I don't have original .srec. Meanwhile, we tested the guague by MCU I2C interface. 

    Any other suggestions  in this case? 

    regards,

    zhou zhou  

  • Zhou,

    There are lots of reasons you would not be able to update the flash. 

    1) Voltage reads below the [Valid Update Ok voltage level]

    2) There is a PF (any PF will block)

    3) There is corruption in the device

    Address 0x4000 does happen to be within the calibration block so writing this value is a very bad idea since it will most likely put you below the valid update ok voltage. At this point i suggest trying to connect the device to the bqStudio toolset to get a view at all the registers. Then see if you can use bqStudio and update DF. 

    Thanks,

    Eric Vos