Know Everything About The SPI Flash Component Programming


In light of the discussion in our last installment about the relationship between JTAG and SPI, it’s no surprise that there is overlap with JTAG and SPI tools.

Newer Corelis JTAG controllers include capabilities for direct communication with SPI buses, with the main goal of speeding up Flash programming. You can also buy external flash programmers for 8-32 bit custom MCUs & SPI Flash Memory from Winbond, Cypress, and other companies.

Let’s take a look at how SPI Flash devices may be programmed using Corelis tools.

Boundary-scan Programming

Boundary-scan programming is popular with Flash devices for its convenience. The JTAG controller communicates with a boundary-scan device that has a Flash interface—in this case an SPI bus. 

The boundary-scan device, now under the control of the JTAG controller, then controls the SPI lines using boundary-scan IO pins to create SPI transactions. While convenient, this method tends to be slow.


  • No direct access to the SPI Flash is required. Many designs will not have connector or test point access to the SPI bus, making this method impossible.

Direct Programming

Direct programming uses a direct interface between the hardware controller and SPI bus to program SPI Flash without the overhead of boundary-scan. 

All modern Corelis JTAG controllers, such as the single-TAP USB-1149.1/1E or the 4-TAP NetUSB-1149.1/E (blue LED version) include this feature.


  • High speed. Direct programming does not have any scan overhead and can run as fast as the JTAG controller and SPI slave are capable of going.