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.

ADS1115: Help with LMP91000 and ADC settings for RPI/Arduino

Part Number: ADS1115
Other Parts Discussed in Thread: LMP91000, , REF5020

Hi

I have developed PCB for Spec Sensors using LMP91000 as pe schematic below for sensing 4 gases CO, NO, SO and O3. I want to use it with boards like Arduino, Raspberry Pi, ESP8266 and ESP32 like using ADS1115 ADC. Can you please someone me with LMP91000 settings and ADC settings to get best results?

  • Hello Vijay,

    I can certainly try and help you with the ADC setting but I am rather unfamiliar with the LMP91000. I can give a brief overview of the ADC how you might want to configure it. 

    The ADS1115 has a multiplexed input that allows for 4 single-ended measurements or 2 differential as well as an integrated PGA. The integrated PGA allows for different input ranges for small and large signal measurement. The ADC also has an internal reference voltage reference. When it comes to output data, the ADC can be configured in continuous sampling or single-shot mode. In continuous sampling mode, the ADC is constantly converting and outputting data on SDA. In single-shot mode, the user tells the ADC when they want it so sample and convert. There is also a handy comparator mode that when enabled, outputs an active low/high signal on ALERT/RDY pin based on user defined thresholds. 

    Based on the LMP output, it looks like you would like to go for a single ended measurement. This is configured in the configuration register. For example, if you wish to perform a single-ended measurement on AIN0, you would set bits 14-12 in the configuration register to '100'. This will connect AINp = AIN0 and AINn = GND. Please note that because of the multiplexer, you cannot simultaneously sample multiple single-ended inputs. 

    As mentioned above, the ADS1115 is capable of a wide full scale range (FSR). Again, this is configured in the configuration register and should be set accordingly. For example, if you are going to provide a maximum 200mV input, you would want to set the FSR to +/- 256mV. If you are providing a 1V input and the FSR is set to +/- 256mV, the ADC will saturate and you will essentially see the max code for input levels > 256mV. 

    I hope this helps you get started! If you have any more questions, please let me know. Also, as I mentioned above, I am not familiar with the LMP so feel free to post in the Sensors Forum for any questions regarding that device. 

    Regards,
    Aaron Estrada

  • Aaron

    Thank you for the response. Basically, I am trying to figure out the PGA for each gas sensor. I will connect 4 gases to the ADC. The LMP91000 has external VRef of 2.048V from REF5020. Since there is no provision to use a external VRef with ADS1115 should I use it in differential mode?

    I also need some help on settings for each gas. For example the CO gas sensor specs are

    The VDD to ADS1115 is 3.3V and the VRef to LMP91000 is 2.048V. The CO gas generates between 0-1000 nA/ppm. In my understanding, the LMP91000 converts this current into voltage. However, I do not know if this is converted linearly and also if the output is in nV or µV. What are the optimal settings for getting FSR? I am a medical doctor. So please try to explain in simpler terms 

    Regards

    Vijay

  • Hi Vijay,

    I don't think that differential measurement is a requirement here and you should still be fine with a single-ended measurement. You can go the differential route but you will need two devices since you can only do 2 differential measurements per ADS1115. 

    When it comes to setting the FSR, there are a couple of things to consider. One thing being the LSB size. The LSB size is essentially the voltage equivalent of a single code. So if you are working in the nV range, the resolution of the ADC will not be able to accurately measure the input. For the ADS1115, a list of LSB sizes in relation to the FSR is shown below. 

    Similarly, you would like a full scale range that your input range falls into. I believe I mentioned this above, but you want to ensure your input does not exceed the limits of your FSR. For example, if you set FSR = +/- 0.256V and 1V is applied to the ADC inputs, the ADC will essentially saturate and you will get the max code of 0x7FFF for inputs of +/- 0.256V or greater. 

    I think it would be a good idea to re-post this in the sensors forum to get some more information on the LMP91000. 

    Regards,
    Aaron

  • I am testing the ADS1115 with ESP32. Can you please explain the FSR calculation with a simple 3.3V VDD to the ADS1115 board and 3.3V connected to AIN0? What gain should I use? Also how do i use the VRef 2.048V from the sensor board? Thanks in advance. 

  • Hi Vijay,

    I am not sure what you mean by FSR calculation. With VDD = 3.3V and AIN0 = 3.3V, you would want the FSR to be +/- 4.096V. This will allow input signals up to 3.3V to be measured (Please ensure that you do not supply more than VDD + 0.3V or GND - 0.3V at the analog inputs). 

    As for the reference, the ADS1115 uses VDD as the reference so no external reference is required. I think the LMP uses an external reference (Not sure if an internal option is available). 

    Regards,

    Aaron Estrada