Digital Multimeters (DMMs) and Precision DC Sources

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I a pulse measurement using an SMU?

I configured Instrument Studio to show the SCOPE and the SMU so I can test the pulse capability but I can't see how to generate a pulse on the SMU using Instrument Studio.  I can see the scope change when I run the SMU and change the voltage.

0 Kudos
Message 11 of 16
(1,562 Views)

I tried running the PulseVoltage SMU example with 1s pulse and monitored the scope it is hooked to using InstrumentStudio and I do not see anything change. 
Why am I not seeing the pulse?

markshancock_0-1656011433588.png

 

0 Kudos
Message 12 of 16
(1,560 Views)

Allan Avila at NI Tech Support identified the issue with the PulseVoltage C# example.

Since there is no delay after the Initiate, the code proceeds quickly to the Reset which cancels the pulse.

Change:

dcPowerSession.Control.Initiate();
//Fetch voltage and current.
DCPowerFetchResult result = dcPowerSession.Measurement.Fetch(FullyQualifiedChannelName,new PrecisionTimeSpan(10), 1);
DisplayResult(result);
dcPowerSession.Utility.Reset();

To:

dcPowerSession.Control.Initiate();
dcPowerSession.Events.PulseCompleteEvent.WaitForEvent(PrecisionTimeSpan.FromSeconds(5));
//Fetch voltage and current.
DCPowerFetchResult result = dcPowerSession.Measurement.Fetch(FullyQualifiedChannelName,new PrecisionTimeSpan(10), 1);
DisplayResult(result);
dcPowerSession.Utility.Reset();

0 Kudos
Message 13 of 16
(1,488 Views)

> Since there is no delay after the Initiate, the code proceeds quickly to the Reset which cancels the pulse.

 

The Fetch() call should block until the measurement has occurred and the data has been retrieved. What's missing from the code is telling the instrument when to perform the measurement. As written I'm not sure when the measurement happens but it seems it happens before the pulse has come out. I see two options on how the code can be fixed depending on when you want the measurement to happen:

 

1. Configure the instrument to measure On Demand

2. Wait for PulseCompleteEvent

3. Call Measure (not fetch)

 

1. Configure the instrument to measure After Source Complete Event

2. Fetch

 

See: Pulsing - NI

Marcos Kirsch
Chief Software Engineer
NI Driver Software
0 Kudos
Message 14 of 16
(1,477 Views)

@kirsch I get an error when I try to set MeasureWhen (1150057) to AutomaticallyAfterSourceComplete (1025)

 

Ivi.Driver.SelectorNameException: ModularInstruments.NIDCPower: ModularInstruments.NIDCPower: IVI: (Hex 0xBFFA0045) The channel or repeated capability name is not allowed.

Attribute: NIDCPOWER_ATTR_MEASURE_WHEN, Channel: 0
Error code: -1074134971 ---> Ivi.Driver.IviCDriverException: ModularInstruments.NIDCPower: IVI: (Hex 0xBFFA0045) The channel or repeated capability name is not allowed.

Attribute: NIDCPOWER_ATTR_MEASURE_WHEN, Channel: 0
Error code: -1074134971
--- End of inner exception stack trace ---
at NationalInstruments.ModularInstruments.NIDCPower.Internal.DCPowerImpl.CheckErrorStatus(UInt32 handle, Int32 status)
at NationalInstruments.ModularInstruments.NIDCPower.Internal.DCPowerImpl.TestForGeneralErrorAndWarning(Int32 status)
at NationalInstruments.ModularInstruments.NIDCPower.Internal.DCPowerImpl.TestForErrorAndWarning(Int32 status)
at NationalInstruments.ModularInstruments.NIDCPower.Internal.DCPowerAdvancedPropertyAccessServiceImpl.SetAttributeInt32(Int64 attributeIdentifier, String repeatedCapability, Int32 value)
at NationalInstruments.ModularInstruments.AdvancedPropertyAccessService.SetAttributeInt32(Int64 attributeIdentifier, String repeatedCapability, Int32 value)
at NationalInstruments.ModularInstruments.InteropMimic.nidcpower.SetInt32(nidcpowerProperties propertyId, String Channel, Int32 val) in C:\MKS\CMT_CURRENT\SWProduction\Drivers\SMU\NI SMU\Driver\niDCPower.NET.cs:line 2123

0 Kudos
Message 15 of 16
(1,456 Views)

Note: I am also seeing the error: Could not find assembly: Ivi.Driver.resources.dll

I have not been able to find that dll

0 Kudos
Message 16 of 16
(1,453 Views)