Arduino-SPI (Magyar)

Ez a könyvtár lehetővé teszi, hogy kommunikálni SPI eszközök, az Arduino, mint a mester eszköz.
a könyvtár használatához
#include <SPI.h>

A Serial Peripheral Interface (SPI)

Serial Peripheral Interface (SPI) rövid bevezetés a mikrokontrollerek által használt szinkron soros adat protokoll egy vagy több perifériás eszközzel való gyors kommunikációhoz rövid távolságokon. Két mikrokontroller közötti kommunikációra is használható.,

SPI csatlakozással mindig van egy fő eszköz (általában egy mikrokontroller), amely vezérli a perifériákat., Általában három vonalak közös, hogy valamennyi berendezés:

  • MISO (Master-Slave Ki), A Rabszolga sorba az adatokat küld a mester,
  • MOSI (Mester Rabszolga) – A Mester sort küldött az adatokat, hogy a perifériák,
  • BETEG (Soros Óra) – Az óra impulzusok, amelyeket szinkronizálni adatátviteli által generált mester

lehetőséget, majd egy sor konkrét, minden berendezés:

  • SS (Slave) Gombot a pin-kódot minden eszközt, hogy a mester segítségével engedélyezheti vagy letilthatja a speciális eszközök.,

Ha egy eszköz Slave Select pin-kódja alacsony, akkor kommunikál a mesterrel. Ha magas, figyelmen kívül hagyja a mestert. Ez lehetővé teszi, hogy több SPI eszköz ugyanazt a MISO, MOSI, CLK vonalak.

egy új SPI eszköz kódjának írásához néhány dolgot meg kell jegyeznie:

  • mi a maximális SPI sebesség, amelyet a készülék használhat? Ezt a SPISettings első paramétere vezérli. Ha 15 MHz-es névleges chipet használ, használjon 15000000-et. Arduino automatikusan használja a legjobb sebesség, amely egyenlő vagy kevesebb, mint a szám használata SPISettings.,
  • először az adatok eltolódnak a legjelentősebb bitben (MSB) vagy a legkevésbé jelentős bitben (LSB)? Ezt a második SPISettings paraméter vezérli, akár MSBFIRST, akár LSBFIRST. A legtöbb SPI chip az MSB első adatrendelését használja.
  • az adatóra tétlen, ha magas vagy alacsony? A minták az óraimpulzusok emelkedő vagy csökkenő szélén vannak? Ezeket a módokat a SPISettings harmadik paramétere vezérli.

az SPI szabvány laza, és minden eszköz egy kicsit másképp valósítja meg. Ez azt jelenti, hogy a kód írásakor különös figyelmet kell fordítania az eszköz adatlapjára.,

általánosságban elmondható, hogy négy átviteli mód van. Ezek az üzemmódok vezérlik, hogy az adatok az adatóra jel (úgynevezett órafázis) emelkedő vagy leeső szélén ki-be vannak-e tolva, valamint hogy az óra tétlen-e, ha magas vagy alacsony (az óra polaritása).,se according to this table:

Mode Clock Polarity (CPOL) Clock Phase (CPHA) Output Edge Data Capture
SPI_MODE0 0 0 Falling Rising
SPI_MODE1 0 1 Rising Falling
SPI_MODE2 1 0 Rising Falling
SPI_MODE3 1 1 Falling Rising

Once you have your SPI parameters, use SPI.,beginTransaction () az SPI port használatának megkezdéséhez. Az SPI port az összes beállításával konfigurálva lesz. A SPISettings használatának legegyszerűbb és leghatékonyabb módja közvetlenül az SPI-n belül van.beginTransaction ().Például:

SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));

ha más könyvtárak használják az SPI-t a megszakításoktól, akkor megakadályozzák az SPI elérését, amíg meg nem hívja a SPI.endTransaction(). Az SPI-beállítások a tranzakció elején kerülnek alkalmazásra, a SPI.endTransaction() nem változtatja meg az SPI-beállításokat., Hacsak ön vagy valamilyen könyvtár nem kezdi meg a hívásokatmásodik alkalommal történő átvitel, a beállítás megmarad. Meg kell próbálnia minimalizálni a SPI.endTransaction() közötti időt, a legjobb kompatibilitás érdekében, ha a programot más SPI-t használó könyvtárakkal együtt használják.

a legtöbb SPI eszközzel a SPI.beginTransaction() után a slave select pin-t alacsonyra írja, hívja a SPI.transfer() tetszőleges számú alkalommal az adatok továbbításához, majd írja be az SS pin-t magas, végül hívja a SPI.endTransaction().

További információ az SPI-ről, lásd a Wikipedia oldalát az SPI-n.,

Connections

a következő táblázat mutatja, amelyen az SPI vonalak törnek ki a különböző Arduino táblákon:

vegye figyelembe, hogy a MISO, a MOSI és az SCK konzisztens fizikai helyen állnak rendelkezésre az ICSP fejlécén; ez hasznos például egy pajzs tervezésekor, amely minden táblán működik.

Megjegyzés A Slave Select (SS) pin-ről az AVR alapú táblákon

minden AVR alapú táblának van egy SS-tűje, amely akkor hasznos, ha egy külső mester által vezérelt rabszolgaként működnek., Mivel ez a könyvtár csak a mester módot támogatja, ezt a pin-kódot mindig kimenetként kell beállítani, különben az SPI interfészt hardverrel automatikusan slave módba lehet helyezni, így a könyvtár nem működik.

Ez azonban lehetséges, hogy bármilyen pin, mint a Slave Select (SS) az eszközök. Például az Arduino Ethernet shield pin 4-et használ az SPI kapcsolat vezérléséhez a fedélzeti SD-kártyához, a pin 10 pedig az Ethernet vezérlőhöz való csatlakozás vezérléséhez.

példák

  • barometrikus nyomásérzékelő: olvassa el a légnyomást és a hőmérsékletet egy érzékelőtől az SPI protokoll segítségével.,
  • digitális Pot vezérlés: az AD5206 digitális potenciométer vezérlése az SPI protokoll segítségével.

Utolsó módosítás: 2019/12/24 by SM

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük