Usando GPIOs em aplicativos com capacidade em tempo real
O Azure Sphere dá suporte a 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 dos dispositivos de hardware, controlar LEDs e ler o estado dos comutadores.
Este tópico descreve como usar GPIOs em um aplicativo com capacidade em tempo real (RTApp). Para obter informações sobre como usar GPIOs em aplicativos de alto nível, confira Usando GPIOs em aplicativos de alto nível.
Um RTApp pode usar qualquer um dos GPIOs no dispositivo do Azure Sphere. As seguintes operações têm suporte para GPIO:
- Leitura de entrada
- Definir a saída como alta ou baixa
- Interrupções do software de pesquisa
Nota
O sistema operacional do Azure Sphere não redefine periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um estado conhecido na inicialização e após a reinicialização.
Suporte a MT3620 para GPIOs nos núcleos em tempo real
No MT3620, a maioria dos GPIOs é mapeada para núcleos em tempo real em blocos de quatro, começando com GPIO 0; no entanto, os blocos ISU 0 a 4 têm cinco GPIOs. Como resultado, as solicitações de GPIO do RTApp 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 solicitar GPIO 8 e um RTApp solicitar GPIO 9, o segundo aplicativo retornará um erro na implantação.
Cada LED no RDB MT3620 mapeia para três GPIOs: um para canais vermelho, verde e azul.
Para registrar endereços base, interromper números, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte o Mt3620 Datasheet e o Manual de Usuário MT3620 M4; se as perguntas permanecerem, você poderá solicitar detalhes da Avnet por email .Azure.Sphere@avnet.com
Requisitos de 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 o RTApp possa usar um GPIO, ele deve inicializar os blocos que ele usará. A inicialização é necessária apenas uma vez para cada bloco que o aplicativo usa.
Para obter detalhes sobre o MT3620, confira Suporte a MT3620 para GPIOs nos núcleos em tempo real.
Configurações do 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 para o hardware de destino. Por exemplo, a linha a seguir reserva GPIOs 8 e 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
O aplicativo de exemplo GPIO
O exemplo de GPIO demonstra como usar GPIOs em um RTApp. Os arquivos README fornecem detalhes e instruções.