SPI Control RegIster SPCR

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. Rising 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. 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 Inter Integrated Circuit