Usar periféricos em um aplicativo com capacidade em tempo real

Os RTApps (aplicativos com capacidade em tempo real) podem mapear periféricos para seu uso exclusivo. Para usar um ou mais periféricos em um RTApp:

  • Adicione o periférico ao manifesto do aplicativo.
  • Adicione um manipulador de interrupção (se necessário) e outro código de suporte ao aplicativo.
  • Adicione código para garantir que cada periférico esteja em um bom estado conhecido na inicialização.

Importante

Para obter informações específicas de hardware sobre como programar periféricos para um RTApp, consulte a documentação do fabricante de hardware. 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

Todos os recursos que um RTApp usa devem ser especificados no manifesto do aplicativo. Em um RTApp, você deve usar o nome do recurso atribuído ao AppManifestValue no arquivo JSON de definição de hardware para o chip de destino. Você não pode usar o nome de alto nível atribuído ao recurso no arquivo de cabeçalho de definição de hardware. Por exemplo, para encontrar o valor para identificar o I2C no ISU0 no hardware MT3620, procure no arquivo mt3620.json na pasta HardwareDefinitions instalada na pasta SDK do Microsoft Azure Sphere. Este periférico é definido da seguinte maneira no arquivo JSON:

 {"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},

Observe que o valor atribuído a AppManifestValue para o periférico I2C é "ISU0".

Aplicativos carregados simultaneamente não podem compartilhar recursos; O uso de recursos é exclusivo para um único aplicativo. O sistema operacional do Azure Sphere executa várias tarefas importantes quando carrega o aplicativo:

  • Configura o multiplexing para que os pinos associados ao periférico sejam configurados para a funcionalidade solicitada.
  • Configura o mapeamento principal, que envolve a configuração de firewalls para que o aplicativo tenha acesso aos registros associados aos periféricos solicitados.
  • Verifica o manifesto e falha ao carregar o aplicativo se ele reivindicar recursos que já foram reivindicados por outro aplicativo.

O restante desta seção fornece detalhes sobre como usar periféricos específicos.

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 ou após a reinicialização.

Uma reinicialização de dispositivo é disparada quando um novo aplicativo que usa periféricos é instalado e as seguintes condições são atendidas:

Se uma reinicialização do dispositivo for iniciada, aguarde até que a reinicialização seja concluída e o dispositivo se torne responsivo.

Tópico Descrição
Usar ADCs em aplicativos com capacidade em tempo real Descreve como usar conversores analógicos para digitais (ADCs) com o Azure Sphere.
Usar GPIO em aplicativos com capacidade em tempo real Descreve como usar o GPIO (entrada/saída) de uso geral com o Azure Sphere.
Usar GPT em aplicativos com capacidade em tempo real Descreve como usar temporizadores de uso geral (GPT) com o Azure Sphere.
Usar I2C em aplicativos com capacidade em tempo real Descreve como usar Inter-Integrated Circuit (I2C) para comunicação serial.
Usar o I2S em aplicativos com capacidade em tempo real Descreve como usar o I2S (Integrated Interchip Sound) com o Azure Sphere
Usar PWM em aplicativos com capacidade em tempo real Descreve como usar a PWM (modulação de largura de pulso) com o Azure Sphere.
Usar o SPI em aplicativos com capacidade em tempo real Descreve como usar a SPI (Interface Periférica Serial) para comunicação serial.
Usar UARTs em aplicativos com capacidade em tempo real Descreve como usar UARTs para comunicação serial.
Usar interrupções externas em aplicativos com capacidade em tempo real Descreve como usar interrupções externas em um RTApp para responder a sinais externos.
Usar temporizadores de watchdog em aplicativos com capacidade em tempo real Descreve os efeitos do uso de temporizadores de cão de guarda nos núcleos MT3620 em tempo real.