Usare I2C in applicazioni in tempo reale

Azure Sphere supporta Inter-Integrated Circuit (I2C) in modalità master. I2C è un bus seriale che collega periferiche a bassa velocità ai microcontrollori. I2C utilizza un modello multi-master/multi-subordinate in cui un dispositivo master controlla un set di dispositivi subordinati. I2C viene spesso utilizzato con periferiche che richiedono una comunicazione semplice e leggera con un microcontrollore, ad esempio l'impostazione di controlli, interruttori di alimentazione e sensori.

Questo argomento descrive come usare I2C in applicazioni in tempo reale (RTApps). Per informazioni sull'uso di I2C nelle applicazioni di alto livello, vedere Uso di I2C nelle applicazioni di alto livello.

Nota

Il sistema operativo Azure Sphere non reimposta le periferiche all'avvio. Le applicazioni devono verificare che le periferiche siano in uno stato noto 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 sui core in tempo reale

Le specifiche I2C per il chip MT3620 sono elencate nello stato di supporto di MT3620. Il manuale dell'utente della scheda di sviluppo MT3620 descrive il layout dei piedini e le funzioni per il wiring.

Quando configuri la scheda di sviluppo MT3620, puoi utilizzare qualsiasi blocco ISU come interfaccia master I2C. Quando si utilizza un blocco ISU come interfaccia master I2C, non è possibile usare lo stesso blocco di un'interfaccia SPI o UART.

Gli indirizzi di dispositivo subordinati a dieci bit non sono supportati nell'MT3620; sono supportati solo indirizzi a 7 bit. L'MT3620 supporta velocità di bus da 100 KHz, 400 KHz e 1 MHz, ma non di 3,4 MHz. Le letture I2C a byte zero non sono supportate in MT3620.

Per gli indirizzi di base del registro, i numeri di interrupt, la frequenza di clock, la frequenza di campionamento e altri dettagli sull'MT3620, vedi il foglio dati MT3620 e il manuale dell'utente di MT3620 M4; se le domande rimangono, è possibile richiedere dettagli a Avnet inviando un messaggio di posta elettronica.Azure.Sphere@avnet.com

Impostazioni del manifesto dell'applicazione

Per usare I2C, un RTApp deve elencarlo nella sezione Funzionalità del manifesto dell'applicazione. Ad esempio, la riga seguente riserva un'interfaccia master I2C su ISU0 su un chip MT3620:

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

Il manifesto dell'applicazione Azure Sphere ha maggiori dettagli sul manifesto dell'applicazione.

Applicazioni di esempio I2C

Il repository CodethinkLabs su GitHub contiene una serie di applicazioni di esempio che dimostrano come usare le periferiche supportate da MT3620 in Azure Sphere RTApps. In particolare, l'esempio I2C_RTApp_MT3620_BareMetal mostra come usare una periferica I2C in un'applicazione che supporta il tempo reale.