Skip to content

Commit 5a568cb

Browse files
committed
Split PgaLoadStep into multiple steps
1 parent efbfc57 commit 5a568cb

File tree

10 files changed

+158
-100
lines changed

10 files changed

+158
-100
lines changed

source/TS.NET.Sequencer/Logger.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ public void Log(LogLevel level, int stepIndex, Status status, string message)
4343
EventLogged?.Invoke(log);
4444
}
4545

46+
public void Log(LogLevel level, int stepIndex, Status status)
47+
{
48+
var logMessage = $"Step {stepIndex} | {status}";
49+
var log = new LogEvent() { Level = level, Timestamp = DateTimeOffset.Now, Message = logMessage };
50+
LogHistory.Add(log);
51+
EventLogged?.Invoke(log);
52+
}
53+
4654
public void Log(LogLevel level, int stepIndex, string message)
4755
{
4856
var logMessage = $"Step {stepIndex} | {message}";

source/TS.NET.Sequences/Sequences/BenchCalibrationSequence.cs

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,25 @@ private void AddSteps(Func<Dialog, DialogResult> uiDialog)
114114
new BufferInputVppStep("Channel 1 - measure buffer input Vpp - LG L9", 0, 20, Variables),
115115
new BufferInputVppStep("Channel 1 - measure buffer input Vpp - LG L10", 0, 21, Variables),
116116
new AttenuatorStep("Channel 1 - measure attenuator scale", 0, Variables),
117-
new PgaLoadStep("Channel 1 - measure PGA loading scales", 0, Variables),
117+
118+
new PgaLoadSetupStep("Channel 1 - setup PGA loading scale", 0, Variables),
119+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 660 MSPS, 1 channel", 0, [0], 660_000_000, Variables),
120+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 500 MSPS, 1 channel", 0, [0], 500_000_000, Variables),
121+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 330 MSPS, 1 channel", 0, [0], 330_000_000, Variables),
122+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 250 MSPS, 1 channel", 0, [0], 250_000_000, Variables),
123+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 165 MSPS, 1 channel", 0, [0], 165_000_000, Variables),
124+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 100 MSPS, 1 channel", 0, [0], 100_000_000, Variables),
125+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 500 MSPS, 2 channel", 0, [0, 1], 500_000_000, Variables),
126+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 330 MSPS, 2 channel", 0, [0, 1], 330_000_000, Variables),
127+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 250 MSPS, 2 channel", 0, [0, 1], 250_000_000, Variables),
128+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 165 MSPS, 2 channel", 0, [0, 1], 165_000_000, Variables),
129+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 100 MSPS, 2 channel", 0, [0, 1], 100_000_000, Variables),
130+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 250 MSPS, 3 channel", 0, [0, 1, 2], 250_000_000, Variables),
131+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 165 MSPS, 3 channel", 0, [0, 1, 2], 165_000_000, Variables),
132+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 100 MSPS, 3 channel", 0, [0, 1, 2], 100_000_000, Variables),
133+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 250 MSPS, 4 channel", 0, [0, 1, 2, 3], 250_000_000, Variables),
134+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 165 MSPS, 4 channel", 0, [0, 1, 2, 3], 165_000_000, Variables),
135+
new PgaLoadStep("Channel 1 - measure PGA loading scale - 100 MSPS, 4 channel", 0, [0, 1, 2, 3], 100_000_000, Variables),
118136

119137
new Step("Disconnect SDG2042X"){ Action = (CancellationToken cancellationToken) => { Instruments.Instance.SetSdgChannel(-1); return Sequencer.Status.Done; }},
120138

@@ -204,7 +222,25 @@ private void AddSteps(Func<Dialog, DialogResult> uiDialog)
204222
new BufferInputVppStep("Channel 2 - measure buffer input Vpp - LG L9", 1, 20, Variables),
205223
new BufferInputVppStep("Channel 2 - measure buffer input Vpp - LG L10", 1, 21, Variables),
206224
new AttenuatorStep("Channel 2 - measure attenuator scale", 1, Variables),
207-
new PgaLoadStep("Channel 2 - measure PGA loading scales", 1, Variables),
225+
226+
new PgaLoadSetupStep("Channel 2 - setup PGA loading scale", 1, Variables),
227+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 660 MSPS, 1 channel", 1, [1], 660_000_000, Variables),
228+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 500 MSPS, 1 channel", 1, [1], 500_000_000, Variables),
229+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 330 MSPS, 1 channel", 1, [1], 330_000_000, Variables),
230+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 250 MSPS, 1 channel", 1, [1], 250_000_000, Variables),
231+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 165 MSPS, 1 channel", 1, [1], 165_000_000, Variables),
232+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 100 MSPS, 1 channel", 1, [1], 100_000_000, Variables),
233+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 500 MSPS, 2 channel", 1, [1, 2], 500_000_000, Variables),
234+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 330 MSPS, 2 channel", 1, [1, 2], 330_000_000, Variables),
235+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 250 MSPS, 2 channel", 1, [1, 2], 250_000_000, Variables),
236+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 165 MSPS, 2 channel", 1, [1, 2], 165_000_000, Variables),
237+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 100 MSPS, 2 channel", 1, [1, 2], 100_000_000, Variables),
238+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 250 MSPS, 3 channel", 1, [1, 2, 3], 250_000_000, Variables),
239+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 165 MSPS, 3 channel", 1, [1, 2, 3], 165_000_000, Variables),
240+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 100 MSPS, 3 channel", 1, [1, 2, 3], 100_000_000, Variables),
241+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 250 MSPS, 4 channel", 1, [0, 1, 2, 3], 250_000_000, Variables),
242+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 165 MSPS, 4 channel", 1, [0, 1, 2, 3], 165_000_000, Variables),
243+
new PgaLoadStep("Channel 2 - measure PGA loading scale - 100 MSPS, 4 channel", 1, [0, 1, 2, 3], 100_000_000, Variables),
208244

209245
new Step("Disconnect SDG2042X"){ Action = (CancellationToken cancellationToken) => { Instruments.Instance.SetSdgChannel(-1); return Sequencer.Status.Done; }},
210246

@@ -295,7 +331,25 @@ private void AddSteps(Func<Dialog, DialogResult> uiDialog)
295331
new BufferInputVppStep("Channel 3 - measure buffer input Vpp - LG L9", 2, 20, Variables),
296332
new BufferInputVppStep("Channel 3 - measure buffer input Vpp - LG L10", 2, 21, Variables),
297333
new AttenuatorStep("Channel 3 - measure attenuator scale", 2, Variables),
298-
new PgaLoadStep("Channel 3 - measure PGA loading scales", 2, Variables),
334+
335+
new PgaLoadSetupStep("Channel 3 - setup PGA loading scale", 2, Variables),
336+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 660 MSPS, 1 channel", 2, [2], 660_000_000, Variables),
337+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 500 MSPS, 1 channel", 2, [2], 500_000_000, Variables),
338+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 330 MSPS, 1 channel", 2, [2], 330_000_000, Variables),
339+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 250 MSPS, 1 channel", 2, [2], 250_000_000, Variables),
340+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 165 MSPS, 1 channel", 2, [2], 165_000_000, Variables),
341+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 100 MSPS, 1 channel", 2, [2], 100_000_000, Variables),
342+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 500 MSPS, 2 channel", 2, [2, 3], 500_000_000, Variables),
343+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 330 MSPS, 2 channel", 2, [2, 3], 330_000_000, Variables),
344+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 250 MSPS, 2 channel", 2, [2, 3], 250_000_000, Variables),
345+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 165 MSPS, 2 channel", 2, [2, 3], 165_000_000, Variables),
346+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 100 MSPS, 2 channel", 2, [2, 3], 100_000_000, Variables),
347+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 250 MSPS, 3 channel", 2, [2, 3, 0], 250_000_000, Variables),
348+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 165 MSPS, 3 channel", 2, [2, 3, 0], 165_000_000, Variables),
349+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 100 MSPS, 3 channel", 2, [2, 3, 0], 100_000_000, Variables),
350+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 250 MSPS, 4 channel", 2, [0, 1, 2, 3], 250_000_000, Variables),
351+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 165 MSPS, 4 channel", 2, [0, 1, 2, 3], 165_000_000, Variables),
352+
new PgaLoadStep("Channel 3 - measure PGA loading scale - 100 MSPS, 4 channel", 2, [0, 1, 2, 3], 100_000_000, Variables),
299353

300354
new Step("Disconnect SDG2042X"){ Action = (CancellationToken cancellationToken) => { Instruments.Instance.SetSdgChannel(-1); return Sequencer.Status.Done; }},
301355

@@ -386,7 +440,25 @@ private void AddSteps(Func<Dialog, DialogResult> uiDialog)
386440
new BufferInputVppStep("Channel 4 - measure buffer input Vpp - LG L9", 3, 20, Variables),
387441
new BufferInputVppStep("Channel 4 - measure buffer input Vpp - LG L10", 3, 21, Variables),
388442
new AttenuatorStep("Channel 4 - measure attenuator scale", 3, Variables),
389-
new PgaLoadStep("Channel 4 - measure PGA loading scales", 3, Variables),
443+
444+
new PgaLoadSetupStep("Channel 4 - setup PGA loading scale", 3, Variables),
445+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 660 MSPS, 1 channel", 3, [3], 660_000_000, Variables),
446+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 500 MSPS, 1 channel", 3, [3], 500_000_000, Variables),
447+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 330 MSPS, 1 channel", 3, [3], 330_000_000, Variables),
448+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 250 MSPS, 1 channel", 3, [3], 250_000_000, Variables),
449+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 165 MSPS, 1 channel", 3, [3], 165_000_000, Variables),
450+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 100 MSPS, 1 channel", 3, [3], 100_000_000, Variables),
451+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 500 MSPS, 2 channel", 3, [3, 0], 500_000_000, Variables),
452+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 330 MSPS, 2 channel", 3, [3, 0], 330_000_000, Variables),
453+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 250 MSPS, 2 channel", 3, [3, 0], 250_000_000, Variables),
454+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 165 MSPS, 2 channel", 3, [3, 0], 165_000_000, Variables),
455+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 100 MSPS, 2 channel", 3, [3, 0], 100_000_000, Variables),
456+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 250 MSPS, 3 channel", 3, [3, 0, 1], 250_000_000, Variables),
457+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 165 MSPS, 3 channel", 3, [3, 0, 1], 165_000_000, Variables),
458+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 100 MSPS, 3 channel", 3, [3, 0, 1], 100_000_000, Variables),
459+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 250 MSPS, 4 channel", 3, [0, 1, 2, 3], 250_000_000, Variables),
460+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 165 MSPS, 4 channel", 3, [0, 1, 2, 3], 165_000_000, Variables),
461+
new PgaLoadStep("Channel 4 - measure PGA loading scale - 100 MSPS, 4 channel", 3, [0, 1, 2, 3], 100_000_000, Variables),
390462

391463
new Step("Disconnect SDG2042X"){ Action = (CancellationToken cancellationToken) => { Instruments.Instance.SetSdgChannel(-1); return Sequencer.Status.Done; }},
392464

source/TS.NET.Sequences/Steps/AdcFineGainStep.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public AdcFineGainStep(string name, BenchCalibrationVariables variables) : base(
99
// A previous step should set Instruments.Instance.EnableSdgDc(channelIndex) to enable sig gen output
1010
Action = (CancellationToken cancellationToken) =>
1111
{
12+
Instruments.Instance.SetThunderscopeRate(1_000_000_000, variables);
1213
var channelIndex = 0;
1314
var pathIndex = 21;
1415
// First set the maximum range
@@ -91,7 +92,7 @@ public AdcFineGainStep(string name, BenchCalibrationVariables variables) : base(
9192
Logger.Instance.Log(LogLevel.Information, Index, $"Branch {i + 1}: {(branchScale*100.0)-100.0:+0.000;-0.000}%");
9293
}
9394

94-
Logger.Instance.Log(LogLevel.Information, Index, Status.Passed, $"");
95+
Logger.Instance.Log(LogLevel.Information, Index, Status.Passed);
9596

9697
Instruments.Instance.SetSdgDc(channelIndex);
9798
return Status.Passed;

source/TS.NET.Sequences/Steps/AttenuatorStep.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public AttenuatorStep(string name, int channelIndex, CalibrationVariables variab
99
// A previous step should set Instruments.Instance.EnableSdgDc(channelIndex) to enable sig gen output
1010
Action = (CancellationToken cancellationToken) =>
1111
{
12+
Instruments.Instance.SetThunderscopeRate(1_000_000_000, variables);
1213
var pathCalibration = Utility.GetChannelPathCalibration(channelIndex, 18, variables);
1314
//var pathConfig = Utility.GetChannelPathConfig(channelIndex, 18);
1415

source/TS.NET.Sequences/Steps/BufferInputVppStep.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public BufferInputVppStep(string name, int channelIndex, int pathIndex, BenchCal
99
// A previous step should set Instruments.Instance.EnableSdgDc(channelIndex) to enable sig gen output
1010
Action = (CancellationToken cancellationToken) =>
1111
{
12+
Instruments.Instance.SetThunderscopeRate(1_000_000_000, variables);
1213
var pathCalibration = Utility.GetChannelPathCalibration(channelIndex, pathIndex, variables);
1314
var pathConfig = Utility.GetChannelPathConfig(channelIndex, pathIndex, variables);
1415
Instruments.Instance.SetThunderscopeCalManual1M(channelIndex, pathCalibration.TrimOffsetDacZero, pathCalibration.TrimScaleDac, pathCalibration.PgaPreampGain, pathCalibration.PgaLadderAttenuator, variables);
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using TS.NET.Sequencer;
2+
3+
namespace TS.NET.Sequences;
4+
5+
public class PgaLoadSetupStep : Step
6+
{
7+
public PgaLoadSetupStep(string name, int channelIndex, BenchCalibrationVariables variables) : base(name)
8+
{
9+
Action = (CancellationToken cancellationToken) =>
10+
{
11+
Instruments.Instance.SetSdgChannel(channelIndex);
12+
Instruments.Instance.SetSdgDc(channelIndex);
13+
Instruments.Instance.SetSdgOffset(channelIndex, 0);
14+
cancellationToken.WaitHandle.WaitOne(1000);
15+
16+
var configIndex = 21;
17+
var pathCalibration = Utility.GetChannelPathCalibration(channelIndex, configIndex, variables);
18+
var pathConfig = Utility.GetChannelPathConfig(channelIndex, configIndex, variables);
19+
Instruments.Instance.SetThunderscopeCalManual1M(channelIndex, pathCalibration.TrimOffsetDacZero, pathCalibration.TrimScaleDac, pathCalibration.PgaPreampGain, pathCalibration.PgaLadderAttenuator, variables);
20+
21+
Utility.GetAndCheckSigGenZero(channelIndex, pathConfig, variables, cancellationToken);
22+
23+
Instruments.Instance.SetThunderscopeChannel([channelIndex], false);
24+
Instruments.Instance.SetThunderscopeRate(1_000_000_000, variables);
25+
variables.ReferenceVpp = Utility.FindVpp(channelIndex, pathConfig, variables.SigGenZero, cancellationToken);
26+
27+
var scale = new ThunderscopePgaLoadScale() { SampleRate = 1_000_000_000, ChannelCount = 1, Scale = 1 };
28+
switch (channelIndex)
29+
{
30+
case 0:
31+
variables.Calibration.Channel1.PgaLoadScales = [scale];
32+
break;
33+
case 1:
34+
variables.Calibration.Channel2.PgaLoadScales = [scale];
35+
break;
36+
case 2:
37+
variables.Calibration.Channel3.PgaLoadScales = [scale];
38+
break;
39+
case 3:
40+
variables.Calibration.Channel4.PgaLoadScales = [scale];
41+
break;
42+
}
43+
variables.ParametersSet += 1;
44+
45+
Logger.Instance.Log(LogLevel.Information, Index, Status.Done, $"Config index: {configIndex}");
46+
return Status.Done;
47+
};
48+
}
49+
}

0 commit comments

Comments
 (0)