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

Transfer data SPI
Master dapat dihubungkan dengan banyak slave

Pin / kaki SS (slave select) merupakan pin yang berfungsi untuk mengaktifkan slave sehingga pengiriman data hanya dapat dilakukan jika slave dalam keadaan aktif (active low). Dari gambar diagram SPi diatas anda sudah bisa membayangkan bagaimana cara SPI mentransfer data antara Master dan slave. Intinya ada di register geser 8 bit. Tiap clock dari SCK akan mempertukarkan 1 bit data , jadi untuk mempertukarkan register di master dan slave perlu 8 kali clock. contoh konkritnya begini: data di register geser master adalah 1111 1111 data di register gaser slave adalah 0000 0000

keadaan awal
kemudian pada clock pertama dan kedua isi register berpindah sbb:

Setelah 8 kali clok data berpindah:

Jalur SPI pada AVR Atmega8535

Jalur SPI pada Atmega8535
Pemrograman AVR SPI dengan Codevision
Buka projeck baru, gunakan codewizard

set micon sebagai master
Fungsi Mengirim data: SPI(char data)
Menerima data: char hasil = SPI(0)
Contoh Program membuat Voltmeter dgn SPI ADC AD7896 12 bit :
Rangkaian

Tidak ada komentar:
Posting Komentar