Basics spi protokoll

SPI (Serial Bus perifériás) - Soros perifériás protokoll. Ez szúrás által kifejlesztett Motorola. de most sokan használják a gyártók. Célja közötti kommunikáció mikrokontroller, valamint mindenféle perifériát: érzékelők D átalakító, memória chipek óra. Mégis, a legtöbb gyakori használata SPI - ez rögzíti a program memória a mikrokontroller. A mikrokontroller AVR c keresztül SPI Flash mikrokontroller nem vypaivaya a fórumon, ezt a módszert nevezik firmware ISP (In System Programming). Bár az SPI nevét és ISP nagyon harmonikusan, ez nem ugyanaz a dolog, az AVR SPI használják fizikai ISP szinten. azaz a SPI sor adatátvitel, de a protokoll is (szoftveres réteg) különbözik.

Az adatok átvitele az SPI használ három sort:

MISO (Master Input Output Slave) - ezt a sort mester (master) adatokat kap a Slave (szolga).

MOSI (Master kimenet Slave bemenet) - ezt a sort Mester adatokat küld a slave.

SCK (Serial Clock) - arra szolgál, hogy továbbítson egy órajelet a szolga eszköz.

vonal SS (Slave Select) is használják. amely meghatározza az eszköz, amellyel a Mester adatcserét.


Annak a ténynek köszönhetően, hogy sok gyártó használja SPI saját eszközök, megállapításait a név némileg eltérhet. Az alábbi táblázat az alternatív neveket.


SPI kétféle hardver és szoftver. Ha a szoftver segítségével SPI. van, hogy kézzel állítsa be a jelet a megfelelő lábainak MISO MOSI, SS az húzza SCK. Hardveres megvalósítás SPI átadjuk az adatokat a külön nyilvántartást, és a mikrokontroller maga végzi a fenti manipuláció szerint az előzetes beállításokat.

Fizikai megvalósítása SPI. Ez jelenti a két léptető regiszterre kapcsolódik egymáshoz.


Attól függően, hogy mely logikai jel szintjét SCK. Ez akkor fordul elő Master és Slave szinkronizáció, és minden él egy befogó és shift adatszolgáltatás 4 SPI módban.

  • CPOL = 0 - burst kezdődik egy alacsony szintű;
  • CPOL = 1 - burst kezdődik magas szintű;
  • CPHA = 0 - Az adatok mintában felfutó élénél szinkronjel;
  • CPHA = 1 - adatok mintavételezése a hátsó él időzítő jel.

Oszcilio mutatja, hogyan néz ki a kiküldetés 0h17 különböző módban.
CPOL = CPHA = 0 0


CPOL = 1 CPHA = 0


CPOL = 0 CPHA = 1


CPOL = 1 CPHA = 1

SPI - szinkron felület, azaz, hogy bizonyos adatokat a Slave. Mester küldeni valamit. Úgy tűnik, minden világos, de mi van, ha mester küld egy bájt, és a Slave vissza kell kettő? Ebben az esetben a Mester kell küldeni neki valami 2-szer, mint például a 0x00.

Ez minden, a fenti kód kivett mintát munkatervét.