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.