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

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

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

Č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.

ModeCPOLCPHA
000
101
210
311

Odkazy

Reference

Související články

Externí odkazy

Média použitá na této stránce

SPI single slave.svg
Autor: en:User:Cburnett, Licence: CC-BY-SA-3.0
Jedno řídicí (master) a jedno podřízené (slave) zařízení na sběrnici SPI.
SPI three slaves.svg
Autor: en:User:Cburnett, Licence: CC-BY-SA-3.0
Jedno řídicí (master) a tři podřízená (slave) zařízení na sběrnici SPI.