Is there any way to interface a battery with voltage range 0-5V to a fpga with ADC range at 3.3V while maintaining full input voltage range i.e 0-5V mapping on 0-3.3V. I have gone through the following methods
- Using Resistor divider
cannot use this as there will be always a path for the battery to discharge through them - Using a transistor as a switch or a diode clamp circuit
with these methods the range of input gets reduced - active opamp circuit
the only other thing that remains is using an active opamp circuit :- this will require the use of external components . Are there any other methods to achieve the same ?
EDIT— Can a transistor operating in linear region be used to achieve this ?
Best Answer
You can use a high-side switch, which is just a complementary MOSFET pair, to switch the battery connection to the resistive divider. Then you can use lower-value resistors which will cause less ADC error, and you can have it only draw current when you're actually measuring the battery voltage.
High-side switches are available as a single component, or can be assembled from discrete parts (an N-ch MOSFET, a P-ch MOSFET and a few resistors).
simulate this circuit – Schematic created using CircuitLab