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.

BQ35100: Programming via bqStudio bricks device

Part Number: BQ35100
Other Parts Discussed in Thread: BQSTUDIO, EV2400,

I've run into a problem with the bqStudio programming window. When programming a new device with a known good/verified functional golden image, the following procedure has bricked several devices in a row: 

1. power on device and connect ev2400 comms adapter and connect to bqstudio

2. unseal full access

3. read data memory to ensure full access command worked 

4. go to programming window and browse to golden image file

5. press program and wait for green check mark. 

6. after green check mark appears, I click back to the register or data memory windows to check the device is functional and the settings were programmed correctly. after a few seconds, the auto-update window on the left side of bqstudio goes grey, indicating comms are no longer working. this state is unrecoverable, and the device will no longer communicate. 

any ideas what I am doing wrong? how is it that bqstudio is able to put the device into an unrecoverable state? 

  • Please make sure that the gauge actually executes the new FW. After programming has completed, click the "Execute FW" button or power cycle the gauge.

    If this doesn't start the gauge, please try to re-program the image.

  • I'm unable to re-program the gauge, as the communications with the gauge are not working properly after this sequence, including after (several) power cycles. Without the communications operational, gauge programming via bqstudio is not possible. 

  • Which format are you using? .srec, .bq.fs or .df.fs?

    If it's .srec or .bq.fs, then this will program instruction and data flash so this is a complete FW and configuration update with the non-zero probability of bricking the gauge if the power to the gauge browns out when the gauge erases/writes to flash memory. The gauge has several safe-guards to prevent corrupted FW but like with any flash based FW update (not just TI gauge), it's critical that this process isn't disturbed.

    In most cases, the gauge will not launch the FW, if it is not valid. Instead, it will execute a program that is stored in ROM than bqStudio can use to program the FW again. The gauge won't respond on its regular I2C address, hence bqStudio will not auto-detect the gauge. This doesn't meant that bqStudio can't program the gauge. It means that you will have to select the bq35100 from the initial dialog box that bqStudio will display when it can't detect the EVM/gauge.

    Then you should be able to program the FW again with bqStudio.

    If this doesn't work then the gauge got bricked (most likely because a flash row was erased when power browned out). TI did of course validate that the FW update process works reliably so if this fails on your side then chances are that something is violating the specifications of the gauge in your setup, like temporary loss of power,  or that the gauge is defective. Please make sure that the power supply to the gauge is adequate so that the voltage doesn't brown out during a FW update.

    Even when only using .df.fs files, if power cuts out during a flash update, it's possible that the gauge will become non-responsive if critical parameters are out of range.

    How are you powering the gauge during an update?

  • We're using an .srec generated by bqStudio. 

    I have tried manually selecting the bq35100 when opening bqstudio when auto-detect fails; however, I'm still unable to program the device, indicating is likely really is bricked. 

    It is certainly not due to power brown-out during programming - we're powering the gauge from an external benchtop dc supply set to 3.3V on the REGIN pin. 

  • It's not possible for me to tell exactly why the gauge gets bricked in your setup. I recommend using the .df.fs file instead. It only contains the configuration so this will both program quicker and it will remove the risk of updating the instruction flash (which isn't necessary anyways because the FW pre-programmed by TI will most likely match).

    If you don't have the .df.fs file, you can export it in bqStudio from a successfully programmed gauge with "Golden Image". This can export all three versions:

    .srec (FW+configuration, address + data info; requires bqStudio to translate into bus commands for the gauge)

    .bq.fs (FW+configuration, already in the form of bus commands for the gauge)

    .df.fs (configuration only)