caLogo

A look at offline versus in-circuit programming.

The term "programmable device" can be defined as any component containing a semiconductor device that requires electronic configuration prior to use in a final electronics assembly. Many manufacturing strategies are used to accomplish device programming. These methods have always been driven by process and cost optimization. Herein the most popular methods are discussed.

Programmers come in all types of configurations. Single-site programmers are ideal for embedded design engineers to test configurations prior to a product's release to production. These systems are also used on the production side to qualify a first article on the production floor before the start of a production-programming run.

Programmers with multiple sites fall into a production class used for volume applications. This production-class equipment includes manual programmers, in which programmable devices are loaded into a socket by hand, and automated programmers, for which robotic movement performs the loading.

Programmers have two basic parts, the programming site and the adapter or socket module. The programming site or programming engine is an electronic signal generator that actually programs the device (Figure 1). The adaptor or socket module is a mechanical and electrical interface to the device to be programmed and changes as the device changes. Each socket module can contain circuitry specific to a particular supported device. The adaptor or socket module contains a socket that makes electrical contact with the device. These sockets are a consumable item and, therefore, are susceptible to wear.

Figure 1
FIGURE 1: An example of a single site programmer, the electronic signal generator that actually programs devices.

Device programmer manufacturers typically sell programmers in two configurations - universal and limited use. Universal programmers are expandable pieces of equipment that program the widest library of devices and offer software updates that permit functionality and usefulness to grow over time. Limited use programmers are targeted to support specific devices and have limited lifespan, functionality, library of supported devices and upgradeability.

The first decision that must be made when faced with a programming need is whether to outsource the programming to either a component distributor or a dedicated programming house that sells this service, or to perform the task in-house. There are many factors to consider when making this decision. Chris Andrews1 explains both the risks and return on investment that a typical contract manufacturer might face when making this decision. Andrews performs ROI calculations on four different devices along with the project volume and time before payback.

Following are some considerations for outsourcing programming:

  • Costs of programming are billed to the job at hand and costs do not need to be spread over multiple jobs.
  • Keeps programming quality control out of current quality overhead costs.
  • No capital expenditure or consumable items are needed.
  • Limitations on scrap liability.

Considerations for in-house programming are numerous as well:

  • Cost savings over outsourcing.
  • Reduced lead-time and elimination of transit time.
  • Time of last programming ECO extended closer to time of manufacturing.
  • Full ownership of the programming quality process.
  • Labor needed, both skilled and unskilled.
  • Investment in capital equipment and consumable socket modules.
  • Media in out of the machine.
  • Component marking equipment, if necessary.
  • Floor space.

One item Andrews addresses is that many companies believe they must have a programming expert. However, Andrews illustrates this is not a requirement: "SMTC has established a robust process for in-house programming with only three general labor operators and a single manufacturing engineer with no formal education in software." A production programmer offered by most vendors locks algorithms so that only the company that sells the programming unit can modify them. A supervisor function gives the manufacturing engineer the ability to construct the programming job parameters and configuration, including the correct locked algorithm. When switched to the operator mode, the operator's sole responsibility is to feed parts to the machine, load the proper socket module and activate the job start function. Often manufacturers that choose in-house programming rely on the test department for oversight when in fact a process engineer could perform the function.

Some manufacturers have chosen a hybrid of in-house and outsourced programming. They have some in-house programming equipment to reduce risks of long programming lead-times from outside vendors, while using outsourced vendors to handle the bulk of their planned programming needs.

Once the decision has been made to pursue in-house programming, there are three major options for implementation: off-line, in-line or in-system programming.

Off-line programming can mean either manual programming - those using human labor to move the devices - or automated - those that use robotic movement to move devices into and out of programming position.

Automated programming provides the best overall yield for delicate device packages such as TSOPs, QFPs, flip chips and BGAs (Figure 2). The choice between programming is a function of the needed throughput and the prevention of mishandled devices such as bent leads, dropped trays and passage of unprogrammed parts. Off-line programming provides the highest ROI, according to Andrews (Table 1). (Per Table 1, in-line B shows a lower number, but cannot work independent of a placement machine; see in-line B with handler.)

Figure 2
FIGURE 2: Automated programming systems rely on robotic movement to save labor and reduce package mishandling.

 

Table 1
TABLE 1: Actual ROI Results.

In-line programming is a new concept that tries to program devices just before circuit-board placement. Although this is a nice idea in theory, actual application of this technology faces a stiff road to acceptance.

An in-line system feeds an SMT line directly from the programmer to the placement machine. The goal of any SMT process engineer is to maximize utilization of the line equipment. By nature, device programming is highly variable, especially in programming times when one device part number is compared to the next. By tying this uncontrollable variability to the SMT line, occasions will occur in a medium- to high-component mix environment where the line will be starved of programmed components and another programmer system must be added to keep pace with the production line. However, this action increases cost and decreases feeder bays from the placement machine. If enough feeder bays are unavailable, an additional SMT placement machine must be added to the production line to correct the problem. This "line imbalance" can cause underutilization of capital equipment, thereby threatening the overall ROI of the SMT line.

In-system programming is another method that programs the semiconductor device after placement on a circuit board. While this concept sounds ideal, it does carry some risks. The first risk is that programming a device on a circuit board is slower than programming the device by itself. Use of this method requires that the circuit board designer provide ports and paths through the traces to the device on the circuit board. The complexity of the path will add variation to the programming speed. Additionally, the speed of the communication bus will possibly constrain the programming speed. Voltages applied during programming must be closely monitored so as not to affect surrounding components.

Quality of the programming in this method is also an issue that must be considered. Device programming is accomplished by producing a signal to the device. During the path through a circuit board, a programming waveform can degrade and noise can interfere with the signal.

Because the test department typically owns most in-system programming in a manufacturing process, this department constructs and maintains the programming algorithms. Variability in the algorithms can be introduced based on interpretation of the programming specification by different engineers. Other variations can occur due to the variation of technical talent from engineer to engineer. Semiconductor manufacturers frequently make changes to the device and programming specifications. The test engineer must track and update the changed algorithm accordingly or risk misprogramming these devices.

Some test departments use in-circuit programmers to accomplish programming in-system. When programming times are low, this can be accomplished quickly during the in-circuit test process. However, as device programming times grow because of larger device densities, devices can take up to 120 seconds, which can create a bottleneck in the test area. As mentioned, this represents a line-balancing problem and requires an additional in-circuit tester or a change in the programming method.

Device programming strategies must continually change and adapt to current manufacturing needs. While numerous programming options are available, selecting the best one for individual processes is key. Choosing the correct methodology results in considerable cost savings and higher quality of the electronics assembly. n

References

  1. Chris Andrews, "Programmable Device Process - A Business Case for Internal Deployment," Apex Proceedings, January 2002.

Ed. - This paper was first presented at the Contract Electronics Manufacturers Conference and Exhibition (CEMCEX), October 2004 and is republished with permission of the author.

 

Lyman Brown is executive vice president and chief operating officer, BP Microsystems (bpmicro.com); lyman_brown@bpmicro.com.

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedInPrint Article
Don't have an account yet? Register Now!

Sign in to your account