Usar I2S en aplicaciones compatibles con tiempo real
Azure Sphere es compatible con la interfaz Inter-IC Sound (I2S).
I2S es un estándar de interfaz de bus serie usado para conectar dispositivos de audio digitales juntos. Un bus I2S tiene señales de datos seriales y de reloj independientes.
En este tema se describe cómo usar I2S en aplicaciones compatibles con tiempo real (RTApps).
Nota
- Actualmente, I2S no es compatible con aplicaciones de alto nivel.
- Azure Sphere OS no restablece los periféricos al iniciarse. Las aplicaciones deben garantizar que los periféricos estén en un estado conocido durante el inicio o después del reinicio.
Compatibilidad con MT3620 para I2S en los núcleos en tiempo real
En esta sección se describen las opciones de I2S que solo se aplican al ejecutar Azure Sphere en mt3620.
MT3620 incluye dos interfaces I2S: I2S0 e I2S1. Se pueden asignar al núcleo en tiempo real asignado durante la asignación de recursos después del arranque del sistema. Cada interfaz I2S está protegida por un módulo de asignación principal que niega el acceso de los MCU no asignados.
El módulo I2S solo admite el modo subordinado con códecs externos. El modo maestro y los códecs internos no son compatibles. Sin embargo, se proporciona un reloj maestro (I2S_MCLK) para que los códecs externos generen I2S Frame Sync (I2S_FS) y un reloj de bits I2S (I2S_BCLK).
Los códecs de audio internos y el modo maestro no son compatibles. La interfaz I2S se utiliza para comunicarse con códecs de audio externos a través del bus I2S como subordinado I2S.
Se admiten dos formatos de datos: protocolo estándar I2S y protocolo de multiplexación de división de tiempo (TDM).
Dos bloques de cinco pines están multiplexados entre GPIO e I2S (I2S0:GPIO56-GPIO60, I2S1:GPIO61-GPIO65).
Para las direcciones base del registro, los números de interrupción, la velocidad de reloj, la frecuencia de muestreo y otros detalles sobre el MT3620, consulte la hoja de datos mt3620 y el manual de usuario mt3620 M4; si quedan preguntas, puedes solicitar detalles de Avnet por correo electrónico Azure.Sphere@avnet.com.
Configuración de manifiesto de la aplicación
Para usar la interfaz subordinada de I2S, una RTApp debe enumerarla en la sección Capabilities del manifiesto de la aplicación. Por ejemplo, a continuación se agrega una interfaz I2S a la lista de recursos a los que puede acceder una aplicación:
"Capabilities": {
"I2sSubordinate": [ "I2S0" ] }
La interfaz subordinada del Inter-IC Sound (I2S) sólo es utilizada por una RTApp. Esta funcionalidad no está disponible para aplicaciones de alto nivel.
El manifiesto de la aplicación Azure Sphere tiene más detalles sobre el manifiesto de la aplicación.
Aplicaciones de ejemplo de I2S
El repositorio CodethinkLabs en GitHub contiene una serie de aplicaciones de muestra que demuestran cómo usar periféricos compatibles con MT3620 en aplicaciones compatibles con Azure Sphere en tiempo real. Específicamente, la muestra de I2S_RTApp_MT3620_BareMetal muestra cómo incorporar un periférico I2S en una aplicación compatible con el tiempo real.