Utiliser I2C dans les applications compatibles en temps réel
Azure Sphere prend en charge Inter-Integrated Circuit (I2C) en mode master. I2C est un bus série qui connecte des périphériques à vitesse inférieure à des microcontrôleurs. I2C utilise un modèle multi-master/multi-subordonné où un appareil master contrôle un ensemble d’appareils subordonnés. L’I2C est souvent utilisé avec des périphériques qui ne nécessitent qu’une simple communication légère avec un microcontrôleur, comme des commandes de réglage, des commutateurs d’alimentation et des capteurs.
Cette rubrique explique comment utiliser I2C dans des applications compatibles en temps réel (RTApps). Pour plus d’informations sur l’utilisation d’I2C dans les applications de haut niveau, consultez Utilisation d’I2C dans les applications de haut niveau.
Note
Le système d’exploitation Azure Sphere ne réinitialise pas les périphériques au démarrage. Vos applications doivent s’assurer que les périphériques sont dans un état correct connu au démarrage ou après le redémarrage.
Prise en charge de MT3620 pour I2C sur les cœurs en temps réel
Les spécifications I2C pour la puce MT3620 sont répertoriées dans État de support MT3620. Le guide de l’utilisateur de la carte de développement MT3620 décrit la disposition des broches et les fonctions de câblage.
Lorsque vous configurez la carte de développement MT3620, vous pouvez utiliser n’importe quel bloc ISU comme interface de master I2C. Lorsque vous utilisez un bloc ISU comme interface de master I2C, vous ne pouvez pas utiliser le même bloc qu’une interface SPI ou UART.
Les adresses d’appareils subordonnés dix bits ne sont pas prises en charge sur le MT3620 ; seules les adresses 7 bits sont prises en charge. Le MT3620 prend en charge les vitesses de bus 100 KHz, 400 KHz et 1 MHz, mais pas 3,4 MHz. Les lectures I2C de zéro octet ne sont pas prises en charge sur le MT3620.
Pour connaître les adresses de base d’inscription, les numéros d’interruption, la fréquence d’horloge, la fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 et le manuel de l’utilisateur MT3620 M4. Si des questions subsistent, vous pouvez demander des détails à Avnet en envoyant un e-mail à Azure.Sphere@avnet.com.
Paramètres du manifeste d’application
Pour utiliser I2C, une application en temps réel doit la répertorier dans la section Fonctionnalités du manifeste de l’application. Par exemple, la ligne suivante réserve une interface de master I2C sur ISU0 sur une puce MT3620 :
"Capabilities": {
"I2cMaster": [ "ISU0" ] }
Le manifeste d’application Azure Sphere contient plus de détails sur le manifeste de l’application.
Exemples d’applications I2C
Le référentiel CodethinkLabs sur GitHub contient un certain nombre d’exemples d’applications qui montrent comment utiliser des périphériques pris en charge par MT3620 dans les rtapps Azure Sphere. Plus précisément, l’exemple I2C_RTApp_MT3620_BareMetal montre comment utiliser un périphérique I2C dans une application en temps réel.