Skip to content

[SMU Gang Pin Group] - Ganging Feature Documentation#493

Open
gmrsekar wants to merge 5 commits intomainfrom
users/sekar/SMUGangingDocumentation
Open

[SMU Gang Pin Group] - Ganging Feature Documentation#493
gmrsekar wants to merge 5 commits intomainfrom
users/sekar/SMUGangingDocumentation

Conversation

@gmrsekar
Copy link
Copy Markdown
Collaborator

@gmrsekar gmrsekar commented Apr 21, 2026

What does this Pull Request accomplish?

This PR contains documentation for STL Gang Pin Group feature.

Why should this Pull Request be merged?

This document helps the STL users to understand the SMU Gang Pin Group feature.

What testing has been done?

Did self-review with the mark-down editor plugin for VS Code.

Comment thread docs/images/SMUGangPinGroup/SMUGangPinGroupSetup.png

### Supported Instruments

Following are some of the SMUs for which STL has enabled ganging support:
Copy link
Copy Markdown
Collaborator

@nitamil nitamil Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have to reword this to say we have tested on these SMUs. It must say like "all SMUs are supported except PPS, LCR type nidcPower modules". @Mattjet27, Please let me know your thoughts.

> var sessionManager = Initialize(pinmap);
> var dcPower = sessionManager.DCPower(new[] { "PowerPins" });
> dcPower.GangPinGroup("MergedPowerPins");
> dcPower.ConfigureMeasureWhen(DCPowerMeasurementWhen.AutomaticallyAfterSourceComplete);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to comment out this line and enable a line with ConfigureMeasurementSetting Method to configure this property.
Note should describe about the configuration of individual property related to measureWhen and MeasureTrigger is unsupported on ganged pins. We take care of configuring the same for follower channels when the ConfigureMeasurementSetting or ForceVoltage or ForceCurrent Method is used.

- [PXIe-4163](https://www.ni.com/docs/en-US/bundle/pxie-4163/page/user-manual-welcome.html)

> [!NOTE]
> All SMUs that support source and measure triggers can be part of the ganged pin group.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to mention start trigger and sequence advance trigger for sequence mode sourcing of ganged channels?

All the channels of ganged pin group must be physically connected on the application load board, either statically (always ganged together) or dynamically using a MUX or relays.
For remote sensing, sense wires of all the ganged channels must be connected.

The following image illustrates an example of the relay-based dynamic connections for a 4 channel gang:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image shows it's a 2, instead of 4, channel gang.


1. Add DUT pin definitions for each of the channels being ganged. For example, "Vcc_0", "Vcc_1", "Vcc_2" and so on.
2. Add a new pin group definition. Use a name that is appropriate for the combined pin. For example, "Vcc" or "Vcc_Ganged".
3. Assign each of the pins created in step 1 to the pin group created in step 3.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"... to the pin group created in step 2".

Comment on lines +68 to +69
<DUTPin name="Vcc0" />
<DUTPin name="Vcc1" />
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's at least be consistent with the DUTPin names in this example pin map and the statement on line 45.

Add DUT pin definitions for each of the channels being ganged. For example, "Vcc_0", "Vcc_1", "Vcc_2" and so on.

Comment on lines +83 to +85
<Connection pin="Vcc1" siteNumber="0" instrument="SMU_4137_C1_S06" channel="1" />
<Connection pin="Vcc0" siteNumber="1" instrument="SMU_4137_C1_S07" channel="2" />
<Connection pin="Vcc1" siteNumber="1" instrument="SMU_4137_C1_S08" channel="3" />
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would the channel numbers be 1, 2, and 3 for a single channel SMU? Are you sure Pin Map Editor does not report error for this example pin map file?

Once the gang operation has been performed, all subsequent DCPower Extension methods can be used on the bundle, and will operate on the pin group as if it were one single pin in the bundle.

> [!NOTE]
> The `DCPowerSessionsBundle` must be created using the Ganged Pin Group by pin group name when attempting to perform ganged operations. Do not create the `DCPowerSessionsBundle` using the individual pin names within the Ganged Pin Group.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the sessions bundle object could be created using individual pin names, as long as all pins in the ganged group are included, right?

smuBundle.UngangPinGroup("Vcc");
```

There is also a sequence style example available that showcases a complete working example of gangng SMU pin groups.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo, "a complete working example of ganging SMU pin groups."

The `MeasureAndPublishCurrent` and `MeasureAndPublishVoltage`, and `PublishResults` methods will publish the measurement results using the leader pin name. It is recommended that you specify the leader pin in the pin field of related tests in the Test tab of the calling TestStand step when working with ganged pin groups.
> [!NOTE]
> While the TestStand Semiconductor Module (TSM) allows values to be published by pin group name, it requires separate values for each of the pins within the pin group. For ganged channels, the results are stored in pin group name and no individual channel name is present in the returned `PinSiteData` object, therefore results are not published by the pin group name when working with ganged pin groups.
> If the `MeasureWhen` property is set to `AutomaticallyAfterSourceComplete` for leader channel, only the first measurement taken will return valid data.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to make it a separate [!NOTE]?

> dcPower.ConfigureMeasureWhen(DCPowerMeasurementWhen.AutomaticallyAfterSourceComplete);
> dcPower.Initiate();
> dcPower.MeasureVoltage();
> dcPower.MeasureVoltage() // Will not return any data;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's actually not "Will not return any data", it will throw fetch time out exception, right?

@lornazh
Copy link
Copy Markdown
Collaborator

lornazh commented Apr 22, 2026

I think we want to make it clear that for a measure only test flow (without a force call beforehand), we recommend customers to call ConfigureMeasureSettings method instead of individual ConfigureMeasureWhen methods to make sure the measurement is successful.

Talk to @nitamil for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants