# Improved Algorithm for calculating the negative voltage offset for reading by a positive A/D.

Original Publication Date: 2000-Jan-01

Included in the Prior Art Database: 2003-Jun-19

## Publishing Venue

IBM

## Abstract

The Nefinity Servers use a divider similar to the one shown in Figure 1. to translate the -5v to a positive voltage so that it can be read by a 0-5v Analog to Digital Converter (A/D). The current calculation used to calculate the -5v voltage is inaccurate. This invention uses a unique approach that produces a much more accurate result.

**This text was extracted from a PDF file.**

**At least one non-text object (such as an image or picture) has been suppressed.**

**This is the abbreviated version, containing approximately 57% of the total text.**

__Page 1 of 6__ **Improved Algorithm for calculating the negative voltage offset for reading by a positive A/D.**

The Nefinity Servers use a divider similar to the one shown in Figure 1. to translate the -5v to a positive voltage so that it can be read by a 0-5v Analog to Digital Converter (A/D). The current calculation used to calculate the -5v voltage is inaccurate. This invention uses a unique approach that produces a much more accurate result.

This Invention Disclosure describes a method that uses a sensitivity analysis of the circuit as the basis for the algorithm, resulting in a simpler more accurate equation that can be readily executed by an embedded controller.

Referring to the Figure, the output Voltage (V0) can be obtained by Thevinizing the Voltage divider yielding

1.)

^{2}*R*+1*RR**V*0 =4(*V*2*R*1+*V*1*R*2)

*R*1*R*2 ^{(}1*R*+3*R*)(2*R*+1*R*+(2*R*1*RR*=*R*1+*R*2 +*R*3+*R*44(*V*2*R*1+*V*1*R*2)*R*4) =* R*4(*V*2*R*1+*V*1*R*2)3

Equations 2-6 is a sensitivity analysis of the Voltage Divider components. The " ¶ " is the symbol for the Sensitivity Algebra operator not integration.

1

__[This page contains 1 picture or other non-text object]__

__Page 2 of 6__2). From 1 ^{R}_{(}^{2}^{R})+4^{R}+3*R*+2*R*(1*RR*¶*qV*0 = ¶*q*4(*V*2*R*1+*V*1*R*2)3+*R*4) = ¶_{q}^{R}^{4} + ¶_{q}^{V}^{2}^{R}^{1}+*V*1*R*2 - ¶

3). But, ¶_{q}^{V}^{2}^{R}^{1}+*V*1*R*2 =* V*2*R*1

^{R}VV2*R*1+*V*1*R*2_{ (} ¶*q*2 +_{ ¶}*q*1)+* V*1*R*2

^{R}VV2*R*1+*V*1*R*2_{ (}¶*q*1 +_{ ¶}*q*2)

4).And,

** ¶*** q*

*R* 1*R* 2+* R*1* R* 3+*R* 1* R* 4+*R* 2* R* 3+*R* 2* R* 4

=* R* 1*R* 2

^{R}(*R* 1* R* 2 +* R* 1*R* 3 +* R* 1*R* 4 +* R* 2*R* 3 +* R* 2*R* 4**¶*** q* 1 +** ¶*** qR* 2 )+

*R* 1*R* 3 ^{R}(*R* 1*R* 2 +* R* 1*R* 3 +* R* 1*R* 4 +* R* 2*R* 3 +* R* 2*R* 4**¶*** q* 1 +** ¶*** qR* 3 )+

*R* 1*R* 4 ^{R}*R* 1*R* 2 +* R* 1*R* 3 +* R* 1*R* 4 +* R* 2*R* 3 +* R* 2*R* 4 (**¶*** q* 1 +** ¶*** qR* 4 )+

*R* 2*R* 3 ^{(}*R* 1*R* 2 +* R* 1*R* 3 +* R* 1*R* 4 +* R* 2*R* 3 +* R* 2*R* 4**¶*** qR* 2 +** ¶*** qR* 3 )+

*R* 2*R* 4 ^{R}(*R* 1*R* 2 +* R* 1*R* 3 +* R* 1*R* 4 +* R* 2*R* 3 +* R* 2* R* 4**¶*** q* 2 +** ¶*** qR* 4 )

Collecting terms from 2), 3), and 4) yields

5).

** ¶*** q*

*V* 0

=(* V* 2* R* 1

^{R}-*V* 2* R* 1 +* V* 1* R* 2 1* R* 2 +* R* 1* R* 3 +* R* 1* R* 4

^{R})*R* 1* R* 2 +* R* 1* R* 3 +* R* 1* R* 4 +* R* 2* R* 3 +* R* 2* R* 4** ¶*** q* 1 +

+(* V* 1* R* 2

^{R}-*V* 2* R* 1 +* V* 1* R* 2 1* R* 2 +* R* 2* R* 3 +* R* 2* R* 4

^{R})*R* 1* R* 2 +* R* 1* R* 3 +* R* 1* R* 4 +* R* 2* R* 3 +* R* 2* R* 4** ¶*** q* 2 +

-* R* 1* R* 3 +* R* 2* R* 3

*R* 1* R* 2 +* R* 1* R* 3 +* R* 1* R* 4 +* R* 2* R* 3 +* R* 2* R* 4** ¶*** qR* 3 +

+( 1 -* R* 1* R* 4 +* R* 2* R* 4

^{R})*R* 1* R* 2 +* R* 1* R* 3 +* R* 1* R* 4 +* R* 2* R* 3 +* R* 2* R* 4** ¶*** q* 4 +

+* V* 2* R* 1

^{V}*V**V* 2* R* 1 +* V* 1* R* 2** ¶*** q* 2 + 1* R* 2

^{V}*V* 2* R* 1 +* V* 1* R* 2** ¶*** q* 1

6). Assuming *R*1 = 10*K*
,* R*2 = 56*K*
,* R*3 = 470
,* R*4 = 130*K*
,* V*1 = 5*V*,* V*2 =-5*V * then

¶_{R}_{1}^{V}^{0} =-.417, ¶_{R}_{2}^{V}^{0} = .360, ¶_{R}_{3}^{V}^{0} =-.00315, ¶_{R}_{4}^{V}^{0} = .060, ¶_{V}_{1}^{V}^{0} = 1.217, ¶_{V}_{2}^{V}^{0} =-.217

2

__Page 3 of 6__What we want to know is for a 1 bit change in C0 (the ^{C} *V* count of V0) how must did V1 have to change or 20 , ^{t}bim17.2 but *V*0 = *C*0*bits* %*v* => *V*0 = 17.2*mv* *C*0

Assuming that the % is small and that the cross ^{R} sensitivities are negligible (i.e. _{¶}*Vc*1 = ¶_{Vc}R2 = 0). , then by definition

^{0}*VVV* 7). %_{V}_{0} ¡ ¶*V*20 %*V*2 but, %*V*0 = 0 and ^{ } %*V*2 =^{V}^{2}_{V}_{2} =>

8). _{ }_{V}_{2 }^{V} *V*0 =2

^{V}+1_{R}_{2}^{V}^{3}*R*(2*R*)+4*R*+3*R*+2*R*(1*R*)2*R*1*V*+1*R*2*V*(4*R**V*=*V*0 ¶*V*2*V*02+*R*4) %* V*2*R*11*R*2 =>

but

9).

*V*0 *C*0 =

Combining 8) & 9) yields

10).

^{R} *V*2 = *C*0 %4(*V*2*R*1+*V*1*R*2)

^{R}C0*n*(*R*1(*R*2+*R*3+*r*4)+*R*2(*R*3+*R*4)) %1(*R*2+*R*3+*R*4)+*R*2(*R*3+*R*4)

^{C} *R*1*R*4 =0(*V*2*R*1+*V*1*R*2)

*C*0*nR*1

*R*4(*V*2*R*1+*V*1*R*2) *R*1(*R*2+*R*3+*r*4)+*R*2(*R*3+*R...*