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.

BQ27510 device is not come out from the ROM mode

Other Parts Discussed in Thread: BQ27510, BQ27510-G3, BQSTUDIO, BQ27541, BQ27500

Hi SIr /  Madam ,

This is vengad here from Avnet , one of my customer has completed the BQ27510 Fuel gauge proto board for Medical applcaition .They need to do command line approach to program the fuel guage. While trying the programming as per the apps note , they are  not able to come out of ROM mode in the end . They used below sequences to Enter ROM mode and exit from ROM mode in single program.

//Write sequence for ROM mode Entry

                msg->i2cspladdr = 0x55;         // Device Address

                msg->cmdreg = 0x00;                                                     // Device register address (0x00 and 0x01)

                msg->datalen = 2;

                msg->data[0] = 0x00;

                msg->data[1] = 0x0F;

               

                Delay 1000ms

               

//Write sequence for ROM Mode Exit

 

                msg->i2cspladdr = 0x0B;         // Device Address

                msg->cmdreg = 0x00;                                                     // Device register address

                msg->datalen = 1;

                msg->data[0] = 0x0F;

               

                msg->i2cspladdr = 0x0B;         // Device Address

                msg->cmdreg = 0x64;                                                     // Device register address  (0x64 and 0x65)

                msg->datalen = 2;

                msg->data[0] = 0x0F;

                msg->data[1] = 0x00;

                Delay 4000ms

    Aftter ROM Mode exit sequence, the device is not come out from the ROM mode (the device address is still 0x0B), Can you please help with any support to come out from this issue?

 Regards.

Vengad

  • Hi Sir / Madam ,

    could please reply on below query please .

    regards/.

    vengad

  • There are two methods we recommend for programming the fuel gauge.

    The first is to code the flowcharts from SLUA449.

    The second is to use the Flashstream method by generating an I2C script file as discussed in SLUA541.  You can find the Flashstream bundle in the Files under my user profile, including the DOS utility for converting SENC files to .dffs/.bqfs.  New GUIs like GaugeStudio (for bq27510-G3, for example) or bqStudio (aka Battery Management Studio) usually contain plugins that will export flashstream files for you.

    If you follow either of these, you should not end up stuck in ROM mode.

    SLUA449
  • Try using this sequence:

    //Write sequence for ROM Mode Exit

     

                    msg->i2cspladdr = 0x0B;         // Device Address

                    msg->cmdreg = 0x00;                                                     // Device register address

                    msg->datalen = 2;

                    msg->data[0] = 0x0F;

                    msg->data[1] = 0x00; 

                   

                    msg->i2cspladdr = 0x0B;         // Device Address

                    msg->cmdreg = 0x64;                                                     // Device register address  (0x64 and 0x65)

                    msg->datalen = 2;

                    msg->data[0] = 0x0F;

                    msg->data[1] = 0x00;

                    Delay 4000ms

  • Hi Max,

    We would also like to program golden image to fuel gauge using our own software. As you said, we followed "slua449f" DFI write flow for programming our fuel gauge bq27541 firmware version 2.24.


    During the process, we also ended up stucking in rom mode and not able to exit. This happened with 3 of our boards.

    - Initially, read instruction flash flow was ok, but on erase instruction flash flow, the i2c transaction was not returning on sending cmd for "checksum for completing erase command. But we were able to exit from rom mode using commands and try again.


    - Then Misguided with production flow for bq27500/1, we modified the flow for erase instruction flash as specified in the below mentioned code, then we were able to complete read and erase instruction flash, DFI write, but got stuck in the reprogram IF flow, where after writing 1st row, on writing 0th row, got hang on i2c transaction on writing checksum msb. Then we were not at able to exit from rom mode using those cmds.

    https://github.com/buglabs/bq27500-update/blob/master/bqupdate.ce


    Max, we would like to know during such situation is there any other way to recover the devices from rom mode.


    Any help on getting the DFI flashed with golden image will be much more appreciated.

    Much more thanks in advance,

    Dhiv

  • Hello,

    I have the same issue as mentioned above... cannot exit in ROM Mode!

    Device: BQ27541_V200

    Programming language used: Labview

    I followed the every step mentioned on SLUA504A (page 9 to 11).

    DFI Checksum were verified correct after writing.

    Is there any command need to send along with the 0x0F to 0x00” , “0x0F to 0x64” and “0x00 to 0x65”?

  • No command. See sequence below to exit ROM mode:

    000f data to register 00 and i2c address aa puts the device in ROM mode.

    0f00 to address 00, i2c address 0x16 and 0f00 to address 64, i2c address 0x16 Exits Rom mode.  See below snippet.

    -Onyx