1. Tujuan[Kembali]
Tujuan Percobaan :
a) Memahami prinsip kerja SPI
b) Mengaplikasikan protokol komunikasi SPI
Kondisipada slave menggunakan bautrate sebesar 115200, dan dideklrasikan button sebagai input dan led sebagi ouput, lalu untuk program void loop apabila nilai button bernilai low maka x bernilai 1, dan bernilai 0 untuk lainya, dan apabila master recive berniali q maka led akan high, namun jika berniali lain maka led akan bernilai low lalu ditambahkan delay sebesar 500ms.
pada rangkaian, apabila push button ditekan maka arus dari suplay akan menuju ground, sehingga pada pin 7 akan bernilai low, sehingga master kan mengirimkan informasi melalui pin komunikasi spi, yang dihubungkan pada slave, sehingga slave mendeteksi bahwa nilai input adalah low , sehingga akan mengeluarkan output pada pin 7 dan led akan menyala berkedip dengan delay sebesar 500 ms. namun ketika push button dilepas maka pin 7 berlogika high dan master akan mengirimkan data pada slave, karna nilai logikanya adalah high maka pada program outputnya berupa logika low pada slave sehingga led tidak akan menyala.
#define BUTTON 7
int buttonStatus;
int buttonVal;
void setup (){
Serial.begin(115200);
pinMode(BUTTON, INPUT);
digitalWrite(SS, HIGH);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV8);
}
void loop (){
byte masterSend;
buttonStatus = digitalRead(BUTTON);
if (buttonStatus == HIGH){
buttonVal = 1;
}else{
buttonVal = 0;
}
digitalWrite(SS, LOW);
masterSend = buttonVal;
SPI.transfer(masterSend);
digitalWrite(SS, HIGH);
delay(200);
}
#define LED 7
volatile byte slaveReceived;
volatile boolean received;
void setup (){
Serial.begin (115200);
pinMode(LED, OUTPUT);
pinMode(MISO, OUTPUT);
SPCR |= _BV(SPE);
slaveReceived = 0;
received = false;
SPI.attachInterrupt();
}
ISR (SPI_STC_vect)
{
slaveReceived = SPDR;
received = true;
}
void loop (){
if(received){
while(slaveReceived == 0){
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
}
5. Analisa[Kembali]
Percobaan 2
1. apakah pin SS bisa diganti dengan pin digital lain?
Jawab :
Untuk pin select slave atau ss dapat diganti menggunakan pin
digital lainya, selain pin yang
digunakan dalam komunikasi data yang merupakan pin komunikasi SPI, yang mana
penggunaan pin digital dapat dipakai sesuai dengan yang ditentukan dalam
program.
2. apa yang terjadi jika pin MISO di lepas?
Jawab :
Yang terjadi
apabila pin MISO dilepaskan, Maka tidak akan ada input dari master device dan pada
master device juga tidak akan bisa untuk menerima data shift register dari
slave device. Sehingga komunikasi antara master device dan slave device
terganggu.
3. Apakah pada komunikasi ini bisa menggunakan multi master?
Jawab :
Pada spi dapat menggunakan mode multi master. contohnya
apabila kita menggunakan lebih dari satu master pada satu slave, dan apabila
komunikasi tidak berjalan secara bersamaan maka hal ini mungkin untuk
dilakukan. Hal ini karna pada spi memiliki alamat tersendiri sehingga pada tiap
master atau pun device serta memiliki pin select slave (ss). Sehingga hal ini
mungkin untuk dilakukan.
6. Vidio[Kembali]
Tidak ada komentar:
Posting Komentar