Usare I2S in applicazioni in tempo reale

Azure Sphere supporta l'interfaccia I2S (Inter-IC Sound).

I2S è uno standard di interfaccia bus seriale utilizzato per connettere dispositivi audio digitali insieme. Un bus I2S ha segnali di dati di orologio e seriali separati.

Questo argomento descrive come usare I2S in applicazioni in tempo reale (RTApps).

Nota

  • I2S non è attualmente supportato per l'uso in applicazioni di alto livello.
  • Il sistema operativo Azure Sphere non reimposta le periferiche all'avvio. Le applicazioni devono verificare che le periferiche siano in uno stato noto all'avvio o dopo il riavvio.Your applications should ensure that peripherals are in a known-good state on start-up or after restart.

Supporto di MT3620 per I2S sui core in tempo reale

Questa sezione descrive le opzioni I2S che si applicano solo quando si esegue Azure Sphere su MT3620.

MT3620 dispone di due interfacce I2S: I2S0 e I2S1. Possono essere allocate al core in tempo reale assegnato durante l'allocazione delle risorse dopo l'avvio del sistema. Ogni interfaccia I2S è protetta da un modulo di mapping di base che impedisce l'accesso a MCUs non assegnati.

Il modulo I2S supporta solo la modalità subordinata con codec esterni. I codec interni e la modalità master non sono supportati. Tuttavia, viene fornito un orologio master (I2S_MCLK) per i codec esterni per generare I2S Frame Sync (I2S_FS) e un orologio a bit I2S (I2S_BCLK).

I codec audio interni e la modalità master non sono supportati. L'interfaccia I2S viene utilizzata per comunicare con codec audio esterni tramite il bus I2S come subordinato I2S.

Sono supportati due formati di dati: il protocollo I2S standard e il protocollo TDM (Time Division Multiplexing).

Due blocchi di cinque pin sono multipli tra GPIO e I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65).

Per gli indirizzi di base del registro, i numeri di interrupt, la frequenza di clock, la frequenza di campionamento e altri dettagli sull'MT3620, vedi il foglio dati MT3620 e il manuale dell'utente di MT3620 M4; se le domande rimangono, è possibile richiedere dettagli a Avnet inviando un messaggio di posta elettronica.Azure.Sphere@avnet.com

Impostazioni del manifesto dell'applicazione

Per usare l'interfaccia subordinata I2S, un'RTApp deve elencarla nella sezione Funzionalità del manifesto dell'applicazione. Ad esempio, la seguente aggiunge un'interfaccia I2S all'elenco di risorse accessibili da un'applicazione:

"Capabilities": {
 "I2sSubordinate": [ "I2S0" ]  }

L'interfaccia subordinata I2S (Inter-IC Sound) viene utilizzata solo da una RTApp. Questa funzionalità non è disponibile per le applicazioni di alto livello.

Il manifesto dell'applicazione Azure Sphere ha maggiori dettagli sul manifesto dell'applicazione.

Applicazioni di esempio I2S

Il repository CodethinkLabs su GitHub contiene una serie di applicazioni di esempio che dimostrano come usare le periferiche supportate da MT3620 nelle applicazioni in tempo reale di Azure Sphere. In particolare, l'esempio I2S_RTApp_MT3620_BareMetal mostra come incorporare una periferica I2S in un'applicazione che supporta il tempo reale.