В этом примере показано, как создать пару близких трассировок с помощью traceLine
возразите и выполняет анализ тех трассировок, чтобы вычислить объем нежелательной связи с пассивной трассировкой.
trace1 = traceLine;
trace1.Length = [10 5*sqrt(2) 10 5*sqrt(2) 10]*1e-3;
trace1.Angle = [0 45 0 -45 0];
trace1.Width = 3e-3;
trace1.Corner = "Miter";
trace2 = copy(trace1);
trace2.Length = [11 6*sqrt(2) 6 6*sqrt(2) 11]*1e-3;
trace2 = translate(trace2, [0,-5e-3,0]);
trace = trace1 + trace2 ;
figure;
show(trace);
Используйте pcbComponent
создать стек PCB для формы. Для создания стека PCB трассировка, созданная выше, используется в качестве верхнего слоя. Средний слой является диэлектриком, и нижний слой является наземной плоскостью. Используйте dielectric
объект создать диэлектрик Тефлона. Используйте traceRectangular
объект создать прямоугольную наземную плоскость. Присвойте трассировку, диэлектрик (d), и groundplane к Layers
свойство pcbComponent
. Присвойте FeedLocations
в концах трассировки и визуализируют его.
pcb = pcbComponent; d = dielectric('Teflon'); groundplane = traceRectangular('Length', 40e-3,'Width',40e-3,'Center',[40e-3/2,0]); pcb.Layers = {trace,d,groundplane}; pcb.FeedLocations = [0,0,1,3;40e-3,0,1,3;40e-3,-5e-3,1,3;0e-3,-5e-3,1,3]; pcb.BoardShape = groundplane; pcb.FeedDiameter = trace1.Width/2; figure; show(pcb);
Используйте current
функционируйте, чтобы построить распределение тока на трассировке
figure; current(pcb,1e9,'scale','log');
Используйте layout
функционируйте, чтобы показать размещение pcbComponent.
figure; layout(pcb);
Используйте sparameters
функция, чтобы вычислить степень утечки от Трассировки 1, чтобы Проследить 2.
spar = sparameters(pcb,linspace(0.1e9,10e9,51));
figure;
rfplot(spar,2,1);
hold on
rfplot(spar,3,1);
rfplot(spar,4,1);
S31 показывает степень, связанную от главной трассировки до нижней трассировки. Это - нежелательная связь от верхней строки до нижней строки и должно уменьшаться. Чтобы уменьшать связь, увеличьте интервал между трассировками.
trace1 = traceLine;
trace1.Length = [10 5*sqrt(2) 10 5*sqrt(2) 10]*1e-3;
trace1.Angle = [0 45 0 -45 0];
trace1.Width = 3e-3;
trace1.Corner = "Sharp";
trace2 = copy(trace1);
trace2.Length = [11 6*sqrt(2) 6 6*sqrt(2) 11]*1e-3;
trace2 = translate(trace2, [0,-10e-3,0]);
trace = trace1 + trace2 ;
figure;
show(trace);
Обновите свойства созданного ранее и визуализируйте его.
groundplane = traceRectangular('Length', 40e-3,'Width',40e-3,'Center',[40e-3/2,0]); pcb.Layers = {trace,d,groundplane}; pcb.FeedLocations = [0,0,1,3;40e-3,0,1,3;40e-3,-10e-3,1,3;0e-3,-10e-3,1,3]; figure; show(pcb);
Используйте current
функционируйте, чтобы построить распределение тока на трассировке.
figure; current(pcb,1e9,'scale','log');
Используйте layout
функционируйте, чтобы показать размещение pcbComponent
.
figure; layout(pcb);
Используйте sparameters
функция, чтобы вычислить степень утечки от Трассировки 1, чтобы Проследить 2.
spar = sparameters(pcb,linspace(0.1e9,10e9,101));
figure;
rfplot(spar,2,1);
hold on
rfplot(spar,3,1);
rfplot(spar,4,1);
Когда интервал между трассировками удвоен до 10 мм, связь также уменьшает приблизительно на 10 дБ и достигает меньше чем к-25 дБ.
Задайте импульсный сигнал со временем нарастания и временем спада и используйте timeresp
функционируйте, чтобы построить выходной сигнал в порте 2 для входного сигнала импульса.
sampleTime = 1e-9; t = (0:999)'*sampleTime; input = [0.05*(0:20)';ones(1,78)'; 0.05*(20:-1:0)'; zeros(1,80)']; input = repmat(input,5,1); fit = rationalfit(spar); output = timeresp(fit(3,1),input,sampleTime); figure; yyaxis left; plot(t,input); yyaxis right; plot(t,output); title('Crosstalk between the Traces'); xlabel('Time (sec)'); ylabel('Voltage (volts)'); legend('Vinput','Output','Location','SouthWest');
Величина выходного сигнала составляет приблизительно 0,1 мВ, как замечено по результату.
1) https://incompliancemag.com/article/visualizing-crosstalk-in-pcbs/
2) Основные принципы целостности сигнала, Altera