It is of interest to find a measurement procedure from which one can produce an estimate of the doping of a junction and find out more about the material properties of it. This also has the purpose of getting an idea what kind of semiconductors are used within the junction.
The breakdown voltage of different pn-junctions featured in LEDs and a power diode was measured and can is relatively consistently detected with the following function based on the gradient of the current-voltage measurement of the diode. Beware to cutoff normal conducting behavior, as it might instead be detected. This works well for sufficiently steep current gradients, when enough data points are available.
The index for the breakdown voltage is returned.
def breakdownDetect(V, I, thresh = 0.9):
grad = np.abs(np.gradient(I, abs(V[1]-V[0])))
grad = grad/max(grad)
return np.argmax(grad > thresh)
To derive the doping of the weakly doped side of the abrupt (one sided) junction there are two possibilities [see chapter 2.4.3 in Physics of Semiconductor Devices] :
A multiplication factor of holes $M_{p} = \frac{I_p(W_{Dm}}{I_p(0)}$, derived from the incremental hole current, is defined to approach infinity for breakdown in the ionization integral:
$$ 1 - \frac{1}{M_p} = \int_{0}^{W_{Dm}}\alpha_p exp \left[-\int_{0}^{x}\left(\alpha_p - \alpha_n\right) dx'\right] dx $$This leads to the relation $ V_{BD} = \frac{\mathcal{E}_m(N) W_{Dm}}{2} = \frac{\epsilon_s \mathcal{E}_m(N)^2}{2qN}$, which can be used to estimate the doping if the maximum electric field at breakdown for the semiconductor is known.
There are a few things to consider for this to be valid, such as that for doping concentrations under $N = 10^{16}\; \mathrm{cm^{-3}}$ the breakdown voltage usually is dependent on the crystal orientation. Physically the junction also has to be large enough to accomodate for the entire depletion width or a factor is introduced.
The maximum electric field $\mathcal{E}_m$ can be found with a logarithmic dependence on the background and can roughly be linearly approximated. However this also is just an approximation assuming a uniform field over large distances, meaning high fields over very short distances are also not properly modelled.
A value for the doping N is found by an iterative algorithm finding the root as follows:
#uses SI units -> m not cm!
def NBreakEm(Em, eps, Vbreak, start=1e18):
eps = eps*8.854e-12
N_mod = lambda N : N/Em(N)**2-eps/(2*1.602e-19*Vbreak)
N = fsolve(N_mod, start)
return N
Here Em is a function to approximate the maximum field at breakdown, eps is the relative permittivity of the semiconductor, Vbreak is the experimentally acquired breakdown voltage and start is a starting parameter for N in the root finding algorithm. Beware units have to be SI (meters).
Three functions for estimation of the critical electrical field: Hudgins
The approximate solution should give an approximation for Si, GaAs and GaP. This approximation for the abrupt junction is given by: $$ V_{BD} \approx 60\left(\frac{E_g}{1,1\; eV}\right)^{3/2}\left(\frac{N}{10^{16} cm^{-3}}\right)^{-3/4} $$ There $\mathrm{E_g}$ is the bandgap of the semiconductor in eV and N the doping concentration in $\mathrm{cm^{-3}}$.
This translates into a direct function solved for N:
def NBreakEg(Eg, VBd):
N = (60*(Eg/1.1)**(3/2)/VBd)**(4/3)
N = N*1e16
return N
A static value for $\mathcal{E}_m$ does seem to not be detrimental, considering this is an approximation overall and that the maximum electric field does change somewhat slowly with magnitudes of doping concentration.
Device | V$_{BD}$ | Assumed substrate | N$_{\mathcal{E_m}}$ / $cm^{-3}$ | N$_{E_g}$ / $cm^{-3}$ |
---|---|---|---|---|
BC327 | 85.00 | Si | 6.82e+15 | 6.56e+15 |
red LED | 35.15 | GaP | 2.73e+16 | 8.46e+16 |
red LED | 35.15 | GaPstatic | 8.73e+16 | 8.46e+16 |
yellow LED | 54.92 | GaPstatic | 5.59e+16 | 4.67e+16 |
green LED | 19.83 | CdS | 2.62e+17 | 2.08e+17 |
green LED | 19.83 | GaN-mod | 3.10e+18 | 2.08e+17 |
BC327 | 85.00 | Si-Univ | 1.41e+15 | 6.56e+15 |
BC327 | 85.00 | Si-Hudgins | 3.44e+15 | 6.56e+15 |
red LED | 35.15 | GaP-Hudgins | 1.47e+17 | 8.46e+16 |
The BC327 (Base-Emitter) junction is most likely to be Si and thus probably is the most accurate estimate of all the measurements. LEDs overall are highly likely to not be correct due to widespread use of heterostructures and more complicated semiconductors (such as $In_{x}Ga_{y}As_{z}$).
For the red LED an estimated model for the breakdown electrical field (GaP) was used, based on the figure in Physics of Semiconductors p. 109, which is roughly the curve for Si multiplied by 1,6. GaPstatic, CdS and GaN are estimated to a static value (see Li-Mo Wang, tab. I; Estimation is for doping in the range of N = $10^{14}\; cm^{-3}$). GaN-mod refers to the expected bandgap for green light (2,4 eV) with permittivity and the electric field at breakdown of GaN. It does not seem particularly good as a model, deviating from the bandgap model by an order of magnitude.
Comparing Si-Univ using the universal expression for the critical (maximum) electric field with the indirect expression for Hudgins it seems Hudgins gives he better expression. Similarly a the calculated static value for GaP via Hudgins leads to a value for N, which is relatively close to the value calculated with the more exact tabulated value.
Overall it seems the Hudgins expressions might be good enough for a rough estimate.
The values above were calculated with the functions as below:
import numpy as np
import matplotlib.pyplot as plt
import FitBreakdown
from FitBreakdown import ESi
#this is a rough guess based on the range around N = 1e17 in the graph in physics of semiconductors p 109
EGaP = lambda N: FitBreakdown.ESi(N)*1.6
EGaPstatic = lambda N: 1e8
ECdS = lambda N: 1.8e8
EGaN = lambda N: 5e8
#rough values for bandgap and relative permittivity
Eg_GreenTheoretic = 2.4
GaN = 3.4
eGaN = 8.9
GaAs = 1.42
eGaAs = 12.88
GaP = 2.24
eGaP = 11.1
CdS = 2.4
eCdS = 5.8
Si = 1.1242
eSi = 11.7
#custom critical electrical field
ECustom = lambda N: FitBreakdown.Em_universal(N, eSi, Si)
EHudgins = lambda N: FitBreakdown.Em_hudgins(GaP)
#LED
#filename = "20220531 - LED-breakdown-measurements/LED_blue_dark2022_05_31_153330.csv"
#filename = "20220531 - LED-breakdown-measurements/LED_red_dark2022_05_31_155534.csv"
#filename = "20220531 - LED-breakdown-measurements/yellow_LED_dark2022_05_31_163546.csv"
#filename = "20220531 - LED-breakdown-measurements/LED_green_dark2022_05_31_160305.csv"
#Bipolar transistor BC327
filename = "20220531 - BC327-breakdown-measurements/BC3272022_05_31_152633.csv"
data = np.genfromtxt(filename, delimiter = ";", skip_header = 1)
xdata = data[:,0]
ydata = data[:,1]
VBD = FitBreakdown.breakdownDetect(xdata, ydata)
Vb = abs(xdata[VBD])
print("The breakdown voltage is %.2f V"%Vb)
#FitBreakdon.ESi is the function of the critical electrical field for Si, GaAs should roughly be similar
N_estimate1 = FitBreakdown.NBreakEm(ESi, eSi, Vb, 5e19)
#NBreakEm returns the density per m^3!!!
N_estimate2 = FitBreakdown.NBreakEg(Si, Vb)
print("Estimate based on electric field on breakdown: N = %.2e cm^-3" %(N_estimate1*1e-6))
print("Estimate based on approximation: N = %.2e cm^-3" %N_estimate2)
plt.figure()
plt.plot(xdata, ydata)
plt.plot(xdata[VBD], ydata[VBD], 'xr')
plt.xlabel("Voltage / V")
plt.ylabel("Current / A")
plt.show()
The breakdown voltage is 85.00 V Estimate based on electric field on breakdown: N = 6.82e+15 cm^-3 Estimate based on approximation: N = 6.56e+15 cm^-3
Overall the models seem to fit together to some degree, however they are in no way confirmed. For that some known junctions would need to be compared.
The LEDs are likely too complex to get a good estimate on without analysing their spectrum and calculating the specific bandgap for it, however then one could guess for the doping with the direct bandgap hudgins. However the case to case unknown influence of heterostructures which may be used in the junctions on the breakdown voltage may make this completely unfeasible.
This leaves the "standard" semiconductors with "simple" substrates such as diodes and bipolar transistors, which are more likely to get a valid estimate.
Attempting to fit the current-voltage curve of the diode via the reverse saturation current $I_{S}$ does not seem feasible with the data available at the moment, considering $I_{S}$ depends on too many unknown variables, which would have to essentially be guessed.
An option to attempt to verify the functions above would be to measure the capacitance-voltage characteristics, to get an estimate independent of the breakdown voltage.