GX5055, GX5295, File
Sets the channels range programmed PMU forced voltage value.
DioPmuGetForcedVoltage (nHandle, nChannelListMode, nCountOrFirstChannel, panChannelList, nLastChannel, dVoltage, nCurrentRange, dwSetupMode, dMaxCurrent, 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. |
nVoltageRange |
SHORT |
Not used should be past as 0. |
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. |
dwSetupMode |
DWORD |
PMU Forced Voltage Setup Mode can be as follows: 0. DIO_PMU_FV_SETUP_DEFAULT: the specified Forced Voltage level will be applied immediately. 1. DIO_PMU_FV_CHECK_FOR_OVER_CURRENT: before the specified Forced Voltage level is applied the driver checks the output for short condition and over current condition. If those conditions are false then the specified Forced Voltage level will be applied. Otherwise the function will return an error and the forced voltage level will be set to 0V. |
dMaxCurrent |
DOUBLE |
Verify that the specified Forced Voltage level will not exceed the specified maximum current when the setup mode (dwSetupMode) parameter was set to check for over current. Otherwise this parameter is ignored. |
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 order to achieve greater accuracy when measuring PMU current while in Forced Voltage mode, the user can specify a smaller current range that better fits the expected I/O load and forced voltage condition then the default range of -32mA to +32mA. It is recommended that the estimated current will be less or equal to 80% of the specified current range when no using the default range of -32mA to +32mA., otherwise the current measurement can be inaccurate as well as the actual current might exceed the specified range causing the output voltage to be clamped.
Note: settings those current ranges only helps in measuring the output current more accurately but does not prevent against over current as the current can exceeds the specified current range in case of a short or high forced voltage values combined with low load value.
Gx5055: VCC may be between 10V to +28V. The maximum voltage swing between VCC and VEE may not exceed 33.5 V. The Vee voltage must may not exceed 18V and must not be less than 3V. The maximum voltage swing between VCC and VEE may not exceed 33.5 V.
The following example uses an array of channels list set programmed PMU forced voltage to 3V and current range is between -8mA to +8mA:
SHORT anChannelList[]={0, 2, 5, 7, 9, 13, 14, 27};
DioPmuSetupForcedVoltage (nHandle, DIO_CH_LIST_MODE_ARRAY_OF_CHANNELS, 8, anChannelList, 0, 3.0, GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA, DIO_PMU_FV_SETUP_DEFAULT, 0, &nStatus);
The following example sets all the board’s channels programmed PMU forced voltage to 3V and current range is between -8mA to +8mA:
DioPmuSetupForcedVoltage (nHandle, DIO_CH_LIST_MODE_ALL_BOARD_CHANNELS, 0, NULL , 0, 3.0, GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA, DIO_PMU_FV_SETUP_DEFAULT, 0, &nStatus);
The following example sets all the boards channels programmed PMU forced voltage to 3V and current range is between -8mA to +8mA:
DioPmuSetupForcedVoltage (nHandle, DIO_CH_LIST_MODE_ALL_DOMAIN_CHANNELS, 0, NULL , 0, 3.0, GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA, DIO_PMU_FV_SETUP_DEFAULT, 0, &nStatus);
The following example sets channels 5 to 10 programmed PMU forced voltage to 3V and current range is between -8mA to +8mA:
DioPmuSetupForcedVoltage (nHandle, DIO_CH_LIST_MODE_RANGE_OF_CHANNELS, 5, NULL, 10, 3.0, GX529X_PMU_CURRENT_RANGE_N8MA_TO_P8MA, DIO_PMU_FV_SETUP_DEFAULT, 0, &nStatus);
DioSetupChannelMode, DioPmuSetupForcedCurrent, DioPmuSetupForcedVoltage, DioGetErrorString