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.

BQ34110: Problem with Golden image generated with BQStudio

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

Hi,

I've generated a golden image of all the BQ34110 parameters, to be able to program it with a microcontroller.

After inspecting the generated files, it seems that the I2C address of the device is not good (0x16 vs 0xAA).

Also, I would like to know the difference between a BQFS file and a DFFS file? Do I need to program the BQ with both files?

Thank you

Michael

  • The bq34110 uses I2C address AA when operating in Normal mode and address 16 when in ROM mode. The gauge must be in ROM mode to program the flash with either the bqfs or the dffs file and these files contain the commands to do this. The bqfs file contains the full flash memory, including the instruction flash, where the dffs just contains the data flash. You should use the dffs file as it will program faster.
  • OK,

    Thank you for your quick response!

    Michael
  • I'm trying to program the BQ34110 with a microcontroller without success. After inspecting the files generated with BQ Studio, I'm seeing that when we are supposed to verify  the checksum ex: C: 16 66 00 the register address is not good (0x66 instead of 0x60 for the BQ34110).

    I could change these addresses in the file but I don't know if there is more mistakes in the file...

    I can't attach the file, so I've pasted some lines.

    I'm using the latest version of BQ Studio to generate the file and BQ Studio detect that I'm using a BQ34110.

    Thank you

    Michael

    ;--------------------------------------------------------
    ;Verify Existing Firmware Version
    ;--------------------------------------------------------
    W: AA 3E 02 00
    C: AA 3E 02 00 FF A5 FF A5
    ;--------------------------------------------------------
    ;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 E2 FF 33 7B C3 33 33 C3 33 58 C3 33 8D C3 33 FF FF 3F 10 01 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 FF FF 3F FF FF 3F 01 01 3D 10 01 3D 02 00 3D 09 00 3D 0A 00 3D 00 00 3D 00 00 3D 00 00 3D 35 80 3D 11 02 3D 49 00 3D 20 2A 0E DF FA 0E E2 FF 32
    W: 16 64 98 2A
    X: 2
    C: 16 66 00
    W: 16 00 02 01 00 00 FF AA 0E FB A7 0E FF A6 0E 8D E3 3A 7E C3 3A FF 1C 0E C7 FF 36 FF A1 0E FF A0 0E FE A3 0E 3E A2 0E C2 FF 3A FF A1 0E 30 A0 0E FF A3 0E 30 A2 0E BF A5 0E 26 A4 0E BB FF 3A FE A1 0E 3E A0 0E FE A3 0E 3E A2 0E BB FF 3A 7F C3 3A 9E FF 3A E2 FF 33 FF AF 0E 01 4F 03 3F 11 0C BF FF 32 2F 10 0C
    W: 16 64 EB 2D
    X: 2
    C: 16 66 00
    W: 16 00 05
    W: 16 64 05 00
    X: 170
    C: 16 66 00
    C: 16 04 46 8B 55 A2

  • Hi Michael,
    Are you able to program the extracted flashstream file back on the gauge using bqstudio? if you are able to program, there is nothing wit the file.

    thanks
    Onyx
  • I have tried it doesn't work:

    "Error parsing data in line 5 : Read compare error in line 5"

    It's the same mistake that I have when trying to program it with the microcontroller...
  • I'm now unable to use the evaluation module.

    Can't have access to it with BQ Studio anymore...
  • I regain access to it using the execute firmware button but I can't program the device with de .df.fs file...
  • Hi Michael,

    Did you get the dffs from bqstudio or your tool? If bqstudio, then it means I have to bring this up with our tools team. Pls let me know

    In the meanwhile see if changing the 66 to 60 helps correct the problem.

    thanks
    Onyx
  • I get the dffs from bqstudio

    I will try the switch from 66 to 60 but the write to register 64 happen very often and it is the register for EOSLearsStatus...

    I think It's supposed to be the MacData register at 0x40...

    I will wait for your news

    thank you

    Michael
  • register 0x60 instead of 0x66 doesn't work
  • I have sent this over to our tools team. It appears that the tool for the bq34110 is faulty. I will get back to you once i get feedback
    thanks
    Onyx
  • Hi Michael,

    So i obtained a bq34110 EVM to verify if  indeed the tool is broken. I was able to extract a bqfs file and was able to successfully program it back on my board. That being said the tool is fully functional.

    So here are a few things to try:

    -if you are using ev2400 make sure it is v0.18 or higher. if ev2300, make sure it is v3.1m or 3.1r

    -secondly, make sure you have the v 0110_0_02-bq34110 firmware installed on the gauge. also make sure to copy the bqz folder and place in the config folder of bqstudio. C:\ti\BatteryManagementStudio\config

    the v0_02 firm ware link is below.

    attached is the ev2300 firmware version. You need two ev2300 to perform the update0284.EV23000_876FW Updater.zip

    hope this helps.

    thanks

    Onyx

  • Hi,

    For the production purpose, wow can I upgrade the gauge firmware version when the only way I have on my board to communicate with it is with a microcontroller?

  • Hi Michael,

    You can use a bqfs extracted from a device with the new firmware configured with your settings. The bqfs is a hex file with i2c commands which your uC can parse on the gauge. See attached app note.

    8764.slua541.pdf

    thanks

    Onyx

  • Hi Onyx,

    This is a long and detailed description on the situation to recap all. Please read all informations.

     

    1-

    As discussed, we are using the files generated by BQStudio to program the parameters on our BQ34110 with the microcontroller via I2C and after analyzing the files I suspect there’s some errors in it.

     

    The .dffs file have been generated with the latest version of BQStudio (1.3.54.1_Build1). I would like to send you the df.fs file but I'm not able to attach it. I've put the starting lines at the end.

     

    At the line 5, we have :

     

    C: AA 3E 02 00 FF A5 FF A5, which mean Compare the values starting at register 0x3E with the values 0xFF 0XA5 0XFF and 0X45

    This compare is used to verify if we have the right firmware version.

    The firmware version on our BQ34110 is the latest (0110_0_02), I don’t understand what the values FF A5 FF A5 represent but it’s clearly not the firmware version of the BQ34110…

     

    Our software runs this check, and fails due to mismatch.

     

    Can you confirm this is the version you are expecting us to use?

     

    2-

    If we ignore this mismatch and continue, we get to this line of the df.fs :

     

    The other compare starting at line 22 is used to verify if the checksum value is 0 (successful) or other (unsuccessful), it is explained in the TI forum:

    https://e2e.ti.com/support/power_management/battery_management/f/180/t/447210#pi317195=1

     

    In the .df.fs file, the line 22 C:16 66 00 means that we have to compare the value returned at the register 0x66 with 0, to verify if the checksum is equal to 0 (if the write command before have been executed).

     

    But with the BQ34110 the checksum register address is 0x60 and not 0x66…

     

    This check is made after each write in the file.

     

    You told be that you have tried on your side to program a BQ34110 with files generated with BQStudio (bqfs file but have you tried with a df.fs?) and that it is working but on our side it’s not working. There is clearly something different between our way and your way.

     

    If we could get more details it would help to solve the issue. Maybe, if you can send the df.fs file you used so we can try it.

     

    3-

    With all the debugging we have tried on our boards, the BQ34110 seem to be jam on one of our board. The BQ only works in ROM mode (we cannot any longer get firmware version, nor any other values like voltage, state of charge, on this specific unit). Is there any way to unjam the BMS on that board?

     

    Michael

    *****Starting lines of the .df.fs file generated with BQStudio.

    ;--------------------------------------------------------
    ;Verify Existing Firmware Version
    ;--------------------------------------------------------
    ;W: AA 3E 02 00
    ;C: AA 3E 02 00 FF A5 FF A5
    ;--------------------------------------------------------
    ;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 E2 FF 33 7B C3 33 33 C3 33 58 C3 33 8D C3 33 FF FF 3F 10 01 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 FF FF 3F FF FF 3F 01 01 3D 10 01 3D 02 00 3D 09 00 3D 0A 00 3D 00 00 3D 00 00 3D 00 00 3D 35 80 3D 11 02 3D 49 00 3D 20 2A 0E DF FA 0E E2 FF 32
    W: 16 64 98 2A
    X: 2
    C: 16 66 00
    W: 16 00 02 01 00 00 FF AA 0E FB A7 0E FF A6 0E 8D E3 3A 7E C3 3A FF 1C 0E C7 FF 36 FF A1 0E FF A0 0E FE A3 0E 3E A2 0E C2 FF 3A FF A1 0E 30 A0 0E FF A3 0E 30 A2 0E BF A5 0E 26 A4 0E BB FF 3A FE A1 0E 3E A0 0E FE A3 0E 3E A2 0E BB FF 3A 7F C3 3A 9E FF 3A E2 FF 33 FF AF 0E 01 4F 03 3F 11 0C BF FF 32 2F 10 0C
    W: 16 64 EB 2D
    X: 2
    C: 16 66 00
    W: 16 00 05
    W: 16 64 05 00
    X: 170
    C: 16 66 00
    C: 16 04 46 8B 55 A2
    W: 16 00 0C 00 00 00 83 DE
    W: 16 64 6D 01
    X: 400
    C: 16 66 00

  • Hi Michael,

    I just tried again on my board and i am able to program the dffs file on the gauge. See attached my dffs which i extracted from the gauge.

    I had asked what firmware version do you have on your ev2300 or how are you extracting your dffs file from the device? 

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/0110_5F00_0_5F00_02_2D00_bq34110.df.fs

    thanks

    Onyx

  • The only way I was able to see the firmware version of the EV2300 was with BQStudio but I'm unable to open it anymore. It doesn't recognize my BQ34110EVM-796 board...

  • I've programmed your .dffs file in my controller and was able to "unjam" the bq34110 on our pcb.

    For the file generated with BQStudio I don't understand why it doesn't work...I will try to update the ev2300 firmware...
  • We are using the BQ34110PW in our design and there is a BQ34110PWR on the eval module.

    What is the difference?



    Michael
  • Hi Michael,
    The difference is likely the packaging. There is no hardware or firmware difference.
    With regards to your ev2300, if you are not using v3.1r or 3.1m any srec or bqfs file extracted will be corrupted. Pls always try to address each of the points or questions i ask as that will help us get to a resolution of your problems quicker.

    thanks
    Onyx
  • Thank you Onyx,

    Like I've said before, it's impossible for me right now to tell you the firmware version of the ev2300 since I'm unable to open BQStudio anymore and I don't know other method to check the firmware version.

    Michael
  • Hi Micheal,
    you do not need your board to be functioning to be able to open bqstudio. You can disconnect your EVM, but have the ev2300 connected and you will be able to see what firmware version is on the ev2300.

    if bqstudio isn't opening at all, try uninstalling and then reinstalling it. I hope either of these helps.


    thanks
    Onyx
  • I've skipped the warning (when the device is not detected) and finally been able to open BQStudio.

    The EV2300 firmware is 3.1c.

    Is it possible to install a working version of the firmware without buying a second EV2300?
  • Hi Michael,
    Just like i thought, that is the cause of the problem. Unfortunately, this has been recurring issue since on here on the forums and i am trying to see if our tools team can come up with an alternative solution instead of having to buy another ev2300 to do the update. At the moment, i regret to say that a 2nd ev2300 to perform the update is your only option right now.

    thanks
    Onyx
  • Ok, we have ordered one.

    I will try to regenerate the files with the new ev2300 firmware version and keep you informed if it has resolved the issue or not.

    For the .dffs file that you send to me, like I've said before I have programmed my microcontroller with it and the BQ on my pcb is now working.

    However, I have to execute the update in two sequences or it won't work.

    First, when the BQ is supposed to enter in ROM mode (after line 18 in the .dffs file) it doesn't enter and the command that are targetting the address 0X16 (ROM mode) are causing a I2C error.

    I have to do a hard reset (power cycle) on the BQ34110 and now the device is now in ROM mode and I can resume successfully (restart the parser at line 19) the programming sequence. Do you know what is happening?

    Thank you

    Michael
  • Hi Michael,
    I am not sure why that is happening as bqstudio is able to program the bqfs flawlessly. Try increasing the time in line 18 from X:1000 to 5 sec, i.e X: 5000 let's see if that helps.

    thanks
    Onyx
  • Yes I already tried even 10 sec without success.
  • hi Michael,

    Can you try breaking those lengthy data blocks to a max of 32 bytes per command, i.e line 23 and line 27. I have seen this cause problems before.

    thanks
    Onyx
  • Ok just to be sure that I do it correctly, if I send it in two write commands, I surely have to change the starting register for the second write command?
  • When I've entered in the ROM mode the long write at line 23 and 27 doesn't cause any problem.

    It's when I go from firmware mode to ROM mode (line 17) that I have to do a power cycle to be able to finish the update (i.e writing at address 0x16 without I2C error).
  • Hi Micahel,

    I have broken down the dffs with max of 16 bytes. Bqstudio has the option of doing that when extracting the file. See attachedhttps://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/0110_5F00_0_5F00_02_2D00_bq34110_5F00_new.df.fs

    If that doesn't work, ensure that you have sufficient voltage powering on the chip and that you are not right on the shutdown threshold. Use atleast 3.5V per cell so we ensure that the voltage isn't the cause.

    -if both of these fails, try to capture the comm on a logic analyser or a scope with the timings included so I can analyse what is going on

    thanks

    Onyx

  • Hi Onyx,

    For the Ev2300, I've just received the other ev2300 and followed the instructions to reprogram the firmware. I've connected only one ev2300 to my computer via usb and connected the two EV2300 together via SMB.

    When I start the program I got this error in return:

    " Run-time error '339':

    Component 'bq80xrw.ocx' or one of its dependencies not correctly registered: afile is missing or invalid"

    Michael

  • I've followed the instructions on this thread:

    e2e.ti.com/.../619378

    and been able to get past the step 1 but I'm now stuck in step 2 (upload) where I got this error:

    Incorrect number of EV2300 boards on USB.

    I only have one ev2300 connected on usb...

    Michael
  • When I click to close the error box I have another that pop and said:

    "Please ensure that you have followed all instructions and that the file to be uploaded is in the correct format. Error code(decimal) = -1"


    Michael
  • After a pc reboot, it works.

    I will now try to generate the dffs file from bqstudio and the BQ34110EVM-796 and keep you informed...


    Michael
  • Onyx,

    I've tried with both firmware version 3.1m and 3.1r for the ev2300 and when I generate the dffs file I've these first lines :

    ;--------------------------------------------------------

    ;Verify Existing Firmware Version

    ;--------------------------------------------------------

    W: AA 3E 02 00

    C: AA 3E 02 00 FF A5 FF A5

    which is not good.

    When I try to program the device it told me : parse error at line 5.

    I can try to disable these lines but I fear that data may be corrupted at other places...

    Do you have suggestions?

    Here is a screenshot:

    Thank you,

    Michael

  • Hi Michael
    The screen shot didn't come through. pls resend. what version of bqstudio is being used? pls ensure the screen shot captures bqstudio screen.
    thanks
    Onyx
  • Hi Michael

    Was the gauge automatically detected when you started bqstudio or did you select the gauge from a list? Can you attached your dffs file so i take a look? Can you program the default firmware www.ti.com/.../sluc622 without any changes to it and then extract a flash stream and then try programming that on your unit?

    thanks
    Onyx
  • Hi Onyx,

    I manually corrected some lines in the generated file and been able to program the gauge.

    I will do some tests and get back to you.

    Thank you

    Michael