Fungsi Pin MISO, MOSI, dan SCK Mikrokontroller - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Fungsi Pin MISO, MOSI, dan SCK Mikrokontroller

15 komentar
Fungsi Pin MISO, MOSI, dan SCK Mikrokontroller - Rangkaian sismin

Gambar di atas adalah mikrokontroller ATMega16A yang diprogram dengan programmer USBAsp. Dari rangkain di atas, saya agak memahami bagaimana mikrokontroller dan programmer bekerja, dan apa itu sebenarnya minimum sistem (sismin) untuk mikrokontroller. Pada rangkaian tersebut, mikrokontroller diprogram dengan internal clock (tanpa menggunakan XTAL), tanpa menggunakan komponen penyetabil tegangan (kapasitor), dan tanpa komponen untuk reset (push-button dan resistor pull-up). Jadi mikrokontroller tersebut hanya disambung ke VCC dan GND sebagai sumber listrik serta MISO, MOSI, SCK, RST, dan GND ke USBAsp.

Pemahaman baru ini sedikit menggeser pengetahuan saya tentang sistem minimum untuk mikrokontroller. Dulu, ketika awal-awal ingin belajar mikrokontroller saya beranggapan bahwa setiap IC mikrokontroller membutuhkah sistem yang terdiri dari XTAL, beberapa resistor, kapasitor, dan beberapa komponen lainnya. Tapi saya mulai heran dengan beberapa tutorial tentang cara memprogram mikrokontroller ATTiny dengan Arduino yang hanya menggunakan kabel tanpa embel-embel sismin yang ribet. Apalagi rangkaiannya hanya menggunakan project board. Lalu, saya berpikir, apakah cara tersebut juga berlaku untuk mikrokontroller jenis lainnya?

Untuk menjawab pertanyaan tersebut, saya coba mencari sistem yang paling minimum (hehe) untuk memprogram mikrokontroller, tapi belum ketemu. Iseng-iseng buka datashit (hehe, datasheet) ATMega16A. Setelah memperhatikan antara sismin, datasheet, dan beberapa pengalaman menggunakan internal clock. Maka, ternyata penambahan XTAL hanya digunakan ketika ingin menggunakan external clock. Artinya, kita tidak perlu menggunakan XTAL dan Capasitor jika ingin menggunakan internal clock. Begitu juga untuk resistor dan push-button, ternyata dia disambungkan ke pin RESET, yang artinya : resistor berfungsi sebagai pull-up sehingga pin RESET berlogika HIGH dan ketika push-button dipencet, maka pin RESET akan diberi logika LOW sehingga mikrokontroller akan melakukan reset.

Skema Rangkaian sismin ATMega16
Rangkaian sismin ATMega16
Secara teori, kita tidak perlu resistor dan push-button jiga tidak butuh tombol untuk mereset. Kita juga tidak perlu tambahan XTAL dan kapasitor jika tidak ingin menggunakan external clock dari XTAL. Jadi, kita cukup memberi tegangan positif dan GND, maka kita bisa menjalankan mikrokontroller dengan normal. Sedangkan ketika ingin memprogram pun hanya butuh menghubungkan pin MISO, MOSI, SCK, dan RST ke programmer (dalam hal ini saya menggunakan USBAsp).

Lalu Apa fungsi dari MISO, MOSI, dan SCK pada USBAsp?

Nah, itu yang akan sedikit dibahas pada posting ini :p. Sebenarnya pengetahuan ini akan berlaku untuk semua programmer (selain USBAsp). Penggunaan USBAsp karena memang saya punya yang begituan, belinya dulu ketika kepingin belajar mikrokontroller.

MISO (Master In Slave Out) & MOSI (Master Out Slave In) adalah jalur data untuk komunikasi antara master (programmer / downloader, USBAsp) dan Slave (IC mikrokontoller). Sesuai dengan namanya, MISO merupakan jalur yang digunakan download untuk menerima data, sedangkan MOSI adalah jalur downloader mengirim data ke IC mikrokontroller. Kedua jalur ini adalah jalur utama yang digunakan downloader dan mikrokontroller berkomunikasi. Untuk menghindari kesalahan dalam berkomunikasi, maka dibutuhkan sinkronisasi. Sinkronisasi tersebut dilakukan dengan memanfaatkan jalur SCK (atau ada yang disebut SCLK, Serial CLOCK). Data (MISO dan atau MOSI) akan dianggap valid hanya saat SCK dalam keadaan tinggi.

Skema rangkaian downloader USBASP dan ATMEGA16A
Skema download USBAsp dan ATMega16A
Menurut beberapa sumber, dua peralatan yang berkomunikasi ini sama-sama menggunakan Shift Register. Sehingga dalam komunikasi ini, selalu ada data yang dikirim dan diterima secara bersama-sama dalam setiap clock bit-nya. Sehingga setiap eksekusi (pengiriman data), maka data 4 byte dikirim sekaligus juga menerima 4 byte data. 4 byte data yang diterima ini sekaligus juga berarti respon dari target, seperti ATMEL AT89S5X atau AVR.

Untuk USBAsp, downloader ini memiliki 5 kabel yaitu MISO, MOSI, SCK, RST, dan GND. MISO dihubungkan ke pinMISO mikrokontroller, MOSI ke pin MOSI mikrokontroller, SCK ke pin SCK, GND ke GND, dan RST ke pin RESET. Dengan demikian, kita bisa memprogram hanya menggunakan kabel-kabel tersebut tanpa tambahan-tambahan komponen sebagaimana sismin yang banyak dijual di pasaran. Rangkain di bawah ini adalah rangkaian dasar untuk mengoperasikan IC mikrokontroller ATMega16A dengan program yang isinya membuat LED 'flip-flop'. Jadi, sebenarnya jika untuk test atau membuat prototype, kadang kita tidak perlu menggunakan sismin yang begitu lengkap. Kita cukup siapkan downloader, kabel-kabel, project board, dan sensor atau komponen sensor lainnya.
rangkaian Sistem minimum untuk atmega16a
ATMega16A beroperasi membuat LED berkedip dengan sistem super minim


Written by ElangSakti
Fungsi Pin MISO, MOSI, dan SCK Mikrokontroller
Bahasan: Gambar di atas adalah mikrokontroller ATMega16A yang diprogram dengan programmer USBAsp. Dari rangkain di atas, saya agak memaham...
Published at Rabu, 05 Agustus 2015, Updated at Rabu, 05 Agustus 2015
Reviewed by dr. on
Rating: 4.7

15 komentar :

  1. Keerreeenn Gan... !!!
    Pemikiran agan bener beda dari kebanyakan orang dikita
    Nice Post !

    BalasHapus
  2. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  3. Mangtapps..
    Lanjutkan Bro.

    BalasHapus
  4. Blog nya paling mudah dimengert mantap

    BalasHapus
  5. Terimakasih Bang ilmunya. Saya mau tanya. Ketika kita melalukan pengiriman program ke mikrokontroler melalui USB asp / downloader, apakah kita juga perlu menghidupkan mikrokontroler dengan catudaya, atau hanya menyambungkan pin mosi, miso, sck, reset, dan gnd saja (mikrokontroler mati) ? Terimakasih

    BalasHapus
  6. sayangnya komentar tidak pernah dibalas

    BalasHapus
  7. Ini berlaku juga ngak untuk membaca ic at89s52 yg sudah terprogram dan memindahkannya ke ic baru..

    BalasHapus
  8. Ntapsss

    Thanks bro,, good job

    BalasHapus