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.

ADS122U04: ADS122U04

Part Number: ADS122U04

Hello Bob,

The PT100 temperature sensing circuit (Ratio metric method) using ADS122U04 is now working absolutely fine.
Now I have a query related to Pressure Transducer (0.5 to 4.5Vdc Output) sensing  using ADS122U04.
Presently since I have not finalized and procured a Pressure Transducer I am using a voltage divider (7K5 and 10K POT) supplied by 3v3dc-
to simulate a  Pressure Transducer input. This voltage divider gives 0 to 1.9vdc (which is within the ADC i/p limit of 2.4vdc which is 'Avdd - 0.9').

When the POT is at Max position (AIN0 = 1.9VDC), I get ADC count as:                  0x77985F
When the POT is at Mid position  (AIN0 = 1.0VDC), I get ADC count as:                  0x3E3A77
When the POT is at near min position (AIN0 = 0.5VDC), I get ADC count as:           0x1F66F2
When the POT is at Minimum position (AIN0 = 0.0VDC), I get ADC count as:          0xFFFC34

My question is: I don't understand why, after gradually decreasing from 1.9 to 0.5vdc, the ADC count gives negative value at 0vdc?

The config Register values are as follows:-

//Commands for Writing to the 'Configuration Registers' of ADC ADS122U04 IC
extern uint8_t CMD_WRITE_CONFIGREG_ZERO_ADC_PRESSURE[3]     = {0x55,0x40,0x81}; //PGA disabled & bypassed,Gain=1(default),AINp=AIN0 and AINn=AVss
extern uint8_t CMD_WRITE_CONFIGREG_ONE_ADC_PRESSURE[3]       = {0x55,0x42,0x08}; //Internal 2.048vdc as ref.,Continuous conv.,Normal mode,Data Rate 20SPS
extern uint8_t CMD_WRITE_CONFIGREG_TWO_ADC_PRESSURE[3]       = {0x55,0x44,0x00}; //Data counter disabled,IDAC Off,Data integrity check disabled
extern uint8_t CMD_WRITE_CONFIGREG_THREE_ADC_PRESSURE[3]   = {0x55,0x46,0x00}; //Manual data read mode,IDAC2 disabled, IDAC1 disabled
extern uint8_t CMD_WRITE_CONFIGREG_FOUR_ADC_PRESSURE[3]      = {0x55,0x48,0x00}; //all default setting kept unchanged

 

The Analog i/p to AIN0 is single-ended (i.e. Not differential). Kindly refer schematic of the same shown below.

Please give your suggestions regarding:
a) Possible reason for negative ADC count at AIN0 = 0VDC
b) A better scheme to interface a Pressure Transducer (0.5 to 4.5Vdc Output).
    I will be using a Baumer or MEAS make Pressure Transducer.
    I am not going to use a 4to20mA output Pressure Transmitter because it will need an additional 10vdc power source.
    I need to use just a single 5VDC power source for the sensor as well as ADC circuit.

Thank you in advance,

Best Regards,
Milind Risbud.

 


  • Hi Milind,

    The ADC will have some offset inherent to the device.  It is possible that the offset is negative.  I would suggest taking a look at the device offset by applying the internal short using the internal mux setting for AINP=AINN connected to (AVDD-AVSS)/2 and see if there is a code value you could use to subtract the offset from successive measurements.

    Best regards,

    Bob B

  • Hello Bob,
    As suggested by you I changed the value of Config Reg Zero so that "AINP and AINN shorted to [(AVDD+AVSS)/2]".
    I kept values of all other Config Regs unchanged as seen in declarations below:

    //---------------------------------------------------------------------
    //Commands for Writing to the 'Configuration Registers' of ADC ADS122U04 IC

    //PGA disabled & bypassed,Gain=1(default), AINP and AINN shorted to [(AVDD+AVSS)/2] for test purpose
    extern uint8_t CMD_WRITE_CONFIGREG_ZERO_ADC_PRESSURE[3] = {0x55,0x40,0xE1};
    //Internal 2.048vdc as ref.,Continuous conv.,Normal mode,Data Rate 20SPS
    extern uint8_t CMD_WRITE_CONFIGREG_ONE_ADC_PRESSURE[3] = {0x55,0x42,0x08};
    extern uint8_t CMD_WRITE_CONFIGREG_TWO_ADC_PRESSURE[3] = {0x55,0x44,0x00};//Data counter disabled,IDAC Off,Data integrity check disabled
    extern uint8_t CMD_WRITE_CONFIGREG_THREE_ADC_PRESSURE[3] = {0x55,0x46,0x00};//Manual data read mode,IDAC2 disabled, IDAC1 disabled
    extern uint8_t CMD_WRITE_CONFIGREG_FOUR_ADC_PRESSURE[3] = {0x55,0x48,0x00};//all default setting kept unchanged
    //---------------------------------------------------------------------

    I logged the 3 byte ADC count after doing above change and can see the inherent Offset of ADC.
    Please see the screenshot added below.
    Please inform what value of offset count should I subtract from the Actual (Pressure Sensor input) ADC count.

    Thank you,

    Best Regards,
    Milind Risbud.

  • Hi Milind,

    You need to take several conversions and then find the average result by adding the results together and dividing by the number of results collected.  The final result would be the number to subtract to remove the offset.  That said, I'm not seeing a negative offset.

    What may be happening is when the PGA is bypassed the current that is drawn from the input may be affected by the voltage divider in that there may still be some residual resistance/inductance of the potentiometer that is affecting the measurement.  If you look at the electrical characteristics graph in Figure 6 in the ADS122U04 datasheet you will see that with PGA disabled there is a small bias current shift drawn at or near 0V input.  

    Also, you may want to add an RC filter at the input to limit noise and aliasing from any external noise source that may be picked up in the pot or wiring to the input.  Looking back at the initial data, have you take a series of measurements to determine the noise?  There could be noise from the source as well as ground bounce noise that may be reflected in the result.

    Best regards,

    Bob B

  • Hello Bob,

    As suggested by you, I have taken 10 readings of ADC count (with  AINP and AINN shorted to [(AVDD+AVSS)/2] -
    for getting inherent offset of ADC), averaged them and subtracted this number which is (60 decimal) from each ADC count received.
    This appears to have resolved the problem of negative ADC count, except for ADC count at input voltage 'Zero vdc'-
    in which case I still get a negative count, but this input voltage 'Zero vdc' is never going to appear in my actual application-
    because I shall be using a Gems (UK) make pressure transducer (which I have just ordered) which gives 0.5 to 4.5vdc output votage-
    in response to Engine Oil pressure (which shall not exceed Max 10bar).

    My questions are that:

    1] How can I convert the ADC counts back into input voltage (0.5 to 4.5vdc), so that I can further-
        convert this input voltage (0.5 to 4.5vdc) into Pressure (0bar to 10 bar)?

    2] Is there any formula to convert ADC counts back into input voltage (0.5 to 4.5vdc), like the one-
        that is available for converting ADC counts from temperature sensor (PT100) back into temperature in DegC?

    Also I am trying to get a graph of 'Output voltage Vs Pressure' for this specific pressure transducer, so that I can-
    implement piece-wise linearization and derive the value of Pressure in bar.

    Thank you,

    Best Regards,
    Milind Risbud.

  • Hi Milind,

    I'm glad to hear you are making progress.  If you use 5V as the sensor excitation and 5V for the reference, then as given in the data sheet then the value of a single output code (LSB) will be based on +/- Vref/gain/(2^24).  This is demonstrated in equation 8 of the ADS122U04 datasheet in sectioin 8.5.2.  So for Vref equal to 5V and PGA set to 1 the LSB would be about 596nV.  To convert the codes to a voltage, you would take the conversion result and then subtract the calculated offset and then multiply the result times 596nV.  This appears to be what you are doing already, so maybe I'm not clear as to what you are really asking.

    As to the conversion of the voltage to pressure, this would be determined by the sensor manufacturer and they should have a calculation or table to determine the pressure.  In the RTD case, when current excitation is used to develop both the reference voltage and the excitation for the sensor (ratiometric measurement), then the calculation used in the original LSB calculation changes for Vref = IDAC*Rref and the RTD proportional to the Rref reference resistor.  However this only makes the resistance measurement easier.  You would still need to use a lookup table or polynomial equations to calculate the temperature from the resistance.

    Best regards,

    Bob B

  • Hello Bob,

    I am more than thankful to you for directing me to section 8.5.2 of the datasheet,
    and for all the guidance that you have provided me through this development process.
    I would not have been able to progress in this development work at a good pace without your kind help.

    As you know I have completed PT100 interfacing. I didn't had to look at section 8.5.2 of the datasheet-
    during  PT100 interfacing, because, I used the formula given in datasheet for converting ADC count back into Resistance-
    and another formula for converting the Resistance value into Temperature in Degree Centigrade.
    So, I didn't had to go into the detail of finding voltage equivalent of 1LSB of ADC count.

    But now when I am interfacing Pressure Transducer, I don't have any ready made formulae.
    But thanks to your guidance. Using the following formula, I have successfully converted ADC count into Voltage:

    1 LSB = (2 · VREF / Gain) / 2^24

    In my case , I have used internal reference voltage which is 2.048vdc and Gain =1.
    So, 1LSB calculates to 244.140 nanoVolts.
    When output voltage from Pressure Transducer is 1.919 volts (input voltage to ADC), I am getting ADC count as 0x77A704 which is 7841540 decimal.
    So, converting this count back into voltage: 7841540 x 244.140 = 1.914 Vdc
    Thus, this calculated value (1.914 Vdc) is closely matching the value actually measured using multimeter which is 1.919 volts.

    Though I am able to successfully convert the ADC count back into voltage, I have two queries as follows:

    1] Section 8.5.2 says that "The device provides 24 bits of data in binary two's complement format." 
        But I am using the ADC count as it is (without bothering about the fact that it is two's complemented value)-
        and still getting a correct voltage equivalent. How is this happening? 
        Why is it that I don't need to subtract one and then take one's complement of the ADC count before using it for further calculations?

    2] Section 8.5.2 mentions the following equation:    1 LSB = (2 · VREF / Gain) / 2^24 = +FS / 2^23
        I am unable to understand what "+FS / 2^23" exactly means. 

    Kindly reply to my above queries.

    Thank you,
    Best Regards,
    Milind Risbud.

     



     

  • Hi Milind,

    The binary 2's complement output has codes in the positive range from 0x000000 to 0x7FFFFF.  As long as you are measuring in the positive range the codes do not need to be converted.  However if the most significant bit is '1' the output is negative where 0x800000 is negative full-scale and 0xFFFFFF is code -1.  So when reading the negative range you would need to convert the values.

    So there is positive full-scale (+FS = 0x7FFFFF) and negative full-scale (-FS = 0x800000).  The output code is based on AINP voltage relative to the AINN voltage.  If the AINP input voltage is greater than AINN, then the outcome will be in the positive range.  If AINN is greater then AINP then the outcome will be in the negative range.  So 1/2 of the codes will be in the positive range (most significant bit (msb) 0) and the other 1/2 of the codes will be in the negative range (msb is 1).  When the msb is 0, then you can use the output codes directly.  If the msb is 1, then you will need to convert the value from the binary 2's complement to a signed value in your code.

    Best regards,

    Bob B

  • Hello Bob,

    I have purchased a Gems (UK) make Ratiometric Pressure Transducer -
    that measures 0 to 16 bar pressure and gives a corresponding output of 0.5 to 4.5VDC.
    [note: MEAS or Baumer make that works on 5vdc was not available immediately, so went for Gems make].
    None of it's datasheets has any reference circuit (which I can refer) for interfacing it with an ADC. 
    The authorized distributor has told me that it's characteristic response (i.e. Output Voltage Vs Pressure) is Linear-
    but a characteristic response graph is not available in any of it's datasheets/catalogs etc. and nor is it available with the sales person.
    I have on my own, come up with the below shown circuit for interfacing it with ADS122U04.
    Please let me know if the circuit looks okay or any changes needed. 
    It will be nice if you can provide me a circuit which I can refer for interfacing such pressure transducer to ADS122U04.


    So far as the above circuit is concerned:
    The datasheet of this pressure transducer says that the output is:  0.5 to 4.5 VDC @ 4 mA
    I am not sure what value of load resistor (please refer above circuit) should I use, across which I can take the output voltage.

    4.5vdc/1.1kOhm = 4mA, so if I use load resistor = 1.1Kohm then at transducer output = 0.5vdc  the current in the loop will be just 0.45mAmps!
    So, I am totally not sure about  what value of load resistor should I use?
    I have decided to use a three-pin voltage reference IC 'MAX6145' for getting 4.5vdc reference voltage to be applied to REFP pin.
    Please let me know if this looks okay.
    It will be great if you can provide/suggest me a circuit which I can use as reference for interfacing this Pressure Transducer,
    as this is the very first time that I am interfacing a Pressure Transducer to a external or internal (of microcontroller) ADC.

    Mentioned below is the URL of this 3100 series Pressure Transducer for your reference:

    https://www.gemssensors.com/search-products/product-details/3100-3200-series-pressure-transducers-

    Thank you,

    Best Regards,
    Milind Risbud.

     

  • Hi Milind,

    There are way too many sensors for TI to come up with specific designs for each case.  I have no experience with the particular sensor chosen, and either the manufacturer thinks the sensor is so easy to use they don't need to provide information or they are being very secretive for competitor reasons.  In any case you should see an output voltage for the pressure range with voltages of 0.5 to 4.5V when using 5V excitation.  I don't think you actually need the load resistor, but it doesn't hurt to have it and not populate to begin testing.

    For the reference, I would use the same voltage for the reference as you do for the excitation.  This will limit the total noise of the measurement and any drift of the source.

    Best regards,

    Bob B