I2C gebruiken in realtime geschikte toepassingen
Belangrijk
Dit is de Documentatie voor Azure Sphere (verouderd). Azure Sphere (verouderd) wordt op 27 september 2027 buiten gebruik gesteld en gebruikers moeten tegen deze tijd migreren naar Azure Sphere (geïntegreerd). Gebruik de versiekiezer boven de inhoudsweergave om de Documentatie van Azure Sphere (geïntegreerd) weer te geven.
Azure Sphere ondersteunt I2C (Inter-Integrated Circuit) in de mastermodus. I2C is een seriële bus die lagere snelheidsrandapparatuur verbindt met microcontrollers. I2C maakt gebruik van een model met meerdere masters/meerdere ondergeschikten, waarbij een hoofdapparaat een set onderliggende apparaten beheert. I2C wordt vaak gebruikt met randapparatuur die alleen eenvoudige lichtgewicht communicatie met een microcontroller vereisen, zoals het instellen van besturingselementen, energieschakelaars en sensoren.
In dit onderwerp wordt beschreven hoe u I2C gebruikt in realtime compatibele toepassingen (RTApps). Zie I2C gebruiken in toepassingen op hoog niveau voor meer informatie over het gebruik van I2C in toepassingen op hoog niveau.
Notitie
Het Azure Sphere-besturingssysteem stelt geen randapparatuur opnieuw in bij het opstarten. Uw toepassingen moeten ervoor zorgen dat randapparatuur zich in een bekende goede staat bevindt bij het opstarten of na het opnieuw opstarten.
MT3620-ondersteuning voor I2C op de realtime kernen
De I2C-specificaties voor de MT3620-chip worden vermeld in mt3620-ondersteuningsstatus. In de gebruikershandleiding voor MT3620 development board worden de pinindeling en functies voor bedrading beschreven.
Wanneer u het MT3620-ontwikkelbord configureert, kunt u elk ISU-blok gebruiken als een I2C-masterinterface. Wanneer u een ISU-blok als een I2C-hoofdinterface gebruikt, kunt u niet hetzelfde blok gebruiken als een SPI- of UART-interface.
Ten-bits onderliggende apparaatadressen worden niet ondersteund op de MT3620; alleen 7-bits adressen worden ondersteund. De MT3620 ondersteunt 100 KHz, 400 KHz en 1 MHz bussnelheden, maar niet 3,4 Mhz. I2C-leesbewerkingen van nul-byte worden niet ondersteund op de MT3620.
Zie het MT3620-gegevensblad en de MT3620-gebruikershandleiding en de MT3620-gebruikershandleiding voor het registreren van basisadressen, onderbrekingsnummers, kloksnelheid, samplingfrequentie en andere details over de MT3620 MT3620.Azure.Sphere@avnet.com
Toepassingsmanifestinstellingen
Als u I2C wilt gebruiken, moet een RTApp deze vermelden in de sectie Capabilities van het toepassingsmanifest. De volgende regel reserveert bijvoorbeeld een I2C-masterinterface op ISU0 op een MT3620-chip:
"Capabilities": {
"I2cMaster": [ "ISU0" ] }
Het Azure Sphere-toepassingsmanifest bevat meer informatie over het toepassingsmanifest.
De I2C-voorbeeldtoepassingen
De CodethinkLabs-opslagplaats op GitHub bevat een aantal voorbeeldtoepassingen die laten zien hoe mt3620 ondersteunde randapparatuur in Azure Sphere RTApps kan worden gebruikt. In het I2C_RTApp_MT3620_BareMetal voorbeeld ziet u hoe u een I2C-randapparaat gebruikt in een realtime geschikte toepassing.