+1 (713) 688-4600 | Sales Toll-Free: (855) SELL BPM | 24/7 Service: +1 (832) 617-5702 info@bpmmicro.com
Select Page
Which Programming Method is Right for You?

Which Programming Method is Right for You?

Semiconductor devices are used in a wide range of electronic applications, from smartphones to industrial machinery. Programming these devices is a crucial step in their manufacturing process, allowing them to perform specific functions. There are several methods to program semiconductor devices, each with its own advantages and disadvantages.

In-System Programming (ISP)

Bed-of-Nails fixture connects the PCB to the final test

In-system programming (ISP) is a method that enables semiconductor devices to be programmed after installation on a circuit board, without requiring removal. This programming method allows for easy updates, and flexibility in the programming process, and avoids device disruption. However, ISP requires dedicated programming hardware or software to interface with the device, which may be slower than other methods. Moreover, when the programming process exceeds a few seconds, it can create bottlenecks, slowing down the production line and making it harder to scale. Learn more here.

In-Circuit Programming (ICP)

In-circuit programming (ICP) is a method that enables semiconductor devices to be programmed while they are in use, without requiring removal. This programming method allows for updates without disrupting device operation, flexibility in the programming process, and avoids device removal. However, ICP requires dedicated programming hardware or software to interface with the device, which may be slower than other methods. Learn more here.

Offline Parallel Programming

Offline programming is a method that enables multiple semiconductor devices to be programmed simultaneously. This programming method is faster than ISP and ICP, allows for a high volume of devices to be programmed at once, and can be easily scaled up. Offline programming requires a dedicated socket adapter with a custom algorithm for each device type. For instance, a socket receptacle can accept similar device types from different manufacturers (for example, a BGA(153), but will require a custom algo for each device to ensure it meets the specs for that device).

BPM310 Automated programming systemAutomated Offline Programming

Automated programming is a subset of offline programming that uses automated equipment to program semiconductor devices. This programming method is faster than development kits and allows for a high volume of devices to be programmed simultaneously. Moreover, automated programming allows for individual device programming, and is more easily scaled by adding additional resources and shifts.

Development Kits

Device programming kits are tools used to program individual semiconductor devices. This programming method allows for individual device programming and prototyping. However, development kits can be slower than other methods and require manual device handling, which can be time-consuming and error-prone. If a prototype goes into full production, other methods should be explored, which will require first article proofing for the production programmer.

In conclusion, choosing the right programming method for your programmable devices depends on your specific needs and requirements. Consider the pros and cons of each method before making a decision. Ultimately, selecting the right programming method can save you time and costs while ensuring your devices function properly.

Programming Method

Definition

Advantages

Disadvantages

Approx. Usage

In-System Programming (ISP) Programming a device after it has been installed on a circuit board, without needing to remove it Allows for easy updates in the field, avoids device removal, and provides flexibility in the programming process Requires dedicated programming hardware or software to interface with the device, which may be slower than other methods 40%
In-Circuit Programming (ICP) Programming a device while it is in use, without needing to remove it Allows for updates without disrupting device operation, avoids device removal, and provides flexibility in the programming process Requires dedicated programming hardware or software to interface with the device, which may be slower than other methods. 20%
Offline Parallel  Programming Simultaneously programming multiple devices with the same programming sequence using specialized equipment Efficient for large-scale production, automated to increase throughput, and reduces programming errors Requires specialized equipment that may be relatively expensive, and less flexible for smaller production runs 25%
Development Kits Dedicated hardware and software used to program a single device at a time, typically used for low-volume production or prototyping Provides a high degree of control and flexibility over the programming process, can program a wide range of devices, suitable for low-volume production or prototyping Requires dedicated hardware and software that is typically inexpensive, and time-consuming for large-scale production or programming of multiple devices with different programming sequences 15%

Note: The percentages provided are rough estimates and may vary depending on the specific industry and application.

What is the Best Way to Get Devices Programmed?

What is the Best Way to Get Devices Programmed?

What is the Best Way to Get Devices Programmed?

There are lots of ways to get your data on devices, and there’s no one “Best” programming that is always better than another. Options that are available today:

  • In-House Off-Line Programming
  • Program at ICT (in-circuit test)
  • Program with In-System Programming (ISP) at Functional Test
  • In-Line at Surface-Mount Technology (SMT) stage
  • Program at Final Assembly
  • Outsource to Programming Center

So which programming method is best for your specific application?

Automotive Programming by Volume of Devices (The charts in this article are based on feedback from BPM Microsystem’s automotive customers )

Just as an example, automotive OEMs use a variety of methods to get the job done. There’s an advantage to programming at the In-Circuit Test (ICT) where all of the components are already soldered on the board. By doing programming and testing in one step, you can combine several steps and save a lot of time. This only works when the programming time is very low (less than a few seconds); if not, you could end up with a huge bottleneck, and in the event of an error you likely have to scrap the whole board or remove and re-solder the bad device and do it all again.


Consider this: the majority of devices programmed for automotive applications are done offline (50%). Both in-house off-line and outsourcing to a programming house are programmed on the same equipment using off-line automated programming systems, such as BPM’s 3901.

Take a look at what happens when programming times go way up…

The chart presented here represents the correlation between data density and programming times on a Surface-Mount Technology (SMT) line. As the density of data, the complexity of devices, and the number of devices per car increase, the need for cost-effective programming solutions becomes imperative. The beat rate, defined as the total throughput on the SMT line, must be considered to ensure that the programming times do not exceed it.

Current Scenario

In this survey, off-line programming accounts for 80% of programming, with in-house off-line and outsourced programming contributing. Off-line programming is a feasible solution that can keep pace with the production line through shifts or machine additions and strategic outsourcing. In-system, in-circuit, and in-line programming methods may no longer be feasible due to increased costs and longer lead times.

Benefits of In-House Off-Line Programming

In-house off-line programming offers several benefits over traditional in-system, in-circuit, and in-line programming methods. Firstly, in-house off-line programming is more efficient, reducing the cost per device and lead times compared to outsourcing. Secondly, the source code can be updated more frequently, ensuring that the latest version is used on the line and securing your intellectual property. (IP Theft: See 2018 Bloomberg article )

BPM Solution

BPM’s team can assist in identifying the best solution for your specific needs. We provide a comprehensive analysis of your project, including benchmarks and return on investment, and offer recommendations. Our team of experts will guide you in asking the right questions to make an informed decision.

We take into account several factors when evaluating the best solution for your needs. Quality, ease of use, throughput, cost-per-device, and long shelf-life are just a few of the factors considered in our evaluations. With many of our machines still operational after 10+ years, BPM should be considered as a potential solution in your decision-making process.

At BPM, we strive to be a valuable resource for our clients. However, we may not always be the best option for every project. In such cases, we are transparent and honest about it. Our goal is to provide our clients with the best possible solution, even if that means referring them to another provider.

Conclusion

The charts presented here represent the correlation between data density and programming times. Off-line programming is a feasible solution that can keep pace with the production line through shifts or machine additions and strategic outsourcing. In-house off-line programming offers several benefits over traditional in-system, in-circuit, and in-line programming methods, including improved efficiency, reduced costs, and the ability to update the source code frequently.

BPM’s team can assist in identifying the best solution for your specific needs, considering factors such as quality, ease of use, throughput, cost-per-device, and long shelf-life. We strive to be a valuable resource, but may not always be the best option. In such cases, we are transparent and honest about it. Contact BPM today to learn more about how we can help you with your programming needs.


Definitions:

Off-line programming is the process of programming the device (either by a manual or automated process) prior to SMT or manual soldering of the device to the board.

Surface-mount technology (SMT) is a method for producing electronic circuits in which the components are mounted or placed directly onto the surface of printed circuit boards (PCBs). An electronic device so made is called a surface-mount device (SMD).

In-system programming (ISP), also called in-circuit serial programming (ICSP), is the ability of devices to be programmed while installed in a complete system. The primary advantage of this feature is that it allows manufacturers of electronic devices to integrate programming and testing into a single production phase, and save money, rather than requiring a separate programming stage prior to assembling the system.