I'm building a Raspberry Pi based system to monitor power output of a solar panel. I'm planning to use ADS1115 ADC. I sketched a simple circuit, but then I though of a potential problem.

It is possible that as some point the ADC will be connected to the solar panel, while the Raspberry Pi is either completely disconnected or not connected to power. The solar panel at this point can be producing voltage on the ADC input.

In my understanding the VDD pin of the ADC will be floating at this point. The datasheet for the ADC says the maximum input voltage is VDD + 0.3V. Do you think in such scenario the voltage from the solar panel can damage the ADC chip?

Thank you!

P.S: I googled the question a lot, but only found a topic on PIC built-in ADC, which said voltage on ADC input during PIC power-up can be a problem.

P.P.S: Sorry about the crudely drawn schematic.

  • 1
    \$\begingroup\$ Better to use a compatible (20v to 5v) voltage regulator directly from panel to ADC chip. \$\endgroup\$ May 29, 2017 at 6:17
  • \$\begingroup\$ @PrasanDutt I though about this, but quick research has show that voltage regulators don't have linear input/output voltage relationships for inputs lower than cutoff voltage. I my be wrong though. Please correct me if I'm wrong. \$\endgroup\$ May 29, 2017 at 7:14
  • \$\begingroup\$ What is the minimum input voltage supply you're considering for operation? If the input power supply falls behind cutoff voltage, then you simply need to boost the voltage. Considering your case, using a buck-boost converter will meet your power supply requirements for ADC. \$\endgroup\$ May 29, 2017 at 8:27
  • \$\begingroup\$ @PrasanDutt I was talking about the voltage on the ADC input, not the supply voltage. I think a voltage regulator on the analog input would seriously affect the ADC readings. \$\endgroup\$ May 29, 2017 at 18:14

2 Answers 2


There won't be immediate damage. But it's outside of the absolute maximum ratings. The current injection will be less than 1 mA due to the resistor.
However, ESD protection won't work properly now because the Vdd side of the internal clamping diodes isn't connected.

If you don't want to take the risk you can add a small buffer with higher impedance input.


simulate this circuit – Schematic created using CircuitLab

You still need an anti-alias filter of which cuts of at half your samplerate. You can do this with Cfilter.

  • \$\begingroup\$ Thank you very much for your answer! I will definitely add the filtering capacitor. \$\endgroup\$ May 29, 2017 at 6:53
  • \$\begingroup\$ Now, about the OpAmp - I'm a little bit confused. In my understanding the OpAmp has a very low output impedance, so simply speaking the ADC chip will be able to draw more current into the input pin, once there is voltage. Isn't that more dangerous? Do I understand correctly that I would power the OpAmp from the Raspberry Pi so if the Pi is not powered, then the ADC doesn't see any input voltage? \$\endgroup\$ May 29, 2017 at 7:15
  • \$\begingroup\$ @KirillSalita The opamp has a low output impedance indeed, this is not a problem. The very high input impedance is a benefit as well, due to this you can make the resistor that limits the current very high, thus the current very small. The opamp can have 2 mA analog current, you'd need 400 Volts for that. \$\endgroup\$
    – Jeroen3
    May 29, 2017 at 7:34
  • \$\begingroup\$ I just found this thread link that says the Op Amp also need to be powered up before input voltage is applied. So the same problem than I have with voltage on the input of unpowered ADC. So if I power the Op Amp from the Raspberry, then the Op Amp sees input voltage before being powered up and gets damaged. If I power the op amp from the solar panel, then the ADC sees input voltage before being powered up and gets damaged. Where is my logic wrong? \$\endgroup\$ May 29, 2017 at 8:03
  • \$\begingroup\$ @KirillSalita If you worry about timing and override issue of power supply, perhaps a power supply sequencer can solve your problem. \$\endgroup\$ May 29, 2017 at 8:21

What will happen:

Current will flow into the ADC input, through the ESD protection diodes, and into the ADC's VCC. This is limited to about 1mA by the 20k resistor.

Check the datasheet for the max allowed current. 1mA should not fry your chip, but since it flows into VCC, it can raise your VCC to an indeterminate level...

This can have consequences: depending on the whole system current draw, your VCC could rise to, say, just a little bit above the voltage needed for the micro to boot. It will then boot, then draw too much current, shutdown, and repeat. It could also brownout and wander around mindlessly. (Oops, I just saw you use a RPi with a separate supply, so this wont happen, but keep it in mind for when you use a low power micro).

Simple fix:

Your ADC is very slow, so you can use a CR filter like Jeroen3 recommends, and increase your resistor divider to a higher value like 2.2Meg/220k, which will reduce the input current to very low levels.

With a 2.2Meg resistor, a 20V input voltage will only let 10µA through, which will not harm your circuit.

Now, you would have a problem, because your ADC has an input impedance which is not that high, as specified by the datasheet, so you need a buffer as Jeroen3 recommends.

Since your ADC includes a PGA, which is an amplifier, I wonder if the opamp buffer is actually necessary. I had a brief look at the datasheet, but could not find the information.

In any case Jeroen3's MCP6001 has a FET input so it will have no problems with megohm-valued resistor dividers.

The opamp shall be powered from the same supply as the ADC, of course. Having the low-output-impedance opamp powered but not the ADC would fry the ADC.



simulate this circuit – Schematic created using CircuitLab

This is an untested and probably dumb idea. The gist of it is that the PNP transistor clamps the ADC input one Vbe above the ADC's supply voltage. Adjust resistor values to make it work.

  • \$\begingroup\$ Thanks for the detailed explanation! I will go with Jeroen3's circuit then and I will increase the resistances on the divider by factor of 10 as you said. Now I'm wondering should I add a series resistor between the OpAmp output and ADC input to increase the impedance that ADC sees? That would limit the maximum possible current into ADC input in case the OpAmp powers up more quickly for some reason. As you said the ADC is very slow, so that shouldn't affect the maximum sampling rate. \$\endgroup\$ May 29, 2017 at 18:09
  • \$\begingroup\$ You'll probably power both from the same VCC so don't worry. What you should check is the ADC input capacitance, and if the opamp is stable with such capacitance. (It should). If you're extra paranoid, add a footprint for a resistor... \$\endgroup\$
    – bobflux
    May 29, 2017 at 18:18
  • \$\begingroup\$ Thanks a lot! Do you know if OPA132 is a good substitute if I can't find MCP6001? It looks good to me because it has 10^13 input impedance, FET inputs and 2.5V minimum supply voltage. \$\endgroup\$ May 29, 2017 at 19:35
  • \$\begingroup\$ Just realized the OPA132 does not have rail-to-rail output, so looks like I won't be able to measure voltages smaller than 0.5V. Looks like I'll have to source the MCP6001. \$\endgroup\$ May 29, 2017 at 20:08
  • \$\begingroup\$ Hmm looks like you're in for of Mouser/Digikey/Farnell postage... Rail to rail opamps are hard to find on the street corner store. I'm gonna edit my post in a few minutes with another solution. \$\endgroup\$
    – bobflux
    May 29, 2017 at 20:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.