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.

BQ76PL455A-Q1: Expected jitter on ADC results?

Part Number: BQ76PL455A-Q1

Hello again;

I'm concerned about the noise/jitter I'm seeing when reading cell voltages which the EM1402 eval module. The default oversample rate (8 each) results in ~+/- 1mV of jitter on all cells, except cell #13 (top cell), which has ~+/- 5mV of jitter.  However, when resetting to 32 samples, the noise drops to ~+/- 350uV on all cells except #13, which drops to ~+/- 1.5mV.  My client's tech also logged this using your EM1402 GUI, and reports the same jitter.  This means the "noise" is ~+/- 3 LSB, on all cells but 13, which is ~+/- 5 LSB which is unacceptable. The tests are done using both a real battery string, as well as a test board which uses a string of resistors connected to a 50V bench supply...the results are equivalent...noise.

Q1: Is this noise a known issue? If not, what could account for this?

Q2: Why are the top cell's results so much worse than the bottom cells?

Q3: The datasheet says that when idle, or in between conversions, the top cell is selected. Is this correct?

Thanks in advance.

  • Hi Jeffrey,

    I am unaware of this issue but I will ask around to get more information. How are you measuring the jitter difference? Please be sure to test this on multiple boards as mentioned on the other thread. For q3 can you point me to the exact section of the datasheet you are referencing?

    Thanks,

    Taylor
  • Hi Taylor;

    See 8.1.3.1 Idle (Parking) Channel Errors.

    I checked to ensure that as per the datasheet, the AFE_CTL bit = 1 - and it is by default. Our driver requests ADC results every 1.000 seconds, and maintains a Max/Min log. And as I mentioned, my client has 3 other eval boards (EM1402), and tested at least one other for this using the SW  GUI provided, and the results are the same...

    This is what we're seeing on the top cell #13 (the worst):

    [12] 0x20003360 (AFEChanStruc + 384) 

    CalAvgFloat     4.05372905 V
    MaxV               4.05395794 V
    MinV                4.05166912 V
    MaxDelta         2.28881836E-3 <-- results vary as much as 2.9mV, which is ~76.3uV (LSB) x 38, meaning over 5 lsb's of jitter

  • Hi Jeffrey,

    This section in the datasheet is correct and if the data is consistent it is likely the I*R drop in the VSENSE filter resistor that is causing the slight error on the top cell. One way to check this would be to install a 100ohm instead of the 1kohm and measure to see any improvement. Have you also made any measurements for comparison at the VSENSE pins and not before the RC filter?

    Thanks,

    Taylor
  • Hi Taylor;
    I'll see if these R's can be swapped for 100's. However, I'm less concerned about this error contribution than I am with the jitter. Will you please confirm whether your engineers that this noise is NOT present on the EM1402 eval board when testing on their bench.
    In addition, have you received any feedback on the other issues I've raised (e.g. checksum, oversample problem, etc.)

    Thanks in advance.
  • Hi Jeffrey,

    Ok please let us know how that goes although I don't seem to see this much error using pl455a GUI and EVM. I will continue to check this and others - check the other thread as I do not see that issue either. Have you tested this with the default recommended settings below without making any other changes to default settings?

    - 390pF OUT filter cap

    - AFE_PCTRL = 1 (causes 100us for ADC power up)

    - Cell ADC sample period (ADC_PERIOD_VOL) = 60us

    - Cell ADC sample period for oversamples (CMD_OVS_GPER) = 12.6us

    - Staying on a cell channel to oversample (CMD_OVS_CYCLE)

    - AUX ADC sample period = 12.6us (ADC_PERIOD_AUXx)

    - 8x oversampling of CELL and AUX channels (CMD_OVSMP)

    - All of these parameters would be applied to any channels being sampled, including AUX, etc.

    Thanks,

    Taylor
  • Hi Taylor;

    Yes - no changes have been made to the EM1402, and so its schematic shows a 390pF cap. And yes, I initially tested with the all the default parameters and as I mentioned, found that when changing to 32 oversamples, the noise decreased by 3x. Nevertheless, we're still seeing over 1mV of jitter (see below: note the MaxD values which are the maximum spread of the conversion results - one second intervals).

    Q. What is the range or the conversion results you're seeing? Please capture/log them for review. That way I can rule out any EVM layout issues.

    Thanks!


    [0] AFEChanStruc (0x200031E0) 0x20003C68 AFEChanStruct_T *
    adc_new <union> 0x200031E0 UINT16
    CalAvgFloat 4.03938579 0x200031E4 float
    MaxV 4.03976726 0x200031E8 float
    MinV 4.0387754444 0x200031EC float
    MaxD 9.91821289E-4 0x200031F0 float

    [1] 0x20003200 (AFEChanStruc + 32) 0x20003C6C AFEChanStruct_T *
    adc_new <union> 0x20003200 UINT16
    CalAvgFloat 4.0554075244 0x20003204 float
    MaxV 4.05586528 0x20003208 float
    MinV 4.05494976 0x2000320C float
    MaxD 9.15527343E-4 0x20003210 float

    [2] 0x20003220 (AFEChanStruc + 64) 0x20003C70 AFEChanStruct_T *
    adc_new <union> 0x20003220 UINT16
    CalAvgFloat 4.05700969 0x20003224 float
    MaxV 4.0571622844 0x20003228 float
    MinV 4.0563230511 0x2000322C float
    MaxD 8.3923339844E-4 0x20003230 float

    [3] 0x20003240 (AFEChanStruc + 96) 0x20003C74 AFEChanStruct_T *
    adc_new <union> 0x20003240 UINT16
    CalAvgFloat 4.0457181933 0x20003244 float
    MaxV 4.0459470744 0x20003248 float
    MinV 4.0449552533 0x2000324C float
    MaxD 9.91821289E-4 0x20003250 float

    [4] 0x20003260 (AFEChanStruc + 128) 0x20003C78 AFEChanStruct_T *
    adc_new <union> 0x20003260 UINT16
    CalAvgFloat 4.0435819622 0x20003264 float
    MaxV 4.04373455 0x20003268 float
    MinV 4.04274273 0x2000326C float
    MaxD 9.91821289E-4 0x20003270 float

    [5] 0x20003280 (AFEChanStruc + 160) 0x20003C7C AFEChanStruct_T *
    adc_new <union> 0x20003280 UINT16
    CalAvgFloat 4.0480833 0x20003284 float
    MaxV 4.04854107 0x20003288 float
    MinV 4.04754924 0x2000328C float
    MaxD 9.91821289E-4 0x20003290 float

    [6] 0x200032A0 (AFEChanStruc + 192) 0x20003C80 AFEChanStruct_T *
    adc_new <union> 0x200032A0 UINT16
    CalAvgFloat 4.0486173622 0x200032A4 float
    MaxV 4.04876995 0x200032A8 float
    MinV 4.04770183 0x200032AC float
    MaxD 1.0681152344E-3 0x200032B0 float

    [7] 0x200032C0 (AFEChanStruc + 224) 0x20003C84 AFEChanStruct_T *
    adc_new <union> 0x200032C0 UINT16
    CalAvgFloat 4.05739116 0x200032C4 float
    MaxV 4.05739116 0x200032C8 float
    MinV 4.05639934 0x200032CC float
    MaxD 9.91821289E-4 0x200032D0 float

    [8] 0x200032E0 (AFEChanStruc + 256) 0x20003C88 AFEChanStruct_T *
    adc_new <union> 0x200032E0 UINT16
    CalAvgFloat 4.0442686 0x200032E4 float
    MaxV 4.04449749 0x200032E8 float
    MinV 4.0434293744 0x200032EC float
    MaxD 1.0681152344E-3 0x200032F0 float

    [9] 0x20003300 (AFEChanStruc + 288) 0x20003C8C AFEChanStruct_T *
    adc_new <union> 0x20003300 UINT16
    CalAvgFloat 4.04732036 0x20003304 float
    MaxV 4.04770183 0x20003308 float
    MinV 4.04655742 0x2000330C float
    MaxD 1.14440918E-3 0x20003310 float

    [10] 0x20003320 (AFEChanStruc + 320) 0x20003C90 AFEChanStruct_T *
    adc_new <union> 0x20003320 UINT16
    CalAvgFloat 4.0493803022 0x20003324 float
    MaxV 4.04968547 0x20003328 float
    MinV 4.0486173622 0x2000332C float
    MaxD 1.0681152344E-3 0x20003330 float

    [11] 0x20003340 (AFEChanStruc + 352) 0x20003C94 AFEChanStruct_T *
    adc_new <union> 0x20003340 UINT16
    CalAvgFloat 4.04892253 0x20003344 float
    MaxV 4.0493803022 0x20003348 float
    MinV 4.0481596 0x2000334C float
    MaxD 1.22070312E-3 0x20003350 float

    [12] 0x20003360 (AFEChanStruc + 384) 0x20003C98 AFEChanStruct_T *
    adc_new <union> 0x20003360 UINT16
    CalAvgFloat 4.04915142 0x20003364 float
    MaxV 4.04945659 0x20003368 float
    MinV 4.0483884811 0x2000336C float
    MaxD 1.0681152344E-3 0x20003370 float
    CalAvgHex 53072 0x20003374 uint16_t
    UseVdiffThresh 0x00 0x20003376 bool
    UseHystereticThresh 0x01 0x20003377 bool
    lastChargeDirection '\0' (0x00) 0x20003378 int8_t
    nextChargeDirection '\0' (0x00) 0x20003379 int8_t
    cellRelativeToArrayAverage '.' (0x01) 0x2000337A int8_t
    cellVoltageRelativeToArrayAverage 0x0005 0x2000337C uint16_t
    CellInBalance 0x01 0x2000337E bool
  • Also, please find attached a log of the test results using the EMV and its GUI. It shows the same behavior.

    TI_190104_152515_00.xlsx

  • Hi Jeffrey,

    I don't think I asked how have you connected the unused Vsense pins? Have you followed section 8.1.1.1 for this when using only 13 cells?

    Thanks,

    Taylor
  • Yes, they're tied to cell 13. This design is using the 455 because its predecessor(s) (EMB1432, EMB1433, etc.) went obsolete and are no longer available. So the cell harness ties the unused cells together.

  • TI_190110_120933_00.xlsx

    Hi Taylor; Attached is the noise my client sees while the GUI is triggering conversions. Is this expected? 

    Also, the attached GUI-generated spreadsheet shows 0's for AUX channels, yet each is tied to VIO through 20K's on the eval board? I believe it shows all channels enabled, but I've tasked them with resetting to 13 and retest.

    Attached is the image of the noise we got measuring across C40 (VDIG & GND). Previously, at address 7 (Command Oversampling) I had a value of 0x7D which does 32 sample averages and attached are the results of the log file. I can try writing a value of 0xFD to see if that makes a difference.
    
  • Active_Chipset_Reference_Design_Guide.pdfHi Taylor; Hope they're paying you overtime ;-D.

    I see an interesting change on the EM1402 from it progenitor, the EM1400 (The "Cheetah"):  

    I note that the filter Caps on the Vsense lines all tie to AGND, rather that to the adjacent cells, as it's done on my client's existing BMS, which uses the same AFE input filtering as did the EM1400.  It's confusing as to why this was done on the 1402,  because now  each Vsense line filter will have differing characteristics???

    I note that your latest application guide (SLUA791A) of 10/2018 says:

    " For applications that require a very low filter cutoff frequency, connect a differential (?) capacitor between the VSENSE lines to provide the bulk of the AFE input filtering. The bias voltage on these differential capacitors are the same (or very close), therefore, anti-aliasing is improved."

    I "think" this reference to a "differential capacitor" is confused, and it merely means a capacitor between the cells, just as was originally done. Nevertheless, curious as to why this changed since my client's AFE is much quieter and uses the original NatSemi components. What is more, the zeners are on the post-filter side? If I recall correctly, zeners are noisy. This may not be contributing to the jitter, but it's curious?

    see:  TI Active Chipset Reference Design Guide Revision: 1.5 Apr 26, 2012 5.1 Fig. 3

  • 5658.Active_Chipset_Reference_Design_Guide.pdfHi again Taylor;

     I just saw something different in the Vsense filter circuit between the EM1402 and its progenitor, the EM1400 (the original "Cheetah" that used the now obsolete EMB1432 AFE):

    I note that the filter Caps on the Vsense lines all tie to AGND, rather that to the adjacent cells, as it was originally done, and is done in my client's legacy BMS. That's really odd because each Vsense line filter will have differing characteristics

    I note that your latest application guide SLUA791A of 10/2018 says:

    " For applications that require a very low filter cutoff frequency, connect a differential (?) capacitor between the VSENSE lines to provide the bulk of the AFE input filtering. The bias voltage on these differential capacitors are the same (or very close), therefore, anti-aliasing is improved."

    What is more, the zeners are on the post-filter side, which might have been changed due to hot-plugging inrush (?). However, if memory serves, zeners are notoriously noisy. Whether they're contributing anything measurable to the jitter, I don't know.

    See attached Sec 5.1 Fig 3 describing the orignal

  • Hi Jeff,


    I reviewed the excel sheet and +/- 1mV is pretty okay.
    Datasheet spec is +/-.75mV (typical).
    It's diff measurements. It means that it will do Vcell16-Vcell 15 for Vcell 16.
    If you have diode and other components then it will contribute to the error.
    For example, zener leakage may not be 100% identical.

    Is this concern for your customer?

    I think plot on Vsense will be helper.

    thanks

    Roger
  • Hi Roger;
    Yes, my client is concerned, so much in fact, that they're seriously considering going with LT. I understand that the max error listed is ~1mV, but I thought this kind of error can be calibrated out. However, this error isn't constant, it's jitter, and so cannot be calibrated. In fact, using the default oversamples (8), the jitter is 2 or 3 times higher. I note the datasheet:
    6.11
    (2) User adjustable Gain and Offset registers are provided for further error trim at VSGAIN and VSOFFSET, respectively.

    My client did, however, just receive and test the passive balance version of the EM1402, which allows the user to select a different OUT capacitor. And, when selecting 2700pF (instead of the default 390), they report slightly better results, which may be a promising lead.
  • Hi Jeff.

    I think I responded this question from another post.

    thanks

    Roger
  •    Hi Roger and Taylor;

    Please see the attached captures. I'm really confused as to why there are ~2V glitches on OUT during sampling, since all channels are sitting at the same voltage, +/- a few millivolts??   Note jpg 101625 which captures the incoming command sent on Chan2, followed by the sequence of cell acquisitions at 60us intervals (sampling successive cells, not the same one)… See also jpg #102259 which shows OUT close up.

    Is this expected behavior?

    Thanks

  • Hi Jeff,

    I am assuming that your 1st plot is Vout.
    It's not glitches. It's level shifter output voltage.
    Check the 7.2 Functional block diagram.
    It goes to ADC MuX.
    Roger