FEC200 LOOP Test & Enhanced LOOP Test
This pseudo-test allows a test or group of tests to be repeated up to 32,767 times. One application would be to repeat a test such as SURGE for the prescribed number of times. LOOP uses one of the 16 loop counters, the number of which is entered in place of the usual forcing condition. Limits on the value of the loop counter together with conditional jumps determine when the loop will terminate.
Consider the following example:
- TEST 10 LOOP 2 >15 JF3
When test 10 is reached, the value of loop counter number 2 is incremented, then tested. If the new value is less than 15 1 the program jumps to test 3. The value of the counter is reported as the result of this test.
There are important considerations to keep in mind when using LOOP. For example, the example above will not necessarily terminate with a count of 15. A jump on another test within the loop could jump outside of it. In this case the result of test 10 would be reported as the actual number of times that test 10 was performed.
For logging purposes only the final occurrence of ANY test (including LOOP) will be reported.
For PASS/FAIL decisions the action is a bit complicated. For UNIPOLAR devices or any parts not using the BIPOLAR function, or for those using BIPOLAR but currently testing side 1, the result is as follows:
The pass final decision reported is the final one for each test involved including the LOOP test itself.
For parts using BIPOLAR and testing the second side, a fail can never be changed to a pass. Therefore if the final decision on the first side or any decision on the second side is "fail" then that is the final decision.
When BIPOLAR is active the 16 loop counters are reset to zero before starting to test the second side.
LOOP can be used to test bipolar parts in a much better manner than the BIPOLAR command. This is a little complicated and is just summarized here. Look for a sample program elsewhere to better understand this.
A LOOP test can be used for each bin in a bipolar sorting program. When all tests have been passed for any bin, jump to the corresponding LOOP test, which should contain an F1 to reverse the diode and a jump on fail back to the tests for that bin. The loop test should have a limit of 2 and jump on pass to the end of the sequence.
If one of the tests for a given sort fails on either side, a jump on fail to the first test for another bin can be used.
If the counter for any bin reached 2, then the part must have passed the tests on both sides. You can write the binning program to just require that the LOOP test for a given bin passes.
The LOOP test has, since it was added to MAXX, been used to allow a group of tests to be repeated many times. It would repeat the tests in the loop for as many times as programmed or until a conditional jump broke out of the loop.
There have been several uses for this but a common use was to repeat some stressful test such as SURGE for a programmed number of times or until the DUT failed. For logging purposes the tests in the loop would be logged only on the last pass through the loop. The "reading" for the LOOP test itself would be the actual number of times that it was performed. This would be the programmed number or a smaller number if the DUT failed and jumped out of the LOOP.
Here is a typical LOOP test line:
- TEST 10 LOOP 1 >50 JF5
The 1 specifies "LOOP counter #1." Sixteen counters are provided so that multiple LOOPS can be programmed in a test sequence. This would be unusual, so usually just one would be used but who knows.
50 is the number of loops to be performed. JF5 means that if the loops performed so far is less than 50, the program will branch back to TEST 5.
Any test from 5-9 could contain a conditional jump to a test beyond TEST 10 and therefore break out of the LOOP.
WHAT IS WRONG WITH THAT?
A shortcoming of LOOP is that the program records the readings taken within the loop only on the last pass through. A related problem is associated with our SCAN5xx series scanners. With these scanners the program lines can specify which relay matrix pattern is to be used with each test. If, for example, you wanted to perform the same group of tests on each of 20 diodes in a module, then the relay pattern would need to change for each "loop."
The LOOP test will accept a second "FORCING" condition, like this:
- TEST 10 LOOP 1 4 >20 JF6 F128
The 4 increments an "ADDER" which causes the readings taken on each loop to be "spread out" in the READINGS buffer, using four readings slots on each pass. So now you will be able to Log or WATCH or PRINT all of the readings. Also, the relay pattern numbers on the tests in the loop will be incremented by four on each pass. This will allow you to test multiple diodes in a module using LOOP to repeat the tests.
F128 means "Don't log this test" I assume here that you don't want to log it.
CAUTION The readings taken will all be labeled with their actual test sequence numbers (6-9 in the example). HOWEVER, they will occupy slots in the READINGS buffer originally intended for tests from 11 and up. Any tests that you program beyond TEST 10 in the example will be performed and logged correctly using higher slots in the buffer. But note that the "ADDER" will still bump up the relay pattern numbers to those beyond the patterns used within the LOOP. Keep this in mind when programming the relay scanner file.
Since each pass through the LOOP bumps up the ADDER, you could create a lot of readings. There is room for 500 readings in the buffer but some other accessory software such as STATS can presently handle just 150. We may increase that in the future.
A more restrictive issue is the number of patterns available for the relay scanner. Currently that is 93. We may increase that also. Please let us know if these restrictions limit your use. If so we will try to expedite the increases.
If the first test in the example above used relay pattern 1, then you would use 4 patterns per loop for a total of 20x4 or 80. Patterns 1-80. You don't necessarily have to have a new pattern for each test so you might only use 2 of the 4 pattern numbers allotted. But you need to allot them anyway since the "4" you used on the LOOP test will bump up the ADDER by 4 each time. It is possible that you may program patterns either before or after those used within the LOOP so the first pattern number described as "1" above could be some other number.
1The limits are INCLUSIVE so 15 'passes.' This is true for all types of tests.