Compartilhar via


Usar I2S em aplicativos com capacidade para tempo real

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

Azure Sphere é compatível com a interface do I2S (Inter-IC Sound).

O I2S é um padrão de interface de barramento serial usado para conectar dispositivos de áudio digital. Um barramento I2S tem sinais de dados de relógio e serial separados.

Este tópico descreve como usar o I2S em RTApps (aplicativos com capacidade para tempo real).

Observação

  • Atualmente, o I2S não é compatível com o uso em aplicativos de alto nível.
  • O sistema operacional do Azure Sphere não redefine os periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um bom estado conhecido na inicialização ou após a reinicialização.

Suporte do MT3620 para o I2S em núcleos em tempo real

Esta seção descreve as opções do I2S aplicáveis somente quando o Azure Sphere é executado no MT3620.

O MT3620 apresenta duas interfaces I2S: I2S0 e I2S1. Eles podem ser alocados para o núcleo em tempo real atribuído durante a alocação de recurso após a inicialização do sistema. Cada interface I2S é protegida por um módulo de mapeamento de núcleo que nega o acesso de MCUs não atribuídos.

O módulo I2S só é compatível com o modo subordinado com codecs externos. O modo mestre e os codecs internos não são compatíveis. No entanto, um relógio mestre (I2S_MCLK) é fornecido para codecs externos para gerar a sincronização de quadros do I2S (I2S_FS) e um relógio de bit do I2S (I2S_BCLK).

Os codecs de áudio internos e o modo mestre não são compatíveis. A interface do I2S é usada para se comunicar com codecs de áudio externos por meio do barramento I2S como um subordinado do I2S.

Dois formatos de dados são compatíveis: protocolo padrão do I2S e o protocolo TDM (Multiplexação por divisão de tempo).

Dois blocos de cinco pinos são multiplexados entre GPIO e I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65).

Para endereços base de registro, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados do MT3620 e o Manual do Usuário do MT3620 M4; se ainda houver dúvidas, você pode solicitar detalhes da Avnet enviando um Azure.Sphere@avnet.come-mail .

Configurações do manifesto do aplicativo

Para usar a interface subordinada do I2S, um RTApp deve listá-la na seção Funcionalidades do manifesto do aplicativo. Por exemplo, o seguinte adiciona uma interface do I2S à lista de recursos que podem ser acessados por um aplicativo:

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

A interface subordinada do I2S (Inter-IC Sound) só é usada por um RTApp. A funcionalidade não está disponível para aplicativos de alto nível.

O manifesto do aplicativo do Azure Sphere tem mais detalhes sobre o manifesto do aplicativo.

Os aplicativos de amostra I2S

O repositório do CodethinkLabs no GitHub contém vários aplicativos de exemplo que demonstram como usar os periféricos compatíveis com o MT3620 em aplicativos com capacidade para tempo real do Azure Sphere. Especificamente, o exemplo I2S_RTApp_MT3620_BareMetal demonstra como incorporar um periférico I2S em um aplicativo com capacidade de tempo real.