Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Rabu, 31 Mei 2023

Komunikasi Data SPI dengan Arduino

SPI atau Serial Peripheral Interface merupakan komunikasi seri synchronous yang berarti harus menggunakan clock yang sama untuk menyinkronisasi deteksi bit pada receiver. Biasanya SPI hanya digunakan untuk komunikasi jarak dekat dengan mikrokontroler lain yang terletak pada papan rangkaian yang sama. SPI dikembangkan untuk menyediakan komunikasi dengan kecepatan tinggi menggunakan sedikit pin mikrokontroler.

 

SPI melibatkan master dan slave. Keduanya mengirimkan dan menerima data secara terus menerus. Master bertanggung jawab menyediakan sinyal clock untuk transfer data. Selain menyediakan clock, master juga menyediakan data 8 bit per pulsa clock menuju pin MOSI pada slave. Delapan bit data juga diberikan dari slave ke master melalui pin master-in-slave-out menuju pin MISO pada master. Biasanya, pin SS (slave select) diberi ground (active low) untuk menjadikannya sebagai slave.

 

Single Master Diagram SPI

Mekanisme Kerja Komunikasi Data SPI

 

SPI beroperasi berdasarkan shift register, baik master device maupun slave device. Keduanya akan memiliki 8 bit shift register. Ada yang bisa memiliki 10 bit atau pun 12 bit shift register, tergantung dari berbagai macam arsitektur mikrokontroler yang digunakan. Bus master melakukan konfigurasi clock untuk memulai komunikasi dengan catatan frekuensi atau kecepatan transfer data antara SPI master device dan slave device harus sama. Kecepatan transfer data tersebut bisa mencapai beberapa MHz. Master akan memilih perangkat slave dengan mengeluarkan logika 0. Kemudian master akan menunggu proses yang telah dijadwalkan di master itu sendiri seperti urutan interupsi timer, konversi analog ke digital (ADC) dan lain sebagainya. Setelah periode tersebut selesai, master akan mengeluarkan clock sebagai pertanda akan dimulainya proses komunikasi serial. Master dan slave terhubung dalam 4 jalur. Namun terkadang SS tidak hanya dihubungkan ke ground melainkan dihubungkan juga ke CS.

Setiap jalur yang terhubung tersebut memiliki informasi dan membawa sinyal tertentu yang didefinisikan oleh protokol dari bus SPI. Berikut ini fungsi kerja dari keempat jalur tersebut :

1. MOSI (Master Output Slave Input) sebagai sinyal output dari master device yang merupakan shift register dari master menuju input dari slave. 

2. MISO (Master Input Slave Output) sebagai sinyal output dari master device untuk menerima data shift register dari slave device menuju master.

3. SCK atau SCLK (Serial Clock) digunakan sebagai clock yang dihasilkan oleh master dan berguna untuk menandakan komunikasi SPI serta melakukan shifting terhadap shift register dari kedua device. 

4. SS (Slave Select) merupakan pin yang digunakan untuk memilih slave mana yang akan diajjak berkomunikasi oleh master.

Sinyal MOSI, SCK dan SS yang berasal dari master digunakan untuk mengirim sinyal ke slave. Sedangkan MISO digunakan untuk menerima sinyal dari slave. Jadi, setiap clock SPI yang melakukan transmisi full duplex akan mengalami beberapa proses yaitu :

1. Master mengirimkan satu bit ke save, kemudian slave device akan membacanya dalam line yang sama.

2. Slave mengirimkan satu bit ke master, kemudian master membacanya dalam line yang sama.

Jadi, setiap satu clock SPI dilakukan akan terjadi komunikasi full duplex antara master device dengan slave device. Master mengirimkan satu bit pada line MISO, kemudian akan dibaca oleh slave. Pada line MISO, slave device akan mengirimkan data kembali ke master device dan akan dibaca oleh master device. 

 

Transmisi data akan melibatkan dua shift dari beberapa ukuran data yang diberikan seperti 8 bit, 10 bit atau pun 12 bit. Namun pada umumnya menggunakan 8 bit shift register. Keduanya akan terkoneksi dalam topologi ring secara virtual. Biasanya data yang dikirimkan akan bergeser satu per satu dari bit pertama hingga bit kedelapan. Setelah register bergeser keluar, berarti master dan slave sudah bertukar data. Kemudian akan bergantian slave dan master. Shift register akan diisi ulang dengan data baru jika data yang dikirim banyak. Proses pengirimannya pun diulang. Jika master mengirim sinyal toggle untuk mengakhiri pemilihan slave, maka proses pengiriman akan dihentikan.

 

Ketika clock dari master memberikan tanda ke slave device, maka shift register akan menggeser data di bit A0 dari master kemudian menempati bit ke 7 dari slave device. Selanjutnya bit B0 dari slave device akan menempati bit ke 7 dari master device. Proses tersebut akan berulang dan akan terjadi setiap ada clock dari master device. 

 

Data dari tiap bit, baik daari master maupun slave device akan bergeser 1 bit sesuai dengan clock dari master. Kita bisa melihat apa yang terjadi ketika clock mencapai hitungan ke 8. Pada gambar di bawah ini, semua data sudah berpindah dari master device ke slave device dan dari slave device ke master device. Hal ini membuktikan bahwa komunikasi SPI merupakan komunikasi serial full duplex. Biasanya clock akan memberi tanda bahwa SPI akan berakhir dan master akan mengulangi untuk memilih slave device. 

 

Jadi, kedua device akan menempatkan data yang akan ditransfer ke dalam shift register sebelum komunikasi serial dimulai. Master menghasilkan 8 pulsa untuk menggeser nilai tiap bit yang ada pada shift register, baik slave device maupun master device. Setelah 8 clock selesai, master device akan memberikan 1 bit informasi sebagai tanda komunikasi. Begitu juga dari salve device ke master device. Master akan menerima data dari slave yang sudah ada di shift register master device dan slave device akan menerima data dari master yang tersimpan di shift register slave device. 



0 on: "Komunikasi Data SPI dengan Arduino"