Serial Peripheral Interface

SPI (Serial Peripheral Interface) je sériové periferní rozhraní. Používá se pro komunikaci mezi řídícími mikroprocesory a ostatními integrovanými obvody (EEPROM, A/D převodníky, displeje…). Komunikace je realizována pomocí společné sběrnice. Adresace se provádí pomocí zvláštních vodičů, které při logické nule aktivují příjem a vysílání zvoleného zařízení (piny SS nebo CS).

Rozdělení zařízení na sériové SPI sběrnici

[editovat | editovat zdroj]
Sběrnice SPI: jedno řídicí (master) a jedno podřízené (slave) zařízení

Master

  • řídí komunikaci pomocí hodinového signálu
  • určuje, se kterým zařízením na sběrnici bude komunikovat pomocí SS - Slave Select (někdy CS - Chip Select)

Slave

  • vysílá podle hodinového signálu, pokud je aktivován pomocí SS/CS

Průběh komunikace

[editovat | editovat zdroj]
Sběrnice SPI: jedno řídicí (master) a tři podřízená (slave) zařízení
  • Pro komunikaci Master nastaví log. 0 na SS zařízení, se kterým chce komunikovat.
  • Pak začne generovat hodinový signál na SCLK a v té chvíli vyšlou obě zařízení svoje data, přičemž MOSI (Master Out, Slave In) je vždy Master výstup, Slave vstup a MISO (Master In, Slave Out) je Master Vstup, Slave výstup.
  • Jakmile jsou data vyslána, může komunikace dále pokračovat:
    1. Master dále dodává hodinový signál, hodnota SS se nemění
    2. nebo může být ukončena: Master přestane vysílat hodinový signál a nastaví SS do log. 1.
  • Délka vyslaných dat je buď 8bit (Byte) a nebo 16bit.

Polarita a fáze hodinového signálu

[editovat | editovat zdroj]
Časový diagram zobrazující úroveň a posun hodinového signálu

Vztah mezi hodinovým signálem a daty se určuje dvěma konfiguračními bity, které se v původní dokumentaci k SPI označují jako CPOL a CPHA. Tuto konvenci definuje firma Freescale Semiconductor (původně Motorola) ve "Freescale's SPI Block Guide" [1].

  • CPOL = 0; klidová úroveň hodinového signálu log. 0
  • CPOL = 1; klidová úroveň hod. sig. je log. 1
  • CPHA = 0; hodnota je čtena při přechodu hodin z klidové do aktivní úrovně (tj. "první" hranou)
  • CPHA = 1; hodnota je čtena při přechodu hodin z aktivní do klidové úrovně (tj. "druhou" hranou)

Tabulka módů říkající jakou kombinaci CPOL a CPHA sběrnice má. Tyto kódy namísto CPOL a CPHA využívají některé logické analyzátory, vývojová studia (př. Arduino IDE) nebo datasheety součástek.

Mode CPOL CPHA
0 0 0
1 0 1
2 1 0
3 1 1

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]