関連記事
1.「SPI通信プロトコルの概要」
2.「STM32SPIペリフェラルの使用」
3。「[IMU]分析とBMI160ドライバーの使用」
1.SPIの概要
SPIプロトコルは、モトローラが提案する通信プロトコル(Serial Peripheral Interface
)、つまり高速全二重通信バスであるシリアルペリフェラルデバイスインターフェースです。より高速な通信速度が要求されるADC、LCD、その他のデバイスとMCUの間で広く使用されています。
- 利点:
- 全二重動作をサポート
- 使いやすい
- より高いデータ転送速度
- 短所:
- マスターのより多くのラインを占有する必要があります(各スレーブにはチップセレクトラインが必要です)
- フロー制御が指定されていません
- データが受信されたかどうかを確認する応答メカニズムはありません
2.SPIハードウェア接続の概要
通信する2つのSPIデバイスは、マスターデバイス(マスター)が負担する必要があり、デバイス(スレーブ)から制御されます。マスターデバイスは、クロック信号を提供し、スレーブデバイスでチップセレクトを実行することにより、複数のスレーブデバイスを制御できます。スレーブデバイス自体はクロック信号を生成せず、そのクロック信号はマスターデバイスによって提供されます。
- MOSI:マスターデバイスデータ出力、スレーブデバイスデータ入力
- MISO:マスターデバイスデータ入力、スレーブデバイスデータ出力
- SCLK:マスターデバイスによって生成されるクロック信号
- CS:マスターデバイスによって制御されるスレーブデバイスイネーブル信号
3.SPI通信モードの概要
SPI通信には4つの異なるモードがあり、通常、CPOL(クロック極性)とCPHA(クロック位相)を介して構成されます。次のように:
SPIモード | CPOL | CPHA | アイドルSCKクロック | サンプリングの瞬間 |
---|---|---|---|---|
0 | 0 | 0 | 低レベル | 奇数エッジ |
1 | 0 | 1 | 低レベル | エッジさえ |
2 | 1 | 0 | 高いレベル | 奇数エッジ |
3 | 1 | 1 | 高いレベル | エッジさえ |
4.SPIの読み取りと書き込みのタイミング
ここでは、SPIの読み取りと書き込みのタイミングを、デフォルトでモード3()を使用するSPIインターフェイスを備えたIMU(BMI160)の例を通じて紹介します。CPOL=1 CPHA=1
- 書き込みタイミング:
- 読み取りタイミング:
(注:最初のスクリーンショットはデータシートによって導入されたタイミングであり、2番目のスクリーンショットはロジックアナライザーによって実際にキャプチャされたタイミングです)