Modern electronics – cellphones, TV set-top boxes, laptops – contain at least one programmable device on board that usually contains boot-up or self-test firmware to enable these products to perform their functions properly. In general, there are two methods by which these devices are programmed: offline or in-system.
How does one decide on offline programming or ISP? One key consideration is the cost of each method. Let us look at pros and cons of these two methods that contribute to the overall costing.
First, let’s define each of these methods:
The sole benefit of programming offline versus in-system is that it takes out that time from the overall ICT test cycle time equation. If the SMT line beat rate is much faster than the overall ICT test cycle time, the ICT station will be a bottleneck for the production line. Removing the programming portion from the ICT stage will improve the overall efficiency of the production line. The programming time depends on many factors, like the size of the data to be programmed, programmer clock speed, number of devices to be programmed, whether the program is implemented directly onto the device or via an upstream boundary scan JTAG port to program device, etc.
On the other side of the coin, offline programming does have some big challenges. The first is inventory control. There will be multiple firmware versions across the customers’ range of products, and there will be even cases of multiple firmware versions for a single product with different functions turned on for different market needs. Having offline programming for all these devices will require a good inventory control process. Imagine loading the wrong preprogrammed devices onto boards: the effort and cost of replacement would be tremendous.
The second challenge with offline programming is the inability to reprogram the device post-soldering. Often, firmware versions are frequently changed, especially during NPI. New firmware may be released during the production build, and the inability to reprogram the device online means one has to replace the device manually. Or, if boards have been returned from repair, functional test or outside the factory, there usually are slight changes to the firmware, and the boards must be reprogrammed in the ICT. This reinforces that the ability to program in the ICT station is critical in a production environment.
An offline programming station requires additional resources: operators, real estate, and of course the programming station itself. On the other hand, implementing ISP may require additional hardware or software on top of the existing ICT, not to mention development of the ISP solution.
Simultaneous Programming
Performing programming on two similar boards simultaneously achieves two boards within one test cycle time. It can also mean programming two or more devices within the same board simultaneously, circuit topology permitting. How fast can ISP be? Consider real-time data I collected from two recent ISP projects. In both cases, the ICT was an Agilent Medalist i3070 Series 5 with plug-in cards.
Project #1:
Product: Smart meter
Fixture: One-up (single board)
Programming three different devices on board: M24512 (EEPROM), M25P10 (SPI flash), STM32F101 (MCU)
Project #2:
Product: TV setup box
Fixture: Two-up with throughput mode
Programming AT26DF081A (flash) on board.
Note that for this project, programming was performed on two boards simultaneously. The test time shown below is actually for two boards. The programming time for one flash device by the EMS company’s offline programming station took 35 sec., which was significantly slower than the ISP programming time in the table below.
Design for programmability. When adapting ISP, other than the program time incurred in the total test cycle time, one should consider design for programmability. Simply put, there must be test access to the data, clock and control signal lines of the programmable device. In most cases, there usually is a processor or controller that accesses the firmware from these downstream programmable devices. One must also consider the means for disabling these upstream devices to the programmable devices. There must be ways to disable the upstream devices properly in order for the programming to perform successfully. If upstream devices are not properly disabled, there will be interference, and programming success will be intermittent, if at all.
In conclusion, there is no absolute answer to whether to adopt offline programming or ISP. One has to decide, based on the factors above, the method that best suits the products and the production environment. Both methods complement each other.
My opinion is that ISP capability has to be implemented for every product with devices that require programming. Whether an offline programming station should be added depends on the SMT line beat rate versus the ICT test cycle time. ISP is an available and viable option to address the gaps in offline programming. It can double up as a check point to verify the data content pre-programmed by the offline programming station. Where necessary, more ICT machines with ISP can be added to match the SMT line beat rate.
Tan Beng Chye is a technical marketing engineer at Agilent Technologies (agilent.com); beng-chye_tan@agilent.com.