Вы правы в том, что RaspberryPi обеспечивает только два чипа на своей шине SPI (см. Здесь ). И я предполагаю, что драйверы SPI и программные решения основаны на этом факте (хотя ответ @ joan предполагает, что разные библиотеки обрабатывают его по-разному, и официальный драйвер позволит использовать произвольные выводы GPIO в качестве элементов выбора микросхем в будущем).
Однако вы должны иметь в виду, что выбор микросхемы - это не что иное, как выделенный цифровой выход Pi. Поэтому вы всегда можете выбрать большее количество микросхем, если используете контакты GPIO. В этом случае, однако, ваше программное обеспечение будет отвечать за установку соответствующих выводов для адресации соответствующего ведомого SPI.
Поскольку вся идея выбора микросхем заключается в взаимном исключительном выборе только одного ведомого, вы также можете использовать несколько простых цифровых схем для уменьшения количества «потраченных» выводов GPIO (если они вам нужны и для других целей). Что-то вроде 74HC / HCT138 декодера / демультиплексора с 3 по 8 линиями можно использовать для адресации 8 подчиненных устройств через 8 микросхем выбора всего с 3 выводами GPIO.
Следует иметь в виду, что шины SCLK и MOSI являются общими для всех рабов. Таким образом, при подключении нескольких подчиненных к Pi убедитесь, что разгрузка Pi не превышает нагрузку (сопротивление и емкость входных контактов подчиненных) - хотя сегодня это мало проблем с низкой емкостью и высокое сопротивление цифровых входов.