I have developed a 4-20mA sensor reading board using ADS1115 16-bit ADC and precision 100 ohm resistors so the current will flow through the resistors and be converted into voltages.
I hooked up a TP100 temperature probe to a 4-20mA converter and 12V source. I was using channel 0 of the ADC. Everything looked as they should be. I left it on the carpet and didn't look at it until today. Now channel 0 reads 1.967V when it should read 0V and about 2.367V when it should read 0.8V. I probed the channel with my multimeter. It's receiving the correct input voltage.
Notice the difference is about half the voltage it should be reading: 0.8/2~=2.367-1.967
I checked channel 1. It works as expected, reading 0.8V. I doubt it's firmware issue. I've used this firmware for a number of years to flash my boards and when I last did that on several boards, my tests were correct. This ADC has a single programmable gain pre-amplifier that is multiplexed with 4 single-ended channels or 2 differential channels. I think the preamplifier is good but maybe the multiplexer is broken?
So I wonder if someone has seen similar "damages" on an ADC or specifically an ADS1115. My temperature probe has a metal sheath and metal mesh around the cable. I could have shorted something without knowing so.
Here is what's relevant. Each channel is connected to ground via a precision 100 ohm resistor to convert current to voltage. A type 2 4-20mA sensor is connected between V420 and a channel. V420 is power supply, I'm using 12VDC.
I've seen a number of reports of ADS1115 ICs being instantly destroyed by input voltages outside of the specified range, (for example, attempts to use them in differential mode, for high side shunt current measurements) but there is nothing in your setup to suggest that could be the problem.
Thanks. I reviewed its schematics. No details of the analog mux. I think it's probably where the damage happened. I also looked up some analog mux spec sheets, also no details provided. I'll be more careful next time. Maybe I can replace it but it's too close to a stacking header to easily do so. One "expensive" careless mistake. Don't have metal mesh wires lying around. I may just keep it as a test unit for myself.
There is no protection for the A/D input. If you get a glitch on the output of one of the sensors possibly when it turns on that could damage the A/D. I would suggest protecting the input with a resistor around 10K from the input to the junction of your 100 Ohm resistor IE between the ADC0_n flags. From the data sheet: "The ADS1113 and ADS1114 do not have an input multiplexer and can measure either one differential signal or one single-ended signal. For single-ended measurements, connect the AIN1 pin to GND externally. In subsequent sections of this data sheet, AINP refers to AIN0 and AINN refers to AIN1 for the ADS1113 and ADS1114. Electrostatic discharge (ESD) diodes connected to VDD and GND protect the ADS111x analog inputs. Keep the absolute voltage of any input within the range shown in Equation 3 to prevent the ESD diodes from turning on. GND – 0.3 V < V(AINX) < VDD + 0.3 V (3) If the voltages on the input pins can potentially violate these conditions, use external Schottky diodes and series resistors to limit the input current to safe values (see the Absolute Maximum Ratings table)." The table shows a max of +- 10mA.
Thanks. @gilshultz . I will add a 10K resistor in my next revision. If I place them in the same spot as another board I have the stencil for, I could use the same stencil