Usare I2C in applicazioni con funzionalità in tempo realeUse I2C in real-time capable applications

Azure Sphere supporta I2C (Inter-Integrated Circuit) in modalità master.Azure Sphere supports Inter-Integrated Circuit (I2C) in master mode. I2C è un bus seriale che connette le periferiche a bassa velocità ai microcontroller.I2C is a serial bus that connects lower-speed peripherals to microcontrollers. Usa un modello multimaster/multisubordinato in cui un dispositivo master controlla un set di dispositivi subordinati.I2C uses a multi-master/multi-subordinate model where a master device controls a set of subordinate devices. Si usa in genere con periferiche che richiedono solo una semplice comunicazione leggera con un microcontroller, ad esempio per l'impostazione di controlli, interruttori di alimentazione e sensori.I2C is often used with peripherals that only require simple lightweight communication with a microcontroller, such as setting controls, power switches, and sensors.

Questo argomento descrive come usare I2C in applicazioni con funzionalità in tempo reale (RTApp).This topic describes how to use I2C in real-time capable applications (RTApps). Per informazioni sull'uso di I2C in applicazioni di alto livello, vedere Uso di I2C in applicazioni di alto livello.For information about using I2C in high-level applications, see Using I2C in high-level applications.

Nota

Il sistema operativo Azure Sphere non reimposta le periferiche all'avvio.The Azure Sphere OS does not reset peripherals on start-up. Le applicazioni devono assicurarsi che le periferiche si trovino in uno stato noto come valido all'avvio o dopo il riavvio.Your applications should ensure that peripherals are in a known-good state on start-up or after restart.

Supporto di MT3620 per I2C nei core in tempo realeMT3620 support for I2C on the real-time cores

Le specifiche di I2C per il chip MT3620 sono indicate in MT3620: stato del supporto.The I2C specifications for the MT3620 chip are listed in MT3620 Support Status. Il manuale utente della scheda di sviluppo MT3620 descrive il layout dei pin e le funzioni per il cablaggio.The MT3620 development board user guide describes the pin layout and functions for wiring.

Quando si configura la scheda di sviluppo MT3620, è possibile usare qualsiasi blocco ISU come interfaccia master I2C.When you configure the MT3620 dev board, you can use any ISU block as an I2C master interface. Se si usa un blocco ISU come interfaccia master I2C, non è possibile usare lo stesso blocco come interfaccia SPI o UART.When you use an ISU block as an I2C master interface, you can't use the same block as a SPI or UART interface.

Gli indirizzi di 10 bit dei dispositivi subordinati non sono supportati su MT3620; sono supportati solo indirizzi di 7 bit.Ten-bit subordinate device addresses are not supported on the MT3620; only 7-bit addresses are supported. MT3620 supporta velocità di bus a 100 KHz, 400 KHz e 1 MHz, ma non a 3,4 Mhz.The MT3620 supports 100 KHz, 400 KHz, and 1 MHz bus speeds, but not 3.4 Mhz. Le letture di I2C di 0 byte non sono supportate su MT3620.Zero-byte I2C reads are not supported on the MT3620.

Per gli indirizzi di base del registro, i numeri di interrupt, la frequenza di clock, la frequenza di campionamento e altri dettagli su MT3620, vedere il foglio dati MT3620 e il manuale dell'utente di MT3620 M4; Se rimangono domande, è possibile richiedere dettagli da Avnet tramite posta elettronica Azure.Sphere@avnet.com .For register base addresses, interrupt numbers, clock rate, sampling frequency, and other details about the MT3620, see the MT3620 Datasheet and the MT3620 M4 User Manual; if questions remain, you can request details from Avnet by emailing Azure.Sphere@avnet.com.

Impostazioni del manifesto dell'applicazioneApplication manifest settings

Per usare I2C, un'applicazione RTApp deve elencarlo nella sezione Capabilities del manifesto dell'applicazione.To use I2C, an RTApp must list it in the Capabilities section of the application manifest. Ad esempio, la riga seguente riserva un'interfaccia master I2C in ISU0 su un chip MT3620:For example, the following line reserves an I2C master interface on ISU0 on an MT3620 chip:

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

Nell'argomento Manifesto dell'applicazione di Azure Sphere sono disponibili informazioni più dettagliate sul manifesto dell'applicazione.The Azure Sphere application manifest topic has more details about the application manifest.

Applicazioni di esempio I2CThe I2C sample applications

Il repository CodethinkLabs in GitHub contiene diverse applicazioni di esempio che illustrano come usare le periferiche supportate da MT3620 in applicazioni Azure Sphere RTApp.The CodethinkLabs repository on GitHub contains a number of sample applications that demonstrate how to use MT3620 supported peripherals in Azure Sphere RTApps. In particolare, nell'esempio I2C_RTApp_MT3620_BareMetal viene illustrato come utilizzare una periferica I2C in un'applicazione in grado di supportare in tempo reale.Specifically, the I2C_RTApp_MT3620_BareMetal sample demonstrates how to use an I2C peripheral in a real-time capable application.