synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroller Penjelasan 3 jalur utama dari SPI adalah sebagai berikut :
MOSI : Master Output Slave Input Artinya jika
dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
MISO : Master Input Slave Output Artinya jika
dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output. CLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.
Untuk mengatur mode kerja komunikasi SPI
ini dilakukan dengan menggunakan register SPCR (SPI Control Register), SPSR (SPI Status Register) dam SPDR (SPI Data Register) SPI Control Register (SPCR) Mode SPCR yang digunakan adalah sebagai berikut : • Bit-6 SPE (SPI Enable) SPE digunakan untuk mengaktifkan dan menonaktifkan komunikasi SPI dimana jika SPI bernilai 1 maka komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak aktif. • Bit-4 MSTR (Master or Slave Select) MSTR digunakan untuk mengkonfigurasi sebagai master atau slave secara software dimana jika MSTR bernilai 1 maka terkonfigurasi sebagai master sedangkan MSTR bernilai 0 maka terkonfigurasi sebagai slave. Pengaturan bit MSTR ini tidak akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin SS dikonfigurasi sebagai input maka penentuan master atau slavenya otomatis dilakukan secara hardware yaitu dengan membaca level tegangan pada SS • Bit-1 SPR1/0 (SPI Clock Rate Select) SPR1 dan SPR0 digunakan untuk menentukan kecepatan clock yang digunakan dalam komunikasi SPI. SPI Status Register (SPSR) Dalam SPSR mode pengaturan yang dilakukan adalah sebagai berikut :
SPIF (SPI Interrupt Flag)
SPIF merupakan bendera yang digunakan untuk mengetahui bahwa proses pengiriman data 1 byte sudah selesai. Jika proses pengiriman data sudah selesai maka SPIF akan bernilai satu (high).
SPI Data Register (SPDR)
SPDR merupakan register yang digunakan untuk menyimpan data yang akan dikirim atau diterima pada komunikasi SPI. Dari sekian banyak pilihan antarmuka untuk transfer data secara serial, SPI adalah komunikasi sinkron tercepat dengan kemampuan full duplex, yang dapat dipacu hingga 10 MHz. Sebab itu, cara ini digunakan secara luas sebagai metoda antarmuka dengan periferal berkecepatan tinggi seperti Microchip Ethernet Controller ENC28J60, MMC Flash Memory, dan lainnya. Prinsip operasi SPI cukup sederhana, terlebih lagi bila memanfaatkan periferal SPI yang terdapat dalam mikrokontroler, misalnya AVR Atmega 16 atau ATmega32, yang digunakan dalam board NS.One; membuat pemrograman menjadi lebih mudah. Cukup mengirimkan data ke register SPI, dan periferal SPI dalam chip akan menyelesaikan pekerjaannya, mengirim dan menerima data ke dan dari device SPI Slave. Untuk meng-inisialisasi periferal SPI di dalam chip, kita harus meng-enable device ini sebagai SPI Master dan men-set frekuensi master clock, melalui SPI Control Register dan SPI Status Register. Terkait dengan penggunaan periferal SPI, pin MOSI dan SCK di-set sebagai output, dan MISO di-set sebagai input, sementara CS – untuk memilih device SPI Slave, dapat menggunakan pin manapun. Setelah meng-inisialisasi semua port yang digunakan, pin SPI Enable harus di-set, dan memilih operasi SPI master.
Berikut adalah contoh rangkaian
mikrokontroler AVR ATmega168 yang terhubung dengan shift register 74HC595 secara SPI. Transfer data dengan SPI digunakan antara Master ( Microcontroller) dgn slave (microcontroller atau SPI device spt MMC card, SPI ADC , dll) dalam jarak dekat dan kecepatan cukup tinggi. Komunikasi serial data antara master dan slave pada SPI diatur melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS sbb:
SCLK dari master ke slave yang berfungsi
sebagai clock MOSI jalur data dari master dan masuk ke dalam slave MISO jalur data keluar dari slave dan masuk ke dalam master SS (slave select) merupakan pin yang berfungsi untuk mengaktifkan slave SPI Diagram