Compartir a través de


Uso de GPIO aplicaciones con respuesta en tiempo real

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

Azure Sphere admite GPIO (entrada/salida de uso general). Un GPIO es un tipo de pin digital programable en un circuito integrado. Los GPIO no tienen una funcionalidad predefinida y su comportamiento se puede personalizar con una aplicación. Algunos usos habituales de los GPIO son cambiar el estado de los dispositivos de hardware, controlar los LED y leer el estado de los conmutadores.

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

Una RTApp puede usar cualquiera de los GPIO en el dispositivo de Azure Sphere. Los GPIO admiten las operaciones siguientes:

  • Entrada de lectura
  • Establecimiento de la salida en alta o baja
  • Sondeo de interrupciones de software

Nota:

El sistema operativo Azure Sphere no restablece los periféricos al iniciarse. Las aplicaciones deben asegurarse de que los periféricos están en un estado conocido en el inicio y después del reinicio.

Compatibilidad de MT3620 con GPIO en los núcleos en tiempo real

En MT3620, la mayoría de los GPIO se asignan a núcleos en tiempo real en bloques de cuatro, empezando por GPIO 0; sin embargo, los bloques 0-4 de ISU tienen cinco GPIO. Como resultado, las solicitudes de GPIO de una RTApp puede generar un error si una aplicación de alto nivel, u otra RTApp, solicita un GPIO del mismo bloque. Por ejemplo, si una aplicación de alto nivel solicita el GPIO 8 y una RTApp solicita el GPIO 9, la segunda aplicación devuelve un error en la implementación.

Cada indicador LED del RDB MT3620 se asigna a tres GPIO: uno para cada uno de los canales rojo, verde y azul.

Para registrar direcciones base, números de interrupción, frecuencia de reloj, frecuencia de muestreo y otros detalles sobre MT3620, consulte la hoja de datos MT3620 y el Manual de usuario de MT3620 M4; si las preguntas permanecen, puede solicitar detalles de Avnet enviando un correo electrónico Azure.Sphere@avnet.coma .

Requisitos de los GPIO

El código de la aplicación necesita una forma de identificar el GPIO y sus registros. Puede encontrar la dirección base del registro en la documentación del hardware del fabricante. Para que la RTApp pueda usar un GPIO, debe inicializar los bloques que va a usar. La inicialización se requiere solo una vez por cada bloque la aplicación usa.

Para obtener más información sobre la compatibilidad con MT3620, consulte compatibilidad con MT3620 para GPIOs en los núcleos en tiempo real.

Configuración del manifiesto de aplicación

Para usar un GPIO, una RTApp debe enumerarlo en la sección Funcionalidades del manifiesto de aplicación. Identifique el GPIO mediante el valor "AppManifestValue" que se define para el GPIO en el archivo JSON para el hardware de destino. Por ejemplo, la siguiente línea reserva los GPIO 8 y 12:

"Capabilities": {
 "Gpio": [ 8, 12 ]
}

Aplicación de ejemplo GPIO

En el ejemplo gpIO se muestra cómo usar GPIOs en una RTApp. Los archivos LÉAME proporcionan detalles e instrucciones.