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.

LMP8481: Computing Current Sense Amplifier Error

Part Number: LMP8481

Tool/software:

Hello-

I am using the -S and -T versions of the LMP8481 current sense amplifier.

I am using TI's "Current Sense Amplifier Comparison and Error Calculator"  https://www.ti.com/tool/CS-AMPLIFIER-ERROR-TOOL spreadsheet and I have some questions.

1) I do not understand how the e_CMRR and e_PSRR are calculated; there is some magic that happens to convert the CMRR and PSRR from dB to uV/V that I am not following.

2) This current sense amplifier feeds into an ADC in my circuit. How would I go about computing the total error in the sensed current; taking into account ADC sources of error?

Thanks!

-M

  • Hello,

    1) I do not understand how the e_CMRR and e_PSRR are calculated; there is some magic that happens to convert the CMRR and PSRR from dB to uV/V that I am not following.

    PSRR can be converted from dB to µV/V by reversing the formula for dB. Divide by 20, and then raise 10 to the power of the quotient: PSRR(µV/V) = 10^(PSRR(dB)/20).

    CMRR will have the same formula.

    2) This current sense amplifier feeds into an ADC in my circuit. How would I go about computing the total error in the sensed current; taking into account ADC sources of error?

    Combining error sources is done using the root sum of squares (RSS) method. Because the error sources are uncorrelated, we can combine the errors from the ADC and the amplifier by squaring both error values, adding them, and taking the square root of the result.

    What ADC error sources will affect your system will depend on your choice of ADC and any external components used. A full discussion of these error sources is beyond the scope of this post, so here are some resources you can use:

    We have a video series explaining ADC operation here, look especially at the Error Sources and ADC Noise sections: https://www.ti.com/video/series/precision-labs/ti-precision-labs-analog-to-digital-converters-adcs.html

    There is also a downloadable calculator that allows you to calculate ADC error here: https://www.ti.com/tool/ANALOG-ENGINEER-CALC

    And an online version here: https://dev.ti.com/gallery/view/PADC/PADC_Design_Calculator_Tool/ver/1.20.0/ (be sure to click on the TUE Calculator section)

    Let me know if you have any more questions,

    Levi DV

  • Thanks for the quick response!

    So, I know about reversing the dB formula, but the problem I'm seeing in my implementation of the formulas from the current source error calculator spreadsheet is that this blows up the CMRR and PSRR error terms:

    From calculator spreadsheet for the same values of current and sense resistor @ 85C:

    Ishunt Vsunt1 Vos Gain PSRR CMRR IBIAS RSHUNT Error
    4A 0.08V 0.808% 0.72% 0.25% 0.25% 0% 0.19% 1.5%

    Any thoughts??

    Thank you for the ADC noise calculation resources!

  • Hello,

    Did you define the CMRR and PSRR variables as negative values? I was assuming that they would be inserted as negative values, but I just realized that that is not actually how the datasheet lists the values.

    Let me know if this doesn't fix the problem,

    Levi DV

  • Hmm that definitely gave me a different result, but it does not match the values that the spreadsheet came up with.

    I randomly decided to try to divide by 10^8 and that seemed to match exactly what the spreadsheet calculated:

    From spreadsheet:

    Ishunt Vshunt Vos Gain PSRR CMRR IBIAS RSHUNT ERROR
    4A 0.08V 0.808% 0.72% 0.538% 0.250% 0% 0.19% 1.76%

  • So I moved on to trying to match the spreadsheet calculation for Vos. I think that there might be an error with the spreadsheet?

    Vos should be 646uV, but the only way I can get my Vos error calculation to match the spreadsheet calc is if I assume Vos is 6.46x10^-2, and I ignore the drift in the Vos.

  • Hello,

    In both of your calculations here you are interpreting the mathcad result as a percent, or equivalently, interpreting the spreadsheet results as decimal values. This is why both your offset error and PSRR/CMRR values are off by a factor of exactly 100. If you convert the spreadsheet values to decimal values it should work.

    Let me know if you have any more questions,

    Levi DV

  • Thanks so much for sticking with me on this.

    Okay so I converted the spreadsheet value for Vos error to decimal and that matched what I mathcaded. Thanks so much for pointing that out.

    I'm now back to being stuck on CMRR & PSRR.

    Using a spreadsheet value of .25% for CMRR, 4A, 20mOhm resistor, I get 2x10^-4.

    However, my mathcad calculation is still not coming out right. Here's what I'm getting now:

      Vbusin-Vcm = 60

    Likewise, not matching for PSRR, either. PSRR of .538% = 4.3x10^-4. Mathcad: 0.005.

      Vs-Vs_spec = 43

    It appears I am still missing a factor of 10 somewhere??

  • Hello,

    The values that Mathcad is calculating look correct to me, they are just rounded to the third decimal place. I don't know how you are arriving at the values you typed above the images, but the Mathcad calculations look correct to me. 0.25% = 0.0025 ≈ 0.003 (rounded)

    Let me know if you have any more questions,

    Levi DV

  • Thank you!!!!

    One last question. I am not sure I am quite grasping the error result that I'm getting from my Mathcad analysis as it does not appear to be a percentage as you've said. I am using the spreadsheet RSS equation to compute a final error value based on the various error contributions.

    My thinking would be:

    Thank you so much again for your continued support!

  • Hello,

    I am assuming you mean that you are trying to compute the real voltage error from the error percentage. I don't know enough about mathcad to know how to insert values as percents, but you can work around that by inserting 0.02 instead of 2.

    In order to calculate the voltage value, you should multiply the ideal output by (1+raw_err).

    Let me know if this didn't answer your question,

    Levi DV