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í.