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

Selasa, 21 Februari 2023

Mengenal Dasar-Dasar Serial Peripheral Interface (SPI) Mikrokontroler


Pada artikel kali ini, Arduino Indonesia akan membahas tentang dasar-dasar Serial Peripheral Interface (SPI) mikrokontroler. Komunikasi serial terdiri dari beberapa cara, yaitu USART, 12C, SPI, TWI dan lain sebagainya. SPI merupakan salah satu protokol komunikasi serial shyncronous yang di-develop oleh Motorola. Koneksi SPI yaitu device yang terhubung satu sama lain akan bersifat Full Duplex yang berarti ada device yang bertindak sebagai Master dan Slave. 

 

Master device yaitu perangkat yang memulai sambungan dengan cara menginisialisasi SPI address dari slave device. Kemudian master dan slave bisa mengirim atau pun menerima data. Hal ini dikarenakan komunikasi full duplex yang artinya master dan slave bisa menerima atau pun mengirim data. Slave device bisa mengirim atau menerima data dalam waktu yang bersamaan. Oleh karena itu disebut Full Duplex.

 

Transaksi Data dalam Mode SPI

 

Pembahasan selanjutnya yaitu tentang pertukaran data dalam mode SPI. SPI beroperasi berdasarkan shift register baik master device maupun slave device. Dimana keduanya akan memiliki 8 bit shift register. Akan tetapi tergantung dari berbagai macam arsitektur mikrokontroler, ada yang bisa memiliki 10 bit atau pun 12 bit shift register.

 

Bus master melakukan konfigurasi clock untuk memulai komunikasi, dengan catatan frekuensi atau kecepatan transfer data antara SPI master device dan slave device harus sama yang biasanya bisa mencapai beberapa MHz. Master device akan memilih perangkat slave device dengan mengeluarkan logika 0, kemudian master device akan menunggu proses yang telah dijadwalkan di master device itu sendiri seperti uratan interupsi timer, konversi analog ke digital (ADC) dan lain sebagainya. Setelah periode tersebut selesai, maka master device akan mengeluarkan clock yang pertanda akan dimulainya proses komunikasi serial.


Setiap dilakukan satu clock SPI, maka akan terjadi komunikasi full duplex antara master device dengan slave device. Master device mengirimkan satu bit pada line MISO, kemudian slave device akan membacanya. Setelah itu, pada line MISO slave device akan mengirimkan data kembali ke master device dan master device akan membacanya. Urutan ini akan bertahan meskipun kita tidak menggunakan komunikasi Full Duplex atau hanya menggunakan satu line komunikasi saja (seperti simplex).


Transmisi data akan melibatkan dua shift register dari beberapa ukuran data yang diberikan seperti 8 bit, 10 bit atau pun 12 bit yang sering digunakan yaitu 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 ke delapan. Setelah register bergeser keluar, berarti master device dan slave device sudah bertukar data. Kemudian akan bergantian slave device dan master device. Jika data yang dikirim banyak, maka shift register akan diisi ulang dengan data yang baru. Kemudian proses pengirimannya pun diulang. Proses pengiriman akan dihentikan jika master device mengirim sinyal toggle untuk mengakhiri pemilihan slave device.


Ketika 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. Kemudian bit B0 dari slave device akan menempati bit ke 7 dari master device. Begitulah proses berulang dan terjadi setiap ada clock dari master.

 

Ketika clock ke 3 dari master device yang mengakibatkan shift register menggeser nilai dari slave di bit B2 berpindah menempati bit ke 7 dari master device. Kemudian bit A2 dari master device akan bergeser 1 bit ke bit 7 dari slave device. Hal ini akan berjalan sesuai dengan perintah 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 di atas, 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 memberi tanda bahwa SPI akan berakhir dan master akan mengulangi untuk memilih slave device.

 

Jika Anda masih bingung, saya akan menyimpulkan dari hal 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.

 

Antarmuka Bus SPI

 

Setelah sudah jelas bagaimana master dan slave bisa berkomunikasi, lalu kita akan membahas deskripsi bus SPI dan antarmuka antara slave dan master. Master dan slave terhubung dalam 4 jalur. Setiap jalur ini mempunyai informasi dan membawa sinyal tertentu yang didefinisikan oleh protocol dari bus SPI. Keempatnya adalah :

 

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. Berikut ini adalah diagram interface antara master dan slave device.

 

Dengan demikian, setiap clock SPI yang melakukan transmisi full duplex akan mengalami:

 

• Master mengirimkan satu bit ke slave, lalu slave device akan membacanya dalam line yang sama.

• Slave mengirimkan satu bit ke master, lalu master juga membacanya dalam line yang sama.

 

Multiple Slave SPI Mode

 

Seperti yang telah dijelaskan sebelumnya, bus SPI memungkinkan terdiri dari beberapa slave device dan hanya ada 1 master. Namun sangat jarang terjadi mengingat setting clock yang kompleks dan sangat susah. Pada Multiple Slave, Pin SS lah yang akan berfungsi untuk memilih slave mana yang akan menerima dan mengirim data. Pins SS ini mempunyai konfigurasi active low, yang berarti kita harus memberikan pulsa 0 untuk memilih slave yang akan kita ajak bertukar data.

 

Semua PIN MISO, MOSI dan SCK dari master akan terkoneksi secara parallel ke 3 Slave device. Namun ada 3 pin SS dari master yang masing-masing pin nya terpisah dan hanya terkoneksi ke pin SS dari setiap slave. Pin SS lah yang akan bergantian memilih slave mana yang akan diajak berkomunikasi dengan master. Sebagaicontoh, pin SS1 akan memberikan logic low ke pin SS dari Slave 1. Berarti Slave device yang akan bertukar data adalah slave 1 dengan master, dan seterusnya.

 

Namun sebagai catatan untuk menghindari tabrakan data, kita tidak boleh memberi logic low atau 0 kepada Pin SS1, SS2, SS3 secara bersamaaan. Untuk bergantian, kita harus menunggu transfer data telah selesai dari satu slave, lalu kita memberikan logic 1 ke slave tersebut yang berarti slave 1 telah idle. Baru saat komunikasi sudah selesai dengan slave 1, maka kita bisa membuat pin SS2 menjadi 0 atau low dan memulai komunikasi dengan slave 2, dan seterusnya sampai kembali lagi ke slave 1.

 

 

1 on: "Mengenal Dasar-Dasar Serial Peripheral Interface (SPI) Mikrokontroler"
  1. bagus bos cuma saya masih belum bisa memahami karena dasar nya masih lemah kalau punya buku bacaan mengenai SPI bisa di bagi ke sisw1971@gmail.com

    BalasHapus