Compartir vía


Usar I2C en aplicaciones compatibles con tiempo real

Azure Sphere admite circuito Inter-Integrated (I2C) en modo maestro. I2C es un bus serie que conecta periféricos de menor velocidad a microcontroladores. I2C usa un modelo multi-master/multi subordinado donde un dispositivo maestro controla un conjunto de dispositivos subordinados. I2C se usa a menudo con periféricos que solo requieren una comunicación sencilla y ligera con un microcontrolador, como configurar controles, interruptores de alimentación y sensores.

En este tema se describe cómo usar I2C en aplicaciones compatibles con tiempo real (RTApps). Para obtener información sobre el uso de I2C en aplicaciones de alto nivel, consulte Uso de I2C en aplicaciones de alto nivel.

Nota

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 I2C en los núcleos en tiempo real

Las especificaciones I2C para el chip MT3620 se enumeran en Estado de soporte técnico mt3620. La guía de usuario de la placa de desarrollo MT3620 describe el diseño de los pines y las funciones de cableado.

Al configurar el panel de desarrollo MT3620, puede utilizar cualquier bloque ISU como interfaz maestra I2C. Cuando utiliza un bloque ISU como interfaz maestra I2C, no puede utilizar el mismo bloque que una interfaz SPI o UART.

Las direcciones de dispositivo subordinadas de diez bits no son compatibles con mt3620; solo se admiten las direcciones de 7 bits. El MT3620 admite velocidades de bus de 100 KHz, 400 KHz y 1 MHz, pero no de 3,4 MHz. Las lecturas I2C de cero byte no son compatibles con mt3620.

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 I2C, una RTApp debe enumerarla en la sección Capabilities del manifiesto de la aplicación. Por ejemplo, la siguiente línea reserva una interfaz maestra I2C en ISU0 en un chip MT3620:

"Capabilities": {
   "I2cMaster": [ "ISU0" ] }

El manifiesto de la aplicación Azure Sphere tiene más detalles sobre el manifiesto de la aplicación.

Aplicaciones de ejemplo de I2C

El repositorio CodethinkLabs en GitHub contiene una serie de aplicaciones de muestra que demuestran cómo usar periféricos compatibles con MT3620 en Azure Sphere RTApps. En concreto, la muestra de I2C_RTApp_MT3620_BareMetal muestra cómo usar un periférico I2C en una aplicación compatible con el tiempo real.