• Tidak ada hasil yang ditemukan

Komunikasi Data SPI pada Mikrokontroler MCS51

N/A
N/A
Protected

Academic year: 2021

Membagikan "Komunikasi Data SPI pada Mikrokontroler MCS51"

Copied!
10
0
0

Teks penuh

(1)

Komunikasi

Data

SPI

pada

Mikrokontroler

MCS51

Amin Mutohar

Embedded System Laboratory

Program Studi Fisika

Institut Teknologi Bandung

Copyleft © 2008, Si Cicil Cicil (mutoharamin@gmail.com)

SPI (serial peripheral interface bus) merupakan salah satu metode pengiriman data dari suatu devais ke devais lainnya. Metode ini merupakan metode yang bekerja pada metode full duplex dan merupakan standar sinkronasi serial data link yang dikembangkan oleh Motorola. Pada SPI, devais dibagi menjadi dua bagian yaitu master dan slave dengan master sebagai devais yang menginisiasi pengiriman data. Dalam aplikasinya, sebuah master dapat digunakan untuk mengatur pengiriman data dari atau ke beberapa slave sekaligus. Kadang-kadang, SPI disebut juga dengan “four wire” serial bus untuk membedakannya dengan bus serial tiga, dua, dan satu kebel.

Pin – Pin Penghubung pada SPI

Komunikasi serial data antara master dan slave pada SPI diatur melalui 4 buah pin yang terdiri dari SCLK, MOSI, MISO, dan SS. Berikut ini adalah penjelasan singkat mengenai ke 4 pin tersebut:

(2)

slave yang berfungsi sebagai clock dengan frekuensi tertentu. Clock merupakan salah satu komponen prosedur komunikasi data SPI. Dalam beberapa devais, istilah yang digunakan untuk pin ini adalah SCK.

MOSI (master out slave input) merupakan pin yang berfungsi sebagai jalur data pada saat data keluar dari master dan masuk ke dalam slave. Istilah lain untuk pin ini antara lain SIMO, SDI, DI, dan SI.

MISO (master input slave output) merupakan pin yang berfungsi sebagai jalur data yang keluar dari

slave

dan mesuk ke dalam

master

. Istilah lain untuk pin ini adalah SOMI, SDO, DO, dan SO.

SS (slave select) merupakan pin yang berfungsi untuk mengaktifkan slave sehingga pengiriman data hanya dapat dilakukan jika slave dalam keadaan aktif (active low). Istilah lain untuk SS antara lain CS (chip select), nCS, nSS, dan STE (slave transmit enable).

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.

(3)

melalui SCK dengan frekuensi lebih kecil atau sama dengan frekuensi maksimum pada slave. Kemudian, master memberi logika nol pada SS untuk mengaktifkan slave sehingga pengiriman data (berupa siklus clock) siap untuk dilakukan. Pada saat siklus clock terjadi transmisi data full duplex terjadi dengan dua keadaan sebagai berikut:

Master mengirim sebuah bit pada jalur MOSI, slave membacanya pada jalur yang sama.

Slave mengirim sebuah bit pada jalur MISO, master membacanya pada jalur yang sama..

Transmisi dapat menghasilkan beberapa siklus clock. Jika tidak ada data yang dikirim lagi maka master menghentikan clock tersebut dan kemudian menon-aktifkan slave.

Diagram Pewaktuan

Diagram pewaktuan (timing diagram) SPI dimulai pada saat SS diaktifkan (low). Pada saat tersebut siklus clock (cycle #) dimulai, pada contoh diatas dalam satu siklus terdapat 8 bit pengiriman data. Saat SS aktif, MISO/MOSI mulai mengirimkan data mulai dari MSB (most significant bit) data tersebut. Pada saat clock berubah maka proses pengiriman data dilanjutkan pada bit yang lebih rendah. Proses tersebut berlangsung sampai pengiriman data selesai dengan mengirimkan bit LSB (least significant bit) dan siklus clock berakhir serta SS kembali dinon-aktifkan (high). Pada saat ini biasanya slave mengirimkan interrupt ke master yang mengindikasikan bahwa pengiriman data telah selesai dan siap untuk melakukan pengiriman data selanjutnya. Dalam

(4)

polaritas (CPOL) dan fasa (CPHA). Pengaturan kedua mode tersebut jelas terlihat perbedaannya pada ilustrasi di atas.

Konfigurasi SPI Slave Independen

Pada konfigurasi ini, pemilihan slave independen untuk masing-masing slave. Karena pin MISO dihubungkan secara bersamaan maka pengiriman data dapat dipilih berdasarkan pin SS yang diaktifkan.

Konfigurasi SPI Daisy Chain

Pada konfigurasi ini pengiriman data dari atau ke master dilakukan secara berantai pada beberapa slave.

(5)

master (mikrokontroler atau PC). Berikut adalah beberapa peripheral yang dapat menggunakan komunikasi data SPI:

 Sensor: temperatur, tekanan, ADC, touchscreen

 Control devices: audio codecs, digital potentiometers, DAC  Komunikasi: Ethernet, USB, USART, CAN, IEEE 802.15.4  Akses memori: flash and EEPROM

 RTC (real-time clock)  LCD display

 Beberapa MMC atau SD card

Pemrograman SPI pada Mikrokontroler MCS51

Mikrokontroler dapat digunaan sebagai master ataupun slave pada komunikasi data SPI. Hal ini dikarenakan SPI merupakan sebuah protokol yang sederhana sehingga dapat dengan mudah diterapkan pada suatu sistem embedded. Hal ini juga berlaku pada mikrokontroler MCS51. Bahkan, ada beberapa mikrokontroler dari keluarga ini yang mendukung komunikasi data SPI secara hardware seperti pada AT89S8252/53. Oleh karena itu, Komunikasi data SPI pada mikrokontroler MCS51 secara umum dapat dibagi menjadi 2 macam, yaitu secara software dan hardware. Keduannya dibedakan pada fitur dari mikrokontroler yang digunakan. Jika sebuah mikrokontroler mempunyai fitur SPI serial interface maka pemrograman SPI pada mikrokontroler tersebut hanya mengatur register SPI yang ada pada SFR (spesial function register). Komunikasi data ini disebut dengan komunikasi data SPI secara hardware, seperti pada AT89S8252/53. Sebaliknya, jika sebuah mikrokontroler tidak memiliki fitur SPI serial interface maka kominikasi data SPI dilakukan dengan cara software dengan membangun protokol SPI berdasarkan timing diagram-nya.

Komunikasi data SPI secara Software

Komunikasi ini dilakukan dengan cara menciptakan protokol SPI secara software dengan menggunakan algoritma diagram pewaktuan SPI. Dalam hal ini, pemrograman dilakukan untuk memenuhi prosedur pengiriman data antara lain pengaturan SS, MOSI, MISO, dan SCK seperti pada uraian sebelumnya.

(6)

Prosedur pengiriman data

void SPI_Out (int b) { int i ; for ( i = 7 ; i >= 0; i −−) { if (b & (1 << i ) ) SetMOSI( ) ; else ClearMOSI( ) ; waitmicrosec(2) ; SetSCK( ) ; waitmicrosec(3) ; ClearSCK( ) ; waitmicrosec(2) ; } }

Prosedur Penerimaan data

int SPI_In ( ) { int i , b = 0 ; for ( i = 7 ; i >= 0; i −−) { SetSCK( ) ; waitmicrosec(2); if (GetMISO( )) b |= 1 << i ; waitmicrosec(3); ClearSCK( ) ; waitmicrosec(2); } return b ; }

(7)

Komunikasi ini dilakukan dengan memanfaatkan fitur SPI yang ada pada mikrokontroler. Seperti diagram blok di atas, Prosedur atau protokol SPI sudah tersedia pada mikrokontroler. Pemrograman dilakukan hanya untuk mengakses beberapa register yang ada pada diagram blok tersebut. Register-register tersebut terdapat pada register khusus SPI yang terdapat pada SFR yang terdiri dari SPCR (SPI control register), SPSR (SPI status register), dan SPDR (SPI data register). Register-register tersebut terletak masing-masing terletak pada alamat D5h, AAh, dan 86h seperti terlihat pada diagram SFR berikut.

(8)
(9)

proses komunikasi data SPI. Bit tersebut meliputi SPIE, SPE, DORD, MSTR, SPOL, CPHA, SPR0 dan SPR1. SPIE digunakan untuk mengaktifkan interupsi SPI dan terhubung dengan bit ES (IE.4) pada register IE (interrupt enable). SPE digunaan untuk mengaktifkan komuniksi data SPI sehingga digunakan sebagai penghubung register -register SPI dengan pin-pin SPI pada mikrokontroler, yaitu SS (P1.4), MOSI (P1.5), MISO (P1.6), dan SCK (P1.7). DORD digunakan untuk memilih urutan pengiriman data, dari LSB atau MSB terlebih dahulu. MSTR digunakan untuk mengatur mikrokontroler digunakan sebagai master atau slave. CPOL dan CPHA digunakan untuk pengaturan polaritas dan fasa dari clock seperti pada diagram pewaktuan di atas. Bit terakhir, SPR0 dan SPR1 digunakan untuk mengatur frekuensi dari SCK dengan 4 buah pilihan, yaitu 1/4, 1/16, 1/64, dan 1/128 dari frekuensi osilator yang digunakan oleh mikrokontroler.

Register SPSR digunakan untuk melihat status pengiriman data pada SPI. Bit yang digunakan dalam SPSR hanya 2 buah saja yaitu SPIF dan WCOL. SPIF merupakan bit yang menandai bahwa suatu pengiriman data telah selesai sedangkan WCOL merupakan bit yang menandai bahwa pengiriman data sedang berlangsung.

Register SPDR merupakan register yang menyimpan data yang terdapat pada read data buffer SPI AT89S8252 seperti pada diagram blok SPI.

(10)

Komunikasi data SPI merupakan komunikasi data yang mengunakan protokol pengiriman data SPI. Komunikasi ini dapat digunakan pada mikrokontroler untuk berinteraksi dengan suatu perangkat. Prosedur SPI merupakan prosedur yang digunakan untuk proses pengiriman data antara master dan slave. Dalam pelaksaannya, prosedur tersebut harus sesuai dengan diagram pewaktuan SPI sehingga pengiriman data dapat dilakukan. Komunikasi data SPI dibedakan menjadi dua buah macam berdasarkan fitur yang tersedia pada suatu mikrokontroler, yaitu komunikasi data SPI secara software dan hardware.

Daftar Referensi

[1] Wikipedia: en.wikipedia.org.

[2] Jelmer Vernooij: Programming the AT89S8252 using SPI, 2003.

[3] Atmel: AT89S8252 Datasheet.

Gambar

Diagram Pewaktuan

Referensi

Dokumen terkait

Memperhatikan pernyataan dan pandangan dari ulama-ulama kenamaan dari masing-masing mazhab empat tersebut di atas, kiranya hampir semua ulama melarang dan menyatakan

Jurnlah dermaga dan kapal yang ada pada saat ini masih menyebabkan kapal yang akan merapat ke dermaga harus menunggu sekian lamanya untuk mendapatkan pelayanan.. Melihat padatnya

Hal ini dapat dinyatakan dari hasil penelitian bahwa terdapat sumbangan pada kekuatan otot perut terhadap ketepatan melakukan smash semi bola voli, sedangkan

* Masa yang terbaik untuk memasuki pasaran adalah sewaktu Parabolic SAR mula keluar titik permulaan dan garisan MACD mengalami perubahan persilangan sepertimana yang

Derajat kejenuhan dihitung dengan menggunakan arus dan kapasitas dinyatakan dalam smp/jam. DS digunakan untuk analisa perilaku lalu lintas berupa kecepatan.. Dimana

I’d like to think that Amity didn’t suffer to terribly when Kerstan easily caught up to us and slammed her face into the door, knocking her out cold.. I’d like to

Kemajuan teknologi telah memungkinkan peranti pengkomputeran mudah alih (mobile computing devices) digunakan oleh semua orang. Penggunaan meluas peranti pengkomputeran mudah alih

Apabila Jaksa Penuntut Umum kesulitan melakukan penuntutan dikarenakan kurangnya alat-alat bukti, maka Jaksa Penuntut Umum mempunyai kewenangan untuk mencari