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.

BQ4050: EDV_PACK bit behavior

Part Number: BQ4050

Hello.

I found a little conflict of my experience with the BQ4050 TRM.

As TRM says "The EDVV bit in Pack Configuration configures the bq4050 for overall voltage or single-cell EDV
thresholds. If programmed for single cell EDV determination, the bq4050 determines EDV on the basis of
the lowest single-cell voltage."

In thread https://e2e.ti.com/support/power-management/f/196/t/800233

EDV_PACK (Bit 2): EDV Detection Method
1 = Pack-based
0 = Cell-based

But in my experience BQ4050 acts vice versa. I assembled two 3S accumulator packs. First one with well-balanced cells and second one with disbalansed cells. Configuration EDV_PACK = "0" performs Pack-based correction, EDV_PACK = "1" performs Cell-based correction.

1. Am I right and EDV_PACK acts vice versa? Or I made a mistake?

Also GPC Report parameters says "CEDV parameters resulting from the fit. If EDVV bit is set to 1, EMF and EDVR0 have to be multiplied by the number of serial cells when written to data flash"

2. I don't multiplyed it in both cases and for first well-belenced accumulator pack still have correction at expected level. When I multiplyed EMF and R0, I get EDV2, EDV1 and EDV0 at almost fully charged cells. As for EDV_PACK=0, as for EDV_PACK=1. I suggest that BQ4050 multiplyes EMF and R0 by itself according to EDV_PACK bit. Am I right?

Thanks in advance.

  • Hello Nik,

    I will check with the team to see if EDV_PACK matches what you are experiencing(cell vs pack based).

    Regarding your second question. From looking at the Technical Reference Manual(Section 6.4.1) it seems that you have to divide EMF and R0 by the number of cells, if EDV_PACK is set to be cell-based. Otherwise, it doesn't seem that you have to multiply anything or change anything.

    Best Regards,

    Luis Hernandez Salomon

  • Hello Nik,

    I've confirmed with the team, when EDV_PACK = 1, the gauge will multiply the EDV Threshold by the number of cells(=pack). This means that the TRM is correct, it is pack-based detection when it is set at 1. The formula in Section 6.4.1 shows how EDV is calculated. It seems that the gauge does the multiplications on it's own.

    Best Regards,

    Luis Hernandez Salomon

  • Thank you for your answer!

    I understood about multiplying.

    But this is what I get based upon my experience about EDV_PACK bit. I have two 3S accumulators. And constant-power load. GPC report attached. EDV_CMP=1 (Dynamically calculate voltages for EDV2, 1, and 0)

    EDV_PACK = 1

    Learning (EDV2 threshold) happened at these levels:

    Accumulator number <0> Remaining 7%, 111mAh(Full charge 1590mAh), Load -1833mA, Cell voltages (mV): (3634,3137,3301)

    Accumulator number <1> Remaining  8%, 219mAh(Full charge 3123mAh), Load -1635mA, Cell voltages (mV): (3174,3154,3160)

    I think that for accumulator <0> EDV2 threshold happened by voltage on 2 cell (3137 mV), other cells was much higher (3634 and 3301 mV). I suppose that it is Cell-based correction

    EDV_PACK = 0

    Accumulator number <0> Remaining 7%, 120mAh(Full charge 1846mAh), Load -1963mA, Cell voltages (mV): (3527,2708,3137)

    Accumulator number <1> Remaining 7%, 199mAh(Full charge 3135mAh), Load -1640mA, Cell voltages (mV): (3164,3144,3152)

    For accumulator <0> EDV2 threshold happened when voltage on 2 cell was 2708 mV. But if I look at averege voltage it (3527+2708+3137)/3 = 3124mV. I suppose that it is Pack-based correction. Almost same level as for previous case (3137 mV). But according to TRM EDV_PACK = 0 is Cell-based correction.

    8764.GPC_CEDV.txt
    GPC CEDV tool, rev=53		
    Configuration used in present fit		
    ProcessingType=1		
    NumCellSeries=3		
    CellTermV=3000		
    LearnSOC%=7		
    FitMaxSOC%=9		
    FitMinSOC%=3		
    ChemType=1		
    ElapsedTimeColumn=0		
    VoltageColumn=1		
    TemperatureColumn=2		
    CurrentColumn=3		
    		
    CEDV parameters resulting from the fit. If EDVV bit is set to 1, EMF and EDVR0 have to be multiplied by the number of serial cells when written to data flash		
    		
    EMF	3358	
    EDVC0	101	
    EDVC1	0	
    EDVR1	2897	
    EDVR0	101	
    EDVT0	1	
    EDVTC	9	
    VOC75	11806	
    VOC50	11425	
    VOC25	11256	
    		
    		
    Recommended SOC deviation tolerance at EDV2 point is  < 5% for low temperature and <3% for room and high temperature		
    		
    Deviations for this set of parameters are given below for each file		
    		
    file	SOC error, %	pass
    roomtemp_lowrate.csv	0.655459634393575	1
    roomtemp_highrate.csv	-0.212141123468078	1
    hightemp_lowrate.csv	1.26177074746188	1
    hightemp_highrate.csv	0.526500779444924	1
    lowtemp_lowrate.csv	-0.835339925399804	1
    lowtemp_highrate.csv	-0.199848495978041	1
    		
    Deviations are within recomended range. CEDV parameters are suitable for programming the gauge		
    		
    

  • Hello Nik, 

    I contacted someone in the team that may be able to clarify this. I am waiting for their feedback on this topic.

    I will write you a response once I receive it.

    Best Regards,

    Luis Hernandez Salomon

  • Hello Nik,

    This is the feedback I received:

    "When EDV_PACK is 1, the gauge will multiply each EDVx with the number of cells to get the threshold so for the customer’s case, they’d have to multiply EDV2 (if compensation was not enabled – if it was, then the gauge will adjust this also for temperature and load) by three and compare this with the total pack voltage to know when the 7% point was reached."

    Based on these descriptions which are describing how the code calculates the EDVx, it seems to be pack-based when ADV_PACK = 1. I hope this helped clarify it for you. 

    Best Regards,

    Luis Hernandez Salomon