Megosztás a következőn keresztül:


Spi használata magas szintű alkalmazásokban

Az Azure Sphere master módban támogatja a soros perifériaillesztőt (SPI). Az SPI a perifériák és az integrált áramkörök közötti kommunikációhoz használt soros interfész. Az SPI egy fő/alárendelt modellt használ, ahol a főeszköz az alárendelt eszközök egy csoportját vezérli. Az I2C-vel ellentétben az SPI összetettebb, nagyobb sebességű perifériákkal is használható.

Az alkalmazások az SPI-n keresztül férhetnek hozzá a perifériákhoz az Applibs SPI API-k meghívásával, hogy műveleteket hajtsanak végre egy SPI-főfelületen. Az LSM6DS3 SPI-minta leírja, hogyan konfigurálhatja az SPI hardverét egy MT3620-eszközön, és hogyan használhatja az SPI-t egy alkalmazásban.

Chip kiválasztása

A Chip Select kezeli az SPI-főfelület és az alárendelt eszközök egy készlete közötti kapcsolatot; és lehetővé teszi, hogy a fő felület egymástól függetlenül küldjön és fogadjon adatokat minden alárendelt eszközre. Az Azure Sphere támogatja a lapkaválasztás aktív-alacsony és aktív-magas beállításait, alapértelmezett beállításként pedig az active-low értéket. Minden SPI-főfelületet kizárólag egy alkalmazás használhat. Az alkalmazásnak meg kell nyitnia az SPI fő felületét, és azonosítania kell az egyes csatlakoztatott alárendelt eszközöket, mielőtt olvasási és írási műveleteket hajt végre a felületen. Az Azure Sphere-en az SPI olvasási és írási műveletei blokkoló API-kat használnak.

SPI-követelmények

Az SPI-t használó alkalmazásoknak tartalmazniuk kell az SPI megfelelő fejlécfájljait, és hozzá kell adniuk az SPI-beállításokat az alkalmazásjegyzékhez.

Minden alkalmazásnak be kell állítania a célhardverét , és tartalmaznia kell a megfelelő hardverdefiníció fejlécfájlját.

Fejlécfájlok

 #define SPI_STRUCTS_VERSION 1
 #include <applibs/spi.h>
 #include "path-to-your-target-hardware.h"

Deklarálja az SPI_STRUCTS_VERSION előfeldolgozó definícióját, mielőtt belevenné a fejlécfájlt. Ez határozza meg az alkalmazás által használt struct verziót.

Cserélje le a "path-to-your-target-hardware.h" kifejezést a hardver fejlécfájljának elérési útjára.

Alkalmazásjegyzék beállításai

Az SPI API-k használatához hozzá kell adnia a SpiMaster képességet az alkalmazásjegyzékhez, majd minden SPI fővezérlőt hozzá kell adnia a képességhez. Ez lehetővé teszi, hogy az alkalmazás hozzáférjen a vezérlőhöz. Az Azure Sphere-alkalmazásjegyzék további részleteket tartalmaz az alkalmazásjegyzékről.

A kódban használja a hardverhez definiált állandókat az SPI-főillesztők azonosításához. A fordító ezeket az értékeket nyers értékekre fordítja le az alkalmazás létrehozásakor.

Íme például egy részlet egy alkalmazásjegyzékből, amely egy MT3620 referencia-fejlesztői táblát (RDB) céloz meg, és két SPI fő felületet konfigurál:

"SpiMaster": [ "$MT3620_RDB_HEADER2_ISU0_SPI", "$MT3620_RDB_HEADER4_ISU1_SPI" ],

Az alábbi részlet bemutatja, hogyan adhatja meg ugyanazokat az SPI-főillesztőket egy olyan alkalmazásban, amely az Avnet MT3620 Starter Kitet célozza:

"SpiMaster": [ "$AVNET_MT3620_SK_ISU0_SPI", "$AVNET_MT3620_SK_ISU1_SPI" ]

A lapka kiválasztásának konfigurálása és egy SPI-főillesztő megnyitása

Mielőtt műveleteket hajt végre egy SPI-főillesztőn, konfigurálnia kell a lapka kiválasztását, és meg kell nyitnia a felületet. A lapka kiválasztásának konfigurálásához hívja meg a SPIMaster_InitConfig függvényt a SPIMaster_Config Struct struktúrájának inicializálásához. A SPIMaster_Config inicializálása után frissítse a mezőt a csPolarity SPI_ChipSelectPolarity_ActiveLow. /reference/applibs/ity_Activ. /reference/applibs/rence/applibs/applibs-spi/enum-spi-chipselectpolarity.md).

Egy SPI-mesterfelület megnyitásához hívja meg a SPIMaster_Openfunction. Ez az alapértelmezett beállításokat alkalmazza a felületre, és alkalmazza a chip-kiválasztási beállításokat:

  • SPI_Mode_0 az SPI bitsorrendhez
  • SPI_BitOrder_MsbFirst a kommunikációs módhoz

Az SPI-főfelület beállításainak frissítése

Az inicializálás után módosíthatja a felület beállításait:

Olvasási és írási műveletek végrehajtása az SPI fő felületén

Az Azure Sphere számos lehetőséget támogat az írási és olvasási műveletek spi használatával történő végrehajtására. Az egyirányú olvasási vagy írási műveletekhez, valamint bizonyos POSIX API-kkal való együttműködés fenntartásához meghívhatja a POSIX read(2) és write(2) függvényeket.

Meghívhatja a SPIMaster_WriteThenRead függvényt, hogy egy kombinált írási és olvasási műveletet hajtson végre egyetlen busztranzakcióban, anélkül, hogy egy másik tranzakció megszakítását végezned.

Hívja meg a SPIMaster_TransferSequential függvényt, ha pontosabban kell szabályoznia az olvasási vagy írási műveletek időzítését. Ez lehetővé teszi, hogy több olvasási és írási műveletet hajtson végre egy CS-engedélyezési és -letiltási állapotpár között.

Az SPI-felület bezárása

Az interfész bezárásához hívja meg a standard POSIX függvényt close().

MT3620-támogatás

Ez a szakasz azokat az SPI-beállításokat ismerteti, amelyek csak akkor érvényesek, ha az Azure Sphere-t az MT3620 fejlesztői táblán futtatja.

Az MT3620 SPI-specifikációi az MT3620 támogatási állapotában találhatók. Az MT3620 fejlesztői fal felhasználói útmutatója a kábelezés tűelrendezését és funkcióit ismerteti.

A Microsoft Azure Sphere SDK telepítési könyvtárában található HardwareDefinitions mappa definíciókat tartalmaz a gyakori Azure Sphere fejlesztői táblákhoz, modulokhoz és chipekhez. Fejléc- és JSON-fájlokat tartalmaz, amelyek meghatározzák az MT3620, az MT3620 RDB és más MT3620 hardverek fő felületeit. A HardwareDefinitions mappa C:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions alapértelmezett helye Windows és /opt/azurespheresdk/HardwareDefinitions Linux rendszeren.

  • Az MT3620 fejlesztői alaplap konfigurálásakor bármely ISU-portot használhat SPI-főfelületként. Az ISU-khoz legfeljebb két alárendelt eszközt csatlakoztathat. Ha ISU-portot használ SPI-főfelületként, nem használhatja ugyanazt a portot, mint egy I2C- vagy UART-felület.
  • Az MT3620 legfeljebb 40 MHz-es SPI-tranzakciókat támogat.
  • Az MT3620 nem támogatja az egyidejű kétirányú olvasási és írási (teljes kétoldalas) SPI-műveleteket egyetlen busztranzakción belül.