There are several options for programming for PCB production. The choice of which option to use will generally depend on the form factor of the device being produced, and the size of the assembly run. Each method has strengths and weaknesses.
The most common way to program devices is using dedicated programming. The process provides the option for the end user to change the software reasonably simply. Using dedicated headers provides an easy connection to the program. The weaknesses include the cost and the assembly of the connector part. The connector is generally one of the more expensive parts of a PCB to assemble. Therefore, reducing the demand for connectors is worthwhile. The connector has to be keyed. If this isn’t done, issues can arise with connectors being installed backwards. When this happens, false negatives can occur when programming and testing the PCB. USB connectors are in the same category. When USBs are used they can provide an effective option for programming, and the result is usually a good quality and repeatable outcome.
Programming Integrated Circuits from the factory
Possibly the easiest method for programming integrated circuits is having them pre-programmed from the manufacturer or the distributor of the parts. When the ICs are pre-programmed, there is no additional charge from the assembler for programming. Choosing this option also means that there is no need for a programming connector. Similarly, there is no requirement for a footprint on the PCB. This means that there are lower manufacturing costs.
The process involves placing the integrated circuit into a Zero Insertion Force (ZIF) socket. This socket connects to the program of the integrated circuit, allowing it to function. The circuit is then programmed, and packaged for assembly.
There are risks associated with pre-programming. Issues such as firmware bugs or changes in features mean that all integrated circuits will need to be reprogrammed. Similarly, if there is a need to put an update through in the middle of the production run, reprogramming will also be required. Choices that have been made earlier in the development may impact changes at this stage. If programming headers have been removed, then the PCBs will need to be re-worked to remove chips with the faulty code. As such, the use of pre-programming is a relatively inflexible option for programming assembled PCBs. If the process is for bootloaders, the risks are lower as they very rarely change. It is worth noting that manufacturers or distributors will generally charge a setup fee and a charge per unit of production.
Manufacturing and Test Jigs
When the production run has a higher volume, a programming jig can be an effective tool. The process involves the use of spring loaded contacts called pogo pins. These make electrical contact between PCBs. They are used to press into contacts on the PCB that need to be programmed. The jig is then set up to program entire panels at the same time. This speeds up both production and testing. Jigs are a more expensive option, with higher costs for both development and building. As this tooling cost is higher, they are generally only used for medium to high production runs.
The final option available is using universal headers. This can be considered to be something between programming headers and jigs. Cables are used that have built-in pogo pins. The cable has one end connected to the program, while the other end is connected to the PCB contacts. This provides an effective process for lower volume production runs, as there is no need to tool a dedicated header or to build a programming jig.
By RUSH PCB Inc.