Light line imager-based IC tray pocket detection system

A system for detecting a status of a pocket of a tray includes a tray having a plurality of pockets that hold an integrated circuit device, a vision mechanism, a light line generator, a reflective device, and a controller. The vision mechanism images the tray along a first optical axis. The light line generator emits a light line along a second optical axis. The reflective device reflects the light line onto the tray along a third optical axis. The third optical axis has a different angle relative to the first optical axis than an angle between the first optical axis and the second optical axis. The controller receives an image of the tray from the vision mechanism, detects the light line reflected onto the tray along the third optical axis, and determines a status of a pocket based on the detected light line along the third optical axis.

FIELD

The present disclosure generally relates to a detection system for a device tray of an integrated circuit (“IC”) device test handler system. In particular, the present disclosure relates to a camera and light line-based detection system for on-the-fly detection of a placement of a device in a tray pocket.

BACKGROUND

During testing of an IC device, one or more devices may be placed in one or more pockets of a tray, such as a JEDEC tray. A detection system may be used to determine a status of a given pocket in the tray, such as whether the pocket is empty, contains a properly placed device, or contains a stack of devices. In some detection systems, such as that disclosed in U.S. Pat. No. 8,041,533, a dual-cross, angled laser and a camera system may be used. However, the use of multiple lasers and a static detection system increases the space needed for the detection system in an already limited-space environment.

SUMMARY

In one embodiment, a system for detecting a status of a pocket of a tray includes a tray having a plurality of pockets that hold an integrated circuit device, a vision mechanism, a light line generator, a reflective device, and a controller. The vision mechanism images the tray along a first optical axis. The light line generator emits a light line along a second optical axis. The reflective device reflects the light line onto the tray along a third optical axis. The third optical axis has a different angle relative to the first optical axis than an angle between the first optical axis and the second optical axis. The controller receives an image of the tray from the vision mechanism, detects the light line reflected onto the tray along the third optical axis, and determines a status of a pocket based on the detected light line along the third optical axis.

In one aspect, the plurality of pockets is arranged in a plurality of rows and a plurality of columns and the light along the third optical axis is reflected along a row of the plurality of rows.

In one aspect, the tray also includes a first outer protrusion provided at a first end of the plurality of rows and a second outer protrusion provided at a second end of the plurality of rows. The first and second outer protrusions are formed along a length of the plurality of columns.

In one aspect, the controller further detects the light line along the third optical axis reflected onto the first outer protrusion and the second outer protrusion, detects the light line along the third optical axis reflected onto a surface of the pocket, calculates an offset between the detected light line on the first outer protrusion and the second outer protrusion and the detected light line on the surface of the pocket, and determines the status of the pocket based on the calculated offset.

In one aspect, the controller further sets an upper limit position of the light line along the third optical axis reflected on the surface of the pocket, sets a lower limit position of the light line along the third optical axis reflected on the surface of the pocket, and detects a shift of the light line along the third optical axis. The status of the pocket is determined based on the detected shift.

In one aspect, the first outer protrusion and the second outer protrusion are provided with at least one notch such that at least one row of the plurality of rows comprises the at least one notch at an end of the at least one row. The controller further interpolates a position of the light line along the third optical axis reflected onto the at least one notch based on one or more positions of the detected light line along the third optical axis reflected onto the first outer protrusion or the second outer protrusion of one or more rows adjacent to the at least one row.

In one aspect, the controller interpolates the position of the light line along the third optical axis reflected onto the at least one notch based on an average of a first position of the detected light line along the third optical axis reflected onto the first outer protrusion or the second outer protrusion of a first adjacent row and a second position of the detected light line along the third optical axis reflected onto the first outer protrusion or the second outer protrusion of a second adjacent row.

In one aspect, the status of the pocket is one of an integrated device properly placed in the pocket, a stack of two or more integrated devices placed in the pocket, an integrated device partially placed in the pocket, or an empty pocket.

In one aspect, the light line generator is a laser.

In one aspect, the second optical axis is substantially parallel to the first optical axis.

In one aspect, the first optical axis and the second optical axis are substantially orthogonal to an upper surface of the tray.

In one aspect, the third optical axis is offset from the first optical axis by an angle of about 35 degrees to about 55 degrees.

In one aspect, the third optical axis is offset from the first optical axis by an angle of 45 degrees.

In one aspect, the laser is mounted to the vision mechanism.

In one aspect, the laser is mounted to a pick-and-place device configured to place a plurality of integrated circuit devices into the plurality of pockets of the tray. The reflective device is configured to reflect the light line onto the tray along the third optical axis such that the space required to mount the laser to the pick-and-place device is reduced.

In one aspect, the tray is a JEDEC tray.

In another embodiment, a method for detecting a status of a pocket of a tray includes providing a tray having a plurality of pockets that hold an integrated circuit device, providing a vision mechanism that images the tray along a first optical axis, emitting a light line along a second optical axis, reflecting the light line onto the tray along a third optical axis, the third optical axis having a different angle relative to the first optical axis than an angle between the first optical axis and the second optical axis, receiving at a controller an image of the tray from the vision mechanism, detecting the light line reflected onto the tray along the third optical axis, and determining a status of a pocket based on the detected light line along the third optical axis.

In one aspect, the method further includes setting an upper limit position of the light line reflected along the third optical axis projected onto the pocket, and setting a lower limit position of the light line reflected along the third optical axis projected onto the pocket. The step of determining a status of a pocket includes detecting a shift of the light line reflected along the third optical axis.

In one aspect, the third optical axis is offset from the second optical axis by an angle of about 35 degrees to about 55 degrees.

In one aspect, the second optical axis is substantially orthogonal to an upper surface of the tray.

In one aspect, the tray includes a plurality of rows and a plurality of columns, and the light line having the third optical axis is reflected along a row of the plurality of rows.

In one aspect, the step of reflecting the light line onto the tray along a third optical axis includes reflecting a light line having the third optical axis along a first row of the plurality of rows. The step of detecting the light line reflected onto the tray along the third optical axis includes detecting the light line having the third optical axis along the first row. The step of determining a status of a pocket includes determining a status of each of the plurality of pockets in the first row based on the detected light line reflected along the first row. The steps of reflecting the light line, detecting the light line, and determining a status of a pocket are repeated for each row of the plurality of rows.

In one aspect, the tray further includes a first outer protrusion disposed at a first end of the plurality of rows and a second outer protrusion disposed at a second end of the plurality of rows, the first and second outer protrusions extending along a length of the plurality of columns.

In one aspect, the step of detecting the light line reflected onto the tray includes detecting the light line reflected along the third optical axis projected onto the first outer protrusion and the second outer protrusion, and the step of determining a status of a pocket includes calculating an offset between the detected light line on the first outer protrusion and the second outer protrusion and the detected light line on the pocket.

DETAILED DESCRIPTION

Embodiments of the present invention will be described below with reference to the accompanying drawings. It would be understood that the following description is intended to describe exemplary embodiments of the invention, and not to limit the invention.

Referring generally to the figures, the present disclosure provides a detection system capable of detecting a status of a pocket of a tray for a test handler system during runtime. The detection system utilizes a vision mechanism, a single light-emitting device, and a reflective device. The reflective device is positioned to reflect light emitted from the light-emitting device such that the emitted light is projected onto the tray for detection of a pocket by the vision mechanism. By reflecting light emitted from the light-emitting device, the reflective device allows the light-emitting device to be mounted such that the optical axis of the light-emitting device is substantially parallel to the optical axis of the vision mechanism. This allows the light-emitting device to be mounted on or near the vision mechanism and/or to be mounted on or near a handler pick-and-place device, minimizing the space needed to mount the light-emitting device and the overall space needed for the detection system.

FIG. 1shows a schematic view of a detection system100for a test handler system according to one embodiment of the present invention. The detection system100includes a vision mechanism, such as a down-looking camera110, and a light-emitting device, such as light line generator or laser120. A controller170is operably connected to the camera110and is configured to analyze images captured by the camera110and store information generated by the image analysis. The controller170may be further connected to a user interface180for generating output to and/or receiving input from a user.

As shown inFIG. 1, the camera110visually detects a portion of a tray160along a first optical axis130. The laser120provides a light emission, in the form of a light line or laser beam, along a second optical axis140. The laser120is positioned such that the second optical axis140is substantially parallel to the first optical axis130. In some embodiments, the laser120may be directly mounted on the camera110such that the second optical axis140is parallel to the first optical axis130. In the embodiment shown inFIG. 1, the camera110and the laser120are positioned such that the first and second optical axes130,140are substantially orthogonal to a top surface of the tray160.

As further shown inFIG. 1, a reflective device, such as a mirror150, is provided at one side of the tray160. The mirror150is configured to reflect the laser beam emitted by the laser120such that the light emitted from the laser120changes from traveling along the second optical axis140to traveling along an optical axis having a different angle with respect to the first optical axis130. For example, as shown inFIG. 1, the mirror150is configured to reflect the laser beam from the second optical axis140to a third optical axis140′ that is offset from the first optical axis130and/or the second optical axis140by about 45 degrees. In some embodiments, the third optical axis140′ may be offset from the first optical axis130and/or the second optical axis140by an angle between about 35 degrees to about 55 degrees.

As shown inFIG. 2, the tray160includes a plurality of pockets162that are each configured to hold a device (not shown inFIG. 2), such as an integrated circuit (“IC”) or a semiconductor device. In certain embodiments, the tray160may be a JEDEC tray. The plurality of pockets162are arranged in a plurality of rows162aand a plurality of columns162bto form an array pattern. The number of pockets162in each of the plurality of rows is equal to the number of columns162b. In some embodiments, the number of pockets162in the plurality of rows162ais greater than or less than the number of pockets162in the plurality of columns162b.

As further shown inFIG. 2, the tray160includes a first outer protrusion164aprovided at a first end of the rows162aand a second outer protrusion164bprovided at a second end of the rows162a. Both the first outer protrusion164aand the second outer protrusion164brun along a length of the columns162b. In the embodiment shown inFIG. 2, one or more notches163are provided along lengths of the first and second shoulders164a,164bsuch that the lengths of the first and second shoulders164a,164bare discontinuous along the respective ends of the rows162a.

The detection system100includes two processes when determining a status of a pocket162in a tray160. First, the detection system100is configured to run through a training process in order to determine and store a trained pattern of the laser beam reflected along a given row162a. Second, once the trained pattern has been stored for the tray160, the detection system100then performs a runtime detection process to detect a status of a pocket162in the tray160during runtime of the test handler system.

FIG. 3shows a flowchart of a method for determining and storing a trained pattern using the detection system100according to one embodiment of the present invention. As shown inFIG. 3, in a step S100, a tray160is provided where each of the pockets162includes a device10that is fully and properly placed or seated within the respective pocket. In a step S110, the detections system100projects a laser beam across one row162a. During this step, the laser120emits the laser beam along the second optical axis140, where it is reflected in the mirror150and offset to the third optical axis140′. As shown inFIG. 4, the reflection results in the laser beam having the third optical axis140′ being projected across the one row162aof the tray160. In certain embodiments, the device10has a width that is equal to or greater than three times the width of the laser beam having the third optical axis140′ for reliable detection analysis.

In a step S120, the camera110captures the image of the laser beam projected across the row162a, as shown inFIG. 4, and the controller170analyzes the image and detects the segments in which the laser beam is projected across each of the first and second outer protrusions164a,164b. These segments are then stored by the controller170as trained reference points for the row162a. By storing the trained reference points for the row162abased on the first and second outer protrusions164a,164b(in other words, reference is based on the tray shoulders rather than the shoulders of the individual pocket), pocket status detection is made possible even for small pocket trays.

In a step S130, the controller170then detects the segment in which the laser beam is projected across a pocket162having a device10, as shown inFIG. 5. Once the segment is detected, the controller170calculates and stores an offset with regard to both line position and angle between the laser beam projected across the pocket162and the trained reference points determined from step S120. To provide a tolerance for the calculated offset, in a step S140, the user, using the user interface180, may set an upper limit position141aof the offset and a lower limit position141bof the offset with respect to both line position and angle of the calculated offset. The set upper limit position141aand the lower limit position141bmay be stored in the controller180. The calculated offset and the set upper and lower limits141bare stored as a trained pattern of an in-pocket device10.

In some cases, lens distortions in the camera110and flatness errors in the upper surface of the tray160may cause variations in positions of the laser beam projected across each of the pockets162contained in a given row162a. Thus, to account for these errors, the training process ofFIG. 3may be repeated for each pocket162in the given row162asuch that a trained pattern of an in-pocket device10is stored for each of the pockets162in the row162a. Once an entire row16ais trained, the detection system100may move the camera110and the laser120to an adjacent row162ato continue the training process, where the process starts again at step S110.

As noted above, the first and second outer protrusions164a,164bmay include one or more notches163. In some cases, when a notch163is present at one or both ends of a row162athat is being trained by the system100, the laser beam having the third optical axis140′ may fail to be projected over the first and/or second outer protrusions164a,164b. In these cases, in order to train the row162ahaving an adjacent notch163at one or both ends, the controller170interpolates one or more of the trained reference points for the row162abased on the trained reference points for rows that are adjacent to the row162abeing trained. For example, the controller170may use a calculated average between the trained reference points stored for a previous row162aand the trained reference points stored for a next row162a. This calculated average may then be stored as trained reference points for the notch163.

In addition, in some embodiments, the first row162athat is trained by the system100is manually trained. When training the first row162a, the user may manually train the controller170with the expected positions of the first and second outer protrusions164a,164band the expected positions of the projected laser beam across the first and second outer protrusions164a,164b. The subsequent rows162amay then be automatically trained by the controller170based on the manual train of the first row162a.

Once the training of the system100is completed, runtime detection of the tray160may be performed. During runtime, the detection system100may be configured to continually detect a status of a pocket162in the tray160(e.g., a device10is properly placed in-pocket, a device10tilted within a pocket, two or more devices10are stacked within a pocket, no device10is contained within a pocket).

FIG. 6is a flowchart of a detection system100during runtime of the test handler according to one embodiment. In a step S200, the laser120emits a laser beam such that a laser beam having the third optical axis140′ is projected across a row162aof the tray160and the camera110images the laser beam across the row162a. In a step S210, the controller170detects the segments of the laser beam projected along the first and second outer protrusions164a,164b. These detected segments are then compared to the trained reference points stored for the row162aduring the training process. If the controller170determines that the detected segments are offset from the trained reference points within a predetermined tolerance, then the system100proceeds with the runtime detection process using the detected segments stored as runtime reference points for that row162a. If, on the other hand, the controller170determines that the detected segments are offset from the trained reference points outside the predetermined tolerance, then the system100proceeds with the runtime detection process using the trained reference points as the runtime reference points for that row162a.

In a step S220, the controller170detects the laser beam having the third optical axis140′ projected across a pocket162. In a step S230, the controller170then calculates an offset between the laser beam projected across the pocket162and the stored runtime reference points. In a step S240, the controller170determines the relative position and angle between the calculated offset and the trained upper and lower limits141a,141b. Finally, based on the determined relative position and angle between the calculated offset and the trained upper and lower limits141a,141b, the controller170may then determine a status of the pocket162in a step S250.

If the position and angle of the calculated offset is within the trained upper and lower limits141a,141bdetermined during step S240, the controller170may then determine that the status of the pocket162in step S250is that a device10is contained and properly placed within the pocket162. However, as shown inFIGS. 7A-7B, the controller170may determine that the position and angle of the calculated offset is outside of the trained upper and lower limits141a,141b. For example, as shown inFIG. 7A, the calculated offset may be shifted outside of the trained lower limit141b(e.g., to the left in the figure). Depending on the position of the mirror150relative to the camera110, this shift indicates a status of the pocket162other than a device10that is properly contained within the pocket162. For example, in the embodiments shown inFIGS. 7A-7B, the mirror150is assumed to be positioned on a left side of the camera110. Thus, as shown inFIG. 7A, when the calculated offset of the projected laser beam within the pocket10is shifted to the left such that it is outside the trained lower limit141b, the controller170may determine that the status of the pocket162is that the pocket contains two or more stacked devices10. Moreover, if the calculated offset of the projected laser beam within the pocket10is shifted to the right such that it is outside the trained upper limit141a, as shown inFIG. 7B, the controller170may determine that the status of the pocket162is empty (i.e., the pocket162contains no device). Similar shifts in the calculated offset relative to the upper and lower limits141a,141bmay indicate other statuses of the pocket162. For example, a shift outside of the upper limit141aor lower limit141bmay indicate that the pocket162contains a device10that is not properly placed (e.g., a partially placed device or a tilted device). In addition, if no laser beam is projected across a pocket162, such that no shift can be detected by the controller170, the processor170may be configured to determine that the status of the pocket162is empty.

Once the status of each of the pockets162of the tray160has been determined by the detection system100using the above process, the controller170is configured to output the overall status of the tray160to the user through the user interface180. For example, if the status of each of the pockets162is determined to be empty, the controller170outputs a passing indication to the user interface190, indicating to the user that the entire tray160is empty and that runtime of the test handler system may proceed. If, on the other hand, one or more pockets162are determined to not be empty, the controller170outputs a failing indication to the user interface180, indicating to the user that the entire tray160is not empty, which may alert the user to a need for correction.

In certain embodiments, to deal with runtime tray variation and tray tilt variation, during the training process, the camera110is configured to first image capture each row162aof the tray160. After each row162ais imaged, the controller170detects the projected laser beam on the first and second outer protrusions164a,164bfor each of the rows and detects the laser beam across each of the pockets162. The controller170determines and stores those rows162athat have one or more notches163such that no laser beam is detected on one or more ends of the row162a. Once all of the rows162ahave been processed, the controller170then interpolates trained reference points for the stored rows162ahaving one or more notches163based on an average of the detected positions of the projected laser beam for adjacent rows162a, as discussed above.

For each row162a, the controller170records a set of the detected positions of the projected laser beam for each of the pockets162as a curve or fit the set of positions to a second order curve such that a smooth curve is obtained. This stored curve of the position data set is stored as a reference row curve. For a given row162a, the controller170calculates an offset of the detected laser beam projections on the first and second outer protrusions164a,164brelative to the reference row curve, which is stored as a reference offset anchor value. This reference offset anchor value may be used to correct for runtime tray tilt variation and height variation present in the tray160.

To correct for variation during the runtime detection process, the camera110may be configured to first image capture each row162aof the tray160. After each row162ais imaged, the controller170then detects the projected laser beam on the first and second outer protrusions164a,164bfor each of the rows and detects the projected laser beam across each of the pockets162. The controller170then calculates an offset of the detected laser beam projections on the first and second outer protrusions164a,164brelative to the reference points calculated during training. For those rows162ahaving notches163, the interpolated reference points plus the calculated offset between the detected laser beam project on the first and second outer protrusions164a,164bof the previous row162arelative to its trained reference points may set as the offset detected during runtime. The reference offset anchor value is then used to translate and tilt the reference row curve for a given row162a, which is then stored by the controller170as a corrected row curve. The projected laser beam across a pocket162ais then compared to the corrected row curve by the controller170. The trained upper and lower limits141a,141bare used to determine the status of each of the pockets162, as discussed above.

If partial tray detection is used for runtime detection, protrusions present at outer edges of a pocket162may be used as reference points instead of the first and second outer protrusions164a,164bof the tray160. For example, as shown inFIG. 8, a pocket162contains a first edge protrusion166aalong a first side of the pocket162and a second edge protrusion166balong a second side of the pocket162, which is opposite the first side. The same training process and runtime detection process may be used as detailed above, except that the reference points for the training process and runtime detection process are determined with respect to the position of the projected laser beam on the first and second edge protrusions166a,166bof an individual pocket162.

While the preferred embodiments of the devices and methods have been described in reference to the environment in which they were developed, they are merely illustrative of the principles of the inventions. Modification or combinations of the above-described assemblies, other embodiments, configurations, and methods for carrying out the invention, and variations of aspects of the invention that are obvious to those of skill in the art are intended to be within the scope of the claims.