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-G3: DFI flash flow during production

Part Number: BQ27510-G3
Other Parts Discussed in Thread: BQSTUDIO, BQ27510, BQ27510EVM, BQ24040, BQEVSW

Hi everyone,

I'm currently preparing the necessary steps for flashing the bq27510-g3 during production. We want to flash the derived DFI file from future learning cycles with our microcontroller and I've let bqstudio create an example df.fs file from the current configuration on the IC just to have a look. The contents seem pretty straight forward, however, while looking at the flowchart in figure 9 of slua449f, I'm under the impression that the process there does not really portray the commands in the data image file. Am I missing something here? Some clarification is highly appreciated!

Best regards

  • So I've followed the brand new app note SLUA801 to flash an example df.fs file I extracted from a gas gauge previously to see if my code works. The process seems work in principle, yet I get three errors while comparing data in flash. Despite this, the flash process finishes and ROM mode is exited. Afterwards, I can communicate just fine with the IC. I attached my file and listed the error causing lines below. Is there any explanation on why this is happening?

    C: 16 04 B4 DB CB 95   (37)
    C: 16 04 B4 DB CB 95   (179)
    C: 16 04 09 30 A1 95     (188)

    ;--------------------------------------------------------
    ;Verify Existing Firmware Version
    ;--------------------------------------------------------
    W: AA 00 01 00
    C: AA 00 10 05
    W: AA 00 02 00
    C: AA 00 00 04
    ;--------------------------------------------------------
    ;Unseal device
    ;--------------------------------------------------------
    W: AA 00 14 04
    W: AA 00 72 36
    W: AA 00 FF FF
    W: AA 00 FF FF
    X: 1000
    ;--------------------------------------------------------
    ;Go To ROM Mode
    ;--------------------------------------------------------
    W: AA 00 00 0F
    X: 1000
    W: 16 00 03 00 00
    W: 16 64 03 00
    X: 20
    C: 16 66 00
    W: 16 00 02 00 00 00 EA FF 33 24 FA 33 B8 FA 33 3D FE 33 45 FE 33 FF FF 3F 10 05 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F 00 04 3F 58 CB 33 DB 00 08 00 00 00 00 00 00 FF AA 0E FB A7 0E FF A6 0E FF A1 0E FF A0 0E FE A3 0E 77 A2 0E D2 FF 3A FF A1 0E 66 A0 0E FF A3 0E
    W: 16 64 F3 32
    X: 2
    C: 16 66 00
    W: 16 00 02 01 00 00 64 A2 0E BD A5 0E 2F A4 0E CA FF 3A FE A1 0E 77 A0 0E FE A3 0E 77 A2 0E CA FF 3A C2 FF 3A D6 FF 33 FF AF 0E 01 4F 03 3F 11 0C CD FF 30 D4 FF 35 2F 10 0C D4 FF 35 FF FF 23 01 AF 14 01 4F 03 3F 11 0C C5 FF 30 CC FF 35 2F 10 0C CC FF 35 FF FF 23 FF DF 0B C4 FF 33 60 F6 39 FE AF 16 C1 AB 0E
    W: 16 64 7A 2E
    X: 2
    C: 16 66 00
    W: 16 00 05
    W: 16 64 05 00
    X: 170
    C: 16 66 00
    C: 16 04 B4 DB CB 95
    W: 16 00 0C 00 00 00 83 DE
    W: 16 64 6D 01
    X: 400
    C: 16 66 00
    W: 16 00 0A 00 00 00 7F 74 1F 21 94 0A 9C 08 FA 8B 00 4C 00 00 00 00 D4 86 4A C6 B4 C2 6E 2B 03 7C 01 48 FD A3 F6 75
    W: 16 64 9C 0C
    X: 2
    C: 16 66 00
    W: 16 00 0A 01 00 00 12 58 2D B7 2C 4A 00 00 00 00 CF DC 17 F3 00 00 17 F3 05 DC 0A 64 D8 00 00 3A 36 FD 91 00 25 30
    W: 16 64 08 0A
    X: 2
    C: 16 66 00
    W: 16 00 0A 02 00 00 01 00 EF 05 11 05 01 00 00 10 01 00 3C 00 50 3C 00 64 3C 00 20 00 00 03 E8 00 00 00 03 E8 00 00
    W: 16 64 87 04
    X: 2
    C: 16 66 00
    W: 16 00 0A 03 00 00 00 FE D5 FB 95 00 02 02 BC 00 14 03 E8 10 65 10 68 01 01 02 BC 01 2C 00 1E 00 C8 C8 14 10 00 3C
    W: 16 64 17 09
    X: 2
    C: 16 66 00
    W: 16 00 0A 04 00 00 0E 10 00 0A 46 05 0F 07 0F 03 20 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 25 5A 0F 14 60 6E 0C
    W: 16 64 E4 05
    X: 2
    C: 16 66 00
    W: 16 00 0A 05 00 00 80 00 C8 28 01 F4 00 00 00 00 00 00 00 00 00 10 68 80 04 00 00 01 14 00 2C 05 00 0A 13 88 00 C8
    W: 16 64 23 05
    X: 2
    C: 16 66 00
    W: 16 00 0A 06 00 00 0A 02 01 00 03 E8 00 10 5B E0 E3 E7 E9 E9 EA EC ED EF EF F1 F0 F1 ED EC EE F1 F4 F4 F7 F8 FA FA
    W: 16 64 E5 16
    X: 2
    C: 16 66 00
    W: 16 00 0A 07 00 00 FB FD FD FD FA F7 F5 F5 F3 F2 EE F1 F0 F2 DE 83 00 EB 61 04 F9 0A E8 FF 00 F3 1F 38 F2 9F 40 F6
    W: 16 64 30 17
    X: 2
    C: 16 66 00
    W: 16 00 0A 08 00 00 FF 80 F7 6F 5E F3 9F 25 F2 1F 39 FA 5F F2 FE 5F FF FE DF E6 FD DF C5 FA CF 8D F6 AF 16 E5 CC 14
    W: 16 64 37 16
    X: 2
    C: 16 66 00
    W: 16 00 0A 09 00 00 AD 2A 87 A8 4A 9B AC FA D4 BD 2C 01 B4 05 62 00 03 C2 FF 55 00 29 00 02 FC 00 FE 02 06 07 05 08
    W: 16 64 D7 0B
    X: 2
    C: 16 66 00
    W: 16 00 0A 0A 00 00 0F 1E 36 57 73 00 00 FF 7D 00 FF 1A 0B 02 FB F4 F1 FB F5 F1 E7 D8 DF 03 00 00 FF 7D 00 FF 1A 0B
    W: 16 64 E5 0E
    X: 2
    C: 16 66 00
    W: 16 00 0A 0B 00 00 02 FB F4 F1 FB F5 F1 E7 D8 DF 03 01 00 03 E8 00 10 5B E0 E3 E7 E9 E9 EA EC ED EF EF F1 F0 F1 ED
    W: 16 64 AC 16
    X: 2
    C: 16 66 00
    W: 16 00 0A 0C 00 00 EC EE F1 F4 F4 F7 F8 FA FA FB FD FD FD FA F7 F5 F5 F3 F2 EE F1 F0 F2 DE 83 00 EB 61 04 F9 0A E8
    W: 16 64 BB 1A
    X: 2
    C: 16 66 00
    W: 16 00 0A 0D 00 00 FF 00 F3 1F 38 F2 9F 40 F6 FF 80 F7 6F 5E F3 9F 25 F2 1F 39 FA 5F F2 FE 5F FF FE DF E6 FD DF C5
    W: 16 64 76 15
    X: 2
    C: 16 66 00
    W: 16 00 0A 0E 00 00 FA CF 8D F6 AF 16 E5 CC 14 AD 2A 87 A8 4A 9B AC FA D4 BD 2C 01 B4 05 62 00 03 C2 FF 55 00 29 00
    W: 16 64 9A 0F
    X: 2
    C: 16 66 00
    W: 16 00 0A 0F 00 00 02 FC 00 FE 02 06 07 05 08 0F 1E 36 57 73 00 00 FF 7D 00 FF 1A 0B 02 FB F4 F1 FB F5 F1 E7 D8 DF
    W: 16 64 5F 0E
    X: 2
    C: 16 66 00
    W: 16 00 0A 10 00 00 03 00 00 FF 7D 00 FF 1A 0B 02 FB F4 F1 FB F5 F1 E7 D8 DF 03 00 00 01 C2 00 1E 00 C8 10 68 00 32
    W: 16 64 74 0D
    X: 2
    C: 16 66 00
    W: 16 00 0A 11 00 00 FF CE 02 26 00 00 00 64 00 19 00 64 28 63 5F FF 62 00 32 49 71 04 2E 00 6E 14 01 04 00 00 4E 0C
    W: 16 64 3B 07
    X: 2
    C: 16 66 00
    W: 16 00 0A 12 00 00 5E 02 09 04 00 00 14 0A F0 0B B8 00 0A 05 00 32 01 C2 14 14 00 08 09 F6 00 3C 00 4B 00 28 00 3C
    W: 16 64 78 05
    X: 2
    C: 16 66 00
    W: 16 00 0A 13 00 00 3C 01 80 80 01 90 36 72 04 14 FF FF FF FF 02 26 02 01 F4 02 58 02 02 26 00 00 00 D3 62 81 E8 00
    W: 16 64 E8 0A
    X: 2
    C: 16 66 00
    W: 16 00 0A 14 00 00 00 64 01 B0 F6 FE 0C 03 84 5A 03 20 01 FE 70 0B A6 0A 62 71 32 37 35 31 30 2D 47 33 00 00 0A 0C
    W: 16 64 F0 08
    X: 2
    C: 16 66 00
    W: 16 00 0A 15 00 00 02 04 32 0C 4E 02 0D 48 00 00 00 00 FE D5 FB 95 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    W: 16 64 6B 04
    X: 2
    C: 16 66 00
    W: 16 00 0A 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    W: 16 64 11 0F
    X: 2
    C: 16 66 00
    W: 16 00 0A 17 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    W: 16 64 01 20
    X: 2
    C: 16 66 00
    W: 16 00 0A 18 00 00 FF 55 00 29 00 02 FC 00 FE 02 06 07 05 08 0F 1E 36 57 73 00 00 00 00 00 00 00 00 00 00 00 00 00
    W: 16 64 E4 04
    X: 2
    C: 16 66 00
    W: 16 00 0A 19 00 00 FF 55 00 29 00 02 FC 00 FE 02 06 07 05 08 0F 1E 36 57 73 00 00 00 00 00 00 00 00 00 00 00 00 00
    W: 16 64 E5 04
    X: 2
    C: 16 66 00
    W: 16 00 0A 1A 00 00 FF FF 00 29 00 02 FC 00 FE 02 06 07 05 08 0F 1E 36 57 73 00 00 00 00 00 00 00 00 00 00 00 00 00
    W: 16 64 90 05
    X: 2
    C: 16 66 00
    W: 16 00 0A 1B 00 00 FF FF 00 29 00 02 FC 00 FE 02 06 07 05 08 0F 1E 36 57 73 00 00 00 00 00 00 00 00 00 00 00 00 00
    W: 16 64 91 05
    X: 2
    C: 16 66 00
    W: 16 00 0A 1C 00 00 5E 02 09 04 00 00 14 0A F0 0B B8 00 0A 05 00 32 01 C2 14 14 00 08 09 F6 00 3C 00 4B 00 BD 55 09
    W: 16 64 39 06
    X: 2
    C: 16 66 00
    W: 16 00 0A 1D 00 00 3C 01 80 80 01 90 36 72 04 14 FF FF FF FF 02 26 02 01 F4 02 58 02 02 26 00 00 00 D3 62 81 E8 00
    W: 16 64 F2 0A
    X: 2
    C: 16 66 00
    W: 16 00 0A 1E 00 00 FF FF FF FF 00 00 02 FA FF FF FD 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    W: 16 64 0B 1C
    X: 2
    C: 16 66 00
    W: 16 00 0A 1F 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    W: 16 64 09 20
    X: 2
    C: 16 66 00
    W: 16 00 08
    W: 16 64 08 00
    X: 2
    C: 16 66 00
    C: 16 04 9C B3
    W: 16 00 05
    W: 16 64 05 00
    X: 170
    C: 16 66 00
    C: 16 04 B4 DB CB 95
    W: 16 00 01 00 00 05 54 54 15
    W: 16 64 C3 00
    X: 20
    C: 16 66 00
    W: 16 00 05
    W: 16 64 05 00
    X: 170
    C: 16 66 00
    C: 16 04 09 30 A1 95
    ;--------------------------------------------------------
    ;Execute Flash Code
    ;--------------------------------------------------------
    W: 16 00 0F
    W: 16 64 0F 00
    X: 4000
    

  • I just tried flashing the df.fs file with bqstudio which also broke at the 37th line of the file.
  • I'll try to find out what's wrong with this df.fs file and will update this thread when I have this info.
  • Please attach a .srec file. I need that to check several settings.

  • Hi Dominik,

    I attached the corresponding .srec file and renamed it as .txt since the tool wouldn't allow me to upload as .srec . Thanks so much in advance!

    1261.0510_4_00-bq27510G3_srec.txt

  • This srec doesn't work on my bq27510 EVM.

    Please perform the following steps on your bq27510:

    1. save the configuration in a .gg.csv file using the Data Memory, Export function

    2. program your bq27510 with the attached .srec

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/5633.bq27510_2D00_G3_5F00_4_5F00_00.srec

    3. restore the configuration

    4. program your ChemID

    5. export the .df.fs file

  • I followed your advice and flashed the .srec file which you provided. The transfer seemed to work but when I press execute firmware I just get "Failed to execute Firmware - No acknowledge from device." Despite this, the regular commands work fine and I could write my settings back to the gauge, the device is in full access mode. Which firmware is running if the firmware execution is not successful?

    When I try to extract the image from the gas gauge, the process finishes with a success prompt, however I get red warning messages "ROM Command results returned invalid checksum." Any ideas?

    For more information, I'm running Windows 7 64 bit and bqStudio 1.3.54 with an EV2300 debugger 3.1c and a BQ27510EVM.

    Thanks!

  • hi Johannes,

    I see what your problem is. You need to update the firmware on your ev2300. You are using a really old version "3.1c"  and that has been know to cause issues when programming. You should update to either 3.1 m or 3.1r.

    See attached updater. You will need two ev2300 to do this.

    8865.ev2300updater.zip

    thanks

    Onyx

  • Thanks for your reply Onyx, I've ordered a second EV2300 unit and will update the firmware once it has arrived and try again then.

    In the meantime, I have one more question:

    In our design, we use a BQ27510-G3 in conjunction with a BQ24040 charger IC, they are connected by GPOUT -> TS. When the battery pack passes a certain threshold, charging is initiated until the battery is fully charged (I understand this is the BAT_LOW function specified by SOC1 Thresholds?). We want to avoid immediate charging when the battery is still reasonably charged in order to prevent ageing the battery unnecessarily. In addition, charging shall be interrupted once leaving a certain temperature window (configured by Chg Inhibit Temp Low/High and Temp Hys).

    I'm a bit confused by the default values of SOC1 Set and Clear Thresholds, where it says 10 and 12 percent, respectively. Wouldn't this result in a charging loop started once the battery's soc is lower than 10% until 12% is reached, from where it would repeat again? Is it reasonable to set SOC1 Set to f.e. 70% and SOC1 Clear to 99% or something like that to realize above scenario? Or where is the mistake in my train of thought?

    Thanks a bunch for your continued help!

  • SOC1 set threshold is for discharging.. when the soc falls below this threshold while discharging the gauge alerts.
    thanks
    Onyx
  • The second EV2300 has arrived and I tried updating its firmware with the files you provided. However, I'm confronted with a runtime error. You guys have a clue what's the issue here? I appended a screenshot:

    In the meantime I did a couple of learning cycles and got some updates in the Ra table view. Nevertheless, I was surprised to see the update status turn to 0x02 after the charging phase, shouldn't this be 0x01 instead?! All I did was hook up a fully relaxed battery with an OCV of around 3150 mV and checked if the chem id was correct. RUP_DIS cleared almost immediately and I started charging with C/2 = ~0.3A (740mAh cell) while QEN was set until I reached the 4.2V charging voltage. I finished the learning cycle by discharging the battery back to low, regardless of this update status issue. This happend three times now. Something I'm doing wrong or can this happen?

    Thanks in advance.

  • hi Johannes.

    Given you say you had resistance updates occurred, it is possible to see update status go to 02. The purpose of sending the reset command before starting  the initial first discharge is to prevent resistance updates during that first discharge. it is preferable to have qmax updates first occurring before resistance updates because the gauge uses the qmax to calculate resistance. However, if the initial resistance update that occurred isn't correct, the gauge would update the values during the subsequent  discharge cycle. What is the capacity of your battery and what did the qmax value update to? I would recommend carrying out an accuracy test to ensure the gauge is accurate with this qmax the gauge updated to.

    For the ev2300 issue, i recommend trying out a different computer and make sure to run the program as an administrator.

    tthanks

    Onyx

  • Thanks for the reply. The battery has a nominal capacity of 740 mAh, Qmax updated to 814 mAh for all cycles I did. Bit surprised there is no variance in between the batteries. I did the initial discharge of the battery without the gas gauge connected so there wouldn't be resistance updates anyway. I'll do an accuracy test, thanks for suggesting.

    For the ev2300, I'll try to find another machine and repeat it there.

  • I repeated the update process on another machine, which resulted in a different error message. Anything else I can do? Would be nice to have a solution to this. Thanks!

  • Hi. Johannes,
    Pls install bqEVSW for the device and also install the drivers for the EV2300 as an administrator.. Between these two install the ocx file should be installed.
    thanks
    Onyx