Dodaj więcej niż 2 niewolników SPI


12

Jak widzę na schemacie, istnieją dwa kanały dla slaveów - CS0 i CS1. Czy to oznacza, że ​​mogę podłączyć tylko 2 układy scalone, takie jak MCP3008 lub coś takiego? Czy mogę dołączyć więcej niewolników do tych 2 dołączonych niewolników.

Czy schemat Raspberry ma wsparcie lub coś wspólnego z tym schematem połączeń slave SPI z Wikipedii? Czy można to tak zrobić?

Niewolnicy SPI


„Czy można to zrobić w ten sposób?” -> Wydaje mi się, że tak właśnie jest, tyle że Pi ma CE0 i CE1 zamiast SS1, SS2, SS3. Linie magistrali SCLK, MOSI i MISO są współużytkowane przez wszystkie urządzenia w obu przypadkach.
Złotowłosa

Odpowiedzi:


12

Wiele sposobów.

Możesz w pewnym sensie wybić bit niewolnikiem, tzn. Połączyć wszystkie urządzenia ze wspólnym MISO / MOSI / SCLK i uziemieniem, ale osobnym CS. Przed wywołaniem sterownika SPI po prostu ustaw niski poziom CS dla wybranego urządzenia. Sterownik SPI spróbuje ustawić CS, ale nie będzie wiedział, że nie jest podłączony.

Pis z 40-pinowym nagłówkiem rozszerzeń ma inne urządzenie SPI z 3 układami do wyboru. Moja biblioteka pigpio obsługuje to urządzenie.

Możesz oprogramowanie bit bang cały protokół.

Możesz dodać dodatkowy sprzęt, aby przełączyć linię CS na dowolne urządzenie.

Itd itd.

EDYTOWANE, ABY DODAĆ

„Właściwy” sterownik SPI dla Raspberry Pi Linux przechodzi obecnie przegląd, aby umożliwić stosowanie dowolnych gpi jako CS.

EDYTOWANE DO DODANIA 2

Mówi się, że obecny sterownik SPI dla systemu Linux (spi_bcm2853) obsługuje dowolne GPIO podczas wybierania układów. Zobacz / boot / overlays / README.


1
„zezwól na dowolne gpios” to dobry pomysł sam w sobie i czego można oczekiwać od wbudowanego systemu. Dzięki za wkład.
Ghanima

Joan, wyjaśnij, jak używać „innego urządzenia SPI z 3 układami wyboru” z biblioteką „pigpio”, lub link do przykładu kodu. Pomoże to odpowiedzieć na pytanie. Dzięki
Alex

Zobacz abyz.co.uk/rpi/pigpio/cif.html#spiOpen . GPIO 16-21 są podłączone do pomocniczego interfejsu SPI. Zobacz abyz.co.uk/rpi/pigpio/index.html#Type_3 . Alternatywnie, mówi się, że obecny sterownik SPI dla systemu Linux (spi_bcm2853) obsługuje dowolne GPIO podczas wyboru układu. Zobacz / boot / overlays / README.
joan

„Pis z 40-pinowym nagłówkiem rozszerzeń ma inne urządzenie SPI z 3 układami do wyboru” na 40-pinowym nagłówku są tylko 2 cs

1
@meh Na 40-pinowym nagłówku rozszerzającym znajduje się 5 układów do wyboru. Dwa dla głównego SPI i 3 dla dodatkowego SPI. Pomocnicze sygnały SPI są pokazane małymi literami na abyz.co.uk/rpi/pigpio/index.html#Type_3
joan

3

Masz rację, że RaspberryPi zapewnia tylko dwa wybory chipów na swojej magistrali SPI (patrz tutaj ). Zakładam, że sterowniki SPI i rozwiązania programowe polegają na tym fakcie (chociaż odpowiedź @ joan sugeruje, że różne biblioteki traktują to inaczej, a oficjalny sterownik pozwoli na użycie dowolnych pinów GPIO jako wybierania układów w przyszłości).

Trzeba jednak pamiętać, że wybór układu to nic innego jak dedykowane wyjście cyfrowe Pi. Dlatego zawsze możesz mieć większą liczbę wyborów układów, jeśli używasz pinów GPIO. W takim przypadku jednak oprogramowanie będzie odpowiedzialne za ustawienie odpowiednich pinów w celu adresowania odpowiedniego urządzenia podrzędnego SPI.

Ponieważ cała idea wyboru układów polega na wzajemnym wybieraniu tylko jednego pojedynczego urządzenia podrzędnego, można ponadto użyć prostego obwodu cyfrowego, aby zmniejszyć liczbę „zmarnowanych” pinów GPIO (jeśli potrzebujesz ich również do innych celów). Coś w rodzaju 74HC / HCT138 dekoder / demultiplekser 3 do 8 linii może być wykorzystany do adresowania 8 urządzeń podrzędnych za pomocą 8 układów wyboru za pomocą zaledwie 3 pinów GPIO.

Warto pamiętać, że linie autobusowe SCLK i MOSI są wspólne dla wszystkich niewolników. Dlatego podczas podłączania wielu urządzeń podrzędnych do Pi należy upewnić się, że obciążenie wentylatora Pi nie zostanie przekroczone przez obciążenie (rezystancja i pojemność styków wejściowych urządzeń podrzędnych) - chociaż dzisiaj jest to mniejszy problem z niską pojemnością i wysoka rezystancja wejść cyfrowych.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.