pin tersebut harus diberi logika tinggi, sedangkan agar berfungsi sebagai masukan, maka DDR pada pin tersebut diberi logika rendah [6].
Saat berfungsi sebagai pin masukan, maka register PINxn digunakan untuk membaca nilai pada pin tersebut. Sedangkan saat berfungsi sebagai sebuah pin keluaran, register
PORTxn digunakan untuk mengatur nilai keluaran pin IO tersebut.
2.2.2. Serial Peripheral Interface SPI
Transfer data dengan SPI digunakan antara Master Microcontroller dgn slave microcontroller atau SPI device seperti 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 , sebagai berikut
[6]:
a. SCLK dari master ke slave yang berfungsi sebagai clock.
b. MOSI jalur data dari master dan masuk ke dalam slave.
c. MISO jalur data keluar dari slave dan masuk ke dalam master.
d. SS slave select merupakan pin yang berfungsi untuk mengaktifkan slave.
Ada dua maca SPI, yaitu satu master dengan satu slave dan satu master dengan banyak slave
. Pada gambar 2.2 ditunjukkan sambungan antar master dan slave dengan SPI.
Gambar 2.2. Koneksi Master-Slave dengan SPI [6] Register yang berhubungan dengan SPI terdapat seperti gambar 2.3.
Gambar 2.3. SPI Control Register [6]
Setiap bit dari register SPCR mempunyai fungsinya masing-masing. Dan untuk mengaktifkan SPI, maka perlu diketahui setiap bit register tersebut, sebagai berikut:
a.
Bit 7 – SPIE: SPI Interrupt Enable. SPIE digunakan untuk mengaktifkan
interupsi SPI. b.
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. c.
Bit 5 – DORD: Data Order. DORD digunakan untuk memilih urutan pengiriman
data, dari LSB atau MSB terlebih dahulu. Nilai satu untuk LSB dan nilai nol untuk
MSB.
d.
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. e.
Bit-3 CPOL dan Bit-2 CPHA
digunakan untuk pengaturan polaritas dan fasa dari clock
. f.
Bit-1 SPR10 SPI Clock Rate Select SPR1 dan SPR0 digunakan untuk
menentukan kecepatan clock yang digunakan dalam komunikasi SPI.
Tabel 2.1. Hubungan SCK dan Frekuensi Osilator [6]
SPI2x SPR1
SPR0 SCK Frequency
4 1
16 1
64 1
1 128
1 2
1 1
8 1
1 32
1 1
1 64