Access More SPI Devices Than the Number of Chip Select Lines

Updated Apr 3, 2018

Reported In

Hardware

  • USB-8452

Issue Details

  • My SPI device has 8 chip select lines.  Is it possible to use more than 8 devices?
  • How do I access more devices than chip select lines using SPI?

Solution

SPI usually requires a chip select line for each device connected to the bus.  There are methods for accessing more devices than available chip select lines however.  There are two methods to do so: daisy-chaining, and demultiplexing.

Daisy-chaining involves sending all the data to one device.  This devices extracts its section of the data, and passes everything else along to the next.  This process continues until all devices have their data.  In this case, chip select lines are not needed to differentiate between devices, the position in the chain is sufficient.

Demultiplexing takes the chip select values, and breaks them into more values. Imagine a device with three chip select lines.  This would allow for three SPI slaves to be referenced, with the values of "001", "010", and "100."  If however multiple pins are allowed to carry a "1" value, 2^3 devices can be differentiated.  An external device can turn these 3 pins into up to 8 demultiplexed values.  For X chip select lines, up to 2^X devices can be referenced with this system.

WAS THIS ARTICLE HELPFUL?

Not Helpful