3

So I'm thinking of getting these 2.9" displays: https://www.waveshare.com/wiki/2.9inch_e-Paper_Module#Working_with_Raspberry_Pi they come with an SPI interface that can be connected to the Pi.

Is it possible to connect multiple of such devices to the same Pi (3B)? If so, how many; if not, is there a way to extend the Pi so I can drive multiple displays with it (the more the better).

0__
  • 502
  • 8
  • 25
  • @JaromandaX read what exactly? So there is a chip select pin. What does it imply. Can I drive two displays. Can I drive more. Read the question. Thx – 0__ Jul 31 '18 at 13:30
  • 1
    Is it possible to connect multiple of such devices to the same Pi (3B)? If so, how many - the answer to that is TWO if you read that documentation ... is there a way to extend the Pi so I can drive multiple displays with it (the more the better). yes - the fact that you didn't know the fact that you can easily connect only TWO SPI devices suggests you failed the first hurdle before asking a question Search, and research :p – Jaromanda X Jul 31 '18 at 13:32

1 Answers1

5

This topic seems to be a bit more confusing than it should be. (I'm researching the same question myself, and this page came up first in my searches).

First, a little background on the SPI protocol - it can support numerous devices on a single controller, however requires a dedicated chip select line for each.

The Pi's chipset has 3 SPI controllers built-in. Most documentation, however, only refers to the SPI0 controller. That controller has two chip selects, and therefore can control up to 2 devices by default.

It appeasrs that all Pis since v2 (/w 40-pin headers) also expose a second controller, SPI1 that has 3 chip selects. For information on using it see here or here (look for the SPI section) or here or here (this page explains how to use all 3 chip selects).

The third SPI controller is sadly not broken out to pins on any current model Pis.

So, with a little configuration, that gives us a maximum of 5 first-class SPI devices that can be connected.

If that proves insufficient, current Linux drivers include the 'spi-gpio' module that allows for the usage of arbitrary GPIO pins as chip selects. Unlike the 'first-class' chip selects, this is a software expansion requires additional setup, and will likely not be as efficient (fast/stable). This should allow significantly more devices to be connected. wiringpi.com is the best resource I've come across for this method.

Last, but not least, I'll mention that there do exist SPI expander chips that effectively allow buses to be daisy-chained. These should be more efficient, but are also more complex (to both use and obtain).

Digicrat
  • 151
  • 1
  • 2
  • FWIW, this was very helpful to me and I appreciate the details and links. This has been more painful to track down than it should be, like you said. – Matt Ray Jan 05 '22 at 04:23