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.

BQ40Z80: VOK doesn't set and fail learning cycle

Part Number: BQ40Z80
Other Parts Discussed in Thread: GPCCHEM, BQSTUDIO

Dear Support,

i am using BQ40Z80 for a 3S battery pack and i started the learning cycle after i read SLUA848. Unfortunately it didn't go well since LStatus was still 4 after DSG+CHG, so i wanted to start again and collect the log file in order to open a ticket and have more info for you. When i started again the whole cyle, i didn't manage to see VOK set as written in the guidelines and i couldn't find an answer.

Can you help me with this? 

Thank you in advance,

BR

Giorgio

  • Hey Giorgio,

    Can you share the log file, the gg file, and also the datasheet for the battery you are using?

    Sincerely,
    Nick Richards

  • Hi Nick,

    i uploaded an archive in which you can find what you asked for: in the log file i tryed to show you the registers before and after i started the discharge.

    Thank you,

    Giorgio

    TI Support.rar

  • Hey Giorgio,

    Thank you for the documnents.
    For me to narrow down to the root cause of your issue, I will need a complete log file. I need to see a log file of the process showing all parts including the intial discharge, rest, charge, and rest after charge.
    Did you select the ChemID? What ChemID are you using?
    What is the charging voltage of your battery, and the terminate voltage?
    Also, change Design Capacity cWh to 2220.

    Sincerely,
    Nick Richards

  • Hi Nick,

    i will start the log and to you the files: since VOK isn't setting, do i need to observe 5 hours after discharge and 2 hourse after charge? Do i need to wait and/or look for something else? For the first discharge of the sequence there isn't a specified current rate: do i need to discharge at C/5 as suggested for the second discharge ?

    Yes, i chose chemID 1332, it looks like to be similar to my application

    The charging voltage is 12.6V and terminate voltage is set to be 4100 mV per cell (so it's 12.3V)

    Yes, i noticed there was a mistake, thank you

    Giorgio

  • Hey Giorgio,

    I would recommend having the full 5 hour rest after discharge, and 2 hour rest charge. Yes, for the first discharge you can set the rate at C/5.
    Is the ChemID you selected an exact match of the battery you are using? Or did you use the GPCCHEM tool?
    May I ask why your terminate voltage is very high? Usually, we see the terminate voltage is less than 3000 mV per cell. Are there protection on your battery pack?

    Sincerely,
    Nick Richards

  • Hi Nick,

    ok, i will start the whole process and i will send you the logs asap.

    I selected the chem ID that was as close as possible to my cells, i didn't use GPCCHEm tool.

    Sorry, maybe i lost: with terminate voltage do you mean the voltage at which the discharge terminate? If so, it is set to 3000 mV per cell as you wrote.

    Thanks,

    Giorgio

  • Hey Giorgio,

    It is highly recommended to use the GPCCHEM tool to find the ChemID that best matches the battery you are using. The ChemID corresponds to the Open  Circuit Voltage table that the gauge uses for the Impedance Track Algorithm. There is information programmed on to the gauge that is hidden from the user.  Which is why we recommend using the GPCCHEM tool. To complete the process, please look at this website: https://www.ti.com/tool/GPCCHEM. Please  complete this before continuing the learning cycle. If you have a question or problem with the GPCCHEM tool, please feel free to create a new thread and  post your question there. Once you complete the GPCCHEM tool and program the ChemID that it recommends, re-run the learning cycle and gather the log file. Without the correct ChemID, the learning will not complete successfully, which is why I am asking you to take care of this first.

    Sincerely,
    Nick Richards

  • Hi Nick,

    i'll do this and i will let you know.

    thank you!

    Giorgio

  • Hey Giorgio,

    Your welcome, I will be awaiting for your response.

    Sincerely,
    Nick Richards

  • Hello Nick,

    i managed to perform the cycle to select the CHEM ID of my battery. I started the learning cycle again but VOK bit doesn't set when i start the first discharge: i have the same problem so i immediatly stopped the process. I attach the log file and the report: why does VOK not set?

    BR

    Giorgio

    log_BQ40Z80.zip 

    Chemistry ID selection tool, rev=2.54		
    		
    Configuration used in present fit:		
    ProcessingType=2		
    NumCellSeries=3		
    ElapsedTimeColumn=0		
    VoltageColumn=1		
    TemperatureColumn=2		
    CurrentColumn=3		
    		
    Best chemical ID : 2086	Best chemical ID max. deviation, % : 1.17	
    		
    		
    		
    Summary of all IDs with max. DOD deviation below 3%		
    		
    Chem ID	max DOD error, %	Max R deviation, ratio
    2086	1.17	0.1
    2157	1.27	0.22
    299	1.3	0.14
    2020	1.3	0.43
    3166	1.38	0.1
    2056	1.46	0.36
    285	1.59	0.18
    281	1.61	0.16
    2114	1.66	0.39
    2061	1.67	0.35
    2076	1.75	0.44
    5378	1.81	0.5
    2012	1.83	0.32
    288	1.84	0.4
    2042	1.86	0.32
    278	1.91	0.55
    2019	1.92	0.31
    284	1.97	0.46
    202	2.05	-15.06
    232	2.33	0.58
    2052	2.36	0.47
    2154	2.38	0.68
    1737	2.41	1.08
    2018	2.56	0.06
    2030	2.58	0.31
    2097	2.66	0.49
    2043	2.66	0.49
    2099	2.7	0.15
    2017	2.74	0.01
    		
    Max. deviations for best ID is within recommended range. Chosen best chemical ID is suitable for programming the gauge.		
    		
    		
    Selection of best generic ID for ROM based devices like bq274xx		
    		
    		
    Device / Family #1		
    Generic Chem ID	Device/ Voltage/ Chemistry	max DOD error, %
    3142	bq27421-G1D: 4.4V LiCoO2	17.94
    354	bq27411-G1C: 4.35V LiCoO2	20.31
    128	bq27421-G1A: 4.2V LiCoO2	34.89
    312	bq27421-G1B: 4.3V LiCoO2	42.8
    Best generic ID 3142		
    Warning: Generic ID Deviation is so high that it is most likely due to anomaly in the data. Please check that data files have recomended format, units and test schedule		
    		
    		
    Device / Family #2		
    Generic Chem ID	Device/ Voltage/ Chemistry	max DOD error, %
    354	bq27621:  (ALT_CHEM2) 4.35V LiCoO2	20.31
    1210	bq27621:  (ALT_CHEM1) 4.3V LiCoO2	28.11
    1202	bq27621: (default) 4.2V LiCoO2	28.59
    Best generic ID 354		
    Warning: Generic ID Deviation is so high that it is most likely due to anomaly in the data. Please check that data files have recomended format, units and test schedule		
    		
    		
    Device / Family #3		
    Generic Chem ID	Device/ Voltage/ Chemistry	max DOD error, %
    3142	bq27426: (ALT-CHEM2) 4.4V LiCoO2	17.94
    3230	bq27426: (default) 4.35V LiCoO2	19.84
    1202	bq27426: (ALT_CHEM1) 4.2V LiCoO2	28.59
    Best generic ID 3142		
    Warning: Generic ID Deviation is so high that it is most likely due to anomaly in the data. Please check that data files have recomended format, units and test schedule		
    		
    		
    Warning: Max R deviation ratio can not be checked because discharge hr-rate is above 12.  Hr rate = 13.5200176369047		
    Warning: Max R deviation ratio can not be checked because discharge hr-rate is above 12.  Hr rate = 13.5200176369047		
    Warning: Max R deviation ratio can not be checked because discharge hr-rate is above 12.  Hr rate = 13.5200176369047		
    

  • Hey Giorgio,

    The VOK bit will be set high when the charge portion of the learning cycle starts.

    Sincerely,
    Nick Richards

  • Hi Nick,

    there is something is not clear to me in SLUA848 "How to complete a successful learning cycle for the BQ40Z80":

    - Before the first DSG i need to perform GAUGE_EN and RESET commands so that GAUGE_EN, QEN and RDIS are set and LStatus is 04

    - Now i am ready to perform the first DSG and i would expect to see VOK bit set as i i read in paragraph 4.1 "the [VOK] is set when charge or discharge starts". In paragraph 4.2.2 i read "the [VOK] and [RDIS] bits in the IT status() register clear once the gauge has taken an OCV reading and qualified it for a Qmax update" and this make me suppose that even [VOK] is set at the beginning of DSG

    - in Paragraph 6 there is a recap of the whole prcoedure and i am told to perform a DSG, 5 hours relax and then  perform GAUGE_EN and RESET: this is the opposite of 4.2.1

    Sorry for the trouble, but i would really appreciate to understand this and to know what i am doing wrong.

    BR,

    Giorgio

  • Hey Giorgio,

    You are correct VOK should be set when a discharge or charge starts. However, since the RESET command is sent before the first discharge, this is telling  the gauge that the first discharge should be disqualified for any Qmax or Ra table update. That is why VOK bit is not set during the first discharge.
    There are two ways to start the learning cycle. The recommended way of sending RESET and GAUGE_ENABLE before the first discharge. Or after the first  discharge, send the GAUGE_ENABLE command.

    Sincerely,
    Nick Richards

  • Hi Nick,

    ok, i understood. Before starting again: is there any issues if i wait more then 5 hours or 2 hours of relax time?

    thank you again for the answers, you were very kind.

    BR

  • Hey Giorgio,

    After the first discharge, it is recommended to have a relaxation period of 5 hours

    Sincerely,
    Nick Richards

  • Ok, thank you,! 

    I will let you know.

    BR

  • Perfect, I will be awaiting for your response.

    Regards,
    Nick Richards

  • Hi Nick,

    i did the first DSG, i waited for VOK and RDIS to be green and for REST to be RED and i started the charging cyle: VOK bit didn't set as written in paragraph 4.2.3 of SLUA848, it looks like BQ40Z80 doesn't recognize the start of the charge but i can't figure out why. In the attachment you can find register log and gg file if you think they are useful.

    I wait for your feedback.

    BR

    Giorgio

    Report_TI.zip

  • Hey Giorgio,

    Thank you for sending the log and gg files. First thing I noticed is that there is a protection being tripped right when the charge happens. Therefore, please  change the threshold value of CUVC to a lower value. Second, I noticed that the temperature register is reading -273.2 which I believe might be the root  cause of your problem. Please change your temperature configuration so that the Temperature registers reads the same value as "TS1Temp".

    Sincerely,
    Nick Richards

  • Hi Nick,

    i am going to start again, I give some more insight in about my design that may help:

    - I put a lower value of CUVC (2000mV) even if i can't understand how it could trip this protection. I would like to disable this protection and eradicate the problem since my battery pack has internal protection for UV and OV

    - I had temperature enable and temperature mode both set as 0x02 (so TS1 enabled), i just use this external thermistor): why do i read -273.2 °C ? also in this case i would like to disable temperature protections since battery pack has also its internal protection for OT and UT

    - I noticed that FD in gauging status register toggle to 1 when battery voltage is 10.3 V but i set FD threshold at  3000 mV and i think i am missing something

    What do you think about this? 

    BR,

    Giorgio

  • Hey Giorgio,

    Yes, you are able to disable the CUVC protection. In Data Memory, go to "Settings" then go to "Enable Protections B" and then click on CUVC and make sure that bit is green. "Enable Protections D" has the enable bits for UTD (Undertemperature while not charging) and UTC (undertemperature while charging).

    I am not entirely sure why -273.2 would still be reading in the temperature register even after making the changes. I will need to see the new gg file.

    The FD flag is being set to 1 because you have it currently set to detect FD when the RSOC is less than the Set% RSOC threshold. You can change this in the SOC Flag Config B register.

    Sincerely,
    Nick Richards

  • Hi Nick,

    - in the attachment there is the log files with the changes i told you about

    - ok, i didn't notice that about FD

    - it seems to fail to recognize the start of charging cycle somehow

    - i noticed that "Charging Current" in registers tab is always 0 while "current" is has the value i expect: what is the current used to detect the start of charge? 

    - I have a doubt: some months ago i had this conversation in order to design my system since my battery pack has embedded protection. I upload also the final schematic so that you can better undestand the final result. After visioning it: do you think it's critical perform the learning cycle with such a system? If so, do you suggest to use EVB of BQ40z80 in order to have e more "conventional" system?

    BR 

    Giorgio

     HA2206_Battery_Gauge.pdf

    Ti_Support2.zip

  • Hey Giorgio,

    I believe Charging Current is 0 because the gauge believes it is in under temperature conditions since the temperate is still reading -273.2. I checked the new gg file and I noticed that both "Temperature Enable" and "Temperature Mode" are 0x00. Did you make sure to write the value 0x02 to data memory? If this system is what you will end up using for your final application then it will be best to resolve the issues and use it for the learning cycle. However, if you just want to complete the learning cycle so you can have the golden image file for later use, then the EVB would be a good way to go.

    Sincerely,
    Nick Richards

  • Hi Nick,

    Your suggestion was correct, i needed to fix temperature settings as reported in my log in the attachment.

    I performed a full cycle (DSG, RELAX, CHG, RELAX, DSG, RELAX) and i got LStatus() = 0x06:  now i am performing another CHG. RELAX, DSG, RELAX to get to 0x0E (as suggested for multi cells application). By the way i am seeing VOK = 1 and REST = 1 during this "extra" cycle: is that normal at this point? How do i know that relax time has expired in this way? 

    BR

    GiorgioLog_WIP.zip

  • Hey Giorgio,

    In what point in the extra cycle are you seeing VOK and REST equal to 1?
    Relax time has expired when the REST bit is set to 1.

    Sincerely,
    Nick Richards

  • I am charging right now and i still have VOK and REST equal to 1: this happened at the beginning of the extra cycle. 

    I would expected VREST cleared and VOK set as soon as charging cycle began

    Giorgio

  • I wouldn't worry about the REST bit being set right now. It is important that the bit clears on entry into the relaxation period. Since the REST bit indicates to the gauge when an OCV reading is taken, the gauge ignores the REST bit during charge. 

    Regards,
    Nick Richards

  • Hi Nick,

    I just checked BQStudio and I start DSG: all bits were set as expected.

    I noticed that LStatus was 14: what does it mean ? It’s the same of 0E ? 

    BR

    Giorgio 

  • Yes, 0x0E is equivalent to 14.

    Regards,
    Nick Richards

  • Good !  
    So, at the end of this final DSG, I can disable IT, reset lifetime data and save .src file from firmware section and use it as golden file ? 

  • Yes, those are all the proper steps.

    Regards,
    Nick Richards

  • Thank you for all the support you gave, i have my golden file.

    BR

    Giorgio