Method for processing a micro device

Abstract: A task linking program is provided for using a computer for interacting with on-line and off-line programming systems (62,150) to perform tasks related to programming micro devices (52). The program is secure in being capable of being setup only in an administrator mode (10) where micro device, programming system, and other information can be inputted and changed. The program has an operator mode (40) in which the program can only run the programming system. This provides the ability to employ relatively low skill operators to use the programming system.

Description: The present invention relates generally to programming micro devices and more particularly to remote task programming for programmer/feeder systems. Originally, standalone desktop programmers were developed that took data from an operator, typically an engineer, and programmed it directly into a programmable electronic micro device. The mechanism for inserting and removing the micro device from the desktop programmer was an operator who manually performed the task. The desktop programmer could only put data into and take data out of a micro device, and manipulate the data. At the same time, there were companies that produced electronic micro device labelers. These labelers contained a built-in printer and would take labeling information, print a label, and place the label on the micro device. These systems were more automated. They could take an entire tube of micro devices and move the each micro device though the system, labeling each micro device and placing it back it an empty receiving tube. In this system, the operator only had to handle the tube of micro devices and not each micro device itself. However this system could only label parts. A business, which needed to program and label micro devices, bought two completely different systems from two different companies. Then, as two separate processes they would program all their micro devices and then label all their micro devices. Subsequently, a system was created which merged the two systems. The idea was to have an automated system that would program and label parts together in one process. Not only did this reduce the number of steps in the user's process, but it also eliminated the need for the operator to physically touch the micro device. Now the operator only needed to handle the tubes of micro devices, inserting and removing them from the machine. The machine now did all the micro device-by-micro device handling, programming and labeling. One big problem, however, was the two systems had no idea how to talk to each other. They were not designed to work together or to know of the other's existence. One good point was each of the different systems had a remote control interface. Hence, a handling link program was created that used each systems' remote control interface to arbitrate process control between the two systems. With this arrangement, there existed a handling link program separate from a programmer program which was separate from a labeler program. They talked to each other, but generally were developed separately, updated separately, and in some cases developed by different companies. During the development of the concept of a programmer/feeder system, it became apparent that a remote, non-connected control system and program was desirable. Unfortunately, for many years the "legacy" systems, or traditional systems, such as standalone programmers, had only focused on micro device programming, data manipulation, and self-test capabilities. This meant that many new operations would have to be performed in a new program which can control both a programmer in an integrated system and a standalone programmer, where an operator has to manually insert the micro devices. The new program would have to use each systems' remote control interface to arbitrate process control between the systems. It would have to provide a complete user interface for entering and storing all micro device handling, labeling, and programming information. When an operator selects the setup information it must be sent to each component in the system. The new program would then have to start arbitration while keeping each of the components working in synchronization during the process. It would have to keep track of statistic results for the operations being performed. Ideally, the setup information would be stored to be easily used over and over again to run the same micro devices. Further, the new program would ideally also provide a mode of operation where an operator could manually, one by one, enter each of the parameters for programming a batch of micro devices and then just initiate operation. In addition, it was apparent that many businesses wanted to have the capability of minimizing operator skill and dividing the operation of the new program into different parts than anything which had been done in the past. In essence, an engineering (free form) style user interface and a manufacturing (automated) style user interface were desired in one product. Thus, it was apparent that there would be many major problems in developing a programmer/feeder system program which could be controlled from a separate personal computer while still being able to control previously developed legacy programming, labeling, and handling systems, and the systems which would evolve from them. The present invention provides a task linking program for using a computer for interacting with on-line and off-line processing systems to perform tasks related to processing micro devices. The program is secure in being capable of being setup only in an administrator mode where micro device, processing system, and other information can be inputted and changed. The program has an operator mode in which the program can only run the processing system. This provides the ability to employ relatively low skill operators to use the processing system. The present invention provides a task linking program for using a computer for interacting with on-line and off-line programming systems to perform tasks related to programming micro devices. The program is secure in being capable of being setup only in an administrator mode where micro device, programming system, and other information can be inputted and changed. The program has an operator mode in which the program can only run the programming system. This provides the ability to employ relatively low skill operators to use the programming system. The present invention provides a task linking program for using a computer for interacting with a programming system to perform tasks related to programming micro devices. The program is capable of being used with both directly connected traditional programming systems and independent programming systems. A preferred embodiment of the invention for achieving the above objective and advantageous embodiments and features thereof are given in the appended independant claim and the sub claims. The above and additional advantages of the present invention will become apparent to those skilled in the art from a reading of the following detailed description when taken in conjunction with the accompanying drawings. FIG. 1 is a flow chart of an administrator mode portion of the task linking program of the present invention; FIG.2 is a flow chart of an operator mode portion of the task linking program of the present invention; FIGs. 3A-3C is a flow chart of the programming of the present invention for legacy and related systems; and FIGs. 4A-4B, is a flow chart of the programming of the present invention for a programmer/feeder system. The present invention relates to an overall system (not shown) which consists of three basic systems. First, is the computer system in which the program of the present invention operates. Second, is the legacy processing system, such as a programming system, which is on-line with the computer. And third, is the new processing system, such as a programmer/feeder system, which is generally off-line or generally operates independently from the computer system. Referring now to FIG. 1, therein is shown a portion of the task linking program of the present invention to be referred to as the TaskLink program for a wide variety of programming systems, some of them being off-line standalone programmers, some being desktop systems, and some being in-line systems, like a remote programmer/feeder system. In FIG. 1 is shown a flow chart of an administrator mode portion 10 of the TaskLink program where an administrator, such as a manufacturing engineer or supervisor, creates and set up all the settings and saves them. The administrator starts the TaskLink program at a "Start TaskLink" block 12 with a display having a menu system and toolbars similar to Microsoft Word or Excel. This type of display is used throughout the TaskLink program because of its familiarity to users. The program then proceeds to "Change Systems Settings?" block 14 for the administrator to verify that the correct settings are in place for the systems the TaskLink program is set up to control. Mostly the system preferences are settings that the administrator is expected to set when TaskLink is first installed, or expect to change very infrequently. If there were a need to change the settings, there would be menus and dialog boxes in a "Change System Settings and Passwording" block 16 and basically the administrator would pick from the menu system on the screen to change the settings and indicate completion by clicking "OK". During the initial startup, the TaskLink program may be used to setup a security passwording system. This will prompt for a password which will be preset to allow the program to operate subsequently in either an administrator mode or an operator mode. The administrator mode allows access to the entire program at an engineering level while the operator mode only permits processing micro devices with very limited preset selections. This provides a level of security which prevents unauthorized operators from making any changes in the program. The new system settings would then get saved in a "Configuration File" block 18. If there were no need to change the settings, the program would proceed to a "Start Task Manager" block 20. A "task" is defined as all the information necessary to process a component, such as a programmable electronic micro device (programmable electronic micro devices include, but are not limited to, electronically erasable read only memory (EEPROM), microcontrollers, and microprocessors), and a "kit" is defined as a series of tasks for example to process all the micro devices for a single printed circuit board. From the "Start Task Manager" block 20, the program proceeds to the "Create New Task?" block 22 from where the administrator would be able to add a new one task with a new name at "Add New Task Name" block 24 or just highlight an existing task at "Select Existing Task" block 26. Both blocks proceed to an "Edit Task Parameters" block 28 where a task is created or edited. This is where settings are input or edited by a conventional editor, such as the name of the micro device, the programming parameters, the data file parameters, etc. The editor is capable of performing conventional editing functions as well as functions such as importing and exporting information from task databases and ASCII task files. After the task parameters have been edited in the "Edit Task Parameters" block 28, the program proceeds to a "Create/Edit Another Task" block 32 to see if any other edits should be made. If there are further changes desired, the program returns to a "Create New Task" block 22. If there are not, the program goes to the "Exit Task Manager" block 34. Referring now to FIG. 2, therein is shown a flow chart of an operator mode portion 40 of the TaskLink program where an operator merely uses the program. The administrator mode portion in FIG.1 describes the preparation process for programming micro devices which would generally not be run by an operator. The operator mode portion 40 is set up for a low-skill operator although an administrator may run this portion of the TaskLink program for quality assurance purposes. As a result, after entry of the name and/or password in the "Enter Name and/or Password" block 44, an authorized operator will proceed to a "Select Existing Task" block 50. The "Select Existing Task" block 50 would have a list indicating the tasks, which the operator is allowed to perform, and permits the operator to only select those tasks and set them to "run". The TaskLink program then proceeds to a "Program Micro devices" block 52. This block will be described in greater detail with reference to FIGs. 3A-3C for on-line systems and FIGs. 4A-4B for off-line systems. From the "Program Micro devices" block 52, the program proceeds to the "Run Another Task" block 54. Basically, the operator only has two choices. Either another task can be run or the TaskLink program is exited. Referring now to FIGs. 3A-3C, therein is shown the legacy and related system processing in the "Program Micro devices" block 52 in FIG. 2. Generally in these systems, the computer on which the TaskLink program resides is directly connected to the programming system by a local area network, such as Ethernet. Starting with FIG. 3A, after the "Select Existing Task" block 50 by the operator, the TaskLink program checks in a "Multiple Micro devices?" block 62 to see if the names of multiple micro devices, multiple processes, multiple configurations within one task, and/ or multiple settings are within the existing task. If the task contains multiple micro devices, processes, etc., the program goes to a "Prompt for Micro devices" block 72 where the operator enters the desired micro devices, processes, etc. to be run. This feature may be used, for example, where a business may be using two different micro devices with one from a second source supplier. The purchasing department may be changing micro device suppliers on a weekly basis. Since it would be complex for the programming system to determine which micro device is currently being processed, it is easier preprogram the TaskLink program with the information for the different micro devices and to have the operator identify the particular micro device to be processed. If the task does not contain multiple micro devices and/or processes, the program proceeds to a "Send Setup Parameters to Programming System" block 74. The setup parameters are obtained by the "Send Setup Parameters to Programming System" block 74 from the "Task File" block 30 shown in FIG. 1. After the "Send Setup Parameters to Programming System" block 74, the program proceeds to a "Transfer Data File to Programming System" block 76 where the data files relating to the micro devices are transferred to the programming system. For example, for a programmable micro device, the micro device programming would be transferred at this point. The integrity of the data is then checked in a "Calculate and Display Checksum" block 78. Next, the operator is prompted for the number of good micro devices desired out of the production run in a "Prompt for Pass Quantity" block 80. This will let the processing run until the desired number or quantity of good or passable micro devices are programmed. Then, the program goes to a "Send Process-specific Setup to Programming System" block 82 to send out the appropriate setup information. Since it is getting more common to provide serial numbers for processed micro devices, a "Serializing?" block 84 asks this question. If yes, a serial number is provided at an "Initial Serial Number" block 86. The serial number is then transferred to the programming system by a "Transfer Serial Number to Programming System" block 88. The program then returns to proceed in FIG. 3B. In FIG. 3B, there are the visual directions, which are given to an operator if manual feed of the micro devices is involved, or the programming where automated handling equipment is involved. In an "Insert Micro device" block 90, the operator or handling equipment is instructed to insert the micro device into the programming equipment, such as a programmer. Programming starts when the TaskLink program receives a signal in the "Micro device Ready Signal" block 92. The TaskLink program then starts the programming in "Start Programming" block 94. When the micro device is completely processed, a return signal is received by the TaskLink program indicating that the programming is complete and providing statistical information in a "Programming Complete and Return Pass/Fail" block 96. Upon completion of programming of the single micro device, the TaskLink program updates the displays and statistics in the "Update" block 98 and provides an instruction in a "Remove Micro device Signal" block 100. The operator or handling equipment then follows the instruction in a "Remove Micro device" block 102. The TaskLink program then proceeds to FIG. 3C. In FIG. 3C, the TaskLink program prepares for the next micro device by again asking about serialization in a "Serializing?" block 104. If yes, a serial number is provided at a "Create Next Serial Number" block 106. The serial number is then transferred to the programming system by a "Transfer Serial Number to Programming System" block 108. A check is then made to determine if the appropriate number of good micro devices have been processed in a "Last Micro device?" block 110. If no, the program returns to the "Insert Micro device" block 90 where the operator or handling equipment is instructed to insert the next micro device into the programming system. If yes, the TaskLink program starts shutdown in a "Send Any Necessary Shutdown Parameters" block 112. The TaskLink program then goes to a "Final Display Update and Statistics" block 114 where final information is displayed and then archived in an "Archive Statistics and Serialization Data" block 116. This final information is then stored in a "Log File" block 118 and the TaskLink program finishes at a "Process Complete" block 120. In the above, the computer and the TestLink program are in constant interaction and contact and the contact may be described as being one of an "on-line" connection between the computer system and the programming system. Referring now to FIGs. 4A-4B, therein is shown the programming for a programming system, such as a programmer/feeder system, in the "Process Micro devices" block 52 in FIG. 2. Generally in these systems, the computer system on which the TaskLink program resides is not directly connected to control the programmer/feeder system and is connected to provide and receive information periodically to and from the programmer/feeder system. However, it would be evident to those skilled in the art that nothing herein precludes a direct connection between the computer and the programmer/feeder system by a local area network, but the operation would be one in which there would not constant interaction and contact This type of contact where the computer is isolated from the programming system while the processing occurs is referred to as an "off-line" connection. Starting with FIG. 4A, after the "Select Existing Task" block 50 in FIG. 2 by the operator, the TaskLink program checks in a "Multiple Micro devices?" block 150 to see if the names of multiple micro devices, multiple processes, multiple configurations, and/ or multiple settings are within the existing task. If the task contains multiple micro devices, processes, etc., the program goes to a "Prompt for Micro devices" block 152 where the operator enters the desired micro devices, processes, etc. for programming. Next, the operator is prompted for the number of good micro devices desired out of the production run in a "Prompt for Pass Quantity" block 154. Since the computer system is off-line while the programmer/feeder system is processing in the preferred embodiment, the next step in "Validate Programming System Files" block 156 uses a portable memory medium in the communication process. The different types of portable memory media include, but are not limited to, non-volatile electronic memory cards (such as PCMCIA memory cards), magnetic memory (such as mini-disk drives), and optical memory (such as compact disk). In the preferred mode, a portable magnetic memory card is used. The computer inserts information on to the portable memory card such as that the proper programmer/feeder system is in place and to validate that all the proper components for programming are in place on the programmer/feeder system. If the computer system were connected to the programmer/feeder system by a local area network, the above operation would be performed directly rather than by using a portable memory medium. After validation, the TaskLink program will obtain information for the memory card in a "Get Setup Parameters and Format for System" block 158. The information is obtained from the "Task File" block 30 in FIG. 1 and then formatted into a file that the programmer/feeder system expects to read. The information includes the micro device being processed and its operational and programming characteristics. The format information is obtained from a Microsoft database file in "Micro device Information File" block 162. In a "Translate Data File" block 164, the programming data for the micro device from the "Program Data File" block 166 is decoded into binary data. In FIG. 4B, the binary data is checked in a "Calculate and Display Checksum" block 168 by checking sum and error correction bits. The transfer of information for a complete job occurs at a "Transfer Complete" block 170, where the information is loaded into the memory card. The next step is performed off-line from the computer and independent of the TaskLink program. This is indicated by a "Programming" block 172. This would be the programming or other processing information of the various micro devices. The off-line connection is denoted by a dot-dash line. Upon completion of programming in the "Programming" block 172, the job statistics are returned at "Return" block 174 by the memory card. The off-line connection is again denoted by a dot-dash line. The TaskLink program then goes to a "Final Display Update and Statistics" block 176 where final information is received and then archived in an "Archive Statistics" block 178. This final information is then stored in a "Log File" 180 and the TaskLink program finishes at a "Process Complete" block 182. In summary, the operator in step one starts the TaskLink program on the computer and the program bundles up all the information, gathers all the settings, etc., and writes a group of files out onto a memory card. In step two, the operator takes that memory card over to the programmer/feeder system, plugs it in and then initiates the actual, the real operation to run the programmer/feeder system. When the programmer/feeder system is finished it puts a statistics file back on the memory card. Then, in step three, the operator takes the memory card out of the programmer/feeder system and puts it in the computer so that the TaskLink program can archive the results and show the statistics in the future. From the above it will be understood that the present invention is applicable to what can be described as "micro devices". Micro devices include a broad range of electronic and mechanical devices. The best mode describes processing which is programming for programmable devices, which include but are not limited to devices such as Flash memories (Flash), electrically erasable programmable read only memories (E 2 PROM), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), and microcontrollers. However, the present invention encompasses processing for all electronic, mechanical, hybrid, and other devices which require testing, measurement of device characteristics, calibration, and other processing operations. For example, these types of micro devices would include but not be limited to devices such as microprocessors, integrated circuits (ICs), application specific integrated circuits (ASICs), micro mechanical machines, micro-electro-mechanical (MEMs) devices, micro modules, and fluidic systems. It will also be understood that the programmer/feeder system includes its own microprocessor for controlling its own operations. Thus, the portable media could also be used to update the software and the firmware in the programmer/feeder system.

Claims: A method of using a computer system for interacting with a processing system to process a micro device comprising the steps of: providing processing information related to a micro device as a task (50); assembling the processing information for the task in the computer system (160); providing the processing information for the task for off-line connection from the computer system to the processing system (170); performing the task by the processing system independent of the computer system using processing information obtained through the off-line connection (172); developing return information resulting from the processing system using the processing information (172); and returning the return information through the off-line connection to the computer system (174). The method as claimed in claim 1 including the steps of providing a processing system on-line with said computer system (96); providing the processing information for the task for on-line connection from the computer system to the processing system (94); and performing the task by the processing system dependent on the computer system using processing information obtained through the on-line connection (96). The method as claimed in claim 1 including the steps of providing an operator mode (40) using the processing information for the task in the operator mode from the computer to the processing system (50); returning the return information in the operator mode through the off-line connection to the computer system (54); and storing the return information in the computer system (116,178). The method as claimed in claim 1 including the steps of providing an administrator mode (10); inputting the processing information related to the task in the administrator mode (26); editing processing information related to the task in the administrator mode (28); and storing processing information related to the micro device for the processing system as the task in the administrator mode (30). The method as claimed in claim 1 including the steps of providing processing system setup and shutdown parameters (74); providing processing system process-specific parameters (30); sending processing system setup parameters to the processing system (82); inputting the number of processed micro devices to be output from the processing system (80); sending processing system process-specific parameters to the processing system (82); controlling the handling of micro devices (90); processing micro devices (94); and sending processing system shutdown parameters to the processing system (112). The method as claimed in claim 5 including the steps of providing a number of micro devices (90); determining the number of micro devices processed (96); determining the number of micro devices handled (98); and developing statistics from the number of micro devices processed and handled (98). The method as claimed in claim 5 including the steps of serializing the micro devices (84); and maintaining a log of the serialized micro devices (118). The method as claimed in claim 1 including the steps of combining a plurality of tasks to define a kit (150); and performing the processing of a kit through the off-line connection (172). The method as claimed in claim 1 including the steps of providing micro device information (50); providing processing system setup parameters (158); providing format information related to the off-line connection (158); inputting the number of processed micro devices to be output from the processing system (154); transferring the processing system setup parameters from the computer system to the processing system (170); transferring the micro device information from the computer system to the processing system (170); transferring the processing system format information from the computer to the processing system (170); processing the micro devices (172); obtaining information from the processing of the micro devices (172); and transferring the information from the processing of the micro devices (174). The method as claimed in claim 9 wherein the step of transferring includes the use of a portable memory medium (170,174). The method as claimed in claim 9 wherein the step of transferring includes the use of a direct communication connection (170,172,174). The method as claimed in claim 1 including the steps of providing an administrator mode (10); and protecting provision of the operator mode using a password input in the administrator mode (16).

Inventors: BOLOTIN LEV M, DYKINS FRED ALBERT, WARHOL VINCENT, BOLOTIN, LEV M., DYKINS, FRED ALBERT, WARHOL, VINCENT
Applicants: DATA IO CORP, DATA I/O CORPORATION
Application year: 2000
Main classification: G05B19
IPC codes: G06F11, G05B19