PMU Functionality with the GX5960 Series

Knowledge Base Article # Q200224

Read Prior Article Read Next Article
Summary Overview of the PMU API Functions supported by the GX5960 Series Digital Subsystem
  
Login to rate article
The Gx5960 Series of Digital I/O devices include the ability to configure each of its I/O channels to operate in either dynamic or PMU mode. This article focuses on the PMU mode.

Each digital channel includes a parametric measurement unit (PMU) which can be used to characterize and measure a digital pin’s DC characteristics. The PMU can be configured for force current, measure voltage, or force voltage, measure current.  The PMU’s range of operation is listed below:
  • Force voltage range: -10 volts to +15 volts (plus vMid Voltage)
  • Force current range: +/- 25 mA FS or +/- 200 mA
  • Measure voltage range: -10 volts to +15 volts (plus vMid Voltage)
  • Measure current range: +/- 25 mA FS or +/- 200 mA
GX5960 Parametrics Measurement Unit Circuit

API Functions

The following are the API calls required to set up the instrument for PMU operation:

VOID WINAPI GtDio6xSetChannelMode(SHORT nHandle, LONG lChannelListArraySize, PLONG palChannelListArray, SHORT nMode, PSHORT pnStatus);


VOID WINAPI GtDio6xSetChannelForcedVoltage(SHORT nHandle, LONG lChannelListArraySize, PLONG palChannelListArray, DOUBLE dVoltage,  SHORT nCurrentRange, DWORD dwSetupMode, DOUBLE dMaxCurrent, PSHORT pnStatus);


VOID WINAPI GtDio6xSetChannelForcedCurrentCommutatingVoltage(SHORT nHandle, LONG lChannelListArraySize, PLONG palChannelListArray, DOUBLE dVComHi, DOUBLE dVComLo, PSHORT pnStatus);


VOID WINAPI GtDio6xSetChannelForcedCurrentCommutatingVoltage(SHORT nHandle, LONG lChannelListArraySize, PLONG palChannelListArray, DOUBLE dVComHi, DOUBLE dVComLo, PSHORT pnStatus);


Note that the voltage clamps only apply for forced current operation up to 24mA. If this current is exceeded, the voltage clamps are no longer effective.

Example Code

The following C code performs the following:
1. Set Channel 0 Mode to PMU Force Current
2. Set Channel 0 PMU Force Current Voltage clamps to +5V and -5V
3. Set Channel 0 to Force 10mA in 25mA range
4. Measure the output current
5. Set Channel 0 Mode to PMU Force Voltage
6. Set Channel 0 to Force 12V with the current range set to 25mA
7. Measure the output voltage

//Use channel 0
alChannelListArray[0]=0; //Use channel 0
GtDio6xInitialize(1, &nHandle, &nStatus);
GtDio6xSetChannelConnect(nHandle, 1, alChannelListArray, TRUE, &nStatus);
//Set Channel Mode to PMU Force Current
GtDio6xSetChannelMode(nHandle, 1, alChannelListArray, GTDIO6X_CHANNEL_MODE_PMU_FORCE_CURRENT, &nStatus);
//Set Clamping voltages to +5V and -5V
GtDio6xSetChannelForcedCurrentCommutatingVoltage(nHandle, 1, alChannelListArray, 5, -5, &nStatus);
//Force 10 mA in 25mA range
GtDio6xSetChannelForcedCurrent(nHandle, 1, alChannelListArray, 10, GTDIO6X_PMU_CURRENT_RANGE_N25MA_TO_P25MA, &nStatus);
//Measure the current output
GtDio6xMeasure(nHandle, 0, GTDIO6X_MEASURE_OUTPUT_CURRENT, &dMeasurement, 1, 0, 0, &nStatus);

//Set Channel Mode to PMU Force Voltage
GtDio6xSetChannelMode(nHandle, 1, alChannelListArray, GTDIO6X_CHANNEL_MODE_PMU_FORCE_VOLTAGE, &nStatus);
//Force 12 Volts
GtDio6xSetChannelForcedVoltage(nHandle, 1, alChannelListArray, 12.0, GTDIO6X_PMU_CURRENT_RANGE_N25MA_TO_P25MA, GTDIO6X_PMU_FV_SETUP_DEFAULT, 20, &nStatus);
//Measure the voltage output
GtDio6xMeasure(nHandle, 0, GTDIO6X_MEASURE_IO_VOLTAGE, &dMeasurement, 1, 0, 0, &nStatus);


More information on the GX5960 series can be found on the Geotest website.

Look at the following articles for more information about PMU and related applications: PMU White Paper , Semiconductor Testing with GX5295 PMU
Article Date 5/7/2012
Keywords PMU, GX5960, DIO, Force Voltage, Force Current


Login to rate article

1 ratings | 5 out of 5
Read Prior Article Read Next Article