PERCOBAAN 2
"SPI (SERIAL PHERIPERAL INTERFACE)"
 


1. push button

2. arduino
3. led









 

 

//MASTER

 

#include <SPI.h>

 

void setup (void) {

   Serial.begin(115200);

//set baud rate to 115200 for usart

   digitalWrite(SS, HIGH);

// disable Slave Select

   SPI.begin ();

   SPI.setClockDivider(SPI_CLOCK_DIV8);//divide the clock by 8

}

 

void loop (void) {

   char c;

   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>

char buff [50];

volatile byte indx;

volatile boolean process;

 

void setup (void) {

   Serial.begin (115200);

   pinMode(MISO, 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) {

      process = false; //reset the process

      Serial.println (buff); //print the array on serial monitor

      indx= 0; //reset button to zero

   }

}










ANALISA PERCOBAAN 2 SPI:

1.       Apakah kit dapat menggunakan lebih dari 1 master? Jelaskan alasannya

Jawab: tidak, karena pada dasarnya untuk mulai komunikasi SPI,bus master harus melakukan clock dengan ctatan frekuensi dan kecepatan transfer data master dan slave harus sama,serta master di hubungkan secara parallel dengan slave,atau dengan kata lain hanya bisa satu master untuk membangkitkan sinyal clock nya

2.       Apakah port MISO harus digunakan? Jelaskan alasannya

Jawab: iya harus digunakan,karena Miso artinya master sebagai input dan slave sebagai output jika miso tidak dipakai,maka data dari slave tidak akan bisa terkirim ke master



Rangkaian simulasi download
Video penjelasan download
Program Arduino download MASTER SLAVE
File HTML download
 

Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

BAHAN UNTUK RAKTIKUM MIKROPROSESOR DAN MIKROKONTROLER 2020 Oleh : YUDHA PRATAMA 1810953025 Dosen Pengampu : DARWISON , M.T Referensi...

Postingan Populer