Поделиться через


Использование I2C в приложениях с поддержкой реального времени

Azure Sphere поддерживает канал Inter-Integrated (I2C) в режиме master. I2C — это последовательная шина, которая подключает низкоскоростные периферийные устройства к микроконтроллерам. I2C использует модель с несколькими master или несколькими подчиненными, где master устройство управляет набором подчиненных устройств. I2C часто используется с периферийными устройствами, для которых требуется только простое упрощенное взаимодействие с микроконтроллером, например с элементами управления настройками, выключателями питания и датчиками.

В этом разделе описывается использование I2C в приложениях с поддержкой реального времени (RTApp). Сведения об использовании I2C в высокоуровневых приложениях см. в статье Использование I2C в высокоуровневых приложениях.

Примечание

Ос Azure Sphere не сбрасывает периферийные устройства при запуске. Приложения должны убедиться, что периферийные устройства находятся в известном состоянии при запуске или после перезапуска.

Поддержка MT3620 для I2C в ядрах в режиме реального времени

Спецификации I2C для микросхемы MT3620 перечислены в разделе Состояние поддержки MT3620. В руководстве пользователя на плате разработки MT3620 описаны макет и функции контактов для подключения.

При настройке платы разработки MT3620 можно использовать любой блок ISU в качестве интерфейса I2C master. При использовании блока ISU в качестве интерфейса I2C master нельзя использовать тот же блок, что и интерфейс SPI или UART.

Десятибитовые адреса подчиненных устройств не поддерживаются в MT3620. Поддерживаются только 7-разрядные адреса. MT3620 поддерживает частоту шины 100, 400 кГц и 1 МГц, но не 3,4 МГц. Операции чтения I2C с нулевыми байтами не поддерживаются в MT3620.

Сведения о регистрации базовых адресов, номера прерываний, частоту тактов, частоту выборки и другие сведения о MT3620 см. в таблице MT3620 и руководстве пользователя MT3620 M4. Если остались вопросы, вы можете запросить сведения из Avnet, отправив Azure.Sphere@avnet.comпо электронной почте .

Параметры манифеста приложения

Чтобы использовать I2C, приложение RTApp должно отобразить его в разделе Возможности манифеста приложения. Например, следующая строка резервирует интерфейс I2C master в ISU0 на микросхеме MT3620:

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

Манифест приложения Azure Sphere содержит дополнительные сведения о манифесте приложения.

Примеры приложений I2C

Репозиторий CodethinkLabs на сайте GitHub содержит ряд примеров приложений, демонстрирующих использование периферийных устройств, поддерживаемых MT3620, в AZURE Sphere RTApps. В частности, в примере I2C_RTApp_MT3620_BareMetal показано, как использовать периферийное устройство I2C в приложении с поддержкой реального времени.