SPI

While there are lots of different kinds of devices that use the SPI protocol, 99% of my time focuses on dumping SPI flash chips.

The easiest scenario is to read and write a bare SPI flash chip. If you choose to read or write a chip in-circuit, you *will* have to be careful to ensure that you’re not creating electrical issues by interfering with other devices that are already communicating with the SPI chip. If you’ve got the available hardware you could try a few things:

  1. Read and write a bare SPI flash chip:
    1. Acquire a SPI flash chip
    2. Figure out how you’re going to connect to the flash ship
      1. SOIC-8 chip clips are cheap and readily available. They do take some time to get familiar with clipping them reliably
      2. SOIC-8 sockets are also inexpensive, and allow you to drop chips into a ZIF socket for reading or writing
      3. Most probe clips are capable of grabbing legs of SOIC-8 chips when they’re soldered in place
    3. Select the correct voltage – the chip is not attached so we need to give it power. Most chips have a decent range between 3.3 and 5V, and even the low-power ones that can work with less than a volt have no problems with higher voltages. I Typically set my board to 3.3V.
  2. Read and write a SPI flash chip in-circuit:
    1. The biggest challenge here is figuring out how to power your spi flash chip. On many devices, the CPU is constantly communicating with the SPI flash as long as the board is powered on… except that the CPU often shares a power rail with the SPI flash chip. You will need to isolate it somehow in order to dump the flash’s contents
    2. Once you have the chip isolated, follow the same process as with the ‘bare SPI flash chip’ instructions