GX5296, GX5961, GX5964
Performs a self-test that checks all on-board memories or checks the basic functionality of the pin electronics and returns a test result.
GtDio6xSelfTest (nHandle, pnTestResult, pszTestMessage, nMessageMaxLen, nType, pnStatus)
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. |
pnTestResult |
PSHORT |
Returns the self-test result code. |
pszTestMessage |
PSTR |
Returns a string "Self-Test Passed" if the self test command returns a zero and "Self-Test Failed" if a non-zero is returned. |
nMessageMaxLen |
SHORT |
Maximum length of test result message buffer. |
nType |
SHORT |
Type of Self-Test to perform:0. GTDIO6X_SELFTEST_MEMORY: Perform self-test on on-board internal memories. 1. GTDIO6X_SELFTEST_IO: Perform self-test on pin electronics. |
pnStatus |
PSHORT |
Returned status: 0 on success, negative value on failure. |
The memory self-test function saves the current memory contents and performs a full RAM test on all the internal memories. The full RAM test performs multiple read/write cycles to each RAM at every address location. The full RAM test utilizes special hardware to test the vector, record and probe memories at speed.
The ram test algorithm is performed in 4 steps:
1. Write/verify a walking 1 vector at the start address to check for stuck or shorted data bits.
2. Write/verify all zeros to the entire space to check for stuck at one memory bits.
3. Write/verify all ones to the entire space to check for stuck at zero memory bits.
4. Perform a marching ram test using AA and 55 vectors to check for stuck or shorted address bits.
The pin electronics I/O self-test exercises the Output channels and measures the resultant output using the Monitors.
Note: the GX5961/GX5964 requires that the VCC rail is supplied with at least +12V and that the VEE rail is supplied with at least -12V.
The following describes all the possible return codes for pnTestResult:
000 = No Errors.
001 = Sequence Ram data bit test failed.
002 = Sequence Ram stuck at 1 test failed.
003 = Sequence Ram stuck at 0 test failed.
004 = Sequence Ram vector background test failed.
005 = Sequence Ram vector compliment test failed.
011 = Timing Set Ram data bit test failed.
012 = Timing Set Ram stuck at 1 test failed.
013 = Timing Set Ram stuck at 0 test failed.
014 = Timing Set Ram vector background test failed.
015 = Timing Set Ram vector compliment test failed.
021 = Persistence Ram data bit test failed.
022 = Persistence Ram stuck at 1 test failed.
023 = Persistence Ram stuck at 0 test failed.
024 = Persistence Ram vector background test failed.
025 = Persistence Ram vector compliment test failed.
031 = Waveform Ram data bit test failed.
032 = Waveform Ram stuck at 1 test failed.
033 = Waveform Ram stuck at 0 test failed.
034 = Waveform Ram vector background test failed.
035 = Waveform Ram vector compliment test failed.
041 = Record Index Ram data bit test failed.
042 = Record Index Ram stuck at 1 test failed.
043 = Record Index Ram stuck at 0 test failed.
044 = Record Index Ram vector background test failed.
045 = Record Index Ram vector compliment test failed.
051 = Error Address Ram data bit test failed.
052 = Error Address Ram stuck at 1 test failed.
053 = Error Address Ram stuck at 0 test failed.
054 = Error Address Ram vector background test failed.
055 = Error Address Ram vector compliment test failed.
061 = Vector 1-8 Ram data bit test failed.
062 = Vector 1-8 Ram stuck at 1 test failed.
063 = Vector 1-8 Ram stuck at 0 test failed.
064 = Vector 1-8 Ram vector background test failed.
065 = Vector 1-8 Ram vector compliment test failed.
066 = Vector 1-8 Ram Stuck Busy.
067 = Vector 1-8 Ram Not Granted.
071 = Vector 9-16 Ram data bit test failed.
072 = Vector 9-16 Ram stuck at 1 test failed.
073 = Vector 9-16 Ram stuck at 0 test failed.
074 = Vector 9-16 Ram vector background test failed.
075 = Vector 9-16 Ram vector compliment test failed.
076 = Vector 9-16 Ram Stuck Busy.
077 = Vector 9-16 Ram Not Granted.
081 = Vector 17-24 Ram data bit test failed.
082 = Vector 17-24 Ram stuck at 1 test failed.
083 = Vector 17-24 Ram stuck at 0 test failed.
084 = Vector 17-24 Ram vector background test failed.
085 = Vector 17-24 Ram vector compliment test failed.
086 = Vector 17-24 Ram Stuck Busy.
087 = Vector 17-24 Ram Not Granted.
091 = Vector 25-32 Ram data bit test failed.
092 = Vector 25-32 Ram stuck at 1 test failed.
093 = Vector 25-32 Ram stuck at 0 test failed.
094 = Vector 25-32 Ram vector background test failed.
095 = Vector 25-32 Ram vector compliment test failed.
096 = Vector 25-32 Ram Stuck Busy.
097 = Vector 25-32 Ram Not Granted.
101 = Record Ram data bit test failed.
102 = Record Ram stuck at 1 test failed.
103 = Record Ram stuck at 0 test failed.
104 = Record Ram vector background test failed.
105 = Record Ram vector compliment test failed.
106 = Record Ram Stuck Busy.
107 = Record Ram Not Granted.
111 = Probe Ram data bit test failed.
112 = Probe Ram stuck at 1 test failed.
113 = Probe Ram stuck at 0 test failed.
114 = Probe Ram vector background test failed.
115 = Probe Ram vector compliment test failed.
116 = Probe Ram Stuck Busy.
117 = Probe Ram Not Granted.
120 = Pin Electronics Monitor Failure or No Rail Power Detected.
121 = Pin Electronics Drive Voltage High Failure.
122 = Pin Electronics Drive Voltage Low Failure.
The following runs the self-test:
SHORT nTestResult;
CHAR szMessage[256];
SHORT nStatus;
GtDio6xSelfTest(nHandle, &nTestResult, szMessage, 256, GTDIO6X_SELFTEST_IO, &nStatus);
printf(“The IO Self-Test result is: %s”, szMessage);