Mengenal Komunikasi SPI


Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dapat digunakan pada banyak microcontroller, termasuk Arduino. Untuk komunikasi SPI sendiri, membutuhkan paling tidak tiga jalur, yakni MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antar microcontroller, maupun antara microcontroller dengan peripheral lainnya yang mendukung komunikasi dengan SPI. Adapun berikut ini penjelasan untuk 3 jalur utama dari SPI adalah sebagai berikut.

MOSI (Master Output Serial Input)
Perangkat yang bertindak sebagai master, maka pin MOSI digunakan sebagai pin output, tetapi jika digunakan sebagai slave, maka pin MOSI tersebut berfungsi sebagai pin input.

MISO (Master Input Slave Output)
Perangkat yang bertindak sebagai master, maka pin MISO sebagai pin input, tetapi jika digunakan sebagai slave, maka pin MISO tersebut berfungsi sebagai pin output.

SCK (Serial Clock)
Berfungsi sebagai clock data. Dimana pin SCK dari master akan memberikan clock ke pin SCK slave, guna menyelaraskan komunikasi antar kedua perangkat tersebut. 

Selain tiga jalur tersebut, terdapat pula SS (Slave Select) yang digunakan untuk memilih perangkat slave mana yang akan digunakan, tentu saja bila lebih dari satu slave. Sebuah perangkat master dapat memberikan perintah pada beberapa perangkat slave. Sedangkan untuk perangkat slave tidak dapat memberikan perintah, hanya memberikan data sesuai instruksi yang diberikan oleh perangkat master.
Lihat juga mengenai komunikasi I2C.