Compartilhar via


Usar o I2C em aplicativos com capacidade para tempo real

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) 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 oferece suporte ao I2C (Circuito Interintegrado)no modo mestre. O I2C é um barramento serial que conecta a periféricos de velocidade mais baixa a microcontroladores. Ele usa um modelo de vários mestres/subordinado em que um dispositivo mestre controla um conjunto de dispositivos subordinados. O I2C é frequentemente usado com periféricos que exigem apenas comunicação leve e simples com um microcontrolador, como controles de configuração, comutadores de energia e sensores.

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

Observação

O sistema operacional do Azure Sphere não redefine os periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um bom estado conhecido na inicialização ou após a reinicialização.

Compatibilidade do MT3620 com I2C em núcleos em tempo real

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

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

Endereços de dispositivos subordinados de 10 bits não são compatíveis com o MT3620; apenas endereços de 7 bits têm compatibilidade. O MT3620 dá suporte a velocidades de barramento de 100 KHz, 400 KHz e 1 MHz, mas não de 3,4 Mhz. Não há suporte para leituras do I2C de zero byte no MT3620.

Para endereços base de registro, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados do MT3620 e o Manual do Usuário do MT3620 M4; se ainda houver dúvidas, você pode solicitar detalhes da Avnet enviando um Azure.Sphere@avnet.come-mail .

Configurações do manifesto do aplicativo

Para usar o I2C, um RTApp deve listá-lo na seção Funcionalidades do manifesto do aplicativo. Por exemplo, a seguinte linha reserva uma interface mestre do I2C no ISU0 em um chip do MT3620:

"Capabilities": {
   "I2cMaster": [ "ISU0" ] }

O manifesto do aplicativo do Azure Sphere tem mais detalhes sobre o manifesto do aplicativo.

Os aplicativos de amostra I2C

O repositório do CodethinkLabs no GitHub contém vários aplicativos de exemplo que demonstram como usar os periféricos compatíveis com o MT3620 em RTApps do Azure Sphere. Especificamente, o exemplo I2C_RTApp_MT3620_BareMetal demonstra como usar um periférico I2C em um aplicativo com capacidade de tempo real.