Use I2C em aplicações 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 Circuito Interintegrado (I2C) no modo mestre. I2C é um barramento serial que conecta periféricos de baixa velocidade a microcontroladores. O I2C usa um modelo multi-mestre/multi-subordinado onde um dispositivo mestre controla um conjunto de dispositivos subordinados. O I2C é frequentemente usado com periféricos que exigem apenas uma comunicação leve simples com um microcontrolador, como controles de configuração, interruptores de energia e sensores.
Este tópico descreve como usar I2C em aplicativos com capacidade de tempo real (RTApps). Para obter informações sobre como usar I2C em aplicativos de alto nível, consulte Usando I2C em aplicativos de alto nível.
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 ou após a reinicialização.
Suporte MT3620 para I2C nos núcleos em tempo real
As especificações I2C para o chip MT3620 estão listadas em MT3620 Support Status. O guia do usuário da placa de desenvolvimento MT3620 descreve o layout do pino e as funções da fiação.
Ao configurar a placa de desenvolvimento MT3620, você pode usar qualquer bloco ISU como uma interface mestre I2C. Quando você usa um bloco ISU como uma interface mestre I2C, você não pode usar o mesmo bloco como uma interface SPI ou UART.
Endereços de dispositivo subordinados de dez bits não são suportados no MT3620; apenas endereços de 7 bits são suportados. O MT3620 suporta velocidades de barramento de 100 KHz, 400 KHz e 1 MHz, mas não 3,4 Mhz. Leituras I2C de zero byte não são suportadas no MT3620.
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
Configurações de manifesto do aplicativo
Para usar o I2C, um RTApp deve listá-lo na seção Recursos do manifesto do aplicativo. Por exemplo, a linha a seguir reserva uma interface mestre I2C em ISU0 em um chip MT3620:
"Capabilities": {
"I2cMaster": [ "ISU0" ] }
O manifesto do aplicativo Azure Sphere tem mais detalhes sobre o manifesto do aplicativo.
Os aplicativos de exemplo I2C
O repositório CodethinkLabs no GitHub contém vários aplicativos de exemplo que demonstram como usar periféricos com suporte MT3620 no Azure Sphere RTApps. Especificamente, o exemplo de I2C_RTApp_MT3620_BareMetal demonstra como usar um periférico I2C em um aplicativo capaz de tempo real.