Introduction
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.
Advantages
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.
Advantages
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.