Sdílet prostřednictvím


Použití PWM v aplikacích vysoké úrovně

Toto téma popisuje, jak získat přístup k modulům PWM (Pulse-Width Modulators) zařízení pro použití v aplikacích Azure Sphere vysoké úrovně.

Modulace šířky impulsů se dosahuje proměnlivým cyklem zatížení (poměrem času zapnutí a času volna) pulzního digitálního signálu. Modulátory šířky impulsu se používají v široké škále aplikací, jako je digitální řízení motoru, komunikace a digitální převod na analogové.

Pokud chcete ve svých aplikacích Azure Sphere používat PWM, musíte zahrnout požadované soubory hlaviček a Pwm schopnosti a zadat kontroler pro kanály PWM, ke kterým bude vaše aplikace přistupovat.

Ukázka PWM_HighLevelApp ukazuje, jak používat PWM v jednoduché aplikaci digitálního převodu na analog na zařízení MT3620.

Požadavky PWM

Aplikace, které používají PWM, musí obsahovat příslušný soubor hlaviček a přidat nastavení PWM do manifestu aplikace.

Všechny aplikace musí nastavit svůj cílový hardware a zahrnout odpovídající soubor hlavičky definice hardwaru.

Soubory hlaviček

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

Nahraďte path-to-your-target-hardware.h cestou k souboru hlaviček pro váš hardware.

Nastavení manifestu aplikace

Nastavení PWM v manifestu aplikace obsahuje seznam kontrolérů PWM, ke kterým aplikace přistupuje. Pokud chcete nakonfigurovat tato nastavení, přidejte Pwm funkci do manifestu aplikace a pak do této funkce přidejte každý kontroler PWM. Manifest aplikace Azure Sphere obsahuje další podrobnosti.

V kódu použijte konstanty definované pro váš hardware k identifikaci kontrolerů PWM. Kompilátor při sestavování aplikace přeloží tyto hodnoty na nezpracované hodnoty.

Tady je například výňatek z manifestu aplikace pro aplikaci, která cílí na panel mt3620 pro vývoj referencí (RDB).

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

Následující úryvek ukazuje, jak určit stejný kontroler PWM v aplikaci, která cílí na Úvodní sadu Avnet MT3620:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Přístup k PWM

Aplikace vysoké úrovně Azure Sphere mají přístup k PWM voláním rozhraní APPLIBs PWM API.

Otevření kontroleru PWM

Pokud chcete otevřít kontroler PWM pro přístup, zavolejte PWM_Open a předejte jako parametr ID kontroleru, který se má otevřít. Pokud je volání úspěšné, vrátí se popisovač souboru. V opačném případě se vrátí hodnota -1.

Nastavení stavu kanálu PWM

Pokud chcete nastavit nebo aktualizovat stav kanálu PWM, zavolejte PWM_Apply. Do PWM_Apply předáte následující parametry:

  • Popisovač souboru vrácený PWM_Open

  • Kanál PWM k aktualizaci; tato hodnota závisí na platformě.

  • Období, pracovní cyklus a polarita, které se mají vztahovat na kanál

  • Jestli chcete kanál povolit nebo zakázat

Poznámka

Minimální a maximální limity pro období a pracovní cyklus závisí na zařízení. Například na jádru vysoké úrovně MT3620 běží PWM s pevnou základní frekvencí 2 MHz s 16bitovými registry pro zapnutí/vypnutí. To ukládá rozlišení 500 ns a efektivní maximální dobu přibližně 32,77 ms. Podrobnosti najdete v datovém listu konkrétního zařízení.

Podpora pro MT3620

Podporované funkce PWM pro MT3620 jsou uvedené ve stavu podpory MT3620. Uživatelská příručka vývojové desky MT3620 popisuje rozložení připínáčku a funkce připnutí.

MT3620 má 12 kanálů PWM, PWM0 - PWM11. Jsou uspořádané do 3 skupin po 4 kanálech. Každá skupina je přidružena k kontroleru PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Kanály PWM a GPIO připíná GPIO0 až GPIO11 mapují na stejné kolíky na MT3260. Pokud vaše aplikace používá kontroler PWM, jsou všechny kolíky přidružené k ho kontroleru přiděleny pro použití jako výstupy PWM. Nelze je použít pro žádný jiný typ periferních zařízení.