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.

Directly measuring Current using ADC

Other Parts Discussed in Thread: ADS1220

Hi Team,

I am designing a circuit to measure the current consumed by a Ultra-low power communication module. The requirement is below:

  1. Min current = 0.2mA
  2. Max current = 100mA
  3. Resolution = 0.005mA (5uA)

Do I need to use a pre-amplifier after current sense resistor? Imagine I am using an ADC with 24bit resolution and 5V reference then my 1LSB will be 0.3uV, less than the required resolution. Is it possible to connect a buffer after Rsense and connect its output directly to ADC input? If yes please suggest some ADC for this application

Regards

Hari

  • Hari,


    The answer to this depends on a few other details.

    For a current sense resistor, what value do you expect to use? Starting with the max current of 100mA, what voltage would you get for a maximum input? What sort of data rate would you need?

    In the end, you need an ADC that has an input range that extends to GND. If you have bipolar supplies, this would be ideal, because a PGA gain can be used to amplify small signals. If you don't have bipolar supplies, you may need a device that has a PGA that can be bypassed. This however, might limit resolution because you may not be able to get a large input signal. Devices like the ADS1220 and ADS124S0x have PGAs that can be bypassed. If you have bipolar supplies, both devices have a PGA with significant gain

    From your comments, you need a range of 100mA, but a resolution of 0.005mA. This is the equivalent of 20000 counts. For that, you could technically use a 16-bit ADC.

    Regardless, if you have more details about what type of sensing circuit you are putting together with input range details, post back with more information.


    Joseph Wu
  • Hello Hari,

    Thank you for your query. To help us provide a good solution, can you help  with the below questions:

    Do you need an automotive grade part for this application? Also, it seems you just need 100 mA/0.005 mA = 20000 codes to achieve a resolution of 0.005 mA.

    >=16-bit of noise free bit ADC with either an integrated gain stage in the front end or an external opamp based gain stage should suffice.

    Do you have a target shunt value? Also, can you confirm that the currents are unidirectional?

    What is the data rate requirement - how often do you need to measure current? 

    What is the end-application here? 

    Regards,

    Krunal

  • Hi Joseph,

    Rsense is 0.5 Ohm.
    Voltage for maximum input will be 50mV.
    Not decided the data rate.Apllication of this circuit is to measure the current consumed by our DSP during it's different operating conditions
    like sleep,active,shut down etc.
    I have flexibility in selecting the power supply if this system works with bipolar well I am ready to use it.

    Regards
    Hari
  • Hi Krunal,

    Please see my comments below
    Do you have a target shunt value? --Yes 0.5 Ohm

    Also, can you confirm that the currents are unidirectional?--Currents are Unidirectional

    What is the data rate requirement - how often do you need to measure current? -- Not decided yet

    What is the end-application here? --Apllication of this circuit is to measure the current consumed by our DSP during it's different operating conditions like sleep,active,shut down etc.

    Regards
    Hari
  • Hari,


    With a maximum input of 50mV you might be able to use a single ended measurement with the ADS1220 with a unipolar supply to get the resolution you need. However, you would only use a portion of the ADC input range and there may be limitations on the resolution based on the noise.

    Using the ADS1220 and the internal reference, the input measurement can be put in a gain of 4 while still bypassing the PGA (gain of 4 is achieved through capacitive sampling). With this gain, the input range is ±0.512V. If you measure 0 to 50mV, then this is represented through codes 000000h to 0C8000h (819200 codes), which is about 1/10 of the positive full scale range.

    However, if you go through the ADS1220 datasheet to look at the noise performance, you can find some values in Table 7. With a gain of 4 and the PGA disabled, the ADC has a noise of about 3.91uVpp at a data rate of 40SPS. This means that you'll have the equivalent of 50mV/3.91uV = 12800 counts. This is the equivalent of about 7.8uA for your resolution. If you are able to a slower data rate, you may be able to do some averaging, which would reduce the noise to an acceptable level.

    However, if you have the ability to use a bipolar supply (±2.5V), that would probably be the best and easiest solution. The direct measurement would be at mid supply of the ADC and you could use the PGA to give you plenty of gain and resolution.


    Joseph Wu
  • Hi Joseph,
    I am ready to use Bipolar supply.Do I need to take any precautions when setting the PGA gain.
    Regards
    Hari
  • Hari,


    By using the bipolar supply and setting the input at ground, it should set the measurment within the input common mode range of the PGA and you can set the gain.

    If you do use the a bipolar supply, I would still set VREFCOM at ground and bring up both supplies at the same time. If the positive supply comes up much slower than the negative supply then there may be problems with the negative supply sinking excess current during startup. Some of it is outlined in this post:

    e2e.ti.com/.../2193786

    When you are ready, post back and we can review the schematic.


    Joseph Wu
  • Hi Joseph ,

    Thank you very much,will send you the schematic once it is ready.Meanwhile could you please check the attached file which shows an example for converting ADC SNR to uVrms.Could you please tell me how that "0.5" comes in that equation.

    Regards

    Hari

  • Hari,


    The 0.5 factor comes comes up naturally from the rms calculation.

    The rms value is √2/2 of the zero-to-peak value. Therefore rms is (0.5)*√2/2 of the peak-to-peak value. Because the equation asks for the full scale range in rms, the value should be:

    (2*10^6)(0.5)(√2)/2 = 707100 uVrms

    I'll close up this post, and you can start a new post when you're ready for me to look at the schematic.


    Joseph Wu