Compartilhar via


Usar I2C em aplicativos com capacidade em tempo real

O Azure Sphere dá suporte a Inter-Integrated Circuit (I2C) no modo master. O I2C é um barramento serial que conecta periféricos de menor velocidade a microcontroladores. O I2C usa um modelo multi-master/multi-subordinado em que um dispositivo master controla um conjunto de dispositivos subordinados. O I2C geralmente é usado com periféricos que exigem apenas comunicação leve simples com um microcontrolador, como controles de configuração, comutadores de energia e sensores.

Este tópico descreve como usar o I2C em aplicativos com capacidade em tempo real (RTApps). Para obter informações sobre como usar o I2C em aplicativos de alto nível, consulte Usando I2C em aplicativos de alto nível.

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.

Suporte a MT3620 para I2C nos núcleos em tempo real

As especificações de I2C para o chip MT3620 estão listadas no Status de Suporte do MT3620. O guia de usuário do painel de desenvolvimento MT3620 descreve o layout do pino e as funções para a fiação.

Ao configurar a placa de desenvolvimento MT3620, você pode usar qualquer bloco ISU como uma interface I2C master. Quando você usa um bloco ISU como uma interface de master I2C, não é possível usar o mesmo bloco que uma interface SPI ou UART.

Não há suporte para endereços de dispositivo subordinados de dez bits no MT3620; há suporte para apenas endereços de 7 bits. O MT3620 dá suporte a velocidades de ônibus de 100 KHz, 400 KHz e 1 MHz, mas não 3,4 Mhz. Não há suporte para leituras de I2C de bytes zero no MT3620.

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

Configurações do 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 de master I2C no 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 compatíveis com MT3620 no Azure Sphere RTApps. Especificamente, o exemplo I2C_RTApp_MT3620_BareMetal demonstra como usar um periférico I2C em um aplicativo capaz em tempo real.