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 SOC

Other Parts Discussed in Thread: BQ27510-G2, BQSTUDIO, EV2400, BQ27510-G3, BQEVSW

Hi,

I'm getting steady readings for SOC and at some point the reading returns 0 which

makes the system calculate voltage-based capacity instead of SOC-based.

this causes major differences in the predicted battery percentage.

is that register based on voltage level readings in the first place?

what can be the reason for this?

thanks,

  • OK, i solved the issue but..

    when my battery is fully charged (4.1V) I'm getting about 80-83% capacity from the SOC reading instead of 100%,

    any thoughts?

  • what do you have your taper voltage and taper current programmed to in the gauges setting. What is the taper current on your charger? do you have the correct chem id for your cell programmed on the gauge? Also check to make sure the gauge is detecting a battery is inserted by checking the Bat_det flag is set.

    thanks
    Onyx
  • "what do you have your taper voltage and taper current programmed to in the gauges setting. "

    how to i get this info? (the guage thing is new to me :/)



    " do you have the correct chem id for your cell programmed on the gauge? "

    i'm getting 0x510 when it should be 0x520, i'm not sure at what point the chip is configured to this value.
    is it from the ".dfi" ? how do i create a new one that will suit my battery?

    if its via the management studio, what if my battery isn't on the list?



    "Also check to make sure the gauge is detecting a battery is inserted by checking the Bat_det flag is set."

    the battery is detected, i checked in the flags register.

    i noticed that the CHEM_ID is 0x100 which is probably not right.

    the previous chip on the system was bq27510-g2 and it seemed to work fine so if there are additional files that need to be updated (besides the driver and dfi) i

    would greatly appreciate some help. :)

  • That is programmed in the data flash of the guage.If you extract a gg.csv file or if you go to the data memory window of bqstudio after you start the device up you will see what your taper current and voltages are. You are to set the taper such that the device detects taper and the fc bit gets set before charge termination by your charger.

    How did you decide that chem id 520 is a match for your cell? Did you do a rel -dis -rel test or did you simply do a visual check of the chem id data base. If your battery isn't oon the list you need to carry out a rel-dis-rel test to determine if there is a a close match. The link below contains details of this rel-dis-rel test that has to be carried out. 

    thanks

    Onyx

  • Hi,

    I found that my chem_id is 1133 in the document you sent (the device_type should be 520, my mistake..), haven't been able to update it on the chip though..

    i followed the data flash update procedure on the data sheet and it seems to work without errors when im trying to update the op config reg

    but every time the device turns on it shows me the wrong value and updates it again.

    the result if things are related is being unable to charge the device once turned on.

    is there a way to measure the taper values without bqstudio/evaluation board?

    can you please review my writing procedure (attached) to see where am i going wrong?for_ti.zip

  • Hi Shlomi
    I am not sure I understand what your problem is. Why are you unable to program the chem id on your chip? Can you program Did you carry out the chem id identification process to determine that chem id 1133 was the correct match for your cell. I am unable to open the attachement. What file format is the file ?

    Can you send a snapshot of your bqstudio screen so we see what the status/ registers are?

    thanks
    Onyx
  • I managed to get it to work,

    I don't have a evaluation board so i cant see the registers on the bqstudio.

    i have a dfi file for bq27510-g2 and my fuel-Gauge is the g3, do i need to make a new dfi or will the old one work on the same platform?

    if so, do i need an evaluation board or is there another way?

  • Hi Shlomi,

    You will need to create a new dfi file for the g3 firmware.  It will be good to have an EVM for evaluation purposes. However, you can hook the i2c lines of your gauge to an ev2300 or ev2400 and connect to your computer, that way you will be able to access the gauge using bqstudio.

    thanks

    Onyx

  • thanks, i got the ev2300.

    on the original issue of the soc readings - the value seems correct most of the time which is about the same value of the calculated capacity from the voltage readings but, during work i suddenly see a drop in soc readings which clearly does not match the voltage based capacity ( more then 25% difference).

    if i reboot the device then the soc value show the right value and again same phenomenon ..
  • hi Shlomi,

    can you sent a log file showing these events so we can narrow down what the issue is. a gg file and an srec extracted from the device is need as well. Do you have IT enabled on the device? Was a learning cycle carried out? Do you have the correct chem id programmed on the device. Is the battery temperature significantly changing? All these could cause  SOC drops but we need more information to tell what the issue is.

    thanks

    Onyx

  • Hi,

    Ill run the cycle and see if it happens.

    is there a tool which can read the .dfi to get hex values for use in production?
    i couldn't find any clear instructions for using the dfi for production once its created.

    what are the gg files used for and at what point do i use them?
    i see that bqstudio can create bq.fs and df.fs files,

    can i create the values from these files to program the flash data on the gauge?
    if so, when should they be created?
  • Hi Shlomi,
    the bqfs and dffs are in hex format. Bqfs contains the IF and DF. Dfffs contains just data flash (df). gg files contain the configurable data flash parameters. To program your gauge I recommend using either bqfs or dffs created after a successful learning cycle is completed.

    thank
    Onyx
  • Hi,

    every time i run a learning cycle (bqeasy bq27510-g3 v4.00) and trying to press "All Done" i get an error that GasGauging.state.UpdateStatus does not equal 2 

    and that i should start the whole cycle again.

    i tried it several times and always the same result..

    whats wrong?

    are there any special configuration for bq27510-g3 except for when opening the evsw?

    when choosing bq27510-g3 gauge on startup it says the configuration does not match the detected chip.

  • Shlomi,

    Try manually carrying out the learning cycle instead of using bqeasy. At the end of the learning cycle if successful, update status should be 02. See attached instructions on carrying out the learning cycle.

    Learning cycle.pptx

    thanks

    Onyx

  • thanks,

    because i'm doing the the learning cycle on the evk using c/5 for discharge it doesn't accurately reflect the real system status when taking measurement on

    the production board.

    can i update the ra tables to better suit the production system?

    here are the retrieved values after the learning cycle, i see some rows with 00 and FF and the end, what registers are they writing?

    (just making sure im get non default values..)

    "\x30\x8A\x04\x00\xE0\x27\x49\x03\x66\xA3\x18\xE8\x03\x22\xA0\x07"
        "\x16\x04\x00\xE0\x03\xEE\x03\x66\xA0\x04\x54\x02\xEE\xA0\x7F\x71"
        "\x27\xD4\x94\x08\x99\xF9\xFA\x50\x81\x4E\x00\x0C\x0B\xB8\x10\x68"
        "\x0B\xA4\x03\xE8\x00\x20\x03\xE8\x00\x20\x00\x20\x10\x96\x00\xD4"
        "\x86\x4A\xC6\xB4\xC2\x6E\x2B\x03\x7C\x01\x48\xFD\xA3\xF6\x75\x12"
        "\x58\x2D\xB7\x2C\x4A\x00\x00\x00\x00\xCF\xDC\x17\xF3\x00\x00\x16"
        "\x7A\xEF\x03\x11\x05\x01\x00\x00\x10\x01\x00\x3C\x00\x50\x3C\x00"
        "\x64\x3C\x00\x20\x01\x00\x14\xB4\x00\x04\x02\x14\xB4\x00\x00\x00"
        "\xFE\xD5\xFB\x95\xFA\x71\xEB\xBA\x00\x02\x02\xBC\x01\x00\x02\xBC"
        "\x01\x2C\x00\x32\x00\xC8\xC8\x14\x02\x07\x08\x0E\x10\x00\x0A\x1E"
        "\x05\x0F\x07\x0F\x03\x20\x64\x46\x50\x28\x0E\xD8\x0E\x99\x01\x90"
        "\x00\x64\x19\x01\x25\x05\x05\x25\x60\x6E\x0C\xE4\x0B\xB8\x28\x01"
        "\xF4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x33\x03\xE8\x00"
        "\x10\x5B\xE0\xE3\xE7\xE9\xE9\xEA\xEC\xED\xEF\xEF\xF1\xF0\xF1\xED"
        "\xEC\xEE\xF1\xF4\xF4\xF7\xF8\xFA\xFA\xFB\xFD\xFD\xFD\xFA\xF7\xF5"
        "\xF5\xF3\xF2\xEE\xF1\xF0\xF2\xDE\x83\x00\xEB\x61\x04\xF9\x0A\xE8"
        "\xFF\x00\xF3\x1F\x38\xF2\x9F\x40\xF6\xFF\x80\xF7\x6F\x5E\xF3\x9F"
        "\x25\xF2\x1F\x39\xFA\x5F\xF2\xFE\x5F\xFF\xFE\xDF\xE6\xFD\xDF\xC5"
        "\xFA\xCF\x8D\xF6\xAF\x16\xE5\xCC\x14\xAD\x2A\x87\xA8\x4A\x9B\xAC"
        "\xFA\xD4\xBD\x2C\x01\xB4\x05\x62\x00\x03\xC2\xFF\x55\x00\x29\x00"
        "\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F\x1E\x36\x57\x73\x00\x00"
        "\xFF\x7D\x00\xFF\x1A\x0B\x02\xFB\xF4\xF1\xFB\xF5\xF1\xE7\xD8\xDF"
        "\x03\x01\x00\x03\xE8\x00\x10\x5B\xE0\xE3\xE7\xE9\xE9\xEA\xEC\xED"
        "\xEF\xEF\xF1\xF0\xF1\xED\xEC\xEE\xF1\xF4\xF4\xF7\xF8\xFA\xFA\xFB"
        "\xFD\xFD\xFD\xFA\xF7\xF5\xF5\xF3\xF2\xEE\xF1\xF0\xF2\xDE\x83\x00"
        "\xEB\x61\x04\xF9\x0A\xE8\xFF\x00\xF3\x1F\x38\xF2\x9F\x40\xF6\xFF"
        "\x80\xF7\x6F\x5E\xF3\x9F\x25\xF2\x1F\x39\xFA\x5F\xF2\xFE\x5F\xFF"
        "\xFE\xDF\xE6\xFD\xDF\xC5\xFA\xCF\x8D\xF6\xAF\x16\xE5\xCC\x14\xAD"
        "\x2A\x87\xA8\x4A\x9B\xAC\xFA\xD4\xBD\x2C\x01\xB4\x05\x62\x00\x03"
        "\xC2\xFF\x55\x00\x29\x00\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F"
        "\x1E\x36\x57\x73\x00\x00\xFF\x7D\x00\xFF\x1A\x0B\x02\xFB\xF4\xF1"
        "\xFB\xF5\xF1\xE7\xD8\xDF\x03\x00\x00\x01\xC2\x00\x64\x00\xC8\x10"
        "\x68\x00\x32\xFF\xCE\x02\x26\x00\x00\x00\x64\x00\x19\x00\x64\x28"
        "\x63\x5F\x64\x62\x09\x79\x04\x2E\x00\x6E\x14\x00\x00\x0A\xF0\x06"
        "\xD6\x00\x0A\xB8\x00\x0F\x05\x00\x32\x01\x00\x08\x09\x00\x08\x09"
        "\xF6\x00\x3C\x00\x4B\x00\x14\x00\x3C\x3C\x01\x36\x72\x04\x14\xFF"
        "\xFF\xFF\xFF\x01\x23\x45\x67\x89\xAB\xCD\xEF\xFE\xDC\xBA\x98\x76"
        "\x54\x32\x10\x67\x45\x23\x01\xEF\xCD\xAB\x89\x98\xBA\xDC\xFE\x10"
        "\x32\x54\x76\xC3\xD2\xE1\xF0\x02\x26\x02\x01\xF4\x02\x58\x02\x02"
        "\x26\x05\x2F\x02\x00\x56\x65\x09\x11\x01\xF4\x00\x64\x01\xB0\xF6"
        "\xFE\x0C\x12\xA2\x5A\x14\xB4\x01\xFE\x70\x0B\xA6\x0A\x62\x71\x96"
        "\xA0\x5A\x78\x32\x0C\x4E\x02\x0D\x48\x00\x00\x00\x00\xFE\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF"
        "\xFF\x55\x00\x29\x00\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F\x1E"
        "\x36\x57\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\xFF\x55\x00\x29\x00\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F\x1E"
        "\x36\x57\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\xFF\xFF\x00\x29\x00\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F\x1E"
        "\x36\x57\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\xFF\xFF\x00\x29\x00\x02\xFC\x00\xFE\x02\x06\x07\x05\x08\x0F\x1E"
        "\x36\x57\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\xFF\xFF\xFF\x01\x23\x45\x67\x89\xAB\xCD\xEF\xFE\xDC\xBA\x98\x76"
        "\x54\x32\x10\x67\x45\x23\x01\xEF\xCD\xAB\x89\x98\xBA\xDC\xFE\x10"
        "\x32\x54\x76\xC3\xD2\xE1\xF0\x02\x26\x02\x01\xF4\x02\x58\x02\x02"
        "\x26\x05\x2F\x02\x00\x56\x65\x09\x11\x01\xF4\x00\x64\x01\xB0\xF6"
        "\xFF\xFF\xFF\xFF\x00\x00\x01\xA8\xFF\xFF\xFE\x56\xFF\xFF\xFF\xFF"
        "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
        "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
        "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"

  • Can you pls clarify what you mean by evk? It is ok to use c/5 for learning. Once learning is successful, cycle the pack with your actual load and the gauge will adjust the resistance table accordingly during discharge.

    I can't tell what your hex values are. You should be looking at a gg.csv file extracted using bqstudio and not the hex file. The hex file doesn't provide us any useful information the way you sent it.

    thanks

    Onyx

  • I've attached the .gg file, hope all settings were good.

    I ran 6 cycles and updated the dfi accordingly on the production board from the df.fs file which was created at the end of the latest cycle.

    (evk = EV2300 + System-Side Single-Cell Impedance Track™ Technology Evaluation Module |Battery Fuel Gauge IntegRated)

    gg1.gg.rar

  • Hi Shlomi,

    It appears you made a lot of random changes to the default settings which will adversely affect the gauges performance. Here are a some things which i caught. It is generally not recommended to change most of the default settings except you have a solid understanding of what each parameters does.

    1. You are using an older firmware version. You should make sure your chip is updated to the latest firmware version which is the version 4.0. The latest firmware file should be on the product folder on ti.com

    2. You have FC set to 100%. If your host is looking at this bit to end charging, it is likely you will not be fully charge before charging is cut off. It is best to keep FC set at -1% so charging ends based on charge termination conditions which is based off  taper current and taper voltage.

    3. you changed DODatEOC to 0. That should be kept as the default settings which is 5 deg, otherwise your SOC could experience significant amount of jumps.

    4.Soc set threshold and SOC clear thresholds are set to insignificant values. Default is 10% and 12% respectively. You have yours set at 150% and 160% respectively which are not ok values.

    5. i2c time out is set to 0. Default is 4.  keep it as the default.

    6.  A terminate voltage of 3300mV seems quite high. Your battery is likely a 3V battery. Setting a high terminate voltage might cause learning to fail if you havent carried out the learning procedure..

    7. You have term V delta voltage set to 3000mV. Pls keep the default setting of 200mV. This will def make the gauge act up if set wrongly.

    8.  Pls keep the default settings for  the paramaters from max sim rate to termV valid time.

    9. Pls kee the default settings for paratmeters from transient factor charge to max IR correct.

    10. Why do you have qmax cell  1 asa 0. Update it to the learned qmax which appears to be 5300 from qmax cell 0.

    11. Keep the default values for parameters from T rise to  cell 1 V at chg term.

    thanks

    Onyx

  • Hi Onyx,

    The firmware file on the bq2750-g3 page is .senc, how do i convert it to .srec?

  • You do not need to convert it to srec. Use bqEVSW to program the senc, and continue evaluation with bqstudio. However i have attached the srec here so you can just program using bqstudio.

    bq27510-G3_4_00.srec

    thanks

    Onyx

  • I cant program it using bqeasy because of error 772 i keep getting, i looked around and it seems to be a com error with the ev2300 

    and no solution was found.

    I programmed using bqstudio with the file you gave me but the FW still shows version 0x111.

    bqstudio cant read the parameters correctly while the FW isnt updated and that is why we are seeing the "changed" data in the .gg file,

    the data hasn't actually changed as you can see from the 2 files Iv'e attached.

    they are showing different readings for the same chip status and bqstudio has it all mixed up (notice the soc(above 100%) and cycle count for example).

    also i'm unable to change DODatEOC to 5 deg and i2c time out to 4, they keep going back to 0 before i can write them to the chip.

    7120.images.rar

  • Shlomi,

    pls download and install the latest bqstudio from ti.com. I am able to program my board with the srec i sent you and it doesn't show v111. Also verify that the chip isn't sealed because if it is, you will be unable to program the srec.

    Programming the the default srec will correct those values, ie DOD@EOC and the i2c time out to the correct ones.

    thanks

    Onyx

  • ok it worked, the bqstudio caused problems.


    is there a change list from v123 to v400 ?

    i did a fw upgrade on the production board with the generated df.fs and dfi files,

    now there seems to be a problem reading or setting the manufacturer block registers and reading chem id.

    thanks allot!

  • There is a change list online. See link below:
    www.ti.com/.../slua686

    the dfi and dffs generated from an older firmware will not work on a new firmware. What you can do is this: do a file comparison of the gg files extracted from both devices using winmerge. Update the gg file from the newwer firmware so it reflects similar values in the older file. for parameters in the newer device that are not in the older device, check the trm on how to configure them. for parameters in the older device, but not in the new device ignore. Now program a device with the default new firmware, program your chem id, program the new gg file and finally extract an srec. this will be your new golden file which you will program on multiple devices.

    thanks
    Onyx
  • It turns out the unread parameters where on platforms which had FW 0x123.

    I'm trying to do a FW upgrade from v123 to v400 on the production board and ending up with an unusable chip.
    if the FW is already 0x400 then i have no problem reprogramming it and updating the dfi.

    so how can i use the new or old files (bs,fs,..) to upgrade from 0x123?

    i read www.ti.com/.../slua541a.pdf, but the flashstream tool isn't available.

    thanks,
  • Hi Shlomi,

    an srec or bqfs file from the new firmware is what you need to upgrade an older firmware on a chip. You don't need the flashstream tool any more. bqstudio can do what ever functionality the flashstream was scheduled to do.

    Using those two files should not brick your chip.

    thanks

    Onyx

  • great, got it.

    one more thing,

    in the chem table mine shows as 1133, should i set it as 0x1133 in the gauge or as 0x046d ?

    thanks,

  • You are not supposed to manually modify your chem id. The chemistry programming tool of bqstudio programs the chem id for you and sets it the way it should be.
    thanks
    Onyx
  • Please review the updated gg file and see if there is some parameter that can cause the chip not to initialize on system start.

    after i did the FW upgrade, i get no data from the chip unless i run the dfi update manually again which causes the chip to init.bq_0x400.gg.rar

  • I found that when i disconnect the battery and connect it back again, the IC loads in ROM mode and needs to get the exit ROM commands via the 0xB address.

    It seems the dfi reprogramming sequence works and i get no errors during writing it and then re-writing the first 2 rows of the IF.

    is there any register that can cause this when written with wrong values or some other reason?

    I'm using the same program i used for the G2 when only the dfi and IF values are different and i had no problem with it.

  • Shlomi,
    It isn't possible for the gauge to wake up in ROM mode when power is removed and reapplied to it if it wasn't in ROM mode prior to power cycling. I would like to schedule a con call as this your issue is dragging on for way too long. The earliest I can do this is Monday next week because of the deep dive holding in Dallas this week. I have sent you a friend invite so we can facilitate this.

    thanks
    Onyx