I hope this is a viable question, but I have an issue with a circuit involving two ADS1115 modules, and eight MAX4080SASA high-side current sensors. (All purchased from eBay, as I can't hand-solder the ADS1115 chips.) Basically, I am trying to use the MAX4080S chips to measure the current draw through a number of DC breakers on a 48v DC system; the ADS1115 modules convert the output of the MAX4080S chips to digital for the microprocessor. The MAX4080S chips handle up to 80v differential on the current sense inputs, which means that they should be just fine in the event that a breaker trips (expecting maxed-out readings). In this case, I have a 100A 1-milliohm "main" DC breaker between a 48v battery bank and a 3KW DC inverter; I also have five 10A DC breakers (14 milliohms apiece) connected from the inverter's DC lugs to smaller DC loads.
Works great in theory...here's a KiCAD schematic of 1/2 of the circuit (the other half being exactly the same, except that "ADDR" on the ADS1115 goes to GND; they share the same I2C bus.
I actually had it working pretty good on 5 smaller breakers, using 22K resistors in series with both leads of the the MAX4080S chips to scale the range. ADS1115 resolution was near 1mA, which was very good. I could almost taste completion of the project...
When I connected the sense wires from the main 100A system breaker to a MAX4080, I got a nice reading. But when I increased the load to approximately 40A for a test (plugged a 1500W space heater into the breaker), the MAX4080 blew out (VCC/5v rail shorted down to 1.65v). The MAX4080 chips are rated for 80vDC on both the current sense leads AND VCC...and I only had 51v on the system. I have no idea what happened, and it's extremely unlikely that there would be 30v transients induced in 4 feet of coax cable (my current sense wire between the breaker terminals and the MAX4080). Anyway, I removed the blown MAX4080 module (restoring functionality in reading the already-connected 5 breakers), and tried the next MAX4080S module in line. This time, I soldered a 0.1uF/100v capacitor across the MAX4080 sense leads (transients??), as well as some 4.7K scaling resistors in series with the sense wires. Time for a second test...but this time, both ADS1115 modules (!) immediately malfunctioned when I connected the sense leads to the MAX4080! They only outputted different but static values for each channel--despite multiple resets (unplugging and shorting power supply capacitor out, I2C master reset command, etc.), they always returned exactly the same values.
I spent several hours debugging and revamping my I2C routine (had issues with "wait-for-conversion" lockups if the ADS1115 got reset!), and somewhere in there the ADS1115s' static values started changing. It seems they are working a little better now, but are still completely unusable. Anyway, I was able to confirm the following:
- the ADS1115s are responding to the I2C commands perfectly, and don't respond if given an invalid I2C address
- after the one-shot conversion is started, the ADC conversion flag is going from 0 -> 1 like it's supposed to
- crosstalk between the channels is at completely unusable levels
The outputs of the MAX4080S modules seem to be working fine, with voltages right around where I'd expect for the input loads (I'll check further)...but nothing close to what the ADS1115s are reporting via I2C. I'm not doubting that the ADS1115s are damaged, but my question is: HOW am I blowing things up with this? What in the world is going on? With an 80vDC limit, I would expect the MAX4080S chips to be virtually indestructible. Yes, there's the -0.3v absolute minimum on the sense leads, but with the sense leads up at 50vDC...??? Perhaps voltage is getting induced into the 78L05 (or backfeeding through a MAX4080) and bumping the output voltage beyond the 7v absolute max. of the ADS1115s? (Remember, both ADS1115s simultaneously quit functioning.)
I'm completely baffled. Any engineers with a clue?
(02-26-17, 6:57 PM EST...corrected some typos, made clarifications, etc.)