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 antara pin SDO dan SDI harus sesuai dengan ketentuan.
Pin SDO pada master harus dihubungkan dengan pin SDI pada
slave
, begitu juga sebaliknya. Hal ini penting untuk diperhatikan untuk menghindari terjadinya kesalahan
prosedur pada pengiriman data. Istilah
pin-pin
SPI untuk berbagai devais mungkin saja mempunyai istilah yang berbeda dengan istilah di atas tergantung produsen yang
membuatnya. SPI pada AVR merupakan salah satu peripheral sederhana dalam programingnya.
AVR memiliki arsitektur 8 bit mikrokontroler, sehingga SPI pada AVR juga 8 bit. Bahkan biasanya bus SPI juga mempunyai nilai 8 bit. Pada AVR,
port
SPI berada pada PORT B baik untuk yang mempunyai kaki 28 ataupun 40.
2.6.2. Register Komunikasi SPI
Ada tiga register yang terdapat pada SPI di AVR: 1.
SPCR
SPI Control Register merupakan register dari
Master Device
. Berisi Bit inisialisasi dari AVR dan kontrol data dari
Master Device
. 2.
SPSR
SPI Status Register merupakan register status dari AVR, digunakan untuk membaca status komunikasi dari Bus SPI.
3. SPDR
SPI Data Register merupakan register data dari SPI dimana untuk membaca atau mengirim data yang sebenarnya.
2.6.2.1. SPI Control RegIster SPCR
Seperti namanya, SPCR adalah register untuk mengontrol dari SPI. Terdapat Bit dimana kita menemukan bit untuk mengenable SPI, mengatur
clock
atau kecepatan dari SPI, mengatur mode operasi seperti masterslave. Berikut ini adalah gambar isi dari SPCR:
Gambar 2.10. SPCR Register PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Bit 7: SPIE – SPI Interrupt Enable
SPIE adalah
bit
yang digunakan untuk mengaktikfkan interupsi dari SPI. Untuk mengaktifkannya,
Global interrupt
dari AVR harus diaktifkan terlebih dahulu.
Set
bit ini pada kondisi
high
atau 1 untuk mengaktifkan
interrupt
SPI.
Bit 6: SPE – SPI Enable
SPE adalah
bit
yang digunakan untuk mengaktifkan SPI secara keseluruhan. Jika bit ini di-
set
pada kondisi
high
atau 1 maka SPI akan aktif dan yang lain akan dimatikan. Saat SPI diaktifkan
, port
kaki dari AVR masih bisa berfungsi sebagai
Input-Output
itu sendiri.
Bit 5: DORD – Data Order
Data order adalah mode pengiriman apakah MSB dulu atau LSB dulu.
Set bit
ini pada kondisi high atau 1 jika ingin mengirimkan 4 bit yang kecil LSB dulu. Namun jika ingin mengirim MSB dulu maka set bit ini pada kondisi
low
atau 0.
Bit 4: MSTR – MasterSlave Select
Bit ini digunakan untuk menyetting
hardware
sebagai
master
atau sebagai
slave
. Jika ingin menyetting sebagai master maka set bit ini pada kondisi
high
atau 1
clock
dihasilkan dari
device
lain. Jika bit di set
low
atau 0 maka
device
bertindak sebagai
slave
.
Bit 3: CPOL – Clock Polarity
Bit ini digunakan untuk memilih polaritas
clock
pada saat kondisi
idle
.
Set
bit ini pada kondisi
high
atau 1 untuk mengaktifkan
clock
tinggi pada saat
idle
, dan sebaliknya mengatur bit ini
low
atau 0 untuk mengaktifkan
clock
rendah pada saat
idle.
Artinya saat bit CPOL bernilai
low
maka clock SCK akan bersifat
rising edge
, dan jika pada kondisi
high
maka SCK akan bersifat
Falling Edge
.
Risin
g adalah perubahan pulsa pada saat 0 ke 1,
falling
sebaliknya adalah kondisi pada saat pulsa berubah dari 1 ke 0.
Bit 2: CPHA – Clock Phase
Bit inidigunakanuntuk sampling data.
Set Bit
satuatau high untuk sampling data saat SCK dalam
edge
yang pertama, set bit 0 atau low untuk sampling data saat sck dalam
edge
yang kedua.
Bit 1,0: SPR1, SPR0 – SPI Clock Rate Select
Digunakan untuk memilih pembagi atau prescaller dari clock SPI, dimana FOSC merupakan singkatan dari
clock internal
atau frekuensi kristal external. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.6.2.2.
SPI Data Register SPDR
SPI Data register adalah
register
yang digunakan untuk menyimpan data baik yang akan dikirim maupun yang sudah di terima.
Gambar 2.12. SPDR Register Bit ke 7 adalah bit Most Significant Bit MSB dan Bit yang ke 0 adalah bit Least
Significant Bit LSB. Sekarang kita bisa sambungkan ke Bit ke 5 SPCR, jika MSB yang dikirim duluan maka Bit 4 hingga 7 dari data registerlah yang akan dikirim pertama,
namun jika LSB yang dikirim pertama maka Bit 0 hingga Bit 3 lah yang akan dikirim duluan.[12]
2.7. I2C