Configuring Instrument Sessions
The Semiconductor Test Library can help you efficiently configure instruments by consolidating the most commonly configured driver properties into a class. You can create and configure an instance of this class with only the properties you intend to update. The resulting object can then be passed as an input parameter to the appropriate extension method(s) in the library, which will operate on the object to update the targeted driver properties in one go. Other properties in the object not explicitly set will be ignored. This minimizes the number of parallel for loops, thus reducing overhead and the overall code execution time.
Note
Extension methods that configure driver properties will always abort the driver session before updating a property.
Extension methods that configure driver properties do not re-initiate or preform a commit of the driver session. Such operations are expected to be applied in proceeding code. If you want to force the driver properties to be applied immediately, ensure that you subsequently call the high-level Commit
or Initiate
Extension method.
Related Concepts:
- Making Low-Level Driver Calls
- NI TSM: Parallel For Loops
- NI DCPower: Programming Flow
- NI DCPower: Programming States
- NI Digital: Session State Model
Configuring DCPower Settings
The DCPower Extensions provide two main classes to configure DCPower settings: DCPowerSourceSettings
and DCPowerMeasureSettings
.
Source Settings
Use the DCPowerSourceSettings
class to configure common settings related to sourcing constant voltage or current in Single Point mode with NI-DCPower instruments.
Example Usage:
var pinNames = new string[] { "PinA", "PinB" };
var sessionManager = new TSMSessionManager(semiconductorModuleContext);
var dcPowerPins = sessionManager.DCPower(pinNames);
var sourceSettings = new DCPowerSourceSettings
{
Level = 0.01,
Limit = 1,
OutputFunction = DCPowerSourceOutputFunction.DCCurrent,
};
dcPowerPins.ConfigureSourceSettings(sourceSettings);
dcPowerPins.Initiate();
// OR Simply
// dcPowerPins.ForceCurrent(sourceSettings);
Note
Refer to the API Reference for more details regarding the DCPowerSourceSettings
class.
Class: DCPowerSourceSettings
Namespace: NationalInstruments.SemiconductorTestLibrary.InstrumentAbstraction.DCPower
Assembly: NationalInstruments.SemiconductorTestLibrary.Extensions.dll
Measure Settings
Use the DCPowerMeasureSettings
class to configure common measurement settings when operating in constant voltage or current mode with NI-DCPower instruments.
Example Usage:
var sessionManager = new TSMSessionManager(semiconductorModuleContext);
var dcPowerPins = sessionManager.DCPower("DutPinA");
var measureSettings = new DCPowerMeasureSettings()
{
ApertureTime = 0.01,
ApertureTimeUnits = DCPowerMeasureApertureTimeUnits.Seconds,
Sense = DCPowerMeasurementSense.Remote,
MeasureWhen = DCPowerMeasurementWhen.AutomaticallyAfterSourceComplete,
};
dcPowerPins.ConfigureMeasureSettings(measureSettings);
var currentMeasurements = dcPowerPins.MeasureCurrent()
Note
Refer to the API Reference for more details regarding the DCPowerMeasureSettings
class.
Class: DCPowerMeasureSettings
Namespace: NationalInstruments.SemiconductorTestLibrary.InstrumentAbstraction.DCPower
Assembly: NationalInstruments.SemiconductorTestLibrary.Extensions.dll
Configuring Digital Settings
Use the PPMUSettings
class to configure common PPMU-related settings with NI Digital Pattern instruments.
Example Usage:
var pinNames = new string[] { "PinA", "PinB" };
var sessionManager = new TSMSessionManager(tsmContext);
var ppmuPins = sessionManager.Digital(pinNames);
var pinASettings = new PPMUSettings
{
VoltageLevel = 0.01,
CurrentLimitRange = 1,
OutputFunction = PpmuOutputFunction.DCCurrent
};
var pinBSettings = new PPMUSettings
{
VoltageLevel = 3.3,
CurrentLimitRange = 0.01,
OutputFunction = PpmuOutputFunction.DCVoltage,
};
var ppmuSettings = new Dictionary<string, PPMUSettings>()
{
[pinNames[0]] = pinASettings,
[pinNames[1]] = pinBSettings,
};
ppmuPins.ForceVoltage(ppmuSettings);
Note
Refer to the API Reference for more details regarding the PPMUSettings
class.
Class: PPMUSettings
Namespace: NationalInstruments.SemiconductorTestLibrary.InstrumentAbstraction.Digital
Assembly: NationalInstruments.SemiconductorTestLibrary.Extensions.dll