sekilas tentang SPI


tulisan ini hanya basa basi aja, tidak ada ilmu tambahan selain di datasheet ATMEL. tujuan belajar SPI yaitu kita akan membuat standalone programmer AVR(artinya kita akan membuat sebuah alat untuk memprogram IC AVR tanpa komputer), mungkin nantinya banyak digunakan di pabrik pabrik yang memakai mikrokontroler,

“UNTUK YANG DCS BIKIN SENDIRI SAJA”

SPI merupakan kepanjangan dari Serial Peripheral Interface, Protokol SPI ini sudah umum digunakan oleh pecinta mikrokontroler,  pada ic avr sudah ada hardware untuk menangani komunikasi SPI, nah untuk ic yang belum ada hardware spi nya protokol ini dapat di buat secara software.

Ada 2 macam mode SPI yaitu

1.   Satu master, satu slave

2.   Satu master, beberapa slave

 

register register pada avr yang berhubungan dengan SPI:

1. SPCR

2. SPSR

SPCR(SPI Control Register)  merupakan register control SPI untuk mengatur aktivasi SPI, mode SPI dan kecepatan data transfer SPI.

SPSR(SPI Status Register) merupakan register  untuk pengaturan kecepatan data transfer menjadi 2x kecepatan awal.

Untuk lebih kerennya belajar SPI lihat saja di datasheet atmel

Inisialisasi SPI

inisialisai SPI untuk mode master. Inisialisasi meliputi setting port MISO,MOSI,CS,SCK, mode spi dan kecepatan transfer data. Berikut program insialisasi SPI:

void init_spi()

{

DDRB &= ~(1 << SPIDI);     // set port B SPI data input to input

DDRB |= (1 << SPICLK);     // set port B SPI clock to output

DDRB |= (1 << SPIDO);      // set port B SPI data out to output

DDRB |= (1 << SPICS);      // set port B SPI chip select to output

SPCR = (1 << SPE) | (1 << MSTR) |(1 << SPR1) | (1 << SPR0);

SPSR = (1 << SPI2X);

}

 

Membaca dan mengirim data SPI

SPDR(SPI Data Register) merupakan register untuk membaca dan menulis pada transfer data SPI. Berikut program untuk baca tulis data SPI

char spi(char d) //kirim terima 1 byte data SPI

{

char received = 0;

SPDR = d;//mengirimkan sebuah  data

while(!(SPSR & (1<<SPIF)));//menunggu SPIF sampai bernilai 1

received = SPDR;//membaca data SPDR

return (received);//

}

ya sudah dulu sekian dari saya. mungkin untuk artikel selanjutnya kita akan langsung membuat sebuah aplikasi yang menggunakan PROTOKOL SPI untuk membuat STANDALONE PROGRAMMER AVR

5 thoughts on “sekilas tentang SPI”

  1. mungkin ini pengalaman dari saya, kebanyakan teori saya pelajari karena terpaksa.

    jadi benar motto saya “bisa karena terpaksa”.

    yang jelas kalo kita punya tujuan membuat suatu alat, pasti ilmu yang kita pelajari itu akan nempel, terus yang harus di pelajari juga ga ,melebar kemana mana,

  2. Mas punya tutorial tentang protocol SPI mas???saya memiliki tugas akhir mengenai komunikasi USB to SPI. Disini saya pengen mengontrol sebuah divice, dimana komunikasi menggunakan protocol SPI, dan Delphi untuk feedback ke PC. Saya menggunakan metode satu master dan satu slave, dimana yang menjadi master PC dan Slave sebuah divice yang terhubung dengan sebuah ATmega16. Mohon bantuannya mas, thax a lot….

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s