I need to convert 10V-32V range from a battery ( full range 0V- 32V) to a range of 0-5V before applying it to ADC. This is basically to get more resolution in my required range(10v -32V), since most of the battery applications not require sensing below certain range(Li-ion Bat)
-
1To achieve your request you will need a negative power rail, -5V would be enough. There probably is another way but I need to know your ADC (or uC) code to read in the datasheet. – Vladimir Cravero Jan 09 '13 at 07:40
-
1To do this properly requires precision components to establish the 10V offset. This is much harder and more expensive than a simple resistor divider. This is why all the answers are telling you to divide down and choose a more precise converter if necessary. A converter with 2 more bits of precision will be cheaper (incrementally) than the 0.1% voltage reference you need for analog-offsetting the voltage. – markrages Jan 09 '13 at 17:18
3 Answers
A voltage divider is needed if you have a real world signal that covers a wider range than your ADC. Suppose you have a signal from a transducer that goes from 0-20 Volts, and an ADC that works from 0-5 Volts. You need to divide the signal by 4 to get it into the range of your ADC. You can do this by placing two resistors in series like this:
(A)----////---(B)---////----(C)
The wiggly parts are two resistors, Rab and Rbc. Connect point A to your real world signal. Connect point (C) to ground. Connect point (B) to you ADC input. At point (B), the voltage will be:
Vb = Va * (Rbc) / (Rab + Rbc).
If Va is 20V, and Rbc is 10K Ohms, and Rab is 30 K Ohms, then Vb will be:
Vb = 20V * 10 / (10+30) = 5V
Thus you have converted a signal that is out of the range of your ADC to a signal that is in range.
- 4,632
- 5
- 27
- 40
Use a simple voltage divider (don't forget a capacitor). Just ignore the unused counts at the bottom. With a 10-bit or 12-bit A/D this would produce voltage measurements adequate for most battery management procedures.
This is what I would do, based on what you've wrote.
If you are planning to use the voltage for estimating battery capacity, be aware that it's hard to estimate the capacity from the voltage alone with accuracy better than, say, 10%.
- 38,181
- 17
- 100
- 237
-
-
actually the input is 0V to 32V , i am giving it to ADC of Controller(MPC5604), now before giving it to controller i need to convert the levels to range 0V to 5V but in this process i need to consider input 10V as 0V and input 32V as 5V (rejecting below 10V )...i need a circuit for this – user17715 Jan 09 '13 at 08:46
-
@user17715 - Nick has explained exactly the right way to do this, maybe you have not understood his answer. – John U Jan 09 '13 at 08:59
-
@user17715 I think you are worried about loss of resolution. But your adc is 10 bit! You are fussing over a difference of only 10 mv / step. If you need better resolution than 32 mv, you are better off working out a 12 bit adc than some sort of precision offset voltage divider. – Bobbi Bennett Jan 09 '13 at 15:39
The other questioners understood your requirement but disagreed with the need for it. As do I, it adds less than 1 bit of resolution to your measurements. However, you can do it by adding a 10V zener diode in series with the resistor string.
Bat(+)----|<|----(A)----////---(B)---////----Bat(-)
Note that --|<|-- is a crude ASCII diode symbol, and that (being a Zener diode) it is reverse biassed, and "breaks down" (harmlessly starts to conduct) at approx 10V. It is not a precision tool - about 5% accuracy - without a lot of extra design care, which is probably why the other answers didn't use it.
Now you have a voltage range of 0 to 22V at A; choose resistors to give you 0 to 5V at B (and a current of about 10ma at 22V. Zeners lose accuracy at very low currents)