Что я вижу на схеме, есть два канала для рабов - CS0 и CS1. Означает ли это, что я могу подключить только 2 чипа, как MCP3008 или что-то? Или я могу прикрепить больше рабов к этим двум прикрепленным рабам.
Имеет ли схема Raspberry поддержку или что-то общее с этой схемой подключения SPI-рабов, взятой из Википедии? Можно ли сделать так?
Ответы:
Много способов.
Вы можете сортировать биты, выбранные ведомым, то есть подключать все устройства с общим MISO / MOSI / SCLK и заземлением, но с отдельным CS. Просто установите низкий уровень CS для устройства, которое вы хотите, прежде чем вызывать драйвер SPI. Драйвер SPI попытается установить CS, но не будет знать, что он не подключен.
У Pis с 40-контактным разъемом расширения есть еще одно SPI-устройство с 3-мя чипами. Моя библиотека pigpio поддерживает это устройство.
Вы можете программно поразить весь протокол.
Вы можете добавить дополнительное оборудование для переключения линии CS на любое устройство, которое вы хотите.
И т. Д.
ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ
«Надлежащий» драйвер SPI Raspberry Pi Linux в настоящее время проходит проверку, чтобы разрешить использование произвольных gpi в качестве CS.
Отредактировано ДОБАВИТЬ 2
Говорят, что текущий драйвер SPI для Linux (spi_bcm2853) поддерживает произвольный GPIO при выборе микросхемы. Смотрите / boot / overlays / README.
источник
Вы правы в том, что RaspberryPi обеспечивает только два чипа на своей шине SPI (см. Здесь ). И я предполагаю, что драйверы SPI и программные решения основаны на этом факте (хотя ответ @ joan предполагает, что разные библиотеки обрабатывают его по-разному, и официальный драйвер позволит использовать произвольные выводы GPIO в качестве элементов выбора микросхем в будущем).
Однако вы должны иметь в виду, что выбор микросхемы - это не что иное, как выделенный цифровой выход Pi. Поэтому вы всегда можете выбрать большее количество микросхем, если используете контакты GPIO. В этом случае, однако, ваше программное обеспечение будет отвечать за установку соответствующих выводов для адресации соответствующего ведомого SPI.
Поскольку вся идея выбора микросхем заключается в взаимном исключительном выборе только одного ведомого, вы также можете использовать несколько простых цифровых схем для уменьшения количества «потраченных» выводов GPIO (если они вам нужны и для других целей). Что-то вроде 74HC / HCT138 декодера / демультиплексора с 3 по 8 линиями можно использовать для адресации 8 подчиненных устройств через 8 микросхем выбора всего с 3 выводами GPIO.
Следует иметь в виду, что шины SCLK и MOSI являются общими для всех рабов. Таким образом, при подключении нескольких подчиненных к Pi убедитесь, что разгрузка Pi не превышает нагрузку (сопротивление и емкость входных контактов подчиненных) - хотя сегодня это мало проблем с низкой емкостью и высокое сопротивление цифровых входов.
источник
Существует на самом деле очень хороший ответ на это инженером RPI, Phile, на малиновой форуме, см 28 сентября 2015 . По сути, он приводит пример наложения дерева устройств, в котором с помощью spi-bcm2835 можно использовать любые свободные GPIO в качестве выбора микросхемы.
источник