SPI - Szeregowy interfejs peryferyjny
SPI oznacza Serial Peripheral Interface (Szeregowy Interfejs Peryferyjny). Dzięki SPI można błyskawicznie wymieniać dane między dwoma urządzeniami. Do tego potrzebne są tylko cztery przewody.
Charakterystyka SPI
Szeregowy interfejs peryferyjny jest synchronicznym interfejsem komunikacyjnym przeznaczonym do komunikacji na krótkich dystansach. Synchroniczny oznacza, że dane są przesyłane w postaci bloków lub ramek, a oba urządzenia są synchronizowane za pomocą zegara. Jest to interfejs szeregowy, więc urządzenia wysyłają po jednym bicie na raz (w przeciwieństwie do komunikacji równoległej). Jedno z urządzeń jest urządzeniem "Master" i dyktuje cykl zegara. Drugie urządzenie jest urządzeniem podrzędnym (Slave). Zazwyczaj komunikacja odbywa się w trybie pełnego dupleksu. Dlatego oba urządzenia mogą przesyłać dane nawet w tym samym czasie.
Okablowanie
Do połączenia potrzebne są tylko cztery przewody, więc konfiguracja jest bardzo prosta.
Do połączenia SPI potrzebne są cztery piny: Serial Clock (SCL lub SCLK), Master Output Slave Input (MOSI), Master Input Slave Output (MISO) oraz pin Chip Select lub Slave Select (CS lub SS).
Podłącz odpowiednie piny w urządzeniach Master i Slave.
Jedno urządzenie Master może połączyć się z wieloma urządzeniami Slave, o ile ma wystarczającą liczbę pinów wyboru chipa. Urządzenie Master kontroluje, które urządzenie Slave otrzymuje dane, ustawiając odpowiedni pin wyboru chipa na LOW lub HIGH.
Raspberry Pi 4 ma 7 interfejsów SPI. Jeśli chcesz dowiedzieć się, jak uzyskać dostęp do interfejsów SPI od 1 do 6, zostaw komentarz poniżej.
Przyjrzyjmy się Magistrala SPI 0.
Jak widać w układ pinów Powyżej pin 23 jest pinem SCLK w Raspberry Pi. MISO to pin 21, a MOSI to pin 19. Magistrala 0 ma dwa piny CS, którymi są piny 24 i 26.
Jeśli chcesz korzystać z magistrali 0, najpierw ją włącz.
Wykonaj polecenie
sudo raspi-config
Następnie wybierz 3 Opcje interfejsu i kliknij przycisk I4 SPI. Na koniec naciśnij przycisk Tak oraz Ok aby włączyć SPI.
Tryby SPI
Istnieją cztery różne tryby transmisji danych, o których należy wiedzieć. Różnią się one polaryzacją i fazą zegara.
W obu przypadkach może to być 0 lub 1. Jeśli chodzi o polaryzację zegara, to 0 oznacza stan spoczynku NISKI, a 1 - stan spoczynku WYSOKI. Faza zegara 0 oznacza, że dane są wysyłane przy opadającym zboczu, natomiast 1 oznacza, że dane są wysyłane przy rosnącym zboczu. Przed wysłaniem danych urządzenia Master i Slave muszą uzgodnić jeden z czterech trybów.
Zalety
Największe zalety to duża szybkość, łatwa konfiguracja sprzętu i oprogramowania oraz niskie zapotrzebowanie na energię.
Wady
Szeregowy interfejs peryferyjny nie jest rozszerzalny pod względem zakresu i liczby urządzeń, ponieważ urządzenie nadrzędne (Master) wymaga pinu wyboru układu dla każdego urządzenia. Nie ma też sprzętowego potwierdzenia dla urządzeń podrzędnych, więc urządzenie nadrzędne nie wie, czy dane zostały przez kogoś odebrane.
Przypadki użycia
Większość urządzeń SPI to urządzenia wbudowane lub Wyświetlacze LCD. Ogólnie rzecz biorąc, jest ona stosowana w miejscach, gdzie wymagana jest niewielka liczba urządzeń i szybka transmisja danych.
Dzięki temu Raspberry Pi może współpracować z różnego rodzaju czujniki i urządzenia. Prawie wszystkie urządzenia zgodne z Raspberry Pi używają interfejsu SPI lub I2C.
Karty SD również używają interfejsu SPI, więc nawet czytnik kart SD w Raspberry Pi ma kilka wewnętrznych pinów MISO i MOSI.
[...] Jeśli chciałbyś dowiedzieć się więcej o SPI, przy okazji, mamy artykuł na ten temat tutaj. [...]
[...] SPI - szeregowy interfejs peryferyjny [...]
[...] Naveen wyjaśnia, że połączenie między Nano a wyświetlaczem TFT opiera się na szeregowym interfejsie peryferyjnym (SPI). Tymczasem joystick i przyciski są połączone za pośrednictwem magistrali Inter-Integrated Circuit Bus [...]
[...] SPI - szeregowy interfejs peryferyjny [...]
[...] Anzahl der Geräte nicht wirklich erweiterbar, da der Master für jedes Gerät einen Chip Select Pin [...]
Istnieje możliwość ponownego podłączenia urządzeń do łańcucha Daisy-Chain. W takim przypadku dostępny jest tylko jeden Chip-Select. Allerdings muss man wissen wie viele Geräte in welcher Reihenfolge am SPI angeschlossen sind, so dass man die Datenpakete als Stream passend zusammenbauen kann. Die Geräte werden so verschaltet, dass MISO des vorherigen Geräts am MOSI des nachfolgenden Geräts angeschlossen wird. MISO ostatniego urządzenia zostanie następnie połączone z urządzeniem głównym. Dzięki tej technice dane ze wszystkich urządzeń są przekazywane na bieżąco, gdy po wysłaniu strumieni danych układ Chip-Select zostanie aktywnie skonfigurowany.