0
\$\begingroup\$

I was learning the basics of SPI-communication. It was came to following section and I was bit confused to understand the sentence.

enter image description here

What is the meaning of " each slave in the chain will act as the master for the following slave ". Can anyone elaborate it ? And what is the possible maximum slaves supported by SPI and what factors limits it?

\$\endgroup\$
2
  • 1
    \$\begingroup\$ SPI is basically a chain of shift registers. Bits get clocked in on MOSI and out on MISO. Master sets the speed (it is just the clock speed). If the master goes too fast, data corruption may occur. \$\endgroup\$
    – user57037
    Nov 24, 2018 at 6:08
  • \$\begingroup\$ check here en.wikipedia.org/wiki/Serial_Peripheral_Interface \$\endgroup\$
    – jsotola
    Nov 24, 2018 at 6:14

2 Answers 2

3
\$\begingroup\$

We have two type of SPI,

  • direct connection

  • Daisy chain connection

For the first, each device need its own SS pin/ sometimes Chip select(limitation)

enter image description here link:http://www.circuitbasics.com/basics-of-the-spi-communication-protocol/

For the Daisy chain, The limitation is the delay. Not all SPI devices support Daisy chain, some of them should be configured for Daisy chain operation, for example, some DAC chips.

If you want to send a 32bit command to chip number n, you need n *32 clocks on SPI clock to send data to chip number n.

enter image description here

\$\endgroup\$
2
\$\begingroup\$

SPI is a chain of flip-flops.

There is no hard limit to the length of the chain. There is no addressing. It's not like I2C where you have a limited number of addresses.

The soft limit is how long you're willing to wait to clock data through the whole chain.

If you have a chain of for instance 1000 8 bit devices, and are serial clocking at (for ease of calculation) 8MHz, then you'll have to wait 1mS to update the entire chain. That would be just fine for some applications, and not fast enough for others. 10,000 devices would take 10mS.

You do the sums for where the devices are (let's say) the LED panels for the advertising around sports grounds, or the LED panels of a live video display.

" each slave in the chain will act as the master for the following slave ".

That's poor use of language. Each slave is the data source for the following slave. However the master is what controls what happens and when. The master function stays with the master, in contrast to some busses where the 'master' function can be passed around.

\$\endgroup\$
1
  • \$\begingroup\$ Beware that this will not work with all SPI devices. In most devices I have encountered, the write data does NOT appear on the output but instead the output is the contents (read) of an internal register. There chaining is not possible. You have to use a separate CS for each device. \$\endgroup\$
    – Oldfart
    Nov 24, 2018 at 7:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.