PWM-ek használata magas szintű alkalmazásokban
Ez a témakör azt ismerteti, hogyan érheti el az eszköz impulzusszélességű modulátorait (PWM-eket) az Azure Sphere magas szintű alkalmazásokban való használatához.
Az impulzusszélesség-moduláció a pulzáló digitális jel vámciklusának (az idő és a kikapcsolt idő arányának) módosításával érhető el. A impulzusszélességű modulátorok számos alkalmazásban használhatók, például a digitális motorvezérlésben, a kommunikációban és a digitális-analóg átalakításban.
Ha PWM-eket szeretne használni az Azure Sphere-alkalmazásokban, meg kell adnia a szükséges fejlécfájlokat és Pwm
képességeket, és meg kell adnia az alkalmazás által elérni kívánt PWM-csatornák vezérlőit.
A PWM_HighLevelApp minta bemutatja, hogyan használható a PWM egy egyszerű digitális-analóg konverziós alkalmazásban egy MT3620 eszközön.
PWM-követelmények
A PWM-eket használó alkalmazásoknak tartalmazniuk kell a megfelelő fejlécfájlt, és hozzá kell adniuk a PWM-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
#include <applibs/pwm.h>
#include "path-to-your-target-hardware.h"
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 alkalmazás jegyzékfájljában található PWM-beállítás felsorolja az alkalmazás által elért PWM-vezérlőket. A beállítások konfigurálásához adja hozzá a Pwm
képességet az alkalmazásjegyzékhez, majd adja hozzá az összes PWM-vezérlőt a képességhez. Az Azure Sphere-alkalmazásjegyzék további részleteket tartalmaz.
A kódban használja a hardverhez definiált állandókat a PWM-vezérlő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 MT3620 referenciafejlesztői táblát (RDB) megcélzó alkalmazás jegyzékfájljából.
"Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]
Az alábbi részlet bemutatja, hogyan adhatja meg ugyanazt a PWM-vezérlőt egy olyan alkalmazásban, amely az Avnet MT3620 Starter Kitet célozza:
"Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]
PWM-hozzáférés
Az Azure Sphere magas szintű alkalmazásai applibs PWM API-k meghívásával férhetnek hozzá a PWM-hez.
PWM-vezérlő megnyitása
Egy PWM-vezérlő megnyitásához hívja meg a PWM_Open , és adja meg paraméterként a megnyitni kívánt vezérlő azonosítóját. Ha a hívás sikeres, a rendszer fájlleírót ad vissza. Ellenkező esetben a rendszer -1 értéket ad vissza.
PWM-csatorna állapotának beállítása
A PWM-csatorna állapotának beállításához vagy frissítéséhez hívja meg a PWM_Apply. A következő paramétereket adhatja át a PWM_Apply:
A PWM_Open által visszaadott fájlleíró
A frissíteni kívánt PWM-csatorna; ez az érték platformfüggetlen
A csatornára alkalmazandó időszak, vámciklus és polaritás
A csatorna engedélyezése vagy letiltása
Megjegyzés
Az időszakra és a vámciklusra vonatkozó minimális és maximális korlátok az eszköztől függenek. Az MT3620 magas szintű magján például a PWM-ek rögzített, 2 MHz-es alapfrekvencián futnak, 16 bites be- és kikapcsolt összehasonlító regiszterekkel. Ez 500 ns vámciklus-feloldási műveletet és körülbelül 32,77 ms tényleges maximális időtartamot ír elő. A részletekért tekintse meg az adott eszköz adatlapját.
MT3620-támogatás
Az MT3620 támogatott PWM-funkciói az MT3620 támogatási állapotában találhatók. Az MT3620 fejlesztői fal felhasználói útmutatója ismerteti a pin-kód elrendezését és a rögzítési függvényeket.
Az MT3620 12 PWM csatornával rendelkezik, PWM0 - PWM11. Ezek 4 csatornából álló 3 csoportba vannak rendezve. Minden csoport egy PWM-vezérlőhöz (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2) van társítva. A PWM-csatornák és a GPIO a GPIO0-t a GPIO11-en keresztül ugyanazon tűkre rögzíti az MT3260-on. Ha az alkalmazás PWM-vezérlőt használ, akkor a vezérlőhöz társított összes gombostű PWM-kimenetként lesz lefoglalva. Más perifériatípusokhoz nem használhatók.