Uso de GPIOs en aplicaciones compatibles con tiempo real
Azure Sphere admite GPIOs (entrada/salida de uso general). Un GPIO es un tipo de pin digital programable en un circuito integrado. Los GPI No tienen funcionalidad predefinida y su comportamiento puede personalizarse mediante una aplicación. Algunos usos comunes de los GPI Son cambiar el estado de los dispositivos hardware, controlar los LED y leer el estado de los conmutadores.
En este tema se describe cómo usar los GPIOs en una aplicación compatible con tiempo real (RTApp). Para obtener información sobre el uso de GPIOs en aplicaciones de alto nivel, consulte Uso de GPIOs en aplicaciones de alto nivel.
Una RTApp puede usar cualquiera de los GPIOs en el dispositivo Azure Sphere. Las siguientes operaciones son compatibles con GPIO:
- Leer entrada
- Establecer la salida en alta o baja
- Interrupciones del software de sondeo
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 y después del reinicio.
Soporte mt3620 para GPIOs en los núcleos en tiempo real
En el MT3620, la mayoría de los GPIOs se asignan a núcleos en tiempo real en bloques de cuatro, comenzando por GPIO 0; sin embargo, los bloques isu 0 a 4 tienen cinco OPI. Como resultado, las solicitudes de GPIO de RTApp pueden fallar si una aplicación de alto nivel (u otra RTApp) solicita una GPIO en el mismo bloque. Por ejemplo, si una aplicación de alto nivel solicita GPIO 8 y una RTApp solicita GPIO 9, la segunda aplicación devuelve un error en la implementación.
Cada LED del MT3620 RDB se asigna a tres GPIOs: uno para canales rojos, verdes y azules.
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.
Requisitos de GPIO
El código de aplicación necesita una forma de identificar GPIO y sus registros. Puedes encontrar la dirección de la base de registro en la documentación de hardware del fabricante. Antes de que su RTApp pueda usar un GPIO, debe inicializar los bloques que va a usar. La inicialización solo es necesaria una vez para cada bloque que usa la aplicación.
Para obtener más información sobre mt3620, consulte Mt3620 soporte para GPIOs en los núcleos en tiempo real.
Configuración de manifiesto de la aplicación
Para usar un GPIO, una RTApp debe enumerarla en la sección Capabilities del manifiesto de la aplicación. Identifique GPIO mediante el "AppManifestValue" que se define para él en el archivo JSON para el hardware de destino. Por ejemplo, la siguiente línea reserva los OPI 8 y 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
Aplicación de ejemplo de GPIO
La muestra de GPIO muestra cómo usar GPIOs en una RTApp. Los archivos LÉAME proporcionan detalles e instrucciones.