Types of ICs That Require Programming
Several common types of ICs used on PCBs need to be programmed as part of the manufacturing process:
IC Type | Description |
---|---|
Microcontrollers | Small computers on a single chip that contain a processor, memory, and programmable input/output peripherals. They require Firmware to be loaded to control the overall functionality of the PCB. |
FPGAs (Field Programmable Gate Arrays) | Semiconductor devices containing programmable logic blocks and interconnects that can be configured to implement custom digital circuits. The desired logic design must be programmed onto the FPGA. |
EEPROMs (Electrically Erasable Programmable Read-Only Memory) | Non-volatile memory chips that retain data when power is removed. They are often used to store configuration settings, calibration data, unique IDs, or small amounts of firmware. EEPROMs must be programmed with this data. |
Flash Memory | Another type of non-volatile memory commonly used to store firmware, software, or data. NAND flash and NOR flash are programmed differently. |
Other programmable ICs include CPLDs (complex programmable logic devices), ASICs (application-specific integrated circuits) with embedded NVM (non-volatile memory), and various other chips with one-time programmable (OTP) memory.
Methods of IC programming
There are several methods used to program ICs during PCB Assembly:
In-System Programming (ISP)
With ISP, ICs are programmed after they are soldered onto the PCB by connecting a programmer to a header on the board. This allows the IC to be programmed using the PCB’s power and clock sources in its final operating environment. It’s commonly used for microcontrollers and small flash memory.
Advantages of ISP:
– Program ICs in their native environment on the board
– Ability to re-program later in the field
– No need to handle sensitive IC packages
Disadvantages of ISP:
– Requires a header on the PCB connected to programming pins
– Slower than pre-programming
– May not work for all IC package types
In-Circuit Programming
In-circuit programming is similar to ISP but uses special “bed-of-nails” fixtures with pogo pins that make contact with test points on the PCB to program the ICs. This eliminates the need for a programming header but requires test points. In-circuit programming is often used in mass production.
Pre-Programming
Pre-programming involves programming the ICs before they are soldered to the PCB using specialized programming machines or adapters specific to the IC package type. The programmed ICs are then installed on the PCB. This is faster for high volumes but requires careful IC handling.
Advantages of pre-programming:
– Fast programming times
– Can program ICs not accessible via ISP
– No headers or test points needed on PCB
Disadvantages of pre-programming:
– Requires careful handling of programmed ICs
– Unable to re-program later without de-soldering
– May require multiple programming adapters for different ICs
Off-Board Programming
For ICs not accessible by the above methods, the ICs must be programmed off-board by removing them from the PCB, programming in a machine, then re-soldering them. This is labor-intensive and risks damaging the PCB and ICs.
IC Programming Equipment
A variety of hardware and software tools are used for IC programming in PCB assembly:
IC Programmers
An IC programmer is a machine that interfaces with an IC to write data into its non-volatile memory. There are universal programmers that work with many IC types as well as dedicated programmers for specific chips. They connect to a host PC running programming software.
Popular universal IC programmers include:
– Xeltek SuperPro
– HiLo All-100
– BPM Microsystems 2800
– Data I/O PSV2800
IC Programming Adapters
For pre-programming, adapters or sockets are used to connect the IC to the programmer. The adapter fits the IC package type and pinout and may include a ZIF (zero insertion force) socket for easier chip insertion/removal. Common adapters include DIP, SOIC, PLCC, QFP, and BGA.
Gang Programmers
To program multiple ICs at once for higher throughput, gang programmers with several programming sockets operating in parallel are used. Each socket has a dedicated programming engine. Gang programmers are more expensive but essential for mass production.
IC Programming Software
The programming software controls the IC programmer hardware and manages the data files to be written to the chips. The software communicates with the programmer via USB, Ethernet, or other interfaces.
Programming software features usually include:
– Data file format support (Intel Hex, Motorola S-record, binary, etc.)
– IC selection by vendor and part number
– Blanking, erasing, verifying functions
– Setting configuration bits or fuses
– Managing serialization or unique chip IDs
– Log file generation
IC Programming Challenges & Considerations
Successful IC programming in PCB assembly requires careful planning and attention to detail. Some key challenges and considerations include:
Choosing the Right Programming Method
The choice of ISP, pre-programming, or off-board programming depends on the IC type, board design, and production volume. Consider the chip’s package, available pins, board space for headers/test points, programming time, and cost.
Designing for Programmability
If using ISP, the PCB Design must include a programming header with access to the necessary pins (power, ground, clock, data, etc.). Traces should be kept short to avoid signal integrity issues. Test points may be used instead of a header.
Managing Programming Data
Properly managing the hex files, FPGA bitstreams, configuration settings, or other programming data is crucial. There may be different data files for different product variants or versions. Revision control and proper labeling of programmed ICs is essential.
Handling Programmed ICs
ICs that have been pre-programmed must be handled carefully to avoid electrostatic discharge (ESD) or physical damage that could corrupt the programmed data. Proper ESD-safe packaging, storage, and transport is needed.
Ensuring Programming Reliability
Incomplete or incorrect programming can cause the PCB to malfunction. Verifying the programming data readback, using checksum or CRC error checking, and logging the programming results can help catch errors. Sufficient post-programming testing of the PCB is important.
Keeping Programming Records
In regulated industries like automotive, aerospace, or medical devices, it may be necessary to keep records of exactly what data was programmed onto each IC for traceability. A programmed IC may need to be linked to a specific PCB serial number.
Conclusion
IC programming is a crucial part of the PCB assembly process for many electronic products. Careful planning, design, and execution of IC programming operations is necessary to ensure a high-quality, reliable final product. Whether using pre-programming, ISP, or other methods, IC programming requires specialized equipment, software, and expertise to get right.
FAQ
What is the difference between IC programming and PCB assembly?
IC programming is the process of writing firmware, data, or configuration settings onto an IC’s non-volatile memory. PCB assembly is the process of soldering all the components, including any programmed ICs, onto the printed circuit board to create the final product.
Can all ICs be programmed?
No, only certain ICs contain programmable non-volatile memory that can be written to. These include microcontrollers, FPGAs, EEPROMs, flash memory, CPLDs, and some ASICs. Many other ICs like basic logic gates, op-amps, passive components, etc. do not require or support programming.
What is the most common IC programming method?
The most common IC programming methods are pre-programming for high volume production and ISP for prototypes and low volumes. The best method depends on the specific IC, PCB design, and production requirements.
How long does it take to program an IC?
Programming time varies widely based on the IC type, density of data being programmed, programming algorithm, and equipment used. It can range from a few milliseconds for small EEPROMs to several minutes for large, high-density flash memory or microcontrollers.
What happens if an IC is programmed incorrectly?
An incorrectly programmed IC will likely cause the PCB to malfunction in some way, ranging from small errors to complete non-operation. If the incorrect data written to the IC is sufficiently different from the correct data, it may be difficult to diagnose the root cause. Careful programming verification and post-programming testing are important to catch IC programming errors.
Leave a Reply