GtDio6xChannelSetPmuForcedVoltageRamp

Applies To

GX5296

Purpose

Ramping the PMU Force Voltage gradually over the specified time for the specified channels, in order to prevent over/under shoot of the channel’s output voltage.

Syntax

GtDio6xChannelSetPmuForcedVoltageRamp (nHandle, lChannelListArraySize, palChannelListArray, dVoltage, nCurrentRange, wRampTimeInMicroSec, nMode, nRampCurrentRange, , pnStatus)

Parameters

Name
Type
Comments
nHandle
SHORT
Session identifier:

     Board handle is used when communicating with the hardware. The Board handle session identifier is returned by calling GtDio6xInitialize or GtDio6xSetupInitialization.

     File handle is used when communicating with a file. The File handle session identifier is  returned by calling GtDio6xFileOpen.

lChannelListArraySize
LONG
Used to specify the number of channels to set. This parameter should not be greater than the size of palChannelListArray. If GTDIO6X_ALL_DOMAIN is passed in, then the palChannelListArray parameter can be set to NULL and the settings will be applied to all channels in the Domain.
palChannelListArrary
PLONG
Array containing channels numbers that will be set by this function, channels numbers are 0-based and refers to any channel in the Domain. Auxiliary channel numbers begin with 1000.
GX5296: Each GX5296 board has 4 auxiliary channels that support all the Pin Electronics API functions.
GX5961: Each GX5961 board has 4 fully programmable auxiliary channels, and 8 TTL I/O channels. First 4 auxiliary channels may use all the Pin Electronics API.
GX5964: Does not have Auxiliary channels.
dVoltage
DOUBLE
Programmed PMU forced voltage value.
GX5296:PMU forced voltage value can be between -2V to and 7V.
GX5961/GX5964: :PMU forced voltage value depends on power supply voltage rails.
nCurrentRange
SHORT
Used to Set the channel current range:
GX5961/GX5964:

0.    GTDIO6X_PMU_CURRENT_RANGE_N200MA_TO_P200MA: +200 to -200 mA current range.

1.    GTDIO6X_PMU_CURRENT_RANGE_N25MA_TO_P25MA: +25 to -25 mA current range.

GX5296:

0.   GX529X_PMU_CURRENT_RANGE_N32MA_TO_P32MA: PMU current range -32mA to +32mA.

1.   GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA: PMU current range -8mA to +8mA.

2.   GX529X_PMU_CURRENT_RANGE_N2MA_TO_P2MA: PMU current range -2mA to +2mA.

3.   GX529X_PMU_CURRENT_RANGE_N512UA_TO_P512UA: PMU current range -512uA to +512uA.

4.   GX529X_PMU_CURRENT_RANGE_N128UA_TO_P128UA: PMU current range -128uA to +128uA.

5.   GX529X_PMU_CURRENT_RANGE_N32UA_TO_P32UA: PMU current range -32uA to +32uA.

6.   GX529X_PMU_CURRENT_RANGE_N8UA_TO_P8UA: PMU current range -8uA to +8uA.

7.   GX529X_PMU_CURRENT_RANGE_N2UA_TO_P2UA: PMU current range -2uA to +2uA.

wRampTimeInMicroSec
WORD
Specify the time in uSec for the function to gradually ramp up/down the output Force Voltage. Ramp time can be 0-65535 uSec.
nMode
SHORT

Specify the voltage setting mode:

0.   GTDIO6X_PMU_FV_SETUP_DEFAULT: Default, current range stay the same while ramping the output voltage, and nRampCurrentRange parameter is ignored.

1.   GTDIO6X_PMU_FV_CHECK_FOR_OVER_CURRENT: Uses the  specified nRampCurrentRange current range value while ramping up/down the output voltages in order to reduce output voltage over/under shoot. The nRampCurrentRange current range must be greater than nCurrentRange. The user needs to make sure the DUT can handle higher currents. Transition current range value must be greater than nCurrentRange.

nRampCurrentRange

SHORT

If nMode was set to 1, the function will set the Force Voltage channel current range to one of the following ranges, and will restore back to the original range when voltage ramping up/down setting is complete. The current range can only be of a greater range in order to better cope with over/under shooting voltages.

0.    GX529X_PMU_CURRENT_RANGE_N32MA_TO_P32MA: PMU current range -32mA to +32mA.

1.    GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA: PMU current range -8mA to +8mA.

2.    GX529X_PMU_CURRENT_RANGE_N2MA_TO_P2MA: PMU current range -2mA to +2mA.

3.    GX529X_PMU_CURRENT_RANGE_N512UA_TO_P512UA: PMU current range -512uA to +512uA.

4.    GX529X_PMU_CURRENT_RANGE_N128UA_TO_P128UA: PMU current range -128uA to +128uA.

5.    GX529X_PMU_CURRENT_RANGE_N32UA_TO_P32UA: PMU current range -32uA to +32uA.

6.    GX529X_PMU_CURRENT_RANGE_N8UA_TO_P8UA: PMU current range -8uA to +8uA.

pnStatus
PSHORT
Returned status: 0 on success, negative value on failure.

Comments

In Forced Voltage mode, the pin electronics attempt to force a certain voltage. The output current range serves to limit the amount of current the pin electronics will generate in order to generate a given forced voltage. While setting the PMU Force Voltage, there might be excessive over/under shoot voltages depending on the DUT characteristics. In order to reduce those over/under shoot voltages, this function allows the user to set the output voltages gradually over the user specified time. The user can also specify nMode=GTDIO6X_PMU_FV_RAMP_MODE_RAMP_CURRENT_RANGE, in that case the user than may specify which current range will be used while ramping the PMU force voltage. The driver will switch to the new and higher current range before starting to ramp the voltages, and will restore the original current range on completion.

The function intended to help the user better tailor the PMU Force voltage DUT response, and will require a trial and error in order to find the best ramp time and the transition current range.

The current being sourced or sunk can be measured using the GtDio6xMeasure function.

Note: In case the user using the GTDIO6X_PMU_FV_RAMP_MODE_RAMP_CURRENT_RANGE mode, he must make sure that the DUT can handle the higher currents he specifies.

Example

The following example sets GX5296 channels 0 and 2 forced voltage to +2.5V with +/-2mA current range, sets the optimization to 1, and +/-32mA current range to be used while ramping the voltages, and read back the channel 0 forced voltage settings:

 

SHORT nStatus, nCurrentRange;

LONG alChannelList[2];

DOUBLE dVoltage;

 

// Fill channel array

alChannelList[0] = 0;

alChannelList[1] = 2;

GtDio6xChannelSetPmuForcedVoltageRamp(nHandle, 2, alChannelList, 2.5, GX529X_PMU_CURRENT_RANGE_N2MA_TO_P2MA, 100, GTDIO6X_PMU_FV_RAMP_MODE_RAMP_CURRENT, GX529X_PMU_CURRENT_RANGE_N32MA_TO_P32MA &nStatus);

 

GtDio6xChannelGetPmuForcedVoltage(nHandle, 0, &dVoltage, &nCurrentRange, &nStatus);

See Also

GtDio6xChannelGetPmuForcedVoltage, GtDio6xChannelSetPmuForcedCurrentCommutatingVoltage, GtDio6xChannelSetPmuForcedCurrent, GtDio6xChannelGetPmuForcedCurrent,  GtDio6xChannelSetMode, GtDio6xChannelGetMode, GtDio6xChannelGetPmuForcedVoltage, GtDio6xGetErrorString