次の方法で共有


リアルタイム対応アプリケーションで I2C を使用する

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

Azure Sphere は、マスター モードで相互集積回路 (I2C) をサポートしています。 I2C とは、低速の周辺機器をマイクロコントローラーに接続するシリアル バスです。 I2C ではマルチマスター/マルチ下位モデルが使用され、マスター デバイスが、一連の下位デバイスを制御しています。 I2C は、多くの場合、設定コントロール、電源スイッチ、センサーなど、シンプルで軽量な通信のみが求められる周辺機器でマイクロコントローラーと共に使用されます。

このトピックでは、リアルタイム対応アプリケーション (RTApp) で I2C を使用する方法について説明します。 高度なアプリケーションでの I2C の使用の詳細については、高度なアプリケーションでの I2C の使用に関する記事を参照してください。

Note

Azure Sphere OS では起動時に周辺機器がリセットされません。 アプリケーションでは、起動時または再起動後に周辺機器が既知の良好な状態であることを確認する必要があります。

リアルタイム コアの I2C のための MT3620 サポート

MT3620 チップ用の I2C 仕様は、「MT3620 サポートの状態」に一覧表示されています。 「MT3620 開発ボードのユーザー ガイド」は、ピンのレイアウトと配線機能について説明します。

MT3620 開発ボードを構成するとき、任意の ISU ブロックを I2C マスター インターフェイスとして使用できます。 ISU ブロックを I2C マスター インターフェイスとして使用する場合、同じブロックを SPI または UART インターフェイスとして使用できません。

10 ビットの下位デバイス アドレスは、MT3620 ではサポートされていません。サポートされるのは、7 ビット アドレスのみです。 MT3620 は、100 KHz、400 KHz、および 1 MHz のバス速度がサポートしますが、3.4 MHz はサポートしていません。 ゼロ バイトの I2C 読み取りは、MT3620 ではサポートされていません。

MT3620 に関するレジスタ ベース アドレス、割り込み番号、クロック レート、サンプリング周波数などの詳細については、 MT3620 データシート および MT3620 M4 ユーザー マニュアルを参照してください。質問が残っている場合は、 Azure.Sphere@avnet.com電子メールで Avnet に詳細を要求できます。

アプリケーション マニフェストの設定

I2C を使用するには、RTApp で、アプリケーション マニフェストの Capabilities セクションにそれをリストする必要があります。 たとえば、次の行では MT3620 チップの ISU0 上で I2C マスターインターフェイス が予約されます。

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

Azure Sphere アプリケーション マニフェスト には、アプリケーション マニフェストの詳細が含まれています。

I2C サンプル アプリケーション

GitHub の CodethinkLabs リポジトリには、MT3620 でサポートされている周辺機器を Azure Sphere RTApp で使用する方法を示す多数のサンプル アプリケーションが含まれています。 具体的には、 I2C_RTApp_MT3620_BareMetal サンプルでは、リアルタイム対応アプリケーションで I2C 周辺機器を使用する方法を示します。