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