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.

Programming a DFI file in the DATA FLASH of a BQ27500

Other Parts Discussed in Thread: BQ27500, BQ27350

Hi

I am trying to program a DFI file in a BQ27500 DATA flash:

 

1) the DFI contains 1kbytes + 1 byte while the procedure (slua449) refers to 32 pages of programming. What happens to that last byte on address x400

2) Can anyone send me the "Flashstream" application to generate dffs and bqfs files

3) I lost communication with the device both on address AA and address 16 after the Mass Erase command. Does that mean I cannot recover the device and I have to use a new one.

4) Is there a way to read back the programmed data byte by byte. SLUA449 does not mention anything about reading back and saving a DFI file.

 

You prompt response is appreciated.

Thanks

  • Mohamed,

    1) The last byte is a terminator and is not a part of the actual image.  The DFI is 1kbyte total.

    2) Yes, I will contact you directly.

    3) If you program an image for the wrong firmware or if the programming is corrupted, then the gauge will not boot and it will be unrecoverable.  If you erase the Data flash and reset the part, this will have the same effect.  Do not reset the part if at all possible until you have successfully reprogrammed the data, as this may cause this issue.  However, the flashstream program takes precautions to prevent the part from locking up if there is a power failure or reset during this time.  This protection process is outlined on page 9 and 11 of SLUA449d.

    4) Yes, it is documented in: SLUA440 ( http://www.ti.com/litv/pdf/slua440 )

    Let me know if this helps,

    Charles

  • Thanks Charles for the reply. See my comments below.

    1) Thanks. that 's what I was expecting.

    2) Thanks. got it. will thinker with it and compare it to my application.

    3) Thanks. It explains the behaviour I was witnessing.

    4) I tried the procedure slua440 both for reading and writing DFI. Doesn't work. Both flowcharts refer to PN:BQ27350 with DFI size of x6C0 although the document title is referring to BQ27500.

    When I implemented the reading flowchart, I got exactly the same data on every page of the BQ27500 32 DFI pages. See below:

    80 00 20 04 80 00 00 00 00 FF C3 00 00 B4 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00

     

    Although my application is running the slua449d flowchart successfully to program DFI. I still need to read back my data byte by byte. Your help is appreciated.

  • OK,

    I've looked into it, and I believe that the flow in the application note needs to be updated.  Please use the following instead (it is almost the same, but with slightly different register values and an extra command)

     

    Note that all word writes are in the order LSB, MSB (byte reversed)

    Let me know if this helps,

    Charles

     

  • Hello,

    Can you please explain what you mean with "Write checksum to 0x64-0x65" and

    "checksum based on all data in registers (0x00-0x04) ..."

     

    I have managed to read out FW version, but it seems I have wrong checksum because I read out only zeros when reading out the 32 bytes with command 0x05.

    I have alse read in this forum that 2 different I2C addresses are being used. Where can I read about that?

    Best regards

    Jens