Arduino Tips †
SPIを利用する †
- 概要
SPI(Serial Peripheral Interface) は、マイコンがセンサからデータを取得するための通信方法としてよく使われている。
同様にI2C と呼ばれる通信もある。どちらも、基本的には似た方式で通信するが、最近はSPI の方が好まれるようである。
- 基本用語
Arduino の日本語リファレンスに準拠する。
- MISO(Master In Slave Out)
デバイスの端子名。スレーブ(slave, 奴隷, マイコンから指令を受ける側)からマスタ(master, 主人, マイコン)へデータを送るときの端子。
スレーブ側では、SDO(Serial Data Out)とかDO(Data Out)と書くこともある。
- MOSI(Master Out Slave In)
デバイスの端子名。マスタからスレーブへデータを送るときの端子。
スレーブ側では、SDI(Serial Data In)とかDI(Data In)と書くこともある。
- SCK(Serial ClocK)
デバイスの端子名。データ転送を時に用いるクロックを流す端子。
SCLK と書くこともある。
- SS(Slave Select)
デバイスの端子名。MISO, MOSI, SCK の3つの端子を共通にして、複数のスレーブを1つのマスターに接続することを考える。このとき、
マスターはどのスレーブと通信しているのか区別しなければならない。そのために、マスター側では、それぞれのスレーブと、個別に SS
として接続して、マスター側が通信したいスレーブの SS の電圧をゼロにする。スレーブ側はそれを理解して、自分が通信する番なのか、
それとも待機する番なのかを理解する。
マスター側にはスレーブの個数だけ SS を用意する。
スレーブ側は、SS は一つである。スレーブ側の SS は CS(Chip Select)と書くことがある。
- 実際の接続
ゆるい規格なので、方言が強いようである。それぞれのチップに応じて対応する。
- 参考URL