STMicroelectronics AN2615 In general the adc embedded in the st7 microcontroller Datasheet

AN2615
Application note
A high precision, low cost, single supply ADC for
positive and negative input voltages
Introduction
In general the ADC embedded in the ST7 microcontroller is enough for most applications.
But, in some cases it is necessary to measure both positive and negative voltages. This
requires an external ADC with this particular capability. Most external ADCs require a dual
supply to be able to do this. However, microcontroller-based applications usually only have a
positive supply available.
This application note describes a technique for implementing an ADC for measuring both
positive and negative input voltages while operating from a single (positive) supply. This
converter is based on a voltage-to-time conversion technique. Like other slope converters,
this ADC also uses an integrating capacitor, but the measured time is inversely proportional
to the input voltage. An additional comparator with a voltage reference is used to improve
conversion accuracy.
As shown in the circuit diagram (Figure 1 on page 6), the converter is implemented using an
integrating capacitor, resistor, external op-amp, comparators and some microcontroller I/O
pins. The ST72F264 microcontroller is used in this application note as an example, but the
implementation is feasible using any ST7 microcontroller. The 16-bit timer of the
microcontroller measures the time using its input capture pins (PB0 and PB2). These pins
are connected to the output of the Comp1 and Comp2 comparators. The I/O pins PB1 and
PB3 are used to switch the M1 and M2 switches on or off. The circuit could also work with a
microcontroller equipped with an 8-bit timer. Only a small modification to the software would
be needed.
August 2007
Rev 1
1/37
www.st.com
Contents
AN2615
Contents
1
Circuit diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2
Theory of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1
Advantage of using two comparators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3
Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4
Circuit analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5
Vout vs time diagram for different input voltages . . . . . . . . . . . . . . . . . 10
6
Characteristics of different slope converters . . . . . . . . . . . . . . . . . . . . 11
6.1
Single-slope converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1.1
6.2
Dual-slope converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2.1
6.3
7
Single-slope converter timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Dual-slope converter timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Solution presented in this application note . . . . . . . . . . . . . . . . . . . . . . . . 13
Error analysis/constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1
Input offset voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.2
Correction factor for the product of R*C . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.3
Value of charging resistance R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.4
Charging capacitor C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.5
16-bit timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.6
Effect of temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.7
Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
8
Voltage references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9
Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10
Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
11
Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2/37
AN2615
Contents
11.1
Positive input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
11.2
Negative input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11.3
Effect of the capacitor value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
12
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
13
References and bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Appendix A Input stage conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A.1
Case 1: Voltage measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A.2
Case 2: Current measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Appendix B Application board schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Appendix C Bill of materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Appendix D Software flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
D.1
14
Code size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3/37
List of tables
AN2615
List of tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
4/37
Results for positive input voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Results for negative input voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Bill of materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Code size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
AN2615
List of figures
List of figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Circuit diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Relationship between Vout and time for a given input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Vout vs time for different input voltages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Single-slope converter circuit diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Single-slope converter timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Dual-slope converter circuit diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Dual-slope converter timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
VIN versus time in AN2615 solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Voltage reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Algorithm flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Results for positive input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Measured vs input for positive voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Error vs input for positive input voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Results for negative input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Measured vs input for negative voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Error vs input for negative input voltages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Results for positive input with a 10 µF capacitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Voltage measurement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Potential divider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Use of input buffer for voltage measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Current measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Application board schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5/37
Circuit diagram
1
AN2615
Circuit diagram
Figure 1.
Circuit diagram
PB1
M1
RS
Comp1
358
C
Amp
I
Vout
358
D
V1
Comp2
358
R
PB2
PB3
V2
M2
1. V1 < V2 < V3
6/37
PB0
V3
VIN
AN2615
2
Theory of operation
Theory of operation
Vin is the input voltage. The voltages across resistor R are the reference voltage V1 and the
input voltage Vin. Due to the properties of the op-amp, V1 is output on the inverting pin of the
op-amp. Therefore, for a given input voltage, the current flowing through resistor R is
constant. Let this current be I.
Current I charges the capacitor C, and output starts increasing in a positive direction for the
input Vin <= V1 (input Vin > V1 charges in the opposite direction).
The output is captured at two instants using the two output comparators at voltage
references V2 and V3. The time corresponding to voltage levels V2 and V3 are T2 and T3
respectively. The final reading of time Tm is taken as the difference of T3 and T2.
The input voltage is calculated from this difference through the formulae given in the circuit
analysis.
This technique can only be used where the input voltage varies slowly, otherwise the
charging of the capacitor is non-linear.
2.1
Advantage of using two comparators
The purpose of using the second comparator (comp2) can be understood from the diagram
below (Figure 2), which shows the relationship between the op-amp output (Amp in
Figure 1: Circuit diagram on page 6) and the time for a given input value.
Figure 2.
Relationship between Vout and time for a given input
Vout
V3
V2
V1
Point of
uncertainty
T2
Tm
T3
Time (t)
The time is measured as the difference of the two timer readings (T3 -T2) for the same
slope. So factors like the residual voltage of the capacitor ( Vc(0+)) and any other constant
errors (like the effect of output offset voltage) on the output side of the op-amp are
subtracted. So its performance is better than a single-slope converter.
7/37
Timing diagram
3
AN2615
Timing diagram
Figure 3 shows the overall operation of the ADC. Initially the capacitor is in the reset state
(M1- on and M2- off), the op-amp output Vout is at V1 and so, the output of both
comparators, Comp1 and Comp2 is high.
Capacitor charging can be started by switching M1 - off and M2 - on. When the charging
starts, Vout rises. When Vout becomes greater than V2, a falling edge occurs on Comp1. This
causes an input capture at pin PB2 and software reads the timer value T2.
When Vout becomes greater than V3, a falling edge occurs on Comp2. Again this causes an
input capture at pin PB0 and software reads the timer value T3.
The capacitor is discharged by switching M1 - on and M2- off. After this, the ADC can be
kept in reset condition by switching M1 - on and M2 - off or we can continue repeating the
same process and make more measurements.
Figure 3.
Timing diagram
Charging Discharg. Settling
time
time
time
V3
Vout
V2
V1
0
T2
T3
Comp1
Tm
Comp2
M1
M2
8/37
Time (t)
Tm
AN2615
4
Circuit analysis
Circuit analysis
In this analysis, it is assumed that there is no noise present and the i/p offset voltage of the
op-amp is negligible.
I = (V1 – Vin)/R = C * dVc/dt
Where, Vc = Vout – V1 and current ‘I’ is constant for a given input.
Applying the Laplace transform:
(V1 – Vin)/s * R = C * (s Vc(s) – Vc (0+))
or,
(V1 – Vin)/s2 = (R * C) * ( Vc (s) - Vc(0+)/s)
Applying the inverse Laplace transform, we get
(V1 – Vin) * T = (R * C) * ( Vc(t) - Vc(0+) )
------------------- (1)
As shown in Figure 3: Timing diagram on page 8
At T = T2, Vc(T2) = V2 – V1
And, at T =T3, Vc (T3)= V3 – V1
So,
(V1 – Vin) * T2 = (R * C) * (V2 – V1 - Vc(0+))
------------------- (2)
(V1– Vin) * T3 = (R * C) * (V3 – V1 - Vc(0+))
------------------- (3)
And,
Equation (2) and equation (3) can both be used as the characteristic equation for this
converter, but factors like Vc(0+) and other constant errors remain present. But if we use
both comparators, then we can remove these factors by subtracting equation (2) and
equation (3).
After subtracting equation (2) from equation (1) and rearranging we get:
Vin = V1 - (R * C) *( V3 – V2 )/(T3 –T2)
------------------- (4)
Let measured time T3 - T2 = Tm and we get:
Vin = V1 - (R * C) * ( V3 – V2 )/Tm
------------------- (5)
By using equation (5) we can measure the value of Vin depending on the value of T3 and T2.
9/37
Vout vs time diagram for different input voltages
5
AN2615
Vout vs time diagram for different input voltages
In Figure 4, we can see the relationship between the Vout and time for different input
voltages. From the figure, it is clear that the conversion time for a negative input voltage is
less than the time taken for a positive input voltage.
Figure 4.
Vout vs time for different input voltages
Effective time Tm = T - T’
Vin < 0
Vin =0
Vin > 0
V3
Vout
V2
V1
T1’
T2’ T1
T3’
T2
T3
Time (t)
1. Tm1: for Vin < 0; Tm2: for Vin = 0; and Tm3: for Vin > 0 (where Tin1 < Tin2 < Tin3)
2. This ADC works for the range Vin <= V1 but if the input voltage is greater than V1 the direction of current I is
inverted and the capacitor starts charging in the opposite direction and conversion never takes place.
3. For negative voltage currents I, that depend on the difference V1 - Vin, is high, so the charging time for
negative voltages is less than the positive voltages.
10/37
AN2615
Characteristics of different slope converters
6
Characteristics of different slope converters
6.1
Single-slope converter
Figure 5.
Single-slope converter circuit diagram
C
R
-Vref
VINT
Vin
6.1.1
Single-slope converter timing diagram
Here Vin is directly proportional to the time measured.
Figure 6.
Single-slope converter timing diagram
Vin
Time
1. Here Vin = K * Tm
The major sources of conversion errors are the correction factor for the R*C product and the
input offset voltage.
A single-slope converter requires a dual supply voltage op-amp to be able to measure the
positive and negative voltages.
11/37
Characteristics of different slope converters
6.2
AN2615
Dual-slope converter
Figure 7.
Dual-slope converter circuit diagram
S0
-Vin
Vref
Control logic
R
1
S1
S1
out
1 out
3
2
gnd
S2
cmp
ctr
enbl
2
gnd
clk
clk
Counter
clk
6.2.1
Dual-slope converter timing diagram
As shown in Figure 8 a dual-slope ADC has a charging phase followed by a fixed rate
discharging phase.
Figure 8.
Dual-slope converter timing diagram
Charging phase
Vin1
Fixed-rate discharge
Vin
-Vref
Vref
Vin2
Tcharge
=
Tdischarge
-Vref
Time
The advantage of a dual-slope ADC is that it is not dependent on the correction factor for the
R*C product. However, the input offset voltage problem still persists and this ADC also
requires a dual supply op-amp to be able to measure positive and negative voltages.
12/37
AN2615
6.3
Characteristics of different slope converters
Solution presented in this application note
In this application note, a single supply ADC for positive and negative input voltages is
described. It's input voltage is proportional to the inverse of the time measured. We can see
in Figure 9 below that as the input voltage becomes closer to V1, the conversion time also
increases. For an input of V1, the conversion time is infinite (1/Tm = 0 in Figure 9). So the
input voltage range depends on the value of V1 and the maximum delay that the application
can tolerate.
Figure 9.
VIN versus time in AN2615 solution
Vin
V1
Positive
input
Negative
input
+Vref
Total input range (+Vref to -Vref)
V0
1/Tm
-Vref
1. Vin = V1 - (R * C) * (V3 -V2) /Tm
The significant advantage of this ADC is its ability to measure positive and negative input
voltages operating from single supply, while other solutions require a dual supply. Also this
converter does not require any negative voltage reference. Again, as in the single slope
converter, the major sources of error are the correction factor for R*C product and the input
offset voltage.
As shown Figure 9, the ADC is capable of measuring the input voltage ranging +Vref to -Vref,
where the absolute value of Vref is mod (Vref) < V1 so the input voltage range depends on
the value of V1.
13/37
Error analysis/constraints
7
AN2615
Error analysis/constraints
This ADC can be used for measuring any slowly varying input (voltage/current), for example
battery monitoring, and for measuring positive and negative input voltages. But, besides the
need for accurate power supply and voltage references, the following factors also affect the
accuracy of the conversion.
7.1
Input offset voltage
As mentioned previously, the output offset voltage is subtracted from the input, but the input
offset voltage of the op-amp (Amp) still remains present and is directly added to V1. For
measurement purposes, let us refer to the input offset voltage of the op-amp as Koffset.
7.2
Correction factor for the product of R*C
As the value of the R and C changes with time and temperature, the factor R * C also
changes. Let the correction factor be Kgain.
Then eq(5) becomes,
Vin = V1 + Koffset – Kgain* (R * C) *(V3 -V2)/Tm
------------------ (6)
The coefficients Koffset and Kgain can be calculated by measuring Tm for two known input
values. These factors can also be compensated by software calibration techniques (like
using look-up tables or storing some known values). In the present example the first method
is used to calculate these coefficients.
7.3
Value of charging resistance R
If the charging resistance ‘R’ is too high then the current ‘I’ is comparable to the input bias
current of the op-amp, which can affect the output. Also if it is too low then the current
flowing through it is significant so the capacitor is charged very fast. This affects the
measurement accuracy of the ADC.
7.4
Charging capacitor C
Up to this point we have assumed that capacitor C discharges completely from the previous
conversion. However, this is not so in actual practice and a few millivolts worth of charge
(which adds to the offset voltage), may remain on the capacitor. This effect is called
capacitor dielectric absorption and varies depending on the capacitor's dielectric material
voltage to which it was charged during the last charge cycle and the amount of time the
capacitor has had to discharge. Also due to this effect, the output of the capacitor may not
be linear over the whole conversion range. So it is very important to choose the right
capacitor for your requirements. While Teflon capacitors exhibit the lowest dielectric
absorption, polystyrene and polyethylene are also excellent. Ceramic, glass and mica are
fair, while tantalum and electrolytic types are poor choices for A/D applications.
Also, as integrating ADC’s are dependent on the integration of the current flowing through
capacitor C, they do the averaging. So, the larger the value of the capacitor, the longer the
14/37
AN2615
Error analysis/constraints
conversion time and the better the accuracy. In conclusion, there is always a trade-off
between conversion time and accuracy.
7.5
16-bit timer
A 16-bit timer is used as the counter that measures the conversion time. Overflows are also
taken into account, so we can also use an 8-bit timer. The resolution of the ADC depends on
the operating frequency of the timer.
7.6
Effect of temperature
The value and characteristics of each component varies with temperature. The effect of
temperature can be broadly categorized as ‘offset drift’ and ‘gain drift’. So we need to
compensate the ADC for each significant change in temperature.
7.7
Comparator
The comparators are the cornerstone of the A/D conversion process. The ability of the
comparator to detect small voltage/current changes makes the comparator very important in
the A/D conversion process. Any degradation of the intended behaviour of the comparator,
which is most usually caused by unwanted noise, leads to the degradation of the ADC’s
ability to measure low voltages.
15/37
Voltage references
8
AN2615
Voltage references
The following circuit is used to produce the different voltage references.
Figure 10. Voltage reference
VDD
R1
C1
R2
C2
+5V
Gnd
16/37
Vref
AN2615
9
Hardware setup
Hardware setup
Figure 11. Hardware setup
ST72
VDD
Comp1
Vin
External M1
ADC
Comp2
M2
Gnd
VDD
PB0
PB1
TD0
PB2
PB3
RS232
interface
Gnd
0134.85 mV
Multimeter
Application board
RS232 communication
Hyper terminal
The external ADC is interfaced to the ST7 microcontroller The input capture pins PB0 and
PB2 are used for capturing the pulse from the comparators at two instants (when the output
is equal to V2 and V3 respectively), while PB1 and PB3 are used for controlling the voltage
at the gate of the M1 and M2 switches (on/off the MOSFET). The results of the A/D
conversion are displayed on the Windows hyper terminal application through an RS232-SCI
interface. The general schematics of the board are given in Appendix B: Application board
schematics on page 31.
17/37
Algorithm
10
AN2615
Algorithm
Figure 12. Algorithm flowchart
Start
Initialize I/O,timer and SCI
Calibrate the ADC
Count = 16
1 second delay
Start conversion
No
Conversion complete?
Yes
1 second delay
Convert the timer reading in to voltage and send the
result on the PC through SCI-RS232 interface
Decrement count
No
Count > = 0?
Yes
Calculate the average and display on the
PC through SCI-RS 232 interface
Start new conversion
18/37
AN2615
11
Result
Result
The result is given for a capacitor value of 100 µF. So the conversion time is long. The
conversion time can be reduced by choosing a capacitor with a lower value but accuracy is
also reduced. Other parameters are as follows:
R = 10 K, V1 = 1.5 V, V2 = 2V and V3 = 3 V
So:
R * C = (10 K) * (100 µF) = 1 s
The input range is taken as +1V to -1V, where mod (Vref) (= 1 V) is less than V1.
The conversion time is in the range 1 to 3 s. The settling time (as shown in Figure 3: Timing
diagram on page 8) is fixed at 1s. The ADC is calibrated by reading two known input
voltages afterwhich Koffset and Kgain are calculated. The input voltage Vin is taken from a
voltage source.
11.1
Positive input
In Figure 13, an example of the readings measured by the converter, which are sent to the
hyper terminal, are shown. Tavg is the average of 16 conversions, and Vavg is the calculated
value in terms of voltage. The difference of the maximum and minimum value among the 16
values is also shown.
Figure 13. Results for positive input
19/37
Result
AN2615
In Table 1, the readings are shown for positive input voltages ranging from 0 to 1 V. Vin is the
voltage measured by the multimeter. Vmeasured (equal to Vavg) is the average voltage
measured by the converter in a loop of 16. The last column shows the difference in the
maximum and minimum readings of the values measured by the converter in the loop. This
shows the variations recorded in the readings.
Table 1.
Sl no
20/37
Results for positive input voltages
Vin (mV)
Vmeasured (mV)
(taken from multimeter)
Difference (mV)
(Vmeasured - Vin)
Error in max and min
input measured in the
loop (mV)
1
8.93
8.93
0
0.45
2
18.94
18.98
0.04
0.25
3
28.82
28.87
0.05
0.21
4
38.72
38.78
0.06
0.39
5
49.07
49.13
0.06
0.46
6
58.93
59.02
0.09
0.38
7
68.82
68.92
0.1
0.08
8
79.12
79.25
0.13
0.39
9
88.98
89.07
0.09
0.33
10
98.85
98.98
0.13
0.12
11
108.75
108.9
0.15
0.37
12
119.05
119.19
0.14
0.43
13
128.95
129.13
0.18
0.29
14
138.57
138.76
0.19
0.24
15
158.75
158.96
0.25
0.25
16
178.97
179.18
0.21
0.4
17
198.68
198.91
0.23
0.1
18
218.83
219.1
0.27
0.37
19
239.08
239.35
0.27
0.34
20
258.55
258.83
0.28
0.14
21
278.8
279.11
0.31
0.19
22
299.02
299.34
0.32
0.31
23
318.68
319.09
0.41
0.37
24
338.93
339.29
0.36
0.35
25
358.38
358.78
0.4
0.39
26
378.62
378.98
0.36
0.36
27
398.85
399.25
0.4
0.27
28
438.84
439.23
0.39
0.15
29
478.64
478.93
0.29
0.35
AN2615
Result
Table 1.
Sl no
Results for positive input voltages (continued)
Vin (mV)
Vmeasured (mV)
(taken from multimeter)
Difference (mV)
(Vmeasured - Vin)
Error in max and min
input measured in the
loop (mV)
30
498.75
499.23
0.48
0.09
31
519
519.41
0.41
0.32
32
538.69
539.1
0.41
0.28
33
558.91
559.3
0.39
0.11
34
578.63
579.03
0.4
0.3
35
598.65
599.01
0.36
0.28
36
638.6
638.99
0.39
0.26
37
678.93
679.3
0.37
0.14
38
718.6
718.93
0.33
0.14
39
758.61
758.93
0.32
0.23
40
798.53
798.83
0.3
0.17
41
838.7
838.94
0.24
0.19
42
858.49
858.68
0.19
0.2
43
878.55
878.72
0.17
0.13
44
898.76
898.92
0.16
0.19
45
918.53
918.61
0.08
0.13
46
938.46
938.55
0.09
0.15
47
958.68
958.72
0.04
0.1
48
978.4
978.38
-0.02
0.14
49
998.63
998.56
-0.07
0.14
50
1018.8
1018.68
-0.12
0.18
21/37
Result
AN2615
Figure 14 shows the relationship between the voltage measured by the ADC Vmeasured
(average of the 16 readings measured by the converter) and the input voltage Vin.
Figure 14. Measured vs input for positive voltages
Figure 15 shows the relationship between the error voltage (as given in Table 1 in the
column ‘difference (Vmeasured - Vin’)) and the input voltage Vin.
Figure 15. Error vs input for positive input voltages
Note:
It may be seen from the readings in Table 1 and Figure 15, that for the positive input
between 0 to 1 V the maximum error is around 500 µV for an average of 16 conversions.
Thus the difference between the maximum and minimum values in a loop of 16 is around
500 µV. This shows that averaging has increased accuracy. The accuracy without averaging
is approx 1mV.
The variations of the 16 values may be due to changes in the input voltage itself, as the time
taken for 16 readings is very long (around 16 s).
22/37
AN2615
11.2
Result
Negative input
Similar to the positive input voltages, the readings for negative input voltage are taken in a
loop of 16 as shown in Figure 16.
Figure 16. Results for negative input
23/37
Result
AN2615
Table 2 shows the readings for negative input voltages ranging from 0 to -1 V with the same
parameter notations as Table 1: Results for positive input voltages on page 20.
Table 2.
Sl
no
24/37
Results for negative input voltages
Vin (mV)
Vmeasured (mV)
(taken from multimeter)
Difference (mV)
(Vmeasured - Vin)
Error in max and min input
measured in the loop (mV)
1
-9.23
-9.17
0.06
0.43
2
-18.92
-18.84
0.08
0.14
3
-28.96
-29.04
-0.08
0.27
4
-38.76
-38.89
-0.13
0.38
5
-49.03
-49.14
-0.11
0.37
6
-58.88
-59
-0.12
0.24
7
-68.74
-68.9
-0.16
0.8
8
-79.03
-79.2
-0.17
0.22
9
-88.88
-89.06
-0.18
0.34
10
-98.76
-98.96
-0.2
0.4
11
-128.87
-129.13
-0.26
0.32
12
-148.76
-149.07
-0.31
0.32
13
-178.9
-179.21
-0.31
0.39
14
-198.6
-198.94
-0.34
0.11
15
-218.73
-219.12
-0.39
0.43
16
-248.59
-249.04
-0.45
0.2
17
-268.81
-269.32
-0.51
0.46
18
-298.91
-299.51
-0.6
0.15
19
-318.61
-319.25
-0.64
0.38
20
-348.67
-349.37
-0.7
0.37
21
-378.42
-379.23
-0.81
0.23
22
-398.71
-399.57
-0.86
0.48
23
-418.45
-419.33
-0.88
0.25
24
-448.52
-449.5
-0.98
0.47
25
-478.36
-479.41
-1.05
0.26
26
-498.56
-499.69
-1.13
0.4
27
-538.52
-539.73
-1.21
0.38
28
-578.4
-579.8
-1.4
0.47
29
-618.63
-620.1
-1.47
0.19
30
-658.52
-660.17
-1.65
0.53
31
-698.51
-700.28
-1.77
0.26
32
-738.65
-740.44
-1.79
0.16
AN2615
Result
Table 2.
Sl
no
Results for negative input voltages (continued)
Vin (mV)
Vmeasured (mV)
(taken from multimeter)
Difference (mV)
(Vmeasured - Vin)
Error in max and min input
measured in the loop (mV)
33
-778.54
-780.59
-2.05
0.37
34
-818.25
-820.42
-2.17
0.43
35
-858.27
-860.61
-2.34
0.56
36
-898.57
-901.07
-2.5
0.2
37
-938.31
-940.94
-2.63
0.67
38
-978.21
-981.03
-2.82
0.43
Figure 17 shows the relationship between measured voltages Vmeasured (average of the 16
readings measured by the converter) and input voltage Vin (as measured by the multimeter)
for negative voltages.
Figure 17. Measured vs input for negative voltages
Figure 18. Error vs input for negative input voltages
Figure 18, shows that for negative input voltages varying from 0 to -1 V, the maximum error
is around -2.89 mV for -1 V input. An error of 0.5 mV occurs for an input value of -269 mV
25/37
Result
AN2615
and it increases gradually afterwards. The maximum difference between the maximum and
minimum value in a loop is around 600 µV. So, the accuracy of the average value measured
is around 3 mV. Without averaging, accuracy is around 3.6 mV.
11.3
Effect of the capacitor value
As discussed in Section 7: Error analysis/constraints on page 14, reducing the R*C time
constant by reducing the value of R or C, reduces the accuracy. Readings were taken with a
10 µF capacitor and accuracy of the ADC was found to be reduced. Figure 19 gives an
example of readings with a 10 µF capacitor.
Figure 19. Results for positive input with a 10 µF capacitor
Figure 19 shows that variation in the readings taken in a loop of 16 is around 5 - 6 mV which
is approximately 10 times higher than the readings for the 100 µF. This indicates that there is
always a trade-off between conversion time and the desired accuracy.
26/37
AN2615
12
Conclusion
Conclusion
This application note presents a technique for implementing a positive supply ADC, capable
of measuring slowly-varying positive and negative input voltages with high precision.
Accuracy of the converter depends on the different parameters involved. Greater accuracy
can be achieved with careful board design, more precise components and by taking into
consideration all the factors discussed in the document.
27/37
References and bibliography
13
AN2615
References and bibliography
The following articles and reports provide useful information:
28/37
1.
AN1636, Understanding and minimising ADC conversion errors
2.
Comparators and bistable circuits, ECE60L lecture notes, winter 2002
3.
Selecting the right buffer operational amplifier for an A/D converter, application report
SLOA050, August 2000, Texas instruments
4.
MOSFET device physics and operation by T Ytterdal, Y Cheng and TA Fjeldly, © 2003,
John Wiley and sons, ISBN: 0-471-49869-6
5.
Comparators and offset cancellation techniques by Jieh-Tsorng Wu, 2003, National
Chiao-Tung University Department of Electronics Engineering
6.
Reducing noise in data acquisition systems by Fred R Schraff, PE IOtech Inc., adapted
from an article that appeared in the April 1996 edition of SENSORS magazine,
Helmers Publishing
7.
How do ADCs work? by Martin Rowe, senior technical editor, 7/1/2002, Test and
Measurement World
AN2615
Input stage conditions
Appendix A
Input stage conditions
The ADC described here can be used for measuring both voltage and current with slight
changes in set-up in each case.
A.1
Case 1: Voltage measurement
There are two ways in which the input voltage appears at the ADC input. The first way is that
input comes directly from a voltage source as shown in Figure 20.
Figure 20. Voltage measurement
O/p
C
V1
R
I
VIN
R1
Gnd
In Figure 20 above, there are no problems. However, if the input comes from a potential
divider circuit as shown in Figure 21, the effective input voltage Vin is the result of the drop
across R2 due to the current I and current Iin.
Figure 21. Potential divider
I
R1
VIN
Iin
R2
In this case an input buffer has to be used to overcome the problem (see Figure 22: Use of
input buffer for voltage measurement on page 30).
29/37
Input stage conditions
AN2615
Figure 22. Use of input buffer for voltage measurement
O/p
C
V1
VIN
R
I
VIN
A.2
Case 2: Current measurement
Figure 23 shows the current measurement circuit.
Figure 23. Current measurement
O/p
C
V1
R
Iin
I
VIN
Rsense
Vin = (Iin + I) * Rsense = Iin * (1 + I/Iin) * Rsense
------------ (1)
I = (V1 - Vin)/R = V1/(R * (1 + Rsense/R))
------------ (2)
The following points should be kept in mind while using Rsense:
30/37
1.
Rsense should be chosen to correspond with the range of the current to be measured.
2.
Rsense affects the effective value of current I. To minimize its effect, it should be
negligible compared to R. Otherwise ADC has to be compensated.
1
2
VDD
C15
100pf
R8
4k7
VDD
5V MAX
J3
JACK
9~14V DC
J1
10k
10k
R12
R11
S1
GND
VCC
1k
R9
C1
100nf
PB0
PB2
C16
22pf
IN4007
D1
2
C17
22pf
PB3
PB2
PB1
PB0
RESET
Vin
U1
220uf/25v
16MHz
Y1
J4
1
C2
1
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
32
RESET
VDD
31
OSC1
VSS
30
OSC2
ICCSEL
29
SS/PB7
PA0
28
SCK/PB6
PA1
27
MISO/PB5
PA2
26
MOSI/PB4
PA3
25
NC
NC
24
ST72F264
NC
NC
23
PB3
PA4
22
PB2
PA5
21
PB1
PA6
20
PB0
PA7
19
PC5
PC0
18
PC4
PC1
17
PC3
PC2
U2
R1
C4
330E
10uf/25v
LED-Green-3mm
D2
220uf/25v
LM7805 C3
Vout
1
2
J2
100nf
SCI_TDO
VDD
C5
100nF
C12
VDD
VIN
PB3 1
PB1
2
SCI_RTS
1
V1
1E
R13
C7
100nF
V1
C6
100nF
5
6
3
2
2
VDD
C20
1uF 16V
C19
1uF 16V
SCI1_RDI
U5
C1+
C1C2+
C2V+
V-
SCI
GND
VCC
15
16
13
R1OUT
9
R2OUT
14
T1OUT
7
T2OUT
7
VDD
C13
100nF
GND
U4
LM358
3
V2
C11
100nF
V3
C10
100nF
2
ST3232
C21
1uF 16V
1
3
4
5
2
6
R5
3k3
R7
2k2
1
PB0
C9
100nF
V2
C8
100nF
VDD
U3
LM358
VDD
R6
2k2
R4
3k3
12
R1IN
8
R2IN
11
T1IN
10
T2IN
D3
J7
SCI_RDI
V3
Q2
MOSFET N
C14
100uF
C18
1uF 16V
RTS
J5
1
R3
1k5
R2
3k5
VDD
J6
SCI_TDO
Q1
MOSFET N
R10
10K
VDD
SCI1_TDO
3
2
DC POWER
8
4
3
1
2
VDD
8
5
9
4
8
3
7
2
6
1
DB9
J8
4
1
PB2
Appendix B
1
2
AN2615
Application board schematics
Application board schematics
Figure 24. Application board schematics
31/37
Bill of materials
Appendix C
AN2615
Bill of materials
Table 3 gives the bill of material for each block of the schematics shown in Figure 24.
Table 3.
Bill of materials
Block
Designator
Part type/number
Description
R13
1E
Resistor
R10
10 kΩ
Resistor
U3
LM358
Dual op-amp
U4
LM358
Dual op-amp
C14
100 µF
Capacitor
Q2
STB100NF03L
N - MOSFET
Q1
STB100NF03L
N - MOSFET
D3
IN4007
Diode
C8
100 nF
Capacitor
C9
100 nF
Capacitor
C10
100 nF
Capacitor
C11
100 nF
Capacitor
C7
100 nF
Capacitor
C6
100 nF
Capacitor
R6
2.2 kΩ
Resistor
R7
2.2 kΩ
Resistor
R5
3.3 kΩ
Resistor
R4
3.3 kΩ
Resistor
R2
3.5 kΩ
Resistor
R3
1.5 kΩ
Resistor
U5
ST3232
Line driver
C18
1µF 16 V
Capacitor
C19
1µF 16 V
Capacitor
C20
1µF 16 V
Capacitor
C21
1µF 16 V
Capacitor
J5
jumper
CON-2
J7
jumper
CON-2
J6
jumper
CON-2
C13
100 nF
Capacitor
J8
DB9
9 pin connector
ADC
Voltage references
SCI
32/37
AN2615
Bill of materials
Table 3.
Bill of materials (continued)
Block
Micro setup
Crystal
Designator
Part type/number
Description
R12
10 kΩ
Resistor
R11
10 kΩ
Resistor
U2
ST72F264
Micro-controller
C12
100 nF
Capacitor
Y1
16 MHz
Crystal oscillator
C17
22 pF
Capacitor
C16
22 pF
Capacitor
R9
1 kΩ
Resistor
R8
4.7 kΩ
Resistor
C15
100 pF
Capacitor
S1
Push button
Micro switch
J4
CON-2
jumper
C4
10 µF/25 V
Capacitor
C5
100 nF
Capacitor
C1
100 nF
Capacitor
C3
220 µF/25 V
Capacitor
C2
220 µF/25 V
Capacitor
R1
330E
Resistor
J1
DC - Jack
DC - Jack
D2
LED 3mm
LED-green
U1
LM7805
Voltage regulator
D1
IN4007
Diode
J2
jumper
CON-2
J3
Power connector
2 pin connector
Reset
DC power
33/37
Software flow
AN2615
Appendix D
Software flow
The fCPU chosen is 8 MHz. Koffset and Kgain are calculated by taking a reading for two known
inputs. The flow of software, used to implement the algorithm, is as follows:
1.
The I/O pins, timer, SCI (Tx @ 9600 baud rate) and some global variables used in the
ADC are initialized.
2.
A string is transmitted to check that the SCI is working well.
3.
Settling time is fixed at 1 s for fCPU = 8 MHz.
4.
Some initial readings are taken and ignored while the ADC stabilizes.
5.
The control enters an infinite loop.
6.
Inside the infinite loop, there is a loop in which the ADC captures the timer values 17
times. However, the first reading is ignored.
7.
The remaining 16 captured values are converted into corresponding voltages (up to 10
µV precision) and then transmitted to a PC for display by the hyper terminal after being
converted into a buffer of ASCII characters.
8.
The average of 16 timer readings is taken and sent to the hyper terminal as a time
value and a corresponding voltage in the same manner as described above.
9.
The difference between the maximum and minimum captured value is also sent to the
hyper terminal in the same way as in step 8.
10. The software enters an ‘IF’ loop ‘if (mCount == 18)’, where the ADC is reset in order to
measure the next input value. Again, a few readings are ignored while the ADC
stabilizes. The counter and other global variables are also initialized.
11. The software re-enters the loop of 17 conversions and executes step 6 to step 9. This
process continues until the system is reset manually.
34/37
AN2615
D.1
Software flow
Code size
The software given is for guidance only. Here the display is done for up to 10 µV precision.
The user can modify and use their own code for display of the data. Table 4 summarizes the
code size. Depending on the compiler and memory placement, these values can change.
The RAM requirements are not provided and the user has the choice to place the variables
as global or local.
.
Table 4.
Code size
No.
Function name
Code size ( bytes)
ADCSys
1
Acquisition
128
2
Start_Capturing
7
3
Reset_ADC
5
4
ADC_InitializeVar
29
5
IsCaptured
13
6
Delay_Second
44
7
IO_Init
37
8
TimerA_Init
47
9
Timer_Interrupt_Routine
170
Main
Note:
10
main
1493
11
TIMERA_IT_Routine
38
12
Conversion_TimerReadingToREALInput
116
13
SCI_Init
25
14
SCI_SendBuffer
30
15
SCI_IsTransmissionCompleted
8
16
Dummy_Capturing
26
Some floating point operations are used in this software for display purposes only. It is left to
the user to use the floating point operation or not as per his application requirement.
35/37
Revision history
14
AN2615
Revision history
Table 5.
36/37
Document revision history
Date
Revision
23-Aug-2007
1
Changes
Initial release
AN2615
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.
© 2007 STMicroelectronics - All rights reserved
STMicroelectronics group of companies
Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan Malaysia - Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America
www.st.com
37/37
Similar pages