Condividi tramite


Usare PWM in applicazioni di alto livello

Importante

Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).

Questo argomento descrive come accedere ai modulatori PWM (Pulse Width Modulator) di dispositivi, da usare in applicazioni di alto livello di Azure Sphere.

La modulazione di larghezza di impulso (PWM) viene ottenuta variando il ciclo di lavoro (rapporto tra "on time" e "off time") di un segnale digitale a impulsi. I modulatori PWM vengono usati in un'ampia gamma di applicazioni, ad esempio per il controllo digitale dei motori, le comunicazioni e la conversione digitale-analogico.

Per usare PWM nelle applicazioni Azure Sphere, è necessario includere i file di intestazione e Pwm le funzionalità necessari e specificare il controller per i canali PWM a cui accederà l'applicazione.

L'esempio PWM_HighLevelApp illustra come usare PWM in un'applicazione semplice per la conversione digitale-analogico in un dispositivo MT3620.

Requisiti di PWM

Le applicazioni che usano PWM devono includere il file di intestazione appropriato e aggiungere le impostazioni di PWM al manifesto dell'applicazione.

Tutte le applicazioni devono impostare il relativo hardware di destinazione e includere il corrispondente file di intestazione di definizione dell'hardware.

File di intestazione

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

Sostituire "path-to-your-target-hardware.h" con il percorso del file di intestazione dell'hardware in uso.

Impostazioni del manifesto dell'applicazione

L'impostazione di PWM nel manifesto dell'applicazione include i controller PWM a cui accede l'applicazione. Per configurare queste impostazioni, aggiungere la funzionalità Pwm al manifesto dell'applicazione e quindi aggiungere ogni controller PWM a tale funzionalità. Il manifesto dell'applicazione Azure Sphere include altri dettagli.

Nel codice usare le costanti definite per l'hardware in uso per identificare i controller PWM. Il compilatore convertirà questi valori in valori non elaborati quando si compila l'app.

Ad esempio, di seguito è riportato un estratto del manifesto di un'applicazione che ha come destinazione una scheda RDB (Reference Development Board) MT3620.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

Nell'estratto seguente viene illustrato come specificare lo stesso controller PWM in un'applicazione che ha come destinazione Avnet MT3620 Starter Kit:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Accesso a PWM

Le applicazioni di alto livello di Azure Sphere possono accedere a un controller PWM chiamando le API PWM di Applibs.

Aprire un controller PWM

Per aprire un controller PWM per l'accesso, chiamare PWM_Open e passare come parametro l'ID del controller da aprire. Se la chiamata ha esito positivo, verrà restituito un descrittore di file. In caso contrario, verrà restituito -1.

Impostare lo stato di un canale PWM

Per impostare o aggiornare lo stato di un canale PWM, chiamare PWM_Apply. A PWM_Apply vengono passati i parametri seguenti:

  • Descrittore di file restituito da PWM_Open

  • Canale PWM da aggiornare (il valore dipende dalla piattaforma)

  • Periodo, ciclo di lavoro e polarità da applicare al canale

  • Parametro che indica se abilitare o disabilitare il canale

Nota

I limiti minimo e massimo per il periodo e il ciclo di lavoro dipendono dal dispositivo. Ad esempio, nel core di alto livello MT3620, i PWM vengono eseguiti a una frequenza di base fissa di 2 MHz con registri di confronto a 16 bit on/off. Questo impone l'uso di una risoluzione del ciclo di lavoro di 500 ns e un periodo di validità massimo pari a circa 32,77 ms. Per informazioni dettagliate, consultare il foglio dati del dispositivo specifico.

Supporto di MT3620

Le funzionalità PWM supportate per MT3620 sono indicate in MT3620: stato del supporto. Il manuale utente della scheda di sviluppo MT3620 descrive il layout dei pin e le relative funzioni.

Il dispositivo MT3620 ha 12 canali PWM, da PWM0 a PWM11, organizzati in tre gruppi di quattro canali. Ogni gruppo è associato a un controller PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). Viene eseguito il mapping dei canali PWM e dei pin GPIO da GPIO0 a GPIO11 ai pin corrispondenti nel dispositivo MT3260. Se l'applicazione usa un controller PWM, tutti i pin associati a tale controller vengono allocati per l'uso come output di PWM. Non possono essere usati per altri tipi di periferiche.