2.3 SPI Serial Peripheral Interface
Dalam menggunakan SD Card shield, ada satu library yang dideklarasikan selain library ‘SD.h’ yang memang didedikasikan untuk menangani SD Card. Library selain
SD.h itu adalah library ‘SPI.h’ [8]. Library SPI.h adalah library yang khusus bertugas menangani komunikasi serial sinkron SPI Serial Peripheral Interface di Arduino. Serial
sinkron adalah protocol komunikasi data secara serial namun membutuhkan jalur clock untuk sinkronisasi antara transmitter dan receiver
. Sedangkan secara khusus istilah ‘serial sinkron SPI’ ditujukan untuk tipe protocol komunikasi serial sinkron yang memiliki 3 jalur
kabel yakni MISO Master In Slave Out. MOSI Master Out Slave In dan SCLK Serial Clock. MOSI merupakan jalur pengiriman data dari master ke slave, sedangkan MISO
merupakan kebalikannya. Biasanya ada satu tambahan pin yang digunakan untuk mengaktifkanmematikan perangkat slave SPI yang dinamakan CS Chip Select atau SS
Slave Select. Pin CSSS bersifat spesifik untuk tiap perangkat slave yang menggunakan komunikasi SPI sehingga bisa berbeda-beda untuk masing-masing perangkat. Ilustrasi cara
kerja protocol SPI ini ditunjukkan pada gambar 2.8.
Gambar 2.8. Ilustrasi kerja protokol SPI
Dalam implementasinya, SPI banyak digunakan sebagai alternative untuk berkomunikasi dengan perangkat lain misalnya EEPROM SPI EEPROM, sensor
barometer, tekanan, dll, komponen elektronika SPI digital potensiometer atau controller lain Arduino, AVR, MCS51, ARM, dll. Komunikasi serial data antara master dan slave
pada SPI diatur melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS. Keempat pin tersebut dijelaskan sebagai berikut [20] :
1. Serial Clock SCLK merupakan data biner yang keluar dari master ke slave yang berfungsi sebagai clock dengan frekuensi tertentu. Clock merupakan salah satu
komponen prosedur komunikasi data SPI. Dalam beberapa perangkat, istilah yang digunakan untuk pin ini adalah SCK.
2. Master Output Slave Input MOSI merupakan pin yang berfungsi sebagai jalur data pada saat data keluar dari master dan masuk ke dalam slave. Instilah lain untuk
pin ini antara lain Slave Input Master Output SIMO, Serial Data In SDI, Data In DI, dan Serial In SI.
3. Master Input Slave Output MISO merupakan pin yang berfungsi sebagai jalur data Slave Output Master Input SOMI, Serial Data Out OUT, Data Out OUT,
dan Serial Out SO. 4. Slave Select SS merupakan pin yang berfungsi untuk mengaktifkan slave sehingga
pengiriman data hanya dapat dilakukan jika slave dalam keadaan aktif actice low. Istilah lain untuk SS antara lain chip select CS, nCS, nSS, dan Slave Transmit
Enable STE.
Pin SCLK, MOSI, dan SS merupakan pin dengan arah pengiriman data dari master ke slave. Sebaliknya, MISO mempunyai arah komunikasi data dari slave ke master.
Pengaturan hubungan dari pin MISO dan MOSI harus sesuai dengan ketentuan. Ketentuan tersebut adalah pin MISO pada master harus dihubungkan dengan pin
MOSI pada slave, begitu sebaliknya [21]. Hal ini dilakukan untuk menghindari terjadinya kesalahah prosedur pada pengiriman data. Istilah pin-pin SPI untuk
berbagai perangkat mungkin saja mempunyai istilah yang berbeda dengan istilah diatas tergantung pada produsen. Gambar di bawah ini merupakan komunikasi
master-slave pada SPI.
Gambar 2.9. Komunikasi master-slave SPI