Specifications
19
Agilent TechnologiesN4962AErrorInjection1E1PerSecond;
Agilent TechnologiesN4962APatternEnum BERTPattern =
Agilent TechnologiesN4962APatternEnum.
Agilent TechnologiesN4962APatternPRBS31; // PRBS pattern
// instantiate variables and connect them to instruments
// (check IDN string, perform no RST, use driversetup)
// QueryInstrStatus = if SCPI commands will be
// followed with *ESR?, this is good practice
// to find errors, but will slow down comms
string driverSetup = “QueryInstrStatus=false”;
Agilent TechnologiesN4963A src = new Agilent TechnologiesN4963A();
Agilent TechnologiesN4962A BERT = new Agilent TechnologiesN4962A();
src.Initialize(srcAddress, true, false, driverSetup);
BERT.Initialize(BERTAddress, true, false, driverSetup);
// make sure we’re connected
if (!src.Initialized)
{
Exception notFound = new Exception(“N4963A CLOCK SYNTHESIZER13.5 GHZ not
at “ + srcAddress);
notFound.HelpLink = “Check GPIB address”;
throw notFound;
}
if (!BERT.Initialized)
{
Exception notFound = new Exception(“N4962A SERIAL BERT 12.5 GB/S not at “
+ BERTAddress);
notFound.HelpLink = “Check GPIB address”;
throw notFound;
}
// clear the instrument error queue
int errorCode = -1;
string errorMessage = “”;
while (errorCode != 0) src.Utility.ErrorQuery(ref errorCode,
ref errorMessage);
errorCode = -1;
while (errorCode != 0) BERT.Utility.ErrorQuery(ref errorCode,
ref errorMessage);
// setup clock
Console.Write(“N4963A CLOCK SYNTHESIZER13.5 GHZ “ + srcAddress + “ setup..”);
src.Utility.Reset();
src.Source.Frequency = srcFreq;
src.Source.set_Amplitude(“1”, 1.5);
src.Source.set_Amplitude(“2”, 1.5);
src.Source.set_Amplitude(“3”, 0.8);
src.Source.set_Amplitude(“4”, 0.8);
src.Source.OutputEnable = true;
Console.WriteLine(“done”);
// setup BERT
Console.Write(“N4962A SERIAL BERT 11.3 GB/S “ + BERTAddress + “ setup..”);
BERT.Utility.Reset();
BERT.Clock.LowFreqSource = Agilent TechnologiesN4962ASourceEnum.
Agilent TechnologiesN4962ASourceExternal;
System.Threading.Thread.Sleep(200);
BERT.Clock.Frequency = srcFreq/1e6;
BERT.Data.Pattern = BERTPattern;
BERT.Data.Generator.Amplitude = BERTAmplitude * 1000;
if (BERTErrInj)
BERT.Data.Generator.ErrorInjection.Rate = BERTErrInjRate;