0% found this document useful (0 votes)
426 views

What Is IC Programming and IC Programmer

The document discusses IC programming, which refers to loading firmware or configuration data into programmable integrated circuits like microcontrollers and FPGAs. An IC programmer is a specialized hardware tool used to write program code into the IC's memory. Different types of IC programmers exist for development, production, and field programming needs. Selecting the right programmer depends on factors like the IC interface, programming method, and file formats supported.

Uploaded by

jack
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
426 views

What Is IC Programming and IC Programmer

The document discusses IC programming, which refers to loading firmware or configuration data into programmable integrated circuits like microcontrollers and FPGAs. An IC programmer is a specialized hardware tool used to write program code into the IC's memory. Different types of IC programmers exist for development, production, and field programming needs. Selecting the right programmer depends on factors like the IC interface, programming method, and file formats supported.

Uploaded by

jack
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

RAYMING PCB & ASSEMBLY

What is IC programming and IC Programmer


IC programming refers to the process of loading firmware, software

code, or configuration data into programmable integrated circuits (ICs)

like microcontrollers, FPGAs, CPLDs, and various memory devices. An IC

programmer is a specialized hardware tool used to write the program

code into the IC’s memory.

This article provides an in-depth overview of IC programming covering

the need for programming, programmer types, device interfaces,

programming methods, file formats, and key considerations for

selecting programmers suited to production needs.

Request IC Programming Service Quote

Contact Us

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

What is IC Programming?

Programmable ICs do not function out-of-box but need to be

programmed with firmware or configuration data to define their

behavior and functionality. For example, a microcontroller IC from the

factory is a blank slate. The user needs to load a compiled machine

code program using a programmer tool to make it execute the desired

tasks.

Key types of programmable ICs:

 Microcontrollers – Used in most electronic devices and

appliances. Programmed with embedded firmware code.

 FPGAs – Field Programmable Gate Array. Configured with

hardware behavior design files.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 CPLDs – Complex Programmable Logic Devices. Programmed

with logic equations.

 Flash Memories – Store firmware code. Can be reprogrammed.

 EEPROMs – Non-volatile memory programmed with data.

Without proper IC programming, such devices are non-functional. So

programming is an essential step before deploying programmable ICs

into products.

Why is IC Programming Needed?

Below are some key reasons why programming is an essential

step in the IC and PCB assembly process:

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Boot up – ICs need an initial program loaded in order to

boot up and begin functioning.

 Define functionality – The program code determines the IC

behavior. For example, a microcontroller can be made to

run a motor control algorithm or a wireless protocol stack

based on the programmed firmware.

 Configure settings – Programming is used to set parameters

like IDs, baud rates, addresses, encryption keys etc.

 Adaptability – Programs can be updated in the field to add

new features or modify functionality.

 IP protection – Keeping the program code separate from

chip fabrication protects the intellectual property of

designers.

 Inventory – One generic IC can be programmed in many

ways for different customer orders from stock.

 End-of-line production – ICs are programmed as the last

step before shipping finished boards.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Without programming, ICs are non-functional blanks.

Programming brings the chips to life with the intended behaviors

and capabilities.

Request IC Programming Service Quote

Contact Us

IC Programmer Types

Various types of IC programmers are available to meet different

usage scenarios:

Desktop Programmers

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Small portable units used by engineers for prototyping needs in

R&D environments. Support a wide range of ICs but lower

production volumes.

Production Programmers

Bench-top systems focused on high volume programming needs

in manufacturing environments. Optimized for speed, reliability,

and simple changeovers between IC types.

Gang Programmers

Special production grade programmers with multiple sockets

allowing concurrent programming of several identical ICs.

Dramatically increases throughput.

Automated Handlers

Sophisticated robotic IC handling mechanisms for automated

pick-and-place from component reels/trays, insertion into

programmer, and programmed ICs back to output reels/trays.

Field Programmers

Portable, battery-powered units that allow programming or

reprogramming deployed ICs in the field for maintenance needs.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

In-System Programmers

Allow programming ICs without physical removal from system

boards by connecting via test points or circuits on the PCBs.

Selecting the right category of programmer depends on the stage

of use – development, production, or field maintenance.

IC Device Interfaces

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Programmers need compatible physical interfaces to connect with

ICs for loading code. Common interfaces include:

 Joint Test Action Group (JTAG) – Serial interface using

dedicated test pins on ICs. Used to program and debug

microcontrollers, FPGAs. High signal integrity but requires

test points routed in PCBs.

 Serial Peripheral Interface (SPI) – Commonly available 4-wire

serial interface on microcontrollers. No test pads needed.

Can be restricted access. Lower signal integrity over

distance.

 Inter-Integrated Circuit (I2C) – 2-wire serial interface bus

used to access peripherals and memory. Widely used for

field programming EEPROMs in monitors, displays etc.

 Universal Asynchronous Receiver/Transmitter (UART) –

Asynchronous serial interface using TX and RX pins.

Ubiquitous debug and bootloader interface on

microcontrollers. Requires just two test pins.

 Single Wire Debug (SWD) – Two pin serial debug interface

on ARM Cortex MCUs routed to board test points. Supports

real-time debugging/programming.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Serial Wire Debug (SWD) – Alternative to JTAG using just two

wires for ARM debugging.

 Background Debug Mode (BDM) – Proprietary two pin

debug interface on Freescale/NXP MCUs.

 Direct ISP – Many microcontrollers support direct in-system

programming via bootloader code over UART or I2C without

debugger hardware.

 IEEE 1149.1 JTAG – Older deprecated JTAG standard still used

on some legacy ICs.

Selecting programmers with interfaces matching deployed ICs

enables proper programming access.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Request IC Programming Service Quote

Contact Us

IC Programming Methods

There are two main methods used for loading program code into

devices:

In-Circuit Programming

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

The IC is programmed while still physically mounted on the PCB.

This requires test points or pads connected to programming

interface pins on the IC. Programmer connects to board interface

to access the chip. Useful for development, field upgrades,

repairs.

Offline Programming

ICs are programmed in bulk before being assembled onto boards

using dedicated production programmers. ICs are inserted into

sockets on the programmer which loads code into each chip

sequentially. Enables high volume automated production

programming.

Some programmers support both on-board and offline

programming capabilities. The method chosen depends on the

phase of use – design validation, manufacturing, or field

maintenance.

Programmer File Formats

Programmers need the program code files in specific formats like:

 Hex Files – Contain executable machine code in ASCII hex

byte format for directly programming into memory.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 JEDEC Files – Industry standard file for programming

firmware into memory and flash ICs.

 SVF/STAPL Files – Serial vector format files for describing

JTAG sequences for microcontroller programming.

 BIT Files – Encoder bitstream files for configuring FPGA and

CPLD devices.

 BIX Files – Bytecraft format used to program

microcontrollers via JTAG interface.

 IEEE 1532 Files – Files describing programming sequences

for IEEE 1149.1 JTAG compliant devices.

 PDB Files – Program database files containing debug data

used by programmers and debuggers.

Various toolchains output firmware and code in these formats

which are then imported into programmers before loading into

ICs.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Below are the key parameters and features to evaluate when

selecting an IC programmer for usage needs:

Supported ICs

 Microcontrollers – ARM Cortex, PIC, AVR, 8051 etc.

 FPGAs – From vendors like Xilinx, Intel/Altera etc.

 Flash/EEPROMs – SPI, I2C, and quad I/O devices.

 Processor types – AMD, Intel, Qualcomm etc.

Interfaces

 JTAG, ISP, SWD, I2C, SPI, UART – Review supported interfaces.

 PCB connector – Adapters for board-level programming via

internal or test board connectors.

Throughput

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Programming time – Chips/hour rating. Parallel gang

programmers are faster.

 Support for multi-site programming.

 Automated handler integration for turnkey solution.

File Formats

 Code files – Intel Hex, Motorola S-record, TEK HEX, Binary,

JEDEC etc.

 Configuration files – SVF, STAPL, BIT, PDB etc.

Additional Functionality

 In-circuit debugging capability.

 Blank check, read, and verify functions.

 Memory buffer editing and viewing.

 Production environment durability and features.

 Standalone offline operation.

Software Interface

 Command line, menu-driven, or GUI interface.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Program generator wizards and production control

software.

 Library of manufacturer device specs and programming

algorithms.

Warranty and Support

 Length of warranty period.

 Availability of remote technical assistance.

 Device library and software updates over lifetime.

Carefully evaluating technical criteria ensures the programmer

reliably meets both current and future programming

requirements.

IC Programming Best Practices

Below are some guidelines to follow for smooth IC programming:

 Use pulsed ZIF sockets or pogo pin contacts for reliable

temporary connections to ICs during production

programming.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

 Include test points on PCB designs upfront to enable field

reprogramming of deployed systems if needed.

 Validate programmer device libraries before use by

demonstrating successful programming of sample ICs.

 For prototype debugging, invest in desktop programmers

that offer comprehensive interfaces and device support.

 Budget for production grade gang programmers with

handlers for high volume manufacturing needs.

 Build in bootloader code on custom microcontroller designs

to facilitate field firmware updates.

 Characterize programming time budgets and optimize code

sizes during development to meet production throughput

targets.

 Perform blank checks of new ICs before use to identify faulty

or counterfeit devices.

 Audit programmed device samples from production using

checksums or test equipment to confirm data integrity.

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

Investing in the right programmer toolsets prevents issues and

bottlenecks across the IC and PCB assembly workflow – from

prototype validation to end product deployment.

Conclusion

Request IC Programming Quote

Contact Us

FAQ

What are some common programmable ICs that need programming?

Common programmable ICs include microcontrollers, FPGAs,

CPLDs, flash memory, EEPROMs, and various integrated circuits

containing non-volatile memories or digital logic blocks.

What are the typical differences between a desktop vs production IC

programmer?

Desktop programmers prioritize wide device support and

interfaces for R&D while production programmers focus on speed,

PCB Manufacturing & Assembly Services https://www.raypcb.com/


RAYMING PCB & ASSEMBLY

volume, and reliability for manufacturing. Production

programmers support automated handlers.

How are microcontrollers typically programmed during PCB assembly?

Microcontrollers are normally programmed in bulk offline using

gang programmers before being assembled onto boards as the

programming step can be a time consuming process unsuitable

for inline production.

What are the options for field programming deployed ICs?

For field firmware updates, designers can leverage in-system

programming capability using JTAG or bootloader code over

standard interfaces like UART, I2C, SPI. Dedicated test points

provide access.

How do you ensure the programmer has full capability for an IC?

The simplest check is to acquire sample ICs and validate that the

programmer can successfully read, blank check, program, and

verify the device using the intended file formats. This verifies

compatibility before procurement.

https://www.raypcb.com/how-to-do-ic-programming-during-pcba-processing/

PCB Manufacturing & Assembly Services https://www.raypcb.com/

You might also like