GX5295
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.
DioPmuGetForcedVoltage (nHandle, nChannelListMode, nCountOrFirstChannel, panChannelList, nLastChannel, dVoltage, nCurrentRange, wRampTimeInMicroSec, nMode, nRampCurrentRange, pnStatus)
Name |
Type |
Comments |
nHandle |
SHORT |
DIO Master handle, Slave handle or File board handle. |
nChannelListMode |
SHORT |
Channel list mode dictates how nCountOrFirstChannel and panChannelList parameters are used. Channel list mode options are as follows: 0. DIO_CH_LIST_MODE_ARRAY_OF_CHANNELS: The user specifies an array of channels where nCountOrFirstChannel is the number of elements in the list array and panChannelList is an array contains the channels numbers. In this mode nLastChannel is ignored. 1. DIO_CH_LIST_MODE_ALL_BOARD_CHANNELS: Apply the settings to all the board’s channels associated with this board handle. In this mode nCountOrFirstChannel, panChannelList and nLastChannel variavles are ignored. 2. DIO_CH_LIST_MODE_ALL_DOMAIN_CHANNELS: Apply the settings to all the channels in the domain, e.g. if there are two boards in the domain (Master and a Slave), then all 64 channels will be set. In this mode nCountOrFirstChannel, panChannelList and nLastChannel variavles are ignored. 3. DIO_CH_LIST_MODE_RANGE_OF_CHANNELS: Apply settings to a range of channels where nCountOrFirstChannel is the first channel number and nLastChannel is the last channel number. In this mode panChannelList variavle is ignored. |
nCountOrFirstChannel |
SHORT |
If nChannelListMode parameter is set to DIO_CH_LIST_MODE_ARRAY_OF_CHANNELS, then it is specifying the number of elements in the pnChannelList array parameter. If nChannelListMode parameter is set to DIO_CH_LIST_MODE_RANGE_OF_CHANNELS, then it is specifying the first channel number to apply the settings to, otherwise it is ignored and should set to zero. Channel number in the DIO domain, each DIO board adds 32 I/O channels. I/O channels number range is 0-991 (1 master and 30 slaves). Gx5295: Each DIO board adds 4 Auxiliary channels, Auxiliary channels number range is 0-123 (1 master and 30 slaves). |
panChannelList |
PSHORT |
Array of channels numbers. Channels numbers can be from 0 to the last channel in the domain. E.g., if the domain has two boards then the last channel is 63. This parameter is only used if nChannelListMode parameter is set to DIO_CH_LIST_MODE_ARRAY_OF_CHANNELS, otherwise is should be passed as NULL. Gx5295: Auxiliary channels numbers are 1000 to 1003. |
nLastChannel |
SHORT |
If nChannelListMode parameter is set to DIO_CH_LIST_MODE_RANGE_OF_CHANNELS, then it is specifying the last channel number to apply the settings to, otherwise it is ignored and should set to zero. Channel number in the DIO domain, each DIO board adds 32 I/O channels. I/O channels number range is 0-991 (1 master and 30 slaves). Gx5295: Each DIO board adds 4 Auxiliary channels, Auxiliary channels number range is 0-123 (1 master and 30 slaves). |
dVoltage |
DOUBLE |
PMU forced voltage value. Gx5055: PMU forced voltage can be set from negative voltage rail voltage (VCC) + 2V to positive voltage rail voltage (VEE) -2V. Gx5295: PMU forced voltage value can be between -2V to +7V. |
nCurrentRange |
SHORT |
Programmed PMU I/O current range, current range can be as follows: Gx5055: 0. GX5055_PMU_CURRENT_RANGE_N200MA_TO_P200MA: PMU current range -200mA to +200mA 1. GX5055_PMU_CURRENT_RANGE_N25MA_TO_P25MA: PMU current range -32mA to +32mA Gx5295: 0. GX529X_PMU_CURRENT_RANGE_N32MA_TO_P32MA: PMU current range is between -32mA to +32mA. 1. GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA: PMU current range is between -8mA to +8mA. 2. GX529X_PMU_CURRENT_RANGE_N2MA_TO_P2MA: PMU current range is between -2mA to +2mA. 3. GX529X_PMU_CURRENT_RANGE_N512UA_TO_P512UA: PMU current range is between -512uA to +512uA. 4. GX529X_PMU_CURRENT_RANGE_N128UA_TO_P128UA: PMU current range is between -128uA to +128uA. 5. GX529X_PMU_CURRENT_RANGE_N32UA_TO_P32UA: PMU current range is between -32uA to +32uA. 6. GX529X_PMU_CURRENT_RANGE_N8UA_TO_P8UA6: PMU current range is between -8uA to +8uA. 7. GX529X_PMU_CURRENT_RANGE_N2UA_TO_P2UA7: PMU current range is between -2uA to +2uA. |
wRampTimeInMicroSec |
DWORD |
Specify the time in uSec for the function to gradually ramp up/down the output Force Voltage. Ramp time can be 0-65535 uSec. |
dwMode |
DWORD |
Specify the voltage setting mode: 0. DIO_PMU_FV_SETUP_DEFAULT: Default, current range stay the same while ramping the output voltage, and nRampCurrentRange parameter is ignored 1. DIO_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. Gx5295: 0 GX529X_PMU_CURRENT_RANGE_N32MA_TO_P32MA: PMU current range is between -32mA to +32mA. 1 GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA: PMU current range is between -8mA to +8mA. 2 GX529X_PMU_CURRENT_RANGE_N2MA_TO_P2MA: PMU current range is between -2mA to +2mA. 3 GX529X_PMU_CURRENT_RANGE_N512UA_TO_P512UA: PMU current range is between -512uA to +512uA. 4 GX529X_PMU_CURRENT_RANGE_N128UA_TO_P128UA: PMU current range is between -128uA to +128uA. 5 GX529X_PMU_CURRENT_RANGE_N32UA_TO_P32UA: PMU current range is between -32uA to +32uA. 6 GX529X_PMU_CURRENT_RANGE_N8UA_TO_P8UA6: PMU current range is between -8uA to +8uA. NOTE: +/-2uA cannot be used |
pnStatus |
PSHORT |
Returned status: 0 on success, negative number on failure. |
The board must be in the PMU Forced voltage mode prior calling this function otherwise the function returns an error.
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_RANGEmode, he must make sure that the DUT can handle the higher currents he specifies.
The following example sets GX5295 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:
The following example uses an array of channels list set programmed PMU forced voltage to 3V and current range is between -8mA to +8mA, sets the mode to DIO_PMU_FV_CHECK_FOR_OVER_CURRENT, and +/-32mA current range to be used while ramping the voltages:
SHORT nStatus;
SHORT anChannelList[]={0, 2, 5, 7, 9, 13, 14, 27};
DioChannelSetPmuForcedVoltageRamp(nHandle, DIO_CH_LIST_MODE_ARRAY_OF_CHANNELS, 8, anChannelList, 0, 3.0, DIO_PMU_CURRENT_RANGE_N8MA_TO_P8MA, 100, DIO _PMU_FV_RAMP_MODE_RAMP_CURRENT_RANGE, DIO _PMU_CURRENT_RANGE_N32MA_TO_P32MA &nStatus);
DioSetupChannelMode, DioPmuSetupForcedCurrent, DioPmuSetupForcedVoltage, DioPmuGetForcedVoltage, DioPmuSetupForcedVoltage, DioGetErrorString