Vin
Vin−VddR1+Vin−VssR2+Vin−VoutRf=0
opamp 특성에서 우리는 다음을 알고 있습니다.
Vin <= VIL ==> Vout = VOL (Low State)
Vin >= VIH ==> Vout = VOH (High State)
따라서이 두 상태에 대해 두 개의 개별 방정식을 작성할 수 있습니다.
VIL−VddR1+VIL−VssR2+VIL−VOLRf=0VILR1//R2//Rf=VddR1+VssR2+VOLRfVIL=(R1//R2//Rf)[VddR1+VssR2+VOLRf]VIH=(R1//R2//Rf)[VddR1+VssR2+VOHRf]
예:
R1 = 100k
R2 = 100k
Vdd = +15V
Vss = -15V
VOH = +13V
VOL = -13V
% Matlab code for the plotting
R1 = 100000;
R2 = 100000;
Vdd = +15;
Vss = -15;
VOH = +13;
VOL = -13;
RMIN = 10000; % 10k
RMAX = 10000000; % 10M
VMIN = -10.0;
VMAX = +10.0;
POINTS = (RMAX - RMIN) / 100;
Rf = linspace(RMIN, RMAX, POINTS);
VIL = zeros(1, POINTS);
VIH = zeros(1, POINTS);
for i = 1 : 1 : POINTS
VIL(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOL/Rf(i)));
VIH(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOH/Rf(i)));
end;
close all;
hFig = figure;
hold on;
plot([0 10], [0 0], 'Color', [0.75 0.75 0.75]);
plot(Rf/1000000, VIL, 'Color', [0 0 1]);
plot(Rf/1000000, VIH, 'Color', [1 0 0]);
xlim([RMIN/1000000, RMAX/1000000]);
ylim([VMIN, VMAX]);
xlabel('R_f (M\Omega)');
ylabel('VIL & VIH (V)');
hold off;