#topicpath

** Arduino Tips [#z60736f6]

*** SPIを利用する [#m0d7f2a3]
- 概要~
SPI(Serial Peripheral Interface) は、マイコンがセンサからデータを取得するための通信方法としてよく使われている。~
同様にI2C と呼ばれる通信もある。どちらも、基本的には似た方式で通信するが、最近はSPI の方が好まれるようである。~
~
-- 基本用語~
[[Arduino の日本語リファレンス>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=539]]に準拠する。
--- 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)と書くことがある。~
~
- 実際の接続~
ゆるい規格なので、方言が強いようである。それぞれのチップに応じて対応する。
-- 接続例~
--- [[典型的な Arduino に気圧センサSCP1000を接続する>https://www.arduino.cc/en/Tutorial/BarometricPressureSensor]]
--- [[ESP32 に 気圧センサBME280を HSPI で接続する>https://www.mgo-tec.com/blog-entry-esp32-bme280-sensor-library.html]](後半です。)
~
- 参考URL
-- [[Arduino の日本語リファレンス>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=539]]
-- [[「SPI」の解説>https://synapse.kyoto/glossary/glossary.php?word=SPI]]

トップ   新規 検索 最終更新   ヘルプ   最終更新のRSS