この記事は座学のみ!
SPI通信とは
- Serial Personal Interface
- 通信インターフェースの一種
- MCU ⇔ 周辺モジュール間の通信でよく使用される
MasterとSlave
- SPI通信はMasterとSlaveの関係で動作する
- 通信の制御はMasterが行う
Master
- Slaveに対し、指示・制御を実施する
- SPI通信において、Masterは1つ
Slave
- Masterからの指示に従い、動作する
- SPI通信において、Slaveは1つ以上
- Slaveが複数個存在する場合でも、Slave間での通信はできない
- Slave間でやり取りをする場合は必ずMasterを経由する
基本構成
- 基本的に4つの信号線で構成される(4線式)
| 名称 | 機能概要 |
|---|---|
| MOSI | Master Out Slave In Master から送信され、Slaveが受けとるデータ用の信号線 |
| MISO | Mater In Slave Out Masterから指示を受け、SlaveがMasterに対し、送信するデータ用の信号線 |
| SCLK | Serial Clock Masterが生成するクロック信号線 |
| CS(SS) | Chip Select(Slave Select) Masterが通信対象のSlaveを識別するための信号線 |
通信タイミングチャート
- マスターは通信対象のCSをHighからLowへと切り替え、通信を開始する準備を行う
- マスターがSCLKを送信する
- MOSIもしくはMISOでデータの送受信を行う
- データ送受信完了後、マスターがSCLKを停止する
- CSをLowからHighからへと切り替え、通信を終了する
動作モード
- SPIはクロックの極性(CPOL)とクロックの位相(CPHA)の組み合わせによって、4種類の動作モードが定義されいる
| モード名 | CPOL | CPHA |
|---|---|---|
| Mode 0 | 0 | 0 |
| Mode 1 | 0 | 1 |
| Mode 2 | 1 | 0 |
| Mode 3 | 1 | 1 |
CPOL
- Clock Polarity
- 通信時のSCLKのクロックパルスの極性を示す


