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.

how to get constant output from LMP90100

Other Parts Discussed in Thread: LMP90100, LMP91300, LM317

hi 

I am using LMP90100 for bridge sensor circuit for weight application, i have configured internal registers of LMP90100 like this

address - 0x12  value - 0x20

address - 0x1f  value - 0x80

address - 0x20  value - 0x01

address - 0x21  value - 0x78

address - 0x11  value - 0xAB

address - 0x01  value - 0x08

address - 0x0B  value - 0x01

AND i am reading output from registers 0x1A - 0x1C but my output is not constant only register 0x1A output remains constant, varies only when pressure applied to the bridge circuit but outputs of 0x1B and 0x1C varies ramdomly.  i am using CH0;   VREF1;   VIN0 = VINP;  VIN1 = VINN;   VA = VIO = VREF = 5V; even i tried giving 3V;  supply voltage is constant; ODR  = 214 SPS;  GAIN = 16;  i have given 10ms delay after every 8bit SPI transfer signal, i have tried for different  ODR's and GAIN but the output is still not constant. can anyone please suggest me that where i am going wrong. Reading ADC registers(0x1A,0x1B and 0x1C)  3 bytes at a time(1 byte from each registers) in normal streaming mode. Should I configure any other registers of LMP90100. 

this is the output i am getting

0x1A      0x1B      0x1C

3              168        146

3                180        0

3                 153      233

4                 12         213

3                190         123    

Like this output varies randomly. sometimes output decreases whenever I apply weight on bridge sensor. what is going wrong in my setup please suggest me some solution 

  • Hello,

    A couple of things to try:

    In register 0x11 set bit 3 to 0. You have the background calibration set to off (BgcalMode0, register 0x10), but your setting this bit to 1 is telling it to calibrate the FGA using the last known coefficients. I don't know if this is causing a conflict.

    You write to register 0x0b to restart conversion. The first conversion after a restart needs to be discarded. See section 9.3.9 in the datasheet.

    You can also click on the Webench Designer on the LMP91300 web page by selecting Pressure and Open Design. Go through the setup in the designer and you can then compare how it sets up the LMP90100 with your register settings.

    Mike
  • Hi Mike,

    i tried changing register 0x11 bit 3 to 0, still the same varying output. I tried for LMP91300 webench designer on web i didn't found. my VI0 = VA = VREF = 4.62V, constant voltage but still the output not constant and also i tried with 3V but not getting output correctly. Even i set register 0x11 bit 3 to 1 and used with setting background calibration mode 2 and 3 still i am facing the same problem.

    Should I need to configure any others registers to get the constant output? or they are enough which i have mentioned in my last post.

    I am using Wheatstone bridge as bridge sensor, I am using Arduino board not EVAL board. 

    Charanraj

  • Hi Charanraj,

    The Webench designer is on the LMP91300 web page: 


    Webench is on the right side of the page in a box.  Click Pressure and then Open Design.

    Are you discarding the first value every time you send the restart command?

    Mike

  • Hi Mike,

    Yes I am discarding the first value after restart.

    I have configured other registers using webench and the varying of output slightly reduced but the problem is when I apply some weight  on sensor the output remains same,  why it is not changing the output what would be the problem. 


    Charanraj

  • Hi Charanraj,

    Just make sure, the SPI is working? You can write a value to a register and then read it back and get the correct value?

    Next check the voltages at the pins of the part. Touch the pins directly and not elsewhere. Are you getting all the correct voltages? When you change the pressure do you see the voltage change at the input pins?

    Mike
  • Hi Mike,

    Yes , SPI is working and I can write to and read correct value from register.

    These are all the voltages at pins VIO = VA = VREF! = 3.04V. Without any weight on bridge sensor VINP-VINN = 0.2 mV. After applying 5.4 Kg slab on bridge sensor VINP-VINN = 0.1 mV. the supply is constant but output still varies. Following are the registers I have configured

    address - 0x12 value - 0x20
    address - 0x1F value - 0x80
    address - 0x20 value - 0x01
    address - 0x21 value - 0x0D
    address - 0x11 value - 0xA3
    address - 0x01 value - 0x08
    address - 0x0B value - 0x01

    output I am getting is

    this is the value without weight on sensor

    Decimal value after concatenating 3 bytes (0x1A, 0x1B and 0x1C)
    13313 // negotiating first value after Restart Conversion
    32287
    21544
    22818
    23522
    20847
    21989
    22620
    23237
    24079


    this is the value after 5.4 Kg slab applying on bridge sensor

    Decimal value after concatenating 3 bytes (0x1A, 0x1B and 0x1C)
    15471
    15629
    16154
    14397
    15367
    17006
    15777
    13963
    14205
    14248

    Why I am not getting constant output what could be the reason

    Charanraj
  • Hi Charanraj,

    You mention in your post:  Without any weight on bridge sensor VINP-VINN = 0.2 mV. After applying 5.4 Kg slab on bridge sensor VINP-VINN = 0.1 mV.

    This does not seem right.  If you have a weight on the sensor there should be a voltage differential at the output of the bridge sensor. 

    Do you have your circuit connected as shown below?  The side of the bridge that the voltage goes up should be connect to the channel you have defined as VINP.

    Mike

  • Hi Mike,

    I am getting the output but the still the 0x1C register is not constant, The output varies +/- 30 grams, How can I get output to +/- 10 grams or 5 grams.

    I am using 2 types load sensors, one load sensors works  fine but in another sensor there is no small changes even though applying weight on it. Is LMP90100 works only for specific type of load sensors?

    Charanraj

  • Hi Mike,

    I am using same circuit with internal crystal oscillator (for LMP90100), but still I tried using external oscillator but output is still not constant. Background calibration is OFF, If I use background calibration is there any chance of getting constant output?

    Charanraj

  • Hi Charanraj,

    The LMP90100 will work with all types of load cells. The load cell that is not showing a change when weight is applied may be damaged or not being used correctly.

    What does the varying output of +/-30 grams convert to in voltage, in other words, how much would the voltage at the input have to change to make the output code change by 30 grams?

    What type of supply are you using for the reference?

    Is the reference and the supply for the load cell the same supply?

    Mike
  • Hi Mike,
    I am using regulated power supply from arduino. 5V from arduino is converted to 3.04V using LM317 regulator for reference.

    Yes reference and the supply for the load cell are the same supply.

    Thank you
    Charanraj
  • Hi Charanraj,

    Try the following experiment:

    Keep VREFP connected to your reference and VREFN connected to ground. Remove the load cell from the circuit and connect a 1k resistor between the reference and VIN0. Connect another 1k resistor between VIN0 and VIN1. Connect a third resistor between VIN1 and ground. This will give you a very stable input. Take some values and see how stable they are. If they are stable then the unstable reading you are seeing are coming from the load cell.

    Mike
  • Hi Mike,

    I tried using System Calibration Offset/Gain Coefficient Determination Mode by configuring address(0x17). Offset co-efficient registers (0x30 - 0x32 and 0x33 - 0x35) are filled with some raw data.
    What is that data would be?
    Is that is right way to configure 0x17 register in that way?
    I fallowed data sheet to configure 0x17 register but I didn't know what is the use of configuring that register (0x17).. Can you explain me what is the use of that register and how to configure it right way?

    Thank you
    charanraj
  • Hi Charanraj,

    Did you try the experiment described 2 posts above? What were the results?

    Mike
  • Hi Mike,

    Yes, I tried and the output was constant but the output is 120, 0, 0 (128 (decimal data across 0x1A register), 0 (decimal data across 0x1B register), 0 (decimal data across 0x1C register ). I feel this data (128, 0, 0) is lower threshold data. 

    And I also tried removing load cell and connecting resistor Wheatstone bridge (using four resistor) circuit in place of load cell circuit ( used four 2.2 K resistors), two ends of bridge circuit connected between VINP and VINN, another two ends were connected between VREFP and VREFN (ground) but the output was not constant both output from 0x1A and 0x1B register value was varyng. Even I tried using four 6.2 K resistor but still the output was not constant.

    Thank you

    Charanraj

  • Hi Charanraj,

    Are you using the LMP90100EB eval board available through ti.com. If not you should get a copy and use the included software to get started with this part.

    Another experiment is to hook resistors up as shown by resistors R5, R17 and R21 in the schematic of document snau028a (from the ti.com website). The top of R5 needs to be connected to VREFP1. The bottom of R21 needs to be connected to ground. The top of R17 needs to be connected to the positive input and the bottom of R17 to the negative input. Set gain to 1x. Then make a group of readings. How steady do 20 0r 50 readings look? Can you reply with these values?

    Mike
  • Hi Mike,

    I am not using LMP90100EB eval board, I am using arduino board and interfacing LMP90100 with micro-controller ATMEGA328.

    Thank you

    Charanraj 

  • Hi Charanraj,

    Ok.  It is much easier to start with the EVM.

    Were you able to conduct the experiment listed two posts ago?

    Mike

  • Hi Mike,

    ADC output  registers value is changing without any changes in the input value, It happens whenever power goes off and whenever power is back then ADC output gives different value for same input across input pins. What could be reason?

    Thank you

    Charanraj 

  • Hello Charanraj,

    After a power cycle are you writing the registers with the same values?  The LMP90100 will not hold the register values after a power cycle. 

    You should discard the first sample.  See section 9.3.9.

    Are your supply and reference voltages stable after the power cycle when you make the reading?

    Mike

  • Hi Mike,

    Yes I am writing registers after every power cycle with same values and discarding first sample after power cycle. And voltages are stable.

    Thank you 

    Charanraj

  • Hi Mike,

    my reference voltage and supply voltage both are same and it varies from 5.26V to 5.36V. Is this causing a problem?

    I am not getting exact 5.3V all the time it keeps on changing from 5.26V to 5.36V.

    thank you,

    Charanraj