Utilizar o I2C em aplicações com capacidade em tempo real
O Azure Sphere suporta Inter-Integrated Circuit (I2C) no modo mestre. O I2C é um barramento em série que liga periféricos de baixa velocidade a microcontroladores. O I2C utiliza um modelo multimestre/multi-subordinado em que um dispositivo principal controla um conjunto de dispositivos subordinados. O I2C é frequentemente utilizado com periféricos que apenas requerem comunicação simples e simples com um microcontrolador, como controlos de definição, comutadores de energia e sensores.
Este tópico descreve como utilizar o I2C em aplicações com capacidade em tempo real (RTApps). Para obter informações sobre como utilizar o I2C em aplicações de alto nível, veja Utilizar o I2C em aplicações de alto nível.
Nota
O SO do Azure Sphere não repõe periféricos no arranque. As aplicações devem garantir que os periféricos estão num bom estado conhecido no arranque ou após o reinício.
Suporte de MT3620 para I2C nos núcleos em tempo real
As especificações do I2C para o chip MT3620 estão listadas no Estado de Suporte do MT3620. O guia do utilizador do quadro de desenvolvimento MT3620 descreve o esquema de pinos e as funções para cablagem.
Quando configurar o quadro de programador MT3620, pode utilizar qualquer bloco ISU como uma interface mestra I2C. Quando utiliza um bloco ISU como uma interface mestra I2C, não pode utilizar o mesmo bloco que uma interface SPI ou UART.
Os endereços de dispositivo subordinados de dez bits não são suportados no MT3620; apenas são suportados endereços de 7 bits. O MT3620 suporta velocidades de autocarro de 100 KHz, 400 KHz e 1 MHz, mas não 3,4 Mhz. As leituras I2C de byte zero não são suportadas no MT3620.
Para registar endereços base, números de interrupção, velocidade do relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados MT3620 e o Manual de Utilizador mt3620 M4; Se as perguntas permanecerem, pode pedir detalhes à Avnet ao enviar um e-mail para Azure.Sphere@avnet.com.
Definições do manifesto da aplicação
Para utilizar o I2C, um RTApp tem de listá-lo na secção Capacidades do manifesto da aplicação. Por exemplo, a linha seguinte reserva uma interface mestra I2C no ISU0 num chip MT3620:
"Capabilities": {
"I2cMaster": [ "ISU0" ] }
O manifesto da aplicação do Azure Sphere tem mais detalhes sobre o manifesto da aplicação.
As aplicações de exemplo do I2C
O repositório CodethinkLabs no GitHub contém várias aplicações de exemplo que demonstram como utilizar periféricos suportados pelo MT3620 no Azure Sphere RTApps. Especificamente, o exemplo de I2C_RTApp_MT3620_BareMetal demonstra como utilizar um periférico I2C numa aplicação com capacidade em tempo real.