Condividi tramite


Usare PWA in applicazioni di alto livello

In questo argomento viene descritto come accedere ai modulari a larghezza pulsata (PWA) del dispositivo per l'uso in applicazioni di alto livello Azure Sphere.

La codifica a impulso è ottenuta variando il ciclo di servizio (rapporto tra tempo di accensione e tempo libero) di un segnale digitale pulsato. I modulari a larghezza d'impulso vengono utilizzati in un'ampia gamma di applicazioni come il controllo del motore digitale, la comunicazione e la conversione da digitale a analogico.

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

Nell'esempio PWM_HighLevelApp viene illustrato come utilizzare PWM in una semplice applicazione di conversione da digitale a analogico in un dispositivo MT3620.

Requisiti pwm

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

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

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 per l'hardware.

Impostazioni del manifesto dell'applicazione

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

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

Ad esempio, ecco un estratto di un manifesto dell'applicazione per un'applicazione che si rivolge a una scheda di sviluppo di riferimento (RDB) di MT3620.

 "Pwm": [ "$MT3620_RDB_LED_PWM_CONTROLLER2" ]

Il seguente estratto mostra come specificare lo stesso controller PWM in un'applicazione che riguarda l'Starter Kit Avnet MT3620:

  "Pwm": [ "$AVNET_MT3620_SK_PWM_CONTROLLER2" ]

Accesso PWM

Le applicazioni di alto livello azure sphere possono accedere a un 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 per 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. Per PWM_Apply, passare i seguenti parametri:

  • Descrittore di file restituito da PWM_Open

  • Il canale PWM per l'aggiornamento; questo valore dipende dalla piattaforma

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

  • Se abilitare o disabilitare il canale

Nota

I limiti minimi e massimi per il periodo e il ciclo di servizio dipendono dal dispositivo. Ad esempio, nel core di alto livello MT3620, le PWA vengono eseguite a una frequenza di base fissa di 2 MHz con registri di confronto di attivazione/disattivazione a 16 bit. Ciò impone una risoluzione del duty cycle di 500 ns e un periodo massimo effettivo di circa 32,77 ms. Per informazioni dettagliate, consultare l'elenco dati del dispositivo specifico.

Supporto per MT3620

Le funzionalità PWM supportate per MT3620 sono elencate nello stato del supporto per MT3620. Il manuale dell'utente della bacheca di sviluppo MT3620 descrive le funzioni di layout pin e pin.

L'MT3620 ha 12 canali PWM, PWM0 - PWM11. Sono organizzati in 3 gruppi di 4 canali. Ogni gruppo è associato a un controller PWM (PWM-CONTROLLER-0, PWM-CONTROLLER-1, PWM-CONTROLLER-2). I canali PWM e GPIO bloccano la mappa da GPIO0 a GPIO11 agli stessi pin nell'MT3260. Se l'applicazione utilizza un controller PWM, tutti i pin associati a tale controller vengono allocati per l'uso come output PWM. Non possono essere usate per altri tipi di periferiche.