# bulk resistance compensation revisited

Paolo Predonzani predo at dist.dist.unige.it
Tue Sep 17 14:36:09 CEST 1996

```Hello!
This is my first posting to this mailing list.
A few days ago I downloaded Rick Jansen's sawtooth VCO. It uses a LM3046
transistor array for the lin/exp conversion and for the thermal stabilization.
The schematic has a compensation for the emitter resistance of the 3046.
At first I could not understand the explanation because the assumption
that the voltage across the diode (transistor in diode configuration) is
constant seemed not suitable for a first order compensation.
So I studied the circuit and found that the diode (transistor) can be
eliminated yet the compensation is maintained.

I include a short GIF. It's uuencoded at the end of this message.
Please refer to it for the following discussion.

Q1 and Q2 are ideal transistors. Their Ic currents can be calculated using:
Ic = Is * exp(Vbe / Vt)
Vbe is the base-emitter voltage.
Vbe1 is referred to Q1's Vbe, Vbe2 is referred to Q2's Vbe.
Moreover Vb1 and Vb2 are the absolute voltages of Q1's and Q2's bases.

The 2 Re resistors represent the emitter resistances that can be found in
real transistors. So Q1 + Re = a real transistor (eg: LM3046)

The polarization current sets a constant Vbe1:
Vbe1 = Vt ln(Ipol / Is)

Vb1 is a linear combination of Vin and Vf:
Vb1 = k1 * Vin + k2 * Vf - c1
where:
k1 = R * R2 / (R1 * R2 + R * (R1 + R2))
k2 = R * R1 / (R1 * R2 + R * (R1 + R2))
c1 is a constant that takes into account the base current of Q1

k1 is usually 18E-03

Now:
Vf = V1 - Rf * (Iout + Ipol)
V1 = Vb1 - Vbe1 - Re * Ipol =
= k1 * Vin + k2 * Vf - c1 - Vbe1 - Re * Ipol =
= k1 * Vin + k2 * Vf - c2 =
= k1 * Vin + k2 * V1 - k2 * Rf * Iout - k2 * Rf * Ipol - c2

So:
V1 = k1 / (1 - k2) * Vin - k2 * Rf / (1 - k2) * Iout - c3

Now Vbe2 can be calculated:
Vbe2 = - V1 - Re * Iout
= - k1 / (1 - k2) * Vin + k2 * Rf / (1 - k2) * Iout + c3 - Re * Iout

The two terms that depend on Iout must compensate each other.
k2 / (1 - k2) * Rf = Re

The solution is:
k2 = Re / (Re + Rf)

This final equation and the equations that define k1 and k2 should
be solved for R, R1, R2, k2 and Rf.
Since the solution is rather difficult to find, an approximated solution
is needed.
First choose Rf and R. Eg. Rf = 2k2 and R = 1k
Now calculate a course value for R1 so that 1V/oct is obtained. Eg: R1 = 54k
Calculate k2 (Eg: Re = 5.6, so k2 = 2.54E-03)
Find R2 using the formula:
R2 = R * R1 * (1 - k2) / ((R1 + R) * k2)     (R2 = 386k)
Now R1 can be re-calculated:
R1 = R * R2 * (1 - k1) / ((R2 + R) * k1)
but usually R1 is a constant resistor + a trimmer, so don't re-calculate
R1: use the course value and adjust the trimmer until 1V/oct conformity is
achieved.

As it can be seen from the calculation R2 is ~ 390k (standard resistor value)
which is the same value Rick Jansen found to be appropriate in his schematic.
The only difference is that a diode (transistor) is saved.

Some final notes:
-the 18mV/oct for Vbe seems not appropriate for the 3046. AN-299 uses
21.4mV/oct. The difference may depend on different temperature condition but
may be due to a forward current emission coefficient > 1 as well.
-The polarization current Ipol should not be set to a high value (eg: top
octave value) because you would have to use high input voltages (~10V) to
decrease the output current to the lower octaves. High Vin means high
Vb1. Keep in mind that Q1's collector is at 0V so if Vbc1 > -5 * Vt the
transistor enters the saturated region and the exponential relationship is
lost.

I would appreciate feedback in case of any errors in my calculations.
I would like to know in what cases and why a diode is necessary. (Sorry,
I couldn' t find S. Franco's book).

I know that there are at least 2 other problems about exp conformity.
Is this compensation sufficient or should I work on the other problems?
I think the LM3046 is so cheap and available that it's worth trying to
correct its defects by means of additional circuitry.

begin 644 exp_comp.gif
M1TE&.#=A0`'(`(```````/___RP`````0`'(```"_HR/J<OM#Z.<M-J+L]Z\
M^P^&XDB6YHFFZLJV[@O'\DS7]HWG^L[W_@\,"H?\$HO&(3"J7S*;S"8U*I]2J
M]8K-:K?<KO<+#HO'Y++YC\$ZKU^RV^PV/R^=9@,U.SY_P"'[*GP"H-_ at A*&AR
M:)!(R(AAR+*XV#@Y\=@'('F`61%)Z>FH8!F1&=H`B\$GZ.2FJ6<EI6JHJ&]L7
MB^JWJ?C*P/J0.HN&&V`GK#MLC/?;6DI<JYE,')T+#"?<O'R<G6SLRIS-O:W-
M35U=>PV.G\$YQV%PL_JY,/G8ZC0X_/LI;_QW>+Q]'#U<N5)<4[?.E[]0R?]_^
MM0D("T0B at L_XU-L\$S>'#_D`'L7F8V%&C)X at +*'Y,*)):KST14\Y:B:BE2U4P
M2W2:*2O>")TX&?\$,\;.GGJ"%A&HD>M+H/Z0=F"I]XW1#U*=LIF:P2C4-U at M;
MLY8Q^:)KG5MDRYH]BS:MVK5LV[I]"S>M#+%8Z'X"Z\*N%;TC9_"E\G>5WT&!
M&Q66.><P(<4E"7MUP)@6G<AY*#NK_!AQ7L>9&\_EW#G0X*&A)8<%71K?9M*I
M/9YFW;KA:\RQ9:^F'=NR:SEVRUXN]QGVSF<&\$X_&/;S5.:VF;^]6H]>BQ:JB
M:2B\$BNC6[V#;@ZN&'E.V[A_3<91W\$]WC>!_A<K3?://R^A[+W=L&3\(DQI#S
M_N;[\D]>9P`BA%UFDFC7G00(&G0@<\$W%A588D614G`4#M7<3>D4U):%,V_SD
MSG/?\$8\$74!MR,*!G^?%""T^]9'C\$>2)8-96+*I1X8G7R62A9 at T@\$!&&007XD
M9)%&'KF at CMC8J&,F2/(7GH at HYJA!/\$G:!*54'B8(@3ND1&69C"8F->4Z65(Y
M9DD4COA?A6)RN4M89U:))BAQHI">*6#AV*5^5\*YSEYU<L7CC5'J*9%.8`I*
MY).%_G\$H9%C-R6:@5:1XU0IY!E at F8\$T<%AVFH2SZQS0\$]?:IIC&)JAR'A@)*
MIA*@AE??9^]EJFJE at Q8Q:WP,UJ"?JZ]JT\ZDJ0Z;_MR?<@[\$"5PK%G,KG4ST
MNB*#ZRW(:I<-,22LK+E62]Q<U_%ZD3K=)D\$MLK--6UVTN"Z1+J3>L5O1J34>
MFY]<+,UK'+W at -C?C<9/AFYR*OL:0+:?P1 at KKN<[UN_#!`*<)0\+L\$1PPB_LB
M/`5?%G?SKY(A/^R\$QS_JN^M?UW:\,:^:::DQ4&KA.7.,;.VJ\,3OZBQMS!+S
M?,;'+^OZJ"UDP>SSR`U_]>/0.S<9KIU)%VPP?\$;`Z/"22SM]'\5`FR'TU%)*
MW6+4A'(=Z]=,QXAVT4TJ:ZG87HM,'=MR/[UCUW%73;7:9(3-]T)'_ZI at 2V_>
MZ7?/@>-WM>'\$';XX/UO?_DTLW&0S,SAW=JL8HMYT"RX=WGD/0R-DX`#^K<LQ
MA[XUUFE#/3;B[4ZN!>J?GXZ7,JYGK76%I"MN2]24,MKXZOA8V?;9JV-+--?0
M!.MY'4T;;P_(B>]=]K9\YA/1>Y;7/CWGYL0NI5@^2MX\@1J?9SO#0MSD9^;J
M7V]]]LBXR_WZSC#;X>;T:TLYT8\$N7-L#((O\1+C^%2]REZ-=_6XG\$=,Y2'4,
M5-[_\E=!WJ5O'N&[H*0BE+\$`:C!Z8.L@!\$?X.@=:T(-=:%_YW#<W%;KMA\$\$S
MH0P?&,(,=DJ'?[,A^8#7-QJ.T(7K\$B*_;EBXEK\$0AS_L(4IVL#N<I;")0\$0B
M_A?@!T64!3&'2TRB"-?&.8O%:R<URXX6K6::X;5 at C\$HD&4!>QBHVPC!U\$)N8
M&N75J+ at H#1*H.6&*B.C%BO415G?\&116)APC%I*+AQ18'8VXP3UB3'8S?.,7
MS;;&2UUED594X/_"=*DG%6F05"Q()J'#2<%<DH=2].1,HJ@@.3JQ)["L1&``
MB2>CU!)[6P0C3LIHEF;-D8.AV0JJUH!+3<JLE[,T4+YBZ,O';`J%KO2*Q^Z%
MS-+<DII at 2*:G2H6T&XFRC5E13"H9@\V#%3`ED0D*.J>X(<BYA#)W7"<T*QG!
M<0F%GJ+L9S`?Y,^S0)(<[711*E<HP!!ZTU_@=(0Y_N\$YHX/>19SAQ&-%:]-*
M%)&*C at EM5\$4B21-R-G`/XU3BFEZ)I4)(E'@?VB<9(PC2+<AHH?XC89M at 6LHK
MBL>E2%QIU?B9))].29_S'*A1'Z4;U at TH=R]IB[6^9THSS at M_@CSJ!!%C)9IZ
M<3_VM"CIM'H'#-KT=U(EG%!M"3V,XE2"Y#OK_-YQRLZI=8?)ZR12<THF><X5
MH:QTZU:M=4ISA74I8M4'Q^1*L]!A"JP\2(635H;8\$A+6@*,"5KF"5L:)4M:N
M:QWK7BG(5DQ:QZJ?O8\$>?^/7TN;\$=ZI-35=;^Q3&PK:<L\6H;&L;A=OB5E:9
HW:UO?PO<X`IWN,0MKG&/%HO<Y"IWN<QMKG.?"]WH2G>ZU,U!`0``.]OB
`
end

--
+-------------------+----------------------------------+
| Paolo Predonzani  |  email: predo at dist.dist.unige.it |
+-------------------+----------------------------------+

```