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.

Problem with LMP90100

Other Parts Discussed in Thread: LMP90100

Hi 

I am using LMP90100 and able to configure and read output from the ADC. I'm using 5V for VREF and also for adc supply.When i give 1V between VINP-VINN i was able to read 0.99-0.98 but sometime it reading voltage as 1.65(at least twice in every 10 times). 

I also configured the adc as 214SPS and gave square wave of period 2s from FG. When i read the output data i only got approximately 160 highs and lows instead of 214 highs and lows.

I have attached the output log file where you can see the result I got.you can also see the variation in the output log which is highlighted.

ThanksLMP901001Channel214SPS.xlsx

Prakash Ramamoorthy

  • Hello,

    In the first experiment you tried, where you have the 1V on the input, can you tell me more about the setup (gain, which inputs, how the channel is set up, which mode is being used, schematic and so on)?

    Thanks,

    Mike
  • Hello stout

    The setup is a PCB breakout board which contain IC and four capacitor as said in the datasheet. The ADC is controlled by arduino mega and the 5v available in the arduino is used for power and 3.3V for VREF to the ADC. 1V is given to the adc from function generator of period 2s. In another try 5V from the arduino is converted to 1v and given to adc.

    I know the voltage in arduino won't be stable but i believe it won't drop this much. And also at both experiment the VREF is given from arduino only.  

    Gain = 1(default,Buffer included)

    *TI_LMP90100_CH0_CONFIG_REG_VALUE               (0x70)

     Input channel is (VIN0-VIN1) as CH0

    Single channel 

    Mode= Data_only mode

  • Hello Prakash,

    It is important to have stable voltages for Vcc and especially for Vref before you proceed with anything else. Use an external 5V supply for VCC and Vref. Make sure that it is a stable, quiet supply. The Vcc and Vref pins must have bypass caps close to the pins. The supply should also have bypass caps at the point that it enters the PCB.
    Put 2V on VIN0 and 1V on VIN1. These supplies also need to be stable and have bypass caps on them.
    Setting the config register to 0x70 is ok. The datasheet has an error for bit 0 of the config register. Setting bit 0 to 0 will exclude the buffer. We are in the process of getting the datasheet changed. Using 0x70 is ok.
    Now try making the multiple readings and see what result you get.

    Mike
  • Hello stout
    Thanks for reply but i still couldn't figure out the solution
     
    I will explain the problem briefly here. As you know, we have been working on the LMP90100 ADC. I am using the arduino board for controlling the ADC. Power is given from a 7805 regulator IC. Initially I was using one 7805 IC. Same 5V was given to the VREF,VA and VIO. 
    Problem 1.
    I made a voltage divider circuit using 4 resistors and obtained 1.25 V across each resistor. When I connect the VINP-VINN across one resistor it drops to 1.14V which is being read by the ADC. When the VINP-VINN is connected across two resistors it drops to 1.49V from 2.5V.
    The dropped voltage is not at a constant level. It is increasing with respect to time. i.e it was 0.84 V at one point and increased upto 0.9 V after 10 mins.
    Also the voltage drop across the same resistor is not the same when connected across another channel of the ADC(1.01 when connected to channel 0 and 0.86 when connected across channel 1). The voltage across the VINP - VINN without any input connected is 0.67 and 0.60 for channel 0 and channel 1 respectively.  
    Problem 2.
    When a voltage of 1V is given to the ADC it reads around 0.98-1.01 but some times it shows data either above or below the desired voltage(not constantly just as a peak).
    The ADC is configured for 214 Samples/second (CONFIG_REG_VALUE = 0X70) and Scan mode is : ScanMode3.
    CH_SCAN_REG_VALUE =0XC1. 
    When I add a delay of 100ms in the data read,the number of voltage peaks reduces. This however affects the scan rate. When I configured the ODR at 1.667 SPS I was able to read the data with no peaks but with constant drift in the voltage.
    Today I used two separate Voltage regulator for VREF and VA,VIO but the peaks and drift remain the same.
         
    I would much appreciate your help and insight into these problems we are facing.
  • Hi Prakash,Let's work on problem 1 first.
    Are you using a LMP90100 eval board? I would like you to try the set up shown in the eval board user guide (available on the ti.com website) in section 3.0. Example #1: Quick Start – DC Reading. Even if you don't have the eval board you can set this up using components you have. Set VA to 5V, VIO to whatever the arduino is using, and VREF to either 4.1V or the 5V supply. Make sure all supplies are bypassed well. Connect the resistors R5, R17, and R21 to the 5V and connect your inputs across R17. Make sure you have caps like C12, C13, and C14 installed. Try making some measurements and see what results you get.
    Mike
  • Hi Stout

    The problem with the voltage droping was because of having common ground for adc and the 1v(From original 5v using voltage divider). The voltage doesn't drop when gave 1v from different power source.Is it impossible to use the same power and ground of ADC?.

    Also the peaks was our mistake by not converting the 2's complemented data properly. I gave the sine wave from the FG to the adc and plotted the output. I'm able to recreate the sine wave back.

    Now I would like to test the adc with RTD. Before testing with real rtd i would like test it with constant resistor and see the constant output back.

    So used 100 ohms for input and 20 k for the RREF(VIN6-VIN7). I configured the RTD current as 100μA. I configured the gain as 32 and used both IB1 and IB2 as shown in the datasheet.

    FORMULA:  RTD-RCOMP = ADC_OUTPUT * 20000 * 4/(32 * 2^ 23)

    When i read the data it shows over 100 and keep varying. I attached the circuit. please correct me if i'm wrong 

    And also should I connect the adc's ground to ground plane on the PCB. I have 3 LMP90100 where 2 is connect with ground and other one is not connected with the gnd plane. The one which not  connected to the gnd plane is working fine but the other two is not working with same code.

    I have attached the circuit below.

  • Hi Prakash,


    This will work and it should give you a very solid code.  If you touch the 100 ohm resistor you should see the code change a little as the resistor warms up. 

    If it is drifting around, something is still connected up wrong.  The fact that the other two parts don't work at all also indicates that something is connected wrong.  

    For this set up you should have pins 11 and 16 connected to ground.  5V should be on pin 1. 

    I tried this circuit on our eval board and got the following results:

  • Hi stout

    I have tried the circuit which I posted earlier and able to read around 0.030-0.031 across 100ohms with no fail. Then I replaced the 100 ohm resistor with three wire RTD(as original circuit given in the data sheet with two current inputs) I was able to read 0.0350-0.0353 from the ADC. When I heat the RTD with lighter the voltage changes up to 0.046. Is that the typical output I should get?

    Note: All the reading were made under gain=1

    Also the gain value which I should use is only dependant on the R-sense value right?. For example Right now I'm using 10k for R-sense and 100 micro Amp for RTD current I was able to read 3.8-4.1 V across the 10k using multimeter. So I have to decide the gain with reference to 4v as follow right?. 

    RTD at -200 deg C 18 0hms, RTD at 850 de C 394 ohms

    Let excitation current = 100 uA, Vref: 4.00 V

    80% of Vref = 3200 mV

    Since RTD input after excitation will always be +ve we can ignore the input at -200 deg C.

    At 850 deg C input = 100uA*394 ohms = 0.0394V = 39.4 mV

    So 3200 mV  39.4 mV

    Hence gain required 81.22

    Nearest lower gain available: 64

    So in a similar way we can generate the gain for different RTD. Correct me if I'm wrong.

     

  • Hello,

    That is what the RTD should do, as the temperature goes up the resistance will go up which means the voltage will go up.

    To determine the gain needed, you need the max and min temperatures that this will be used at. This will give you a max and min resistance which can be converted to a max and min input voltage to the LMP90100. Using those number you pick a gain that will not cause the output of the ADC to saturate as you described in your post. Yes, this needs to be done for each type of RTD.

    Mike