リアルタイム対応アプリケーションで SPI を使用する
Azure Sphere では、マスター モードでのシリアル周辺機器インターフェイス (SPI) がサポートされています。 SPI は、周辺機器と集積回路間の通信に使用されるシリアル インターフェイスです。 I2Cとは対照的に、SPIはより複雑な高速周辺機器で使用できます。
このトピックでは、リアルタイム対応アプリケーション (RTApp) で SPI を使用する方法について説明します。 高レベル アプリケーションでの SPI の使用については、「高レベル アプリケーション での SPI の使用」を参照してください。
メモ
Azure Sphere OS は、起動時に周辺機器をリセットしません。 アプリケーションでは、起動時または再起動後に周辺機器が既知の良好な状態になっていることを確認する必要があります。
チップ選択
チップ選択は、SPI マスター インターフェイスと一連の下位デバイス間の接続を管理します。を使用すると、マスター インターフェイスは各下位デバイスに個別にデータを送受信できます。 Azure Sphere では、チップ選択のアクティブ/ローとアクティブ/ハイの設定がサポートされ、既定の設定として active-low がサポートされています。 各 SPI マスター インターフェイスをいつでも使用できるアプリケーションは 1 つだけです。 アプリケーションは、SPI マスター インターフェイスを開き、接続されている各下位デバイスを識別してから、インターフェイスに対して読み取りおよび書き込み操作を実行する必要があります。
リアルタイム コアでの SPI の MT3620 サポート
MT3620 開発ボードを構成する場合は、任意の ISU ポートを SPI マスター インターフェイスとして使用できます。 各 ISU に最大 2 つの下位デバイスを接続できます。 SPI マスター インターフェイスとして ISU ポートを使用する場合、I2C または UART インターフェイスと同じポートを使用することはできません。
MT3620 は、最大 40 MHz の SPI トランザクションをサポートします。
MT3620 は、1 つのバス トランザクション内で双方向の読み取りおよび書き込み (全二重) SPI 操作を同時にサポートしていません。
MT3620 の SPI 仕様は、 MT3620 のサポート状態に記載されています。 MT3620開発ボードのユーザーガイドでは、配線用のピンレイアウトと機能について説明しています。
MT3620 のレジスタ ベース アドレス、割り込み番号、クロック レート、サンプリング周波数、その他の詳細については、 MT3620 データシート と MT3620 M4 ユーザー マニュアルを参照してください。質問が残っている場合は、電子メールで Avnet に詳細を Azure.Sphere@avnet.com要求できます。
アプリケーション マニフェストの設定
SPI API を使用するには、アプリケーション マニフェストに機能を SpiMaster
追加し、各 SPI マスター コントローラーを機能に指定する必要があります。
"Capabilities": {
"SpiMaster": [ "ISU0", "ISU1" ] }
Azure Sphere アプリケーション マニフェストには、アプリケーション マニフェスト の詳細が記載されています。
SPI サンプル アプリケーション
GitHub の CodethinkLabs リポジトリには、Azure Sphere のリアルタイム対応アプリケーションでサポートされている MT3620 周辺機器を使用する方法を示すサンプル アプリケーションが含まれています。 具体的には、 SPI_RTApp_MT3620_BareMetal および SPI_SDCard_RTApp_MT3620_BareMetal サンプルは、リアルタイム対応アプリケーションに SPI 周辺機器を組み込む方法を示しています。