Usando GPIOs em aplicativos com capacidade de tempo real
Importante
Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) 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).
O Azure Sphere suporta GPIOs (entrada/saída de uso geral). Um GPIO é um tipo de pino digital programável em um circuito integrado. Os GPIOs não têm funcionalidade predefinida e seu comportamento pode ser personalizado por um aplicativo. Alguns usos comuns para GPIOs são alterar o estado de dispositivos de hardware, LEDs de controle e ler o estado de switches.
Este tópico descreve como usar GPIOs em um aplicativo com capacidade de tempo real (RTApp). Para obter informações sobre como usar GPIOs em aplicativos de alto nível, consulte Usando GPIOs em aplicativos de alto nível.
Um RTApp pode usar qualquer um dos GPIOs no dispositivo Azure Sphere. As seguintes operações são suportadas para GPIO:
- Ler entrada
- Definir a saída como alta ou baixa
- O software de sondagem interrompe
Nota
O sistema operacional Azure Sphere não redefine periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um estado em boas condições na inicialização e após a reinicialização.
Suporte MT3620 para GPIOs nos núcleos em tempo real
No MT3620, a maioria dos GPIOs são mapeados para núcleos em tempo real em blocos de quatro, começando com GPIO 0; no entanto, os blocos ISU 0 - 4 têm cinco GPIOs. Como resultado, as solicitações RTApp GPIO podem falhar se um aplicativo de alto nível (ou outro RTApp) solicitar um GPIO no mesmo bloco. Por exemplo, se um aplicativo de alto nível solicita GPIO 8 e um RTApp solicita GPIO 9, o segundo aplicativo retorna um erro na implantação.
Cada LED no RDB MT3620 mapeia para três GPIOs: um para canais vermelhos, verdes e azuis.
Para registrar endereços base, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de dados MT3620 e o Manual do Usuário MT3620 M4, se ainda houver dúvidas, você pode solicitar detalhes da Avnet por e-mail.Azure.Sphere@avnet.com
Requisitos do GPIO
Seu código de aplicativo precisa de uma maneira de identificar o GPIO e seus registros. Você pode encontrar o endereço base de registro na documentação de hardware do fabricante. Antes que seu RTApp possa usar um GPIO, ele deve inicializar os blocos que ele vai usar. A inicialização é necessária apenas uma vez para cada bloco usado pelo aplicativo.
Para obter detalhes sobre o MT3620, consulte Suporte MT3620 para GPIOs nos núcleos em tempo real.
Configurações de manifesto do aplicativo
Para usar um GPIO, um RTApp deve listá-lo na seção Recursos do manifesto do aplicativo. Identifique o GPIO usando o "AppManifestValue" definido para ele no arquivo JSON do hardware de destino. Por exemplo, a seguinte linha reserva GPIOs 8 e 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
O aplicativo de exemplo GPIO
O exemplo GPIO demonstra como usar GPIOs em um RTApp. Os arquivos LEIA-ME fornecem detalhes e instruções.