Udostępnij za pośrednictwem


Używanie aplikacji PWM w aplikacjach wysokiego poziomu

W tym temacie opisano, jak uzyskać dostęp do modulatorów szerokości impulsów (PWM) urządzenia do użytku w aplikacjach azure sphere na wysokim poziomie.

Modulację szerokości impulsu uzyskuje się poprzez zmianę cyklu pracy (stosunek czasu do czasu wolnego) pulsowanego sygnału cyfrowego. Modulatory szerokości impulsu są używane w wielu aplikacjach, takich jak cyfrowe sterowanie silnikiem, komunikacja i konwersja cyfrowo-analogowa.

Aby używać aplikacji PWM w aplikacjach Azure Sphere, musisz dołączyć wymagane pliki nagłówków i Pwm funkcje oraz określić kontroler dla kanałów pwm, do których aplikacja będzie uzyskiwać dostęp.

W przykładzie PWM_HighLevelApp pokazano, jak używać aplikacji PWM w prostej aplikacji konwersji cyfrowo-analogowej na urządzeniu MT3620.

Wymagania dotyczące programu PWM

Aplikacje korzystające z aplikacji PWM muszą zawierać odpowiedni plik nagłówka i dodać ustawienia aplikacji PWM do manifestu aplikacji.

Wszystkie aplikacje muszą ustawić sprzęt docelowy i zawierać odpowiedni plik nagłówka definicji sprzętu.

Pliki nagłówków

 #include <applibs/pwm.h>
 #include "path-to-your-target-hardware.h"

Zastąp ścieżkę "path-to-your-target-hardware.h" ścieżką do pliku nagłówka sprzętu.

Ustawienia manifestu aplikacji

Ustawienie PWM w manifeście aplikacji zawiera listę kontrolerów programu PWM, do których uzyskuje dostęp aplikacja. Aby skonfigurować te ustawienia, dodaj funkcję Pwm do manifestu aplikacji, a następnie dodaj każdy kontroler aplikacji PWM do funkcji. Manifest aplikacji Azure Sphere zawiera więcej szczegółów.

W kodzie zidentyfikuj kontrolery aplikacji PWM za pomocą stałych zdefiniowanych dla sprzętu. Kompilator przetłumaczy te wartości na wartości raw podczas tworzenia aplikacji.

Na przykład oto fragment manifestu aplikacji dla aplikacji, która jest skierowana do tablicy deweloperów odwołań MT3620 (RDB).

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

Poniższy fragment pokazuje, jak określić ten sam kontroler PWM w aplikacji, która jest skierowana do zestawu startowego Avnet MT3620:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Dostęp do aplikacji PWM

Aplikacje usługi Azure Sphere na wysokim poziomie mogą uzyskiwać dostęp do programu PWM, wywołując interfejsy API aplikacji PWM applibs.

Otwieranie kontrolera programu PWM

Aby otworzyć kontroler aplikacji PWM w celu uzyskania dostępu, wywołaj PWM_Open i przekaż jako parametr identyfikator kontrolera do otwarcia. Jeśli połączenie zakończy się pomyślnie, zostanie zwrócony deskryptor pliku. W przeciwnym razie zostanie zwrócona liczba -1.

Ustawianie stanu kanału programu PWM

Aby ustawić lub zaktualizować stan kanału programu PWM, zadzwoń do PWM_Apply. Przekazujesz następujące parametry do PWM_Apply:

  • Deskryptor pliku zwrócony przez PWM_Open

  • Kanał PWM do aktualizacji; ta wartość jest zależna od platformy

  • Okres, cykl cła i polaryzacja stosowane do kanału

  • Włączanie lub wyłączanie kanału

Uwaga

Minimalne i maksymalne limity okresu i cyklu pracy są zależne od urządzenia. Na przykład w przypadku rdzenia wysokiego poziomu MT3620 programy PWM działają z stałą częstotliwością bazową 2 MHz przy włączonych/wyłączonych rejestrach 16-bitowych. Powoduje to nałożenie rozdzielczości cyklu cła 500 ns i efektywnego maksymalnego okresu około 32,77 ms. Aby uzyskać szczegółowe informacje, zapoznaj się z arkuszem danych konkretnego urządzenia.

Pomoc techniczna mt3620

Obsługiwane funkcje programu PWM dla mt3620 są wymienione w sekcji Stan pomocy technicznej MT3620. Podręcznik użytkownika tablicy deweloperów MT3620 opisuje funkcje układu pinezki i przypinania.

Mt3620 ma 12 kanałów PWM, PWM0 — PWM11. Są one zorganizowane w 3 grupy po 4 kanały. Każda grupa jest skojarzona z kontrolerem programu PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Kanały pwm i gpio przypina gpio0 do GPIO11 mapować do tych samych pinezki na MT3260. Jeśli aplikacja korzysta z kontrolera programu PWM, wszystkie pinezki skojarzone z tym kontrolerem są przydzielane do użycia jako wyjścia programu PWM. Nie można ich używać dla żadnego innego typu urządzeń peryferyjnych.