Chapter : 5 - Bipolar Junction Transistors (BJTs)

Example : 5.8.1 - Page No : 5-20

In [2]:
from __future__ import division
# Given data
V_EE = 8 # in V
V_BE = 0.7 # in V
R_E = 1.5 # in k ohm
I_E = (V_EE - V_BE)/R_E # in mA
I_C = I_E # in mA
print "The value of I_C = %0.2f mA " %I_C
V_CC = 18 # in V
R_C = 1.2 # in kΩ
V_CB = V_CC - (I_C * R_C) # in V
print "The value of V_CB = %0.2f V " %V_CB
The value of I_C = 4.87 mA 
The value of V_CB = 12.16 V 

Example : 5.8.2 - Page No : 5-20

In [3]:
# Given data
alpha = 0.9 
I_E = 1 # mA
I_C = alpha * I_E # in mA
I_B = I_E - I_C # in mA
print "The value of base current = %0.1f mA " %I_B
The value of base current = 0.1 mA 

Example : 5.10.1 - Page No : 5-38

In [4]:
# Given data
bita = 50 
I_B= 20 # in µA
I_B=I_B*10**-6 # in A
I_C= bita*I_B # in A
I_E= I_C+I_B # in A
I_E = I_E * 10**3 # in mA
print "The Emitter current = %0.2f mA " %I_E
The Emitter current = 1.02 mA 

Example : 5.10.1(a) - Page No : 5-39

In [5]:
# Given data
beta_dc = 90 
I_C = 15 # in mA
I_C = I_C * 10**-3 # in A
I_B = I_C/beta_dc # in A
print "The base current = %0.2f µA " %(I_B*10**6)
I_E = I_C + I_B # in A
I_E = I_E * 10**3 # in mA
print "The Emitter current = %0.3f mA " %I_E
alpha_dc = beta_dc/(1+beta_dc) 
print "The value of alpha_dc = %0.3f" %alpha_dc
The base current = 166.67 µA 
The Emitter current = 15.167 mA 
The value of alpha_dc = 0.989

Example : 5.10.3 - Page No : 5-40

In [6]:
# Given data
del_ic = 1.8 # in mA
del_ie = 1.89 # in mA
alpha = del_ic / del_ie 
bita = alpha/(1 - alpha) 
del_ib = del_ic/bita # in mA
del_ib = del_ib * 10**3 # in µA
print "The change in I_B = %0.f µA "  %del_ib
The change in I_B = 90 µA 

Example : 5.10.4 - Page No : 5-40

In [8]:
# Given data
V_CC = 10 # in V
R_C = 3 # in k Ω
R_C= R_C*10**3 # in Ω
bita = 100 
I_CO = 20 # in nA
I_CO = I_CO * 10**-9 # in A
V_BB = 5 # in V
R_B = 200 # in kΩ
R_B= R_B*10**3 # in Ω
V_BE = 0.7 # in V
# Applying KVL to the base circuit, V_BB= I_B*R_B+V_BE
I_B = (V_BB - V_BE)/R_B # in A
print "The base current = %0.1f µA " %(I_B*10**6)
I_C = (bita * I_B) + I_CO # in A
print "The collector current = %0.5f mA " %(I_C*10**3)
I_E = I_C + I_B # in A
print "Emitter current = %0.5f mA " %(I_E*10**3)
V_CE = V_CC - (I_C * R_C) # in V
print "Collector emitter voltage = %0.4f V " %(V_CE)
The base current = 21.5 µA 
The collector current = 2.15002 mA 
Emitter current = 2.17152 mA 
Collector emitter voltage = 3.5499 V 

Example 5.10.5 - Page No : 5-41

In [9]:
# Given data
bita = 100 
I_CBO = 4 # in µA
I_B = 40 # in µA
I_C = (bita * I_B) + ((1+bita) * I_CBO) # in µA
I_C = I_C * 10**-3 # in msA
print "The collector current = %0.3f mA " %I_C
The collector current = 4.404 mA 

Example : 5.10.6 - Page No : 5-41

In [35]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from __future__ import division
# Given data
del_IC = 1 * 10**-3 # in A
del_IB = 10 * 10**-6 # in A
CurrentGain= del_IC/del_IB 
print "The current gain = %0.f" %CurrentGain
del_IC= del_IC*10**3 # in mA
del_IB= del_IB*10**6 # in µA
I_B=np.arange(0,50,0.1) # in µA
I_C= I_B/del_IB+del_IC # in mA
plt.plot(I_B,I_C)
plt.xlabel('Base current in micro A')
plt.ylabel('Collector current in mA')
plt.title('Transfer Characteristics')
plt.axis([0, 60, 0, 7])
plt.show()
print "Transfer Characteristics is shown in figure"
The current gain = 100
Transfer Characteristics is shown in figure

Example 5.10.7- Page No : 5-42

In [36]:
#Given data
I_CEo = 21 # in µA
I_CBO = 1.1 # in µA
beta_dc = (I_CEo/I_CBO) - 1 
print "Value of beta_dc = %0.f" %beta_dc
alpha_dc = beta_dc/(1 + beta_dc) 
print "The value of alpha_dc = %0.4f" %alpha_dc
Value of beta_dc = 18
The value of alpha_dc = 0.9476

Example : 5.13.1 - Page No : 5-48

In [37]:
# Given data
I_CBO = 3 #in µA
I_CBO= I_CBO*10**-3 # in mA 
I_C= 15 # in mA
# But it is given that I_C= 99.5% of I_E, SO
I_E= I_C/99.5*100 # in mA
alpha_dc= I_C/I_E 
print "The value of alpha_dc = %0.3f" %alpha_dc
print "The value of I_E = %0.2f mA " %I_E
The value of alpha_dc = 0.995
The value of I_E = 15.08 mA 

Example : 5.13.2 - Page No : 5-48

In [38]:
#Given data
alpha_dc = 0.99 
I_CBO = 10 # in µA
I_CBO= I_CBO*10**-6 # in A
I_E = 10 # in mA
I_E= I_E*10**-3 # in A
I_C = (alpha_dc * I_E) + I_CBO # in A
print "The value of I_C = %0.2f mA " %(I_C*10**3)
I_B = I_E - I_C # in A
I_B = I_B * 10**6 # in µA
print "The value of I_B = %0.f µA " %I_B
The value of I_C = 9.91 mA 
The value of I_B = 90 µA 

Example : 5.13.3 - Page No : 5-48

In [39]:
# Given data
alpha_dc = 0.99 
I_C = 6 # in mA
I_C= I_C*10**-3 # in A
I_CBO = 15 # in µA
I_CBO= I_CBO*10**-6 # in A
I_E = (I_C - I_CBO)/alpha_dc # in A
I_B = I_E - I_C # in A 
print "The value of I_B = %0.f µA " %(I_B*10**6)
The value of I_B = 45 µA 

Example : 5.13.5 - Page No : 5-49

In [40]:
# Given data
alpha_dc = 0.98 
I_CBO = 12 # in µA
I_CBO = I_CBO * 10**-6 # in A
I_B = 120 # in µA
I_B = I_B * 10**-6 # in A
beta_dc = alpha_dc/(1-alpha_dc) 
I_E = ((1 + beta_dc) * I_B) + ((1 + beta_dc) * I_CBO) #in A
I_E = I_E * 10**3 # in mA
print "The value of I_E = %0.1f mA " %I_E
The value of I_E = 6.6 mA 

Example : 5.13.6 - Page No : 5-49

In [41]:
# Given data
bita= 100 
V_BEsat= 0.8 # in V
V_CEsat= 0.2 # in V
V_BEact= 0.7 # in V
V_CC = 10 # in V
V_BB=5 # in V
R_E = 2 # in kΩ
R_C = 3 # in kΩ
R_B= 50 # in kΩ
# Applying KVL to collector loop
# V_CC= I_Csat*R_C +V_CEsat +I_E*R_E and I_E= I_Csat+I_B, So
#I_B= ((V_CC-V_CEsat)-(R_C+R_E)*I_Csat)/R_E            (i)
# Applying KVL to base loop
# V_BB-I_B*R_B -V_BEsat-I_E*R_E =0 and I_E= I_Csat+I_B, So
#V_BB-V_BEsat= R_E*I_Csat + (R_B+R_E)*I_B              (ii)
# From eq (i) and (ii)
I_B = ((V_BB-V_BEsat)*5- (V_CC-V_CEsat)*2) / ((R_B+R_E)*5 - R_E*2)  # in mA
I_Csat= ((V_CC-V_CEsat)-R_E*I_B)/(R_C+R_E) # in mA
I_Bmin= I_Csat/bita # in mA
if I_B<I_Bmin :
    print "Since the value of I_B (",round(I_B*10**3,2),"µA) is less than the value of I_Bmin (",round(I_Bmin*10**3,1),"µA)" 
    print "So the transistor is not in the saturation region. But it is conducting hence it can not be in cutoff."
    print "Therefore the transistor is in the active region"
Since the value of I_B ( 5.47 µA) is less than the value of I_Bmin ( 19.6 µA)
So the transistor is not in the saturation region. But it is conducting hence it can not be in cutoff.
Therefore the transistor is in the active region

Example 5.13.7 - Page No : 5-51

In [42]:
# Given data
bita= 100 
V_BEsat= 0.8 # in V
V_CEsat= 0.2 # in V
V_BEact= 0.7 # in V
V_CC = 10 # in V
V_BB=5 # in V
R_E = 2 # in kΩ
R_C = 3 # in kΩ
R_B= 50 # in kΩ
# Applying KVL to input loop
# V_BB= I_B*R_B+(1+bita)*I_B*R_E+V_BEact or 
I_B= (V_BB-V_BEact)/(R_B+(1+bita)*R_E) # in mA
I_C= bita*I_B # in mA
# Applying KVL to collector circuit
# V_CC= I_Csat*R_C +V_CEsat +(I_C+I_B)*R_E
V_CEact= V_CC-I_B*R_E-I_C*(R_C+R_E) # in V
print "The value of I_B = %0.f µA " %(I_B*10**3)
print "The value of I_C = %0.1f mA " %I_C
print "The value of V_CE = %0.3f volts " %V_CEact
The value of I_B = 17 µA 
The value of I_C = 1.7 mA 
The value of V_CE = 1.434 volts 

Example 5.13.8 - Page No : 5-51

In [44]:
# Given data
bita = 100 
V_CEsat = 0.2 # in V
R_B = 150 # in kohm
R_C = 2 # in kohm
V_CC  = 10 # in V
V_BEsat = 0.8 # in V
I_B = (V_CC - V_BEsat)/R_B # in mA
I_C = (V_CC - V_CEsat)/R_C # in mA
I_Bmin = I_C/bita # in mA
if I_B>I_Bmin :
    print "Since the value of I_B (",round(I_B*10**3,2),"µA) is greater than the value of I_Bmin (",int(I_Bmin*10**3),"µA)" 
    print "So the transistor is in the saturation region."
Since the value of I_B ( 61.33 µA) is greater than the value of I_Bmin ( 49 µA)
So the transistor is in the saturation region.

Example 5.13.9 - Page No : 5-53

In [45]:
# Given data
bita = 100 
V_CE = 0.2 #in V
V_BE = 0.8 # in V
R_C= 500 # in Ω
R_B= 44*10**3 # in Ω
R_E= 1*10**3 # in Ω
V_CC= 15 # in V
V_GE= -15 # in V
# Applying KVL to collector circuit
# V_CC-V_GE - I_Csat*R_C-V_CE-I_E*R_E=0, but I_Csat= bita*I_Bmin and I_E= 1+bita
I_Bmin= (V_CC-V_GE-V_CE)/(R_C*bita+(1+bita)*R_E) # in A
# Applying KVL to the base emitter circuit
# V_BB-I_Bmin*R_B-V_BE-I_E*R_E + V_CC=0
V_BB= I_Bmin*R_B + V_BE + (1+bita)*I_Bmin*R_E-V_CC # in V
print "The value of I_B(min) = %0.3f mA " %(I_Bmin*10**3)
print "The value of V_BB = %0.1f volts " %V_BB
The value of I_B(min) = 0.197 mA 
The value of V_BB = 14.4 volts 

Example : 5.13.10 - Page No : 5-54

In [46]:
# Given data
V_ECsat= 0.2 # in V
V_CC= 10 # in V
V_EBsat= 0.8 # in V

# Part (i)
bita= 100 
R_B= 220 # in kΩ
# Applying KVL to collector circuit, V_CC= V_EC+ICRC
ICRC= V_CC-V_ECsat # in V
# Applying KVL to input loop, V_CC= V_EBsat+I_B*R_B        (i)
I_B= (V_CC-V_EBsat)/R_B # in mA
I_C= bita*I_B # in mA
R_Cmin= ICRC/I_C # in kΩ
print "The minimum value of R_C = %0.3f kΩ " %R_Cmin
# Part (ii)
R_C= 1.2 # in kΩ
I_Csat= ICRC/R_C # in mA
I_B= I_Csat/bita # in mA
# From eq (i)
R_B= (V_CC-V_EBsat)/I_B # in kΩ
print "The maximum value of R_B = %0.2f kΩ " %R_B
The minimum value of R_C = 2.343 kΩ 
The maximum value of R_B = 112.65 kΩ 

Example : 5.13.11 - Page No : 5-56

In [47]:
# Given data
bita= 100 
V_BEsat= 0.8 # in V
V_CEsat= 0.2 # in V
V_BEact= 0.7 # in V
V_CC = 10 # in V
R_E = 1 # in kΩ
R_C = 2 # in kΩ
R_B= 100 # in kΩ
bita=100 
alpha= bita/(1+bita) 
# Applying KVL to collector circuit
# V_CC= I_Csat*R_C +V_CE +R_E*I_E
# but I_E= alpha*I_Csat
I_Csat= (V_CC-V_CEsat)/(R_C+R_E*alpha) # in mA
I_Bmin= I_Csat/bita # in mA
# Applying KVL to base loop
# V_CC= I_B*R_B +V_BEsat +I_E*R_E
# but I_E= I_Csat+I_B
I_B= (V_CC-V_BEsat-I_Csat*R_E)/(R_B+R_E) # in mA
print "The value of I_B = %0.2f µA " %(I_B*10**3)
print "The minimum value of I_B = %0.1f µA " %(I_Bmin*10**3)
if I_B>I_Bmin :
    print "Since the value of I_B is greater than the value of I_Bmin"
    print "Hence the transistor is in saturation ."
I_E= (1+bita)*I_Bmin # in mA
R_E= (V_CC-V_BEact-I_Bmin*R_B)/I_E # in kΩ
print "The value of R_E = %0.3f kΩ " %R_E
print "So R_E should be greater than this value in order to bring the transistor just out of saturation "
The value of I_B = 58.64 µA 
The minimum value of I_B = 32.8 µA 
Since the value of I_B is greater than the value of I_Bmin
Hence the transistor is in saturation .
The value of R_E = 1.819 kΩ 
So R_E should be greater than this value in order to bring the transistor just out of saturation 

Example : 5.13.12 - Page No : 5-58

In [48]:
# Given data
V_CC = 9 # in V
V_BE = 0.8 # in V
V_CE = 0.2 # in V
R_B = 50 # in kΩ
R_C=2 # in kΩ
R_E = 1 # in kΩ
bita=70 
# Applying KVL to input loop, V_CC= I_B*R_B +V_BE +I_E*R_E
# V_CC- V_BE= (R_B+R_E)*I_B + R_E*I_C          (i)
# Applying KVL to output loop, V_CC= R_C*I_C +V_CE +I_C*R_E +I_B*R_E
#I_B = ((V_CC- V_CE)-(R_C+R_E)*I_C)/R_E         (ii)
# From eq (i) and (ii)
I_C= ( (V_CC- V_BE)-(R_B+R_E)* (V_CC- V_CE)/R_E)/(1-(R_B+R_E)*(R_C+R_E)) # in mA
I_B = ((V_CC- V_CE)-(R_C+R_E)*I_C)/R_E# in mA
I_Bmin= I_C/bita # in mA
if I_B>I_Bmin :
    print "Since the value of I_B (",round(I_B,3)," mA) is greater than the value of I_Bmin (",round(I_Bmin,4)," mA)"
    print "So the transistor is in saturation "
V_C= V_CC-I_C*R_C # in V
print "The value of collector voltage = %0.3f volts " %V_C
bita= I_C/I_B 
print "The minimum value of bita that will change the state of the trasistor = %0.3f" %bita
Since the value of I_B ( 0.104  mA) is greater than the value of I_Bmin ( 0.0414  mA)
So the transistor is in saturation 
The value of collector voltage = 3.203 volts 
The minimum value of bita that will change the state of the trasistor = 27.886

Example : 5.21.1 - Page No : 5-77

In [49]:
# Given data
O_V = 5 # output voltage in V
V_D = 1.5 #voltage drop in V
R = (O_V - V_D)/O_V 
R = R * 10**3 # in ohm
print "The resistance value = %0.f Ω " %R
print "As this is not standard value, use R=680 Ω which is a standard value"
The resistance value = 700 Ω 
As this is not standard value, use R=680 Ω which is a standard value