1. Kondisi [Kembali]
2. Hardware [Kembali]
Push Button
LED Power Supply
3. Rangkaian Simulasi [Kembali]
4. Listing Program [Kembali]
Master :
#include <SPI.h> //Deklarasi library SPI#define button 2, 3void setup (void) { pinMode(button, INPUT_PULLUP); Serial.begin(115200 ); //Set baud rate 115200 digitalWrite(SS, HIGH); // disable Slave Select SPI.begin (); SPI.setClockDivider(SPI_CLOCK_DIV8); //divide the clock by 8}void loop (void) { char c; int nilai=digitalRead(button); if(nilai==0){ digitalWrite(SS, LOW); //enable Slave Select // send test string for (const char * p = "Hello, world!\r" ; c = *p; p++) { SPI.transfer (c); Serial.print(c); } digitalWrite(SS, HIGH); // disable Slave Select delay(2000); }}
Slave :
#include <SPI.h>#define led 2
char buff [50];volatile byte indx;volatile boolean process;
void setup (void) { Serial.begin (115200); // harus sama antara master dan slave pinMode(led, OUTPUT); // have to send on master in so it set as output SPCR |= _BV(SPE); // turn on SPI in slave mode indx = 0; // buffer empty process = false; SPI.attachInterrupt(); // turn on interrupt}
ISR (SPI_STC_vect) // SPI interrupt routine{ byte c = SPDR; // read byte from SPI Data Register if (indx < sizeof buff) { buff [indx++] = c; // save data in the next index in the array buff if (c == '\r') //check for the end of the word process = true; }}void loop (void) { if (process) { digitalWrite(led, HIGH); process = false; //reset the process Serial.println (buff); //print the array on serial monitor indx = 0; //reset button to zero delay(1000); } else { digitalWrite(led, LOW); }}
5. Analisa [Kembali]
1.
Jelaskan transmisi data pada SPI dan gambarkan timing diagram dari transmisi
data pada SPI
Jawab
:
Dalam Komunikasi SPI, dua atau lebih
device yang terhubung yang salah satunya akan bertindak sebagai Master dan yang
lainnya akan bertindak sebagai Slave.
Master
Device adalah device yang memulai sambungan dan melakukan control transmisi
data. Saat kedua device sudah terkoneksi, master dapat meminta request data
baik mengirim data ataupun menerima data. Seperti pada penjelasan di atas, hal
ini dinamakan koneksi FULL DUPLEX ,yaitu
master device dapat mengirim data dan juga slave device juga dapat mengirim
data pada saat yang bersamaan.
Pada penjelasan sebelumnya SPI menggunakan
empat pin untuk berkomunikasi. Yaitu MOSI, MISO, SCK dan SS.
1.
MOSI berarti Master Output Slave Input, dimana pin ini digunakan sebagai
Master mengirim data dan Slave sebagai penerima data.
2.
MISO berarti Master Input Slave Output, dimana pin ini digunakan sebagai
Master bertindak sebagai penerima data dan Slave sebagai pengirim data.
3.
SCK, SPI Clock Line yang berarti clock yang digunakan untuk berkomunikasi
(Komunikasi synchronous)
4.
SS artinya Slave Select. Jika SS bernilai 0 atau low maka Device bertindak
sebagai slave dan jika bernilai 1 atau high maka device bertindak sebagai
Master.
2.
Bagaimana cara menghubungkan rangkaian SPi saat menggunakan lebih dari satu
slave
Jawab
:
Berdasarkan
gambar diatas,
rangkaian SPI dengan lebih dari satu slave
dihubungkan secara parallel antara kabel master dengan slave, lalu jalur SS (slave select ) digunkan untuk memilih
slave yang akan digunakan oleh master. Untuk lebih jelas dapat dilihat pada
gambar dibawah.
6. Video Simulasi [Kembali]
1.
Jelaskan transmisi data pada SPI dan gambarkan timing diagram dari transmisi
data pada SPI
Jawab :
Dalam Komunikasi SPI, dua atau lebih
device yang terhubung yang salah satunya akan bertindak sebagai Master dan yang
lainnya akan bertindak sebagai Slave.
Master
Device adalah device yang memulai sambungan dan melakukan control transmisi
data. Saat kedua device sudah terkoneksi, master dapat meminta request data
baik mengirim data ataupun menerima data. Seperti pada penjelasan di atas, hal
ini dinamakan koneksi FULL DUPLEX ,yaitu
master device dapat mengirim data dan juga slave device juga dapat mengirim
data pada saat yang bersamaan.
Pada penjelasan sebelumnya SPI menggunakan
empat pin untuk berkomunikasi. Yaitu MOSI, MISO, SCK dan SS.
1.
MOSI berarti Master Output Slave Input, dimana pin ini digunakan sebagai
Master mengirim data dan Slave sebagai penerima data.
2.
MISO berarti Master Input Slave Output, dimana pin ini digunakan sebagai
Master bertindak sebagai penerima data dan Slave sebagai pengirim data.
3.
SCK, SPI Clock Line yang berarti clock yang digunakan untuk berkomunikasi
(Komunikasi synchronous)
4. SS artinya Slave Select. Jika SS bernilai 0 atau low maka Device bertindak sebagai slave dan jika bernilai 1 atau high maka device bertindak sebagai Master.
2. Bagaimana cara menghubungkan rangkaian SPi saat menggunakan lebih dari satu slave
Jawab
:
Berdasarkan
gambar diatas,
rangkaian SPI dengan lebih dari satu slave
dihubungkan secara parallel antara kabel master dengan slave, lalu jalur SS (slave select ) digunkan untuk memilih
slave yang akan digunakan oleh master. Untuk lebih jelas dapat dilihat pada
gambar dibawah.
Tidak ada komentar:
Posting Komentar