リアルタイム対応アプリケーションでの周辺機器の使用
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
リアルタイム対応アプリケーション (RTApp) では、専用の周辺機器をマップすることができます。 RTApp で 1 つまたは複数の周辺機器を使用するには、次のようにします。
- 周辺機器をアプリケーション マニフェストに追加します。
- (必要に応じて) 割り込みハンドラーとその他のサポート コードをアプリケーションに追加します。
- 起動時に各周辺機器が既知の正常な状態になるようにコードを追加します。
重要
RTApp 用の周辺機器をプログラミングする方法に関するハードウェア固有の情報については、ご利用のハードウェアの製造元からのドキュメントを参照してください。 MT3620 に関するレジスタ ベース アドレス、割り込み番号、クロック レート、サンプリング周波数などの詳細については、 MT3620 データシート および MT3620 M4 ユーザー マニュアルを参照してください。質問が残っている場合は、 Azure.Sphere@avnet.com電子メールで Avnet に詳細を要求できます。
RTApp で使用されるすべてのリソースは、アプリケーション マニフェストに指定する必要があります。 RTApp では、ターゲット チップのハードウェア定義 JSON ファイルで AppManifestValue に割り当てられているリソースの名前を使用する必要があります。 ハードウェア定義のヘッダー ファイルでリソースに割り当てられている高レベルの名前は使用できません。 たとえば、MT3620 ハードウェア上の ISU0 で I2C を識別する値を見つけるには、Microsoft Azure Sphere SDK フォルダーにインストールされている HardwareDefinitions フォルダーのmt3620.json ファイルを調べる必要があります。 この周辺機器は、この JSON ファイルで次のように定義されています。
{"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},
I2C 周辺機器の AppManifestValue に割り当てられる値は "ISU0" であることに注意してください。
同時に読み込まれるアプリケーションでリソースを共有することはできません。リソースの使用は単一のアプリケーションに限られます。 Azure Sphere OS では、アプリケーションの読み込み時に、いくつかの重要なタスクが行われます。
- 要求された機能に対して、周辺機器に関連付けられたピンが構成されるように多重化を構成します。
- "コア マッピング" を設定します。これには、要求された周辺機器に関連付けられているレジスタにアプリケーションからアクセスできるようにする、ファイアウォールの構成が含まれます。
- マニフェストを確認し、あるアプリケーションで、別のアプリによって既に要求されているリソースが要求された場合、その読み込みは失敗します。
このセクションの残りの部分では、特定の周辺機器の使用方法について詳しく説明します。
Note
Azure Sphere OS は起動時に周辺機器をリセットしません。 アプリケーションでは、起動時または再起動後に周辺機器が正常な状態であることを確認する必要があります。
周辺機器を使用する新しいアプリケーションがインストールされ、次の条件が満たされると、デバイスの再起動がトリガーされます。
- デバイスの製造状態は DeviceComplete に設定されます。
- appDevelopment機能がデバイスに存在しません。 詳細については、「 Peripheral 構成のロックを参照してください。
デバイスの再起動が開始された場合は、再起動が完了し、デバイスが応答するまで待ちます。
トピック | 説明 |
---|---|
リアルタイム対応アプリケーションで ADC を使用する | Azure Sphere でアナログ デジタル コンバーター (ADC) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで GPIO を使用する | Azure Sphere で汎用入出力 (GPIO) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで GPT を使用する | Azure Sphere で汎用タイマー (GPT) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで I2C を使用する | シリアル通信に相互集積回路 (I2C) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで I2S を使用する | Azure Sphere で統合チップ間サウンド (I2S) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで PWM を使用する | Azure Sphere でパルス幅変調 (PWM) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで SPI を使用する | シリアル通信にシリアル周辺機器インターフェイス (SPI) を使用する方法について説明します。 |
リアルタイム対応アプリケーションで UART を使用する | シリアル通信に UART を使用する方法について説明します。 |
リアルタイム対応アプリケーションで外部割り込みを使用する | RTApp で外部割り込みを使用して外部信号に応答する方法について説明します。 |
リアルタイム対応アプリケーションでウォッチドッグタイマーを使用する | MT3620 リアルタイム コアでウォッチドッグ タイマーを使用した場合の影響について説明します。 |