Freigeben über


Verwenden von I2C in Echtzeitanwendungen

Azure Sphere unterstützt Inter-Integrated Circuit (I2C) im master Modus. I2C ist ein serieller Bus, der Peripheriegeräte mit niedrigerer Geschwindigkeit mit Mikrocontrollern verbindet. I2C verwendet ein Multi-master/Multi-Subordinate-Modell, bei dem ein master Gerät eine Gruppe untergeordneter Geräte steuert. I2C wird häufig mit Peripheriegeräten verwendet, die nur eine einfache, einfache Kommunikation mit einem Mikrocontroller erfordern, z. B. Einstellungssteuerelemente, Netzschalter und Sensoren.

In diesem Thema wird die Verwendung von I2C in Echtzeitanwendungen (RTApps) beschrieben. Informationen zur Verwendung von I2C in allgemeinen Anwendungen finden Sie unter Verwenden von I2C in allgemeinen Anwendungen.

Hinweis

Das Azure Sphere-Betriebssystem setzt Peripheriegeräte beim Start nicht zurück. Ihre Anwendungen sollten sicherstellen, dass sich Peripheriegeräte beim Start oder nach dem Neustart in einem bekannten fehlerfreien Zustand befinden.

MT3620-Unterstützung für I2C auf den Echtzeitkernen

Die I2C-Spezifikationen für den MT3620-Chip sind im MT3620-Supportstatus aufgeführt. Im Benutzerhandbuch des MT3620-Entwicklungsboards werden das Pinlayout und die Funktionen für die Verdrahtung beschrieben.

Wenn Sie das MT3620-Entwicklungsboard konfigurieren, können Sie einen beliebigen ISU-Block als I2C-master-Schnittstelle verwenden. Wenn Sie einen ISU-Block als I2C-master-Schnittstelle verwenden, können Sie nicht denselben Block wie eine SPI- oder UART-Schnittstelle verwenden.

Untergeordnete Zehn-Bit-Geräteadressen werden auf dem MT3620 nicht unterstützt. nur 7-Bit-Adressen werden unterstützt. Der MT3620 unterstützt 100 KHz, 400 KHz und 1 MHz Busgeschwindigkeiten, aber nicht 3,4 MHz. Null-Byte-I2C-Lesevorgänge werden auf dem MT3620 nicht unterstützt.

Informationen zur Registrierung von Basisadressen, Interruptnummern, Taktfrequenz, Samplinghäufigkeit und anderen Details zum MT3620 finden Sie im MT3620-Datenblatt und im MT3620 M4-Benutzerhandbuch. Wenn Fragen bestehen, können Sie Details von Avnet anfordern, indem Sie eine E-Mail senden Azure.Sphere@avnet.com.

Anwendungsmanifesteinstellungen

Um I2C verwenden zu können, muss eine RTApp diese im Abschnitt Funktionen des Anwendungsmanifests auflisten. Beispielsweise reserviert die folgende Zeile eine I2C-master-Schnittstelle auf ISU0 auf einem MT3620-Chip:

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

Das Azure Sphere-Anwendungsmanifest enthält weitere Details zum Anwendungsmanifest.

Die I2C-Beispielanwendungen

Das CodethinkLabs-Repository auf GitHub enthält eine Reihe von Beispielanwendungen, die veranschaulichen, wie mt3620 unterstützte Peripheriegeräte in Azure Sphere RTApps verwendet werden. Das beispiel I2C_RTApp_MT3620_BareMetal veranschaulicht insbesondere die Verwendung eines I2C-Peripheriegeräts in einer Echtzeitanwendung.