Utiliser I2C dans les applications prenant en charge le temps réel
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Azure Sphere prend en charge I2C (Inter-Integrated Circuit) en mode maître. I2C est un bus série qui connecte des périphériques à faible débit à des microcontrôleurs. I2C utilise un modèle multimaître/multisubordonné dans lequel un appareil maître contrôle un ensemble d’appareils subordonnés. I2C est souvent utilisé avec des périphériques qui n’exigent qu’une communication légère et simple avec un microcontrôleur, notamment la définition de contrôles, de commutateurs d’alimentation et de capteurs.
Cette rubrique décrit comment utiliser I2C dans les applications prenant en charge le temps réel (RTApp). 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.
Remarque
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 MT3620 d’I2C sur les cœurs en temps réel
Pour la puce MT3620, les spécifications I2C sont listées dans État de la prise en charge du MT3620. Le guide de l’utilisateur pour la carte de développement MT3620 décrit la disposition des broches et leurs fonctions pour le câblage.
Quand vous configurez la carte de développement MT3620, vous pouvez utiliser n’importe quel bloc ISU comme interface maître I2C. Si vous utilisez un bloc ISU comme interface maître I2C, vous ne pouvez pas utiliser le même bloc comme 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 le sont. La carte MT3620 prend en charge des vitesses de bus de 100 KHz, 400 KHz et 1 MHz, mais pas de 3,4 MHz. Les lectures I2C à zéro octet ne sont pas prises en charge sur le MT3620.
Pour inscrire des adresses de base, des numéros d’interruption, une fréquence d’horloge, une fréquence d’échantillonnage et d’autres détails sur le MT3620, consultez la feuille de données MT3620 M4 et le Manuel utilisateur MT3620 M4 ; si des questions restent, vous pouvez demander des détails auprès d’Avnet par e-mail Azure.Sphere@avnet.com.
Paramètres de manifeste de l’application
Pour utiliser I2C, une application RTApp doit le lister dans la section Capabilities du manifeste de l’application. Par exemple, la ligne suivante réserve une interface maître I2C sur ISU0 sur un processeur 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 dépôt CodethinkLabs sur GitHub contient un certain nombre d’exemples d’applications qui montrent comment utiliser les périphériques pris en charge par le MT3620 dans les applications RTApp Azure Sphere. Plus précisément, l’exemple I2C_RTApp_MT3620_BareMetal montre comment utiliser un périphérique I2C dans une application compatible en temps réel.