Deprecated: Required parameter $output follows optional parameter $depth in /home/pkaykstj/andiandaria.trinita.ac.id/wp-content/themes/jannah/framework/classes/class-tielabs-mega-menu.php on line 451
Pertemuan 14 (Interface Serial SPI) – Charissa
Periferal dan Antarmuka

Pertemuan 14 (Interface Serial SPI)

Tujuan Pembelajaran

1. Mahasiswa mampu menjelaskan Komunikasi Serial SPI.
2. Mahasiswa mampu membuat rangkaian dan pemrograman innterface serial SPI pada mikrokontroler AVR dan Arduino.

8.1 Antarmuka Serial dan SPI

Serial Peripheral Interface ( SPI ) adalah sebuah antarmuka bus yang biasa digunakan untuk mengirim data antara mikrokontroler dan perangkat kecil seperti register geser, sensor, dan kartu SD.

Menggunakan jam dan data baris terpisah, bersama dengan garis pilih untuk memilih perangkat yang ingin Anda ajak bicara.

Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega8535.

Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang dimiliki oleh ATmega8535.

Sebuah port serial yang umum , jenis dengan TX dan RX baris , disebut asynchronous ( tidak sinkron ) karena tidak ada kontrol atas saat data dikirim atau jaminan bahwa kedua belah pihak berjalan tepat pada tingkat yang sama.

Karena komputer biasanya mengandalkan segala sesuatu yang disinkronkan ke satu jam (kristal utama yang melekat pada komputer yang mendorong segala sesuatu ), ini bisa menjadi masalah ketika dua sistem dengan jam sedikit berbeda mencoba untuk berkomunikasi satu sama lain.

Untuk mengatasi masalah ini , koneksi serial asynchronous menambahkan start dan stop bit ekstra untuk setiap byte bantuan sync penerima up data setelah diterima.

Kedua belah pihak juga harus setuju pada kecepatan transmisi ( seperti 9600 bit per detik ) di muka. Sedikit perbedaan dalam tingkat transmisi tidak masalah karena receiver re sync pada awal setiap byte.

Gambar 8.1: Komunikasi Serial

Serial asynchronous bekerja dengan baik , namun memiliki banyak overhead baik di start dan stop bit ekstra dikirim dengan setiap byte, dan hardware yang kompleks yang diperlukan untuk mengirim dan menerima data.

Dan seperti yang Anda mungkin telah melihat dalam proyek Anda sendiri, jika kedua belah pihak tidak diatur dengan kecepatan yang sama, maka data yang diterima akan menjadi sampah.

Hal ini karena penerima sampling bit pada waktu yang sangat spesifik (panah dalam diagram di atas).

Jika penerima melihat pada saat yang salah , itu akan melihat bit yang salah. SPI bekerja dalam cara yang sedikit berbeda . Ini adalah sinkron data bus, yang berarti bahwa ia menggunakan jalur terpisah untuk data dan jam yang membuat kedua belah pihak di sync sempurna.

Jam adalah sinyal osilasi yang memberitahu penerima persis kapan untuk sampel bit pada baris data. Ini bisa menjadi naik (rendah ke tinggi) atau jatuh (tinggi ke rendah) tepi sinyal clock, datasheet akan menentukan mana yang akan
digunakan.

Ketika penerima mendeteksi bahwa tepi, segera akan melihat baris data untuk membaca bit berikutnya (lihat panah di bawah diagram).

Karena jam tersebut dikirim bersama dengan data, menentukan kecepatan tidak penting , meskipun perangkat akan memiliki kecepatan puncak di mana mereka dapat beroperasi (Kita akan membahas memilih jam yang tepat tepi dan kecepatan dalam sedikit).

Gambar 8.2: Komunikasi Serial

Salah satu alasan bahwa SPI sangat populer adalah bahwa hardware penerima bisa menjadi register geser sederhana . Ini adalah jauh lebih sederhana (dan murah !)

Bagian dari perangkat keras daripada UART full- up ( Universal Asynchronous Receiver / Transmitter ) bahwa serial asynchronous membutuhkan.

Dalam SPI , hanya satu sisi menghasilkan sinyal clock (biasanya disebut CLK atau SCK untuk Serial Clock) . Sisi yang menghasilkan jam disebut master, dan sisi lainnya disebut budak.

Selalu hanya satu master (yang hampir selalu mikrokontroler Anda), tetapi bisa ada beberapa budak (lebih lanjut tentang ini dalam sedikit).

Ketika data dikirim dari master ke slave, itu dikirim pada baris data yang disebut MOSI, untuk Guru Out / Slave In . Jika slave harus mengirim respon kembali ke master, master akan terus menghasilkan sejumlah diatur sebelumnya clock cycle, dan budak akan menempatkan data ke jalur data ketiga yang disebut MISO, untuk Guru In / Out Slave.

Gambar 8.3: Komunikasi Serial

Perhatikan kita berkata sudah diatur sebelumnya dalam uraian di atas . Karena master selalu menghasilkan sinyal clock, maka harus mengetahui terlebih dahulu ketika slave perlu kembali data dan berapa banyak data yang akan dikembalikan.

Hal ini sangat berbeda dari serial asynchronous, di mana jumlah acak data dapat dikirim di kedua arah setiap saat.

Dalam prakteknya hal ini tidak masalah, karena SPI umumnya digunakan untuk berbicara dengan sensor yang memiliki struktur perintah yang sangat spesifik.

Misalnya, jika Anda mengirim perintah untuk membaca data ke perangkat, Anda tahu bahwa perangkat akan selalu mengirimkan, misalnya dua byte kembali.

(Dalam kasus di mana Anda mungkin ingin kembali sejumlah variabel data, Anda selalu bisa kembali satu atau dua byte menentukan panjang dari data dan kemudian memiliki master mengambil jumlah
penuh.)

Perhatikan bahwa SPI adalah full duplex (memiliki mengirim dan menerima baris yang terpisah), dan dengan demikian dalam situasi tertentu, Anda dapat mengirim dan menerima data pada waktu yang sama (misalnya, meminta pembacaan sensor baru saat mengambil data dari sebelumnya).

Datasheet perangkat Anda akan memberitahu Anda jika hal ini mungkin.

Slave Pilih (SS) Ada satu baris terakhir Anda yang disebut SS untuk Slave Pilih. Ini memberitahu budak yang harus bangun dan menerima / mengirim data dan juga digunakan ketika beberapa budak yang hadir untuk memilih salah satu yang ingin diajak bicara.

Garis SS biasanya terangkat tinggi yang memutus hubungan budak dari bus SPI.

(Jenis logika dikenal sebagai aktif rendah, dan Anda akan sering melihat digunakan untuk mengaktifkan dan me-reset baris.)

Tepat sebelum data dikirim ke budak garis dibawa rendah yang mengaktifkan budak. Ketika Anda selesai menggunakan budak , garis dibuat tinggi lagi.

Dalam sebuah register geser, ini sesuai dengan kait masukan, yang mentransfer data yang diterima ke garis output.

8.2 Komponen dengan antarmuka SPI

Syarat komponen/alat untuk berkomunikasi dengan mikrokontroler lewat SPI adalah komponen/alat harus memiliki pin untuk jalur data MOSI, MISO, dan SCK. Berikut beberapa modul yang menggunakan interfacce SPI:

8.2.1 Downloader ASP/ISP

Downloader adalah sebuah alat yang digunakan untuk memasukkan program ke dalam mikrokontroler, baik itu yang berjenis MCS ataupun AVR semuanya butuh downloader.

Downloader bisa juga diartikan sebagai jembatan penghubung antara komputer dengan mikrokontroler.

Yang mana file.hex yang telah dibuat dari compile file.bas dari software BASCOM-AVR dimasukkan ke dalam mikrokontroler.

Downloader yang umum digunakan untuk memasukkan data dari komputer ke mikrokontroler yaitu USB-ASP, namun ada pula yang tidak memakai USB-ASP yaitu menggunakan serial paralel port untuk melakukan download programnya.

Gambar 8.4 Downloader

Untuk sistem kerja dari downloader, terutama USB-ASP yaitu dengan cara memberikan pin MISO, MOSI, SCK, RESET, dan GROUND pada rangkaian downloader, dipasangkan ke mikrokontroler terutama ATMega yaitu pada pin yang sama MOSI, MISO,SCK, RESET, GROUND. Sehingga akan nampak seperti bagan gambar berikut ini.

Gambar 8.5 Komunikasi ISP pada Downloader

8.2.2 Joystik PS2

Joystick PS2 ada 2 tipe yang Wire / kabel dan Wireless tanpa kabel, pada ajang KRAI penggunaan joystick ini sangat familiar karena mudah penggunaanya dan simple. Interface Joystick PS dengan Mikrokontroler ini menggunakan komunikasi SPI (Serial Peripheral Interface) atau yg dikenal dengan 3 kabel data.

Gambar 8.6 Joystick PS2

Joystick PS2 dengan mikrokontroler cukup sederhana hanya 4 pin yaitu MOSI, MISO, SCK, dan Pin bebas. Untuk pin SCK, MOSI, PB4 (bebas) diberi resistor 220 ohm sebagai pengaman, sedangkan resistor 4k7 ohm pada MISO sebagai Pull-up.

Pin SCK dihubungkan ke kabel joystick warna biru, PB4 (pin bebas) dihubungkan ke kabel joystick warna kuning, Pin MOSI dihubungkan ke kabel joystick warna orange, dan Mosi dihubungkan ke kabel joysick warna Coklat dan diberi pull-up. Sedangkan untuk power joystick diberi tegangan 5 V (merah) dan ground (hitam).

Gambar 8.7 Konfigurasi PIN pada Joystick PS2

8.3 Interface Serial pada Mikrokontroler AVR

Serial SPI pasa mikrokontroler AVR adalah komunikasi yang menggunakan 3 data yaitu MOSI, MISO, dan SCK yang harus ada pada kedua perangkat yang akan berkumunikasi.

8.3.1 Rangkaian ISP

Berbeda pada rangkaian USART pemasangan pin Rx dan Tx harus ditukar untuk dapat berkumunikasi. Pada Rangkaian ISP pemasangannya harus lurus.

Pada rankaian tertentu biasanya menggunakan rangkaian tambahan berupa rangkaian penstabil sinyal tegangan berupa resistor seperti pada contoh berikut rangkaian komunikasi Joystick PS2 ke Mikrokontroler AVR.

Gambar 8.8 Rangkaian Konfigurasi PIN pada Joystick PS2

8.3.2 Pemrograman SPI

Mengakses Stik Ps2 ke mikrokontroler AVR menggunkan jalur SPI seperti yang terlihat pada gambar ??. Kontroler stik ps2 ini biasa digunakan untuk mengontrol robot secara manual. Pertama adalah mengaktifkan fitur SPI

Gambar 8.9 Mengaktifkan Fungsi SPI mikrokontroler

Program SPI lebih rumit dibandingkan dengan USART dikarenakan setiap bit yang diakses harus dilakukan registrasi untuk mendapat data, berikut adalah contoh listing program pengambilan data SPI dan menampilkan data tersebut di LCD.
Listing Program:

8.4 Interface Serial pada Arduino

Sama seperti mikrokontroler AVR, Interface SPI pada mikrokontroler adalah komunikasi yang menggunakan 3 data yaitu MOSI, MISO, dan SCK yang harus ada pada kedua perangkat yang akan berkomunikasi.

Salah satu contoh perangkat yang menggunakan komunikasi antarmuka SPI adalah joystick. Pengaplikasian antarmuka joystick pad arduino terbilang sangatlah mudah dibandingkan menggunakan mikrokontroler AVR.

Dalam menggunakan komunikasi SPI, Arduino telah pengembangkan dan menyediakan port yang dapat langsung dihubungkan dengan perangkat antarmuka begtupan dalam hal pemrograman telah tersedia banyak library yang siap digunakan tergantung dari jenis perangkat tersebut.

8.4.1 Rangkaian SPI pada JoyStick

Dapat diamati pada gambar 8.10 bahwa interface untuk arduino tidak lagi menggunakan rangkaian tambahan sperti yang digunakan pada mikrokontroler jenis AVR.

Gambar 8.10 Interface Joystick PS2 pada Arduino

8.4.2 Pemrograman SPI pada JoyStick

Beikut adalah contoh pemrograman SPI, pada contoh berikut menggunakan joystick PS2 sebagai interface ke Arduino. Pemrograman Joystik PS2 menggunakan library “PS2X lib.h”, library tersebut telah menyediakan semua fitur yang berhubungan dengan kontrol joystik PS2 yang terkomunikasi lewat interface serial SPI.

Program dibawah ini adalah program default atau program standar bawaan dari library “PS2X lib.h”. Program seperti dibawah dapat diperoleh di bagian example yang telah disediakan oleh aplikasi Arduino.IDE,

jika contohnya program belum ada maka pengguna arduino harus mengunduh librarynya terlebih dahulu.
Listing Program:

Rangkuman

1. Serial Peripheral Interface ( SPI ) adalah sebuah antarmuka bus yang biasa digunakan untuk mengirim data antara mikrokontroler dan perangkat kecil seperti register geser, sensor, dan kartu SD .
2. Contoh perangkat yang berkomunikasi lewat interface ISP adalah downloader. Downloader adalah sebuah alat yang digunakan untuk memasukkan program ke dalam mikrokontroler, baik itu yang berjenis MCS ataupun AVR semuanya butuh downloader.
3. Komunikasi SPI menggunakan 3 pin data yaitu mosi, miso, dan sck.
4. Pemrograman Komunikasi Serial SPI pada mikrokontroler AVR memerlukan registrasi setiap bit untuk mendapatkan data sedangkan pada pemrograman Arduino menggunakan library bawaan tergantung dari perangkat yang akan dikontrol.

Tugas Formatif

1. Jelaskan pengertian komunikasi serial SPI?
2. Carilah 5 Komponen atau Modul yang menggunakan komunikasi SPI?
3. Jelaskan kegunaan pasing-masing pin MOSI, MISO dan SCK yang ada pada komunikasi serial SPI?

Tugas Latihan

1. Buatlah rangkaian dan program menggunakan mikrokontrole AVR dan Arduino menggunakan interface 1 buah komponen motor DC dan 1 buah stick PS.
2. Buatlah dengan algoritma, jika salah satu tombol pada stick ditekan maka motor DC Berputar

Daftar Pustaka

1. Adrianto, H.: 2013, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
2. Adrianto, H.: 2015, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
3. E. Knuth, D.: 2011, The Art of Computer Programing, Addison Wesley, United States.
4. Fahmizal: 2011, Jenis dan Tipe Motor Servo. URL: https://fahmizaleeits.wordpress.com/
5. Fauzi, F. A.: 2015, Downloader). URL: https://fajarahmadfauzi.wordpress.com/
6. Grupta, M.: 2012, Perkenalan Seputar Mikrokontroler. URL: https://guptayp.wordpress.com/
7. Iswanto: 2011, Belajar Mikrokontroler AT89S51 dengan Bahasa C, CV Andi Offset, Yogyakarta.
8. Kadir, A.: 2015, Buku Pintar Pemrograman Arduino, MediaKom, Yogyakarta.
9. Rachmat, O.: 2012, Panduan Praktis Membuat Robotik dengan Pemrograman C++, CV Andi Offset, Yogyakarta.
10. Rangkuti, S.: 2011, Mikrokontroler Atmel AVR Simulasi dan Praktik Menggunakan ISIS Proteus dan CodeVisionAVR, Informatika Bandung, Bandung.
11. Saputra, E.: 2015, Materi dasar Algoritma dan Pemograman. URL: https://suhaebiebi40.wordpress.com/
12. Spurianto: 2015, Pengertian Push Button Switch (Saklar Tombol Tekan)). URL: http://blog.unnes.ac.id/
13. Syahrul: 2012, Mikrokontroler AVR ATmega8535, Informatika Bandung, Bandung.
14. syarif, m.: 2014, Serial Pheripheral Interface (SPI) dan Universal Synchronous Asynchronous Receiver Transmitter (USART). URL: http://muhammadsyarif.ilearn

Related Articles

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Back to top button