//Tambahan //Akhir tambahan Fungky Corporation: Pengetahuan Dasar Komunikasi SPI (Serial Peripheral Interface)

MAU PESAN ALAT BIDANG ELEKTRONIKA? KAMI FUNGKY CORPORATION SIAP MEMBANTU. HUBUNGI :

Email: fungkyking01@gmail.com | FB/TWITTER/YOUTUBE : FUNGKYKING |

WA (WhatsApp) Only : 0838 (Libur)


Lokasi Yogyakarta.

Wednesday, 9 October 2019

Pengetahuan Dasar Komunikasi SPI (Serial Peripheral Interface)


Pengetahuan Dasar
Komunikasi SPI (Serial Peripheral Interface)

Pengetahuan Dasar Komunikasi SPI (Serial Peripheral Interface)

  1. Pendahuluan
Salam Otomatisasi, apa kabar semuanya? Semoga baik-baik saja. Kali ini kita akan membahas tentang komunikasi SPI (Serial Peripheral Interface), tapi sebelumnya jangan lupa singgah ke blog saya à http://festyy.com/wNiBaj untuk membaca materi-materi lainnya tentang mikrokontroler dan subscribe serta Like channel youtube saya di (fungky king) https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA untuk melihat hasil dari percobaan-percobaan dengan mikrokontroler yang telah dibuat.

Dalam pembahas tentang “Pengetahuan Dasar Komunikasi SPI (Serial Peripheral Interface)” terbagi beberapa bagian yaitu pengertian Komunikasi SPI, mekanisme kerja komunikasi SPI dan contoh sederhana implementasi komunikasi SPI pada Arduino meliputi gambar rangkaian, program dan penjelasan singkat sistem yang dibuat.

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

SPI melibatkan master dan slave. Keduanya mengirimkan dan menerima data secara terus menurus, namun master bertanggung jawab untuk menyediakan sinyal clock untuk transfer data. Gambar 1 menunjukkan komunikasi antara master dan slave pada komunikasi SPI. Master menyediakan clock dan data 8 bit pada pin master-out-slave-in (MOSI) dimana data tersebut ditransfer satu 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 𝑆𝑆 (slave select) diberi ground (active low) untuk menjadikannya sebagai slave.

Gambar 1. Skema Komunikasi SPI (Serial Peripheral Interface)

  1. Pembahasan
Setelah kita tahu apa itu SPI, mari kita lanjutkan ke pembahasan berikutnya, yaitu tentang mekanisme kerja komunikasi SPI. SPI beroperasi berdasarkan shift register baik master device maupun slave device, keduanya akan mempunyai 8 bit shift register. Namun tergantung dari berbagai macam arsitektur mikrokontroler yang digunakan, ada yang bisa memiliki 10 bit ataupun 12 bit shift register.

Untuk memulai komunikasi, bus master melakukan konfigurasi clock, dengan catatan frekuensi atau kecepatan transfer data antara SPI master device dan slave device harus sama, biasanya bisa mencapai beberapa MHz. Master akan memilih perangkat slave dengan mengeluarkan logika 0, lalu master akan menunggu proses yang telah dijadwalkan di master itu sendiri seperti uratan intrupsi timer, konversi analog ke digital (ADC), dll. Lalu setelah periode itu selesai master akan mengeluarkan clock yang pertanda akan dimulainya proses komunikasi Serial.

Master dan slave terhubung dalam 4 jalur seperti pada Gambar 1, namun terkadang SS juga selain dihubungkan ke Ground tapi juga dihubungkan ke CS seperti pada Gambar 2 dibawah ini.

Gambar 2. Single Master Diagram SPI

Setiap jalur yang terhubung ini mempunyai informasi dan membawa sinyal tertentu yang didefinisikan oleh protocol dari bus SPI. Adapun fungsi kerja dari keempat jalur tersebut adalah sebagai berikut:

  1. MOSI (Master Output Slave Input), ini adalah sinyal output dari master device yang merupakan shift register dari master menuju input dari slave.
  2. MISO (Master Input Slave Output), ini adalah input dari master device untuk menerima data shift register dari slave device menuju master.
  3. SCK atau SCLK (Serial Clock), ini adalah clock yang dihasilkan master yang berguna menAndakan komuniaksi SPI dan untuk melakukan shifting terhadap shift register dari kedua device.
  4. SS’ (Slave Select), ini adalah pin yang digunakan untuk memilih slave mana yang akan diajak berkomunikasi oleh master. (dengan asumsi lebih dari satu slave device)
Sinyal MOSI, SCK, dan SS berasal dari master untuk dikirim ke slave. Sedangkan MISO digunakan untuk menerima sinyal dari slave. Dengan demikian, setiap clock SPI yang melakukan tranmisi full duplex akan mengalami bebrapa proses yaitu:

  1. Master mengirimkan satu bit ke slave, lalu Slave device akan membacanya dalam line yang sama.
  2. Slave mengirimkan satu bit ke master, lalu master juga membacanya dalam line yang sama.
Jadi setiap satu clock SPI dilakukan, maka akan terjadi komunikasi full duplex antara master device dengan slave device. Master mengirimkan satu Bit pada line MISO, lalu slave akan membacanya. Setelah itu, pada line MISO slave device akan mengirimkan data kembali ke master device dan master akan membacanya. Urutan atau sekuen ini akan bertahan seperti di atas meskipun kita tidak menggunakan komunikasi Full Duplex atau hanya menggunakan satu line komunikasi saja (seperti simplex ).

Gambar 3. Awal Sebelum Transfer Data

Transmisi data akan melibatkan dua shift register dari beberapa ukuran data yang diberikan seperti 8 bit, 10 bit ataupun 12 bit. Namun pada umunya digunakan 8 bit shift register. Keduanya akan terkoneksi dalam topologi ring secara virtual.  Data yang dikirimkan biasanya akan bergeser satu per satu dari bit pertama hingga bit kedelapan. Setelah register bergeser keluar, berarti master dan slave sudah bertukar data. Lalu selanjutnya akan bergantian slave dan master. Jika data yang dikirim banyak, maka shift register akan diisi ulang dengan data yang baru. Lalu proses pengirimannya pun diulang. Proses pengiriman akan dihentikan jika master mengirim sinyal toggle untuk mengakhiri pemilihan slave.
Untuk lebih jelasnya, mari kita lihat gambar berikut ini:

Gambar 4. Proses Transfer Data

Pada gambar 4, bisa kita lihat saat clock dari master memberikan tAnda ke slave device, shift register akan menggeser data di bit A0 dari master, menempati bit ke 7 dari slave device. Lalu bit B0 dari slave device akan menempati bit ke 7 dari master device. Begitulah proses berulang dan terjadi setiap ada clock dari master.

Data dari tiap bit baik dari master maupun slave device akan bergeser 1 bit sesuai dengan clock dari master. Selanjutnya kita akan melihat apa yang terjadi saat clock mencapai hitungan ke 8. Bisa kita lihat pada gambar 5, semua data sudah berpindah dari master ke slave dan dari slave ke master. Hal ini membuktikan bahwa komunikasi SPI adalah komunikasi serial full  duplex. Biasanya clock akan member tAnda bahwa SPI akan berakhir dan master akan mengulangi untuk memilih slave device.

Gambar 5. Transfer Data Lengkap

Jika Anda masih bingung, saya akan menyimpulkan beberapa poin dari pembahasan di atas:

  1. Kedua device baik master maupun slave akan menempatkan data yang akan ditransfer ke dalam shift register mereka sebelum komunikasi serial dimulai.
  2. Master menghasilkan 8 pulsa untuk menggeser nilai setiap bit yang ada pada shift register baik slave maupun master. Setelah 8 clock selesai, master akan memberikan 1 bit informasi sebagai tAnda komunikasi dan sebaliknya dari slave ke master.
  3. Setelah 8 clock selesai, master akan menerima data dari slave yang sudah ada di shift register master dan slave akan menerima data dari master yang tersimpan di shift register slave device.
  1. Penutup
Demikian penjabaran singkat tentang “Pengetahuan Dasar Komunikasi SPI (Serial Peripheral Interface)”. Dikarenakan pembahasan sudah terlalu panjang, untuk selanjutnya akan kita bahas tentang contoh perancangan atau penggunaan modul menggunakan komunikasi SPI. Jangan lupa buat yang ingin mempelajari tentang Arduino baik Hardware maupun Software atau program silakan follow akun sosial media saya difacebook “fungkyking” juga diblog saya http://festyy.com/wNiBaj dan subscribe serta Like channel youtube saya (fungky king) https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA untuk melihat tulisan-tulisan serta hasil rancangan alat-alat berbasis mikrokontroler yang kami buat. Kami juga menerima pembuatan alat-alat elektronika baik untuk penelitian ataupun alat untuk syarat kelulusan.

Demikian pembahasan singkat yang dapat dibahas, mohon maaf jika terdapat kesalahan dalam penulisan yang mana semua ini semata-mata hanya opini pribadi berdasarkan pengalaman. Jika ada kekurangan dan tambahan dari materi pembahasan yang dibahas silahkan dapat teman-teman sertakan pada kolom komentar tambahan materi yang ingin disampaikan, sampaikan pertanyaan dan isi kolom komentar dengan bijak.
           
Terima Kasih,
Salam Otomatisasi

Afriansyah, S.T.
(Fungky King)
fungkyking01@gmail.com

Kata Kunci / Keywords: ATMEGA, Arduino, Arduino IDE, Arduino UNO, Bahasa C, fungkynotes.blogspot.co.id, fungky corporation, fungky king, microcontroller, otomatis, pemprograman, programming, Programmable Logic Controllers (PLC), NodeMCU, ESP8266, Internet of Things (IoT), Wi-Fi, PROSESOR TERTANAM (EMBEDED PROCESSOR), PWM, ADC, LED, Blink, I2C (Inter-Integrated Circuit), Two-wire (TWI), SPI (Serial Peripheral Interface)

Referensi / Reference:


No comments:

Post a Comment

Berfikirlah kreatif dengan komentar yang bijak. Salam Otomatisasi.!

//Tambahan //akhir