Додайте більше 2 рабів SPI


12

Як я бачу на схемі, є 2 канали для рабів - CS0 і CS1. Чи означає це, що я можу підключити лише 2 мікросхеми, наприклад, MCP3008 чи щось таке? Або я можу приєднати більше цих рабів до цих 2 приєднаних рабів.

Чи має схема Raspberry підтримку чи щось спільне з цією схемою з'єднання рабів SPI, взятою з Вікіпедії? Чи можна зробити так?

SPI раби


"Чи можна зробити так?" -> Мені здається, саме так і є, за винятком того, що Pi має CE0 та CE1 замість SS1, SS2, SS3. Лінії шини SCLK, MOSI та MISO діляться між усіма пристроями в обох випадках.
золотинки

Відповіді:


12

Багато шляхів.

Ви можете сортувати біт-баг, який вибирає підлеглий, тобто підключати всі пристрої із спільним MISO / MOSI / SCLK та заземленим, але окремим CS. Просто встановіть CS низький рівень для потрібного пристрою, перш ніж викликати драйвер SPI. Драйвер SPI спробує встановити CS, але не знатиме, що він не підключений.

У Pis з 40-контактним заголовком розширення є ще один SPI-пристрій з трьома виборами мікросхем. Моя бібліотека pigpio підтримує цей пристрій.

Ви можете програмно трохи розбити весь протокол.

Ви можете додати додаткове обладнання для переключення лінії CS на будь-який потрібний вам пристрій.

І т.д.

ВИДАЛЕНО ДОДАТИ

"Правильний" драйвер SPI Raspberry Pi Linux в даний час проходить огляд, щоб дозволити використання довільних gpios як CS.

ВИДАЛЕНО ДО ДОДАТИ 2

Кажуть, що поточний драйвер SPI Linux (spi_bcm2853) підтримує довільний GPIO при виборі мікросхеми. Див. / Завантаження / накладки / README.


1
"дозволити довільним gpios" сама хороша ідея і що можна очікувати від вбудованої системи. Дякуємо за вклад.
Ghanima

Джоан, поясніть, будь ласка, як використовувати "інший пристрій SPI з трьома виборами мікросхем" з бібліотекою "pigpio" або посилання на приклад коду. Це допоможе відповісти на запитання. Дякую
Алекс

Див. Abyz.co.uk/rpi/pigpio/cif.html#spiOpen . GPIO 16-21 підключені до допоміжних SPI. Див. Abyz.co.uk/rpi/pigpio/index.html#Type_3 . Альтернативно, теперішній драйвер SPI Linux (spi_bcm2853), як кажуть, підтримує довільний GPIO як вибір чіпа. Див. / Завантаження / накладки / README.
Жанна

"Pis з 40-контактним заголовком розширення мають ще один SPI-пристрій з трьома виборами мікросхем", лише 40 cs на 40-контактному заголовку

1
@meh На 40-контактному заголовку розширення вибирається 5 мікросхем. Два для основної SPI та 3 для допоміжної SPI. Сигнали допоміжних SPI показані в нижньому регістрі на abyz.co.uk/rpi/pigpio/index.html#Type_3
joan

3

Ви маєте рацію, що RaspberryPi надає лише два мікросхеми на шині SPI (див. Тут ). І я припускаю, що драйвери SPI та програмні рішення покладаються на цей факт (хоча відповідь Джоана говорить про те, що різні бібліотеки обробляють це по-різному, і офіційний драйвер дозволить в майбутньому використовувати довільні штифти GPIO як вибір мікросхеми).

Однак ви повинні пам’ятати, що вибір чіпа - це не що інше, як виділений цифровий вихід Pi. Тому ви завжди можете мати більшу кількість чіпів, якщо ви використовуєте штифти GPIO. У такому випадку, однак, ваше програмне забезпечення несе відповідальність за встановлення відповідних штифтів для адреси потрібного ведомого SPI.

Оскільки вся ідея вибору мікросхеми полягає у взаємному виборі лише одного єдиного підлеглого, ви також можете використовувати просту цифрову схему, щоб зменшити кількість "витрачених" GPIO-штифтів (якщо вони потрібні і для інших цілей). Щось подібне до 74HC / HCT138, 3-до 8-лінійний декодер / демультиплексор може бути використаний для адреси 8 рабів за допомогою 8-вибіркових мікросхем із трьома штифтами GPIO.

Варто пам’ятати, що автобусні лінії SCLK і MOSI діляться між усіма рабами. Отже, підключаючи кілька рабів до Pi, переконайтесь, що вентилятор Pi не перевищується навантаженням (опір і ємність вхідних штифтів рабів) - хоча це сьогодні менше проблеми з низькою ємністю і висока стійкість цифрових входів.


1

На це насправді дуже хороша відповідь інженера RPI, PhilE, на форумі з малиною, див. 28 вересня 2015 року . В основному, він наводить приклад накладки на дерево дерева пристроїв, яка використовує можливість із spi-bcm2835 мати будь-які безкоштовні GPIO в якості вибору чіпа.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.