Cara Memprogram Mikrokontroler AVR dengan Arduino

Daftar Isi

Program the AVR Microcontroller with Arduino

Di dunia mikrokontroler dan elektronika, terdapat banyak jenis yang berbeda. Salah satu jenis mikrokontroler yang paling populer adalah keluarga AVR. Mikrokontroler ini dapat digunakan dalam berbagai proyek atau produk, karena memiliki banyak kegunaan dan fungsi.

 Jika Anda ingin memulai proyek Arduino tetapi belum yakin bagaimana cara memprogram mikrokontroler AVR dengan Arduino — jangan khawatir! Dalam postingan blog ini, kami akan membahas semua pilihan yang tersedia untuk Anda!

Apa itu mikrokontroler AVR?

Mikrokontroler AVR adalah mikrokontroler yang menggunakan set instruksi AVR. AVR adalah mikrokontroler 8-bit RISC satu chip dengan arsitektur Harvard yang dimodifikasi, yang dikembangkan oleh Atmel pada tahun 1996. Mikrokontroler AVR sering digunakan pada papan Arduino, dan saat memprogram papan Arduino, Anda akan menggunakan mikrokontroler AVR.

avr microcontroller

Bentuk lengkap mikrokontroler AVR

Singkatan lengkap dari mikrokontroler AVR adalah Atmel AVR. Ini adalah jenis mikrokontroler yang awalnya dirancang untuk perangkat tertanam seperti mobil, ponsel, peralatan rumah tangga, sistem pemantauan rumah, dan masih banyak lagi! Mikrokontroler AVR sering digunakan pada papan Arduino, dan saat memprogram papan Arduino, Anda akan menggunakan mikrokontroler AVR.

Fitur mikrokontroler AVR

Daya rendah – Salah satu keunggulan utama mikrokontroler AVR adalah konsumsi dayanya yang rendah. Tergantung pada penggunaan perangkat tersebut, konsumsi dayanya bisa berkisar dari sangat rendah hingga beberapa watt.

Rentang suhu yang luas – Meskipun suhu dapat memengaruhi kecepatan perangkat, mikrokontroler AVR dapat bertahan pada suhu mulai dari -40 derajat Celcius hingga 85 derajat Celcius.

Arsitektur 8-bit – Fitur lain dari mikrokontroler AVR adalah arsitektur 8-bitnya. Hal ini memungkinkan perangkat Anda memiliki memori dan daya pemrosesan yang lebih besar.

Ramah bagi programmer – Terakhir namun tidak kalah pentingnya, mikrokontroler AVR ramah bagi programmer. Hal ini menjadikannya pilihan yang tepat bagi pemula dan penggemar yang ingin membuat proyek mereka sendiri.

Arsitektur mikrokontroler AVR

Arsitektur AVR didasarkan pada arsitektur komputer dengan set instruksi terbatas (RISC). Arsitektur RISC membuat proses pemrograman menjadi jauh lebih sederhana dan efisien, yang merupakan salah satu alasan mengapa AVR menjadi begitu populer.

Set instruksi – Set instruksi arsitektur ini juga disederhanakan. Meskipun hal ini terdengar seolah-olah akan mempersulit pemrograman, sebenarnya hal ini justru memudahkan karena semakin sedikit instruksi berarti instruksi yang lebih sederhana.

Jalur data 8-bit – Arsitektur 8-bit juga berarti memiliki jalur data 8-bit, yang berarti dapat memproses lebih banyak data sekaligus.

Memori program – Memori program adalah tempat semua program Anda disimpan. Ini seperti hard drive untuk perangkat Anda.

Memori data – Memori data adalah tempat data Anda disimpan. Misalnya, jika Anda ingin menyimpan angka di perangkat, angka tersebut disimpan di memori data.

Diagram pin mikrokontroler AVR

Ada berbagai jenis mikrokontroler AVR, dan diagram pinnya akan berbeda-beda tergantung pada jenisnya. Namun, ada beberapa diagram pin yang umum ditemukan pada banyak jenis mikrokontroler AVR, seperti ATmega328P.

AVR ATmega328P pighixxx
Pin AVR ATmega328P

Konfigurasi Pin ATmega328P

RESET – RESET adalah jalur yang terpicu saat perangkat Anda direset. Hal ini dapat mengganggu program Anda jika keduanya terhubung.

GND – GND adalah singkatan dari ground. Ini adalah koneksi yang akan digunakan perangkat Anda untuk menyambungkan rangkaian.

VCC – VCC adalah tegangan yang digunakan untuk menyalakan perangkat Anda.

RX – RX adalah pin input yang menerima data dari perangkat lain.

TX – TX adalah pin output yang mengirimkan data ke perangkat lain.

Diagram blok mikrokontroler AVR

Diagram blok mikrokontroler AVR adalah diagram yang menunjukkan semua bagian internal mikrokontroler. Model yang berbeda akan memiliki bagian yang berbeda pula, tetapi secara umum setiap model memiliki fungsi yang sama.

Memori program – Memori program adalah tempat program Anda disimpan. Ini seperti hard drive untuk perangkat tersebut.

Memori data – Memori data adalah tempat penyimpanan data Anda.

Penghitung program – Penghitung program melacak posisi Anda dalam program.

Register instruksi – Register instruksi menyimpan instruksi berikutnya yang akan dieksekusi.

ALU – ALU adalah singkatan dari unit logika aritmatika. Unit ini melakukan semua operasi matematika dalam program Anda.

File register – File register adalah kumpulan register-register ALU. – Timer/penghitung – Timer/penghitung digunakan untuk mengukur waktu atau menghitung beberapa peristiwa.

Apa itu Arduino

Arduino adalah platform sumber terbuka yang memudahkan orang-orang yang memiliki sedikit atau bahkan tidak memiliki pengalaman pemrograman sama sekali untuk merancang dan membuat proyek elektronik. Papan Arduino mampu mengendalikan berbagai macam lampu, sensor, dan perangkat lainnya. Papan Arduino menggunakan perangkat lunak khusus untuk memprogramnya. Jika Anda ingin memprogram mikrokontroler AVR dengan Arduino, Anda perlu menggunakan papan yang dirancang khusus untuk itu.

Pemrograman mikrokontroler AVR dengan Arduino

Jika Anda ingin memprogram mikrokontroler AVR menggunakan Arduino, Anda perlu menggunakan papan Arduino yang dirancang khusus untuk mikrokontroler AVR. Papan-papan ini dirancang secara khusus untuk menangani pemrograman mikrokontroler AVR. Memprogram mikrokontroler AVR dengan Arduino semudah mengunggah program ke papan. Setelah Anda mengunggah program, Anda perlu mereset papan Arduino dan kemudian mencabut sumber daya. Saat Anda menyambungkan kembali sumber daya, mikrokontroler AVR dengan Arduino akan terprogram.

1. Konfigurasikan programmer Arduino

Pertama, Anda harus mengonfigurasi "programmer-Arduino" (Arduino yang telah Anda atur sebagai programmer) sebagai ISP. Secara default, sketsa (kode) tersedia di bagian Contoh Kode pada menu File di Arduino IDE. Sketsa Arduino ISP mengirimkan instruksi yang diperlukan ke Programmer-Arduino untuk mengaturnya ke mode pemrograman.

Select Arduino ISP option
Select Arduino ISP option

2. Menghubungkan LED ke Arduino

Sebagai langkah kedua, status Programmer-Arduino dapat dipantau menggunakan LED yang terhubung seperti yang ditunjukkan. Kode ISP Arduino telah diprogram sebelumnya untuk fungsi ini.

Arduino-LED connection
Arduino-LED connection

Catatan LED:

Pin 7 = pemrograman (menyala saat pemrograman)

Pin 8 = Kesalahan (menyala saat terjadi kesalahan pemrograman)

Pin 9 = Normal (tetap menyala setelah programmer dinyalakan)

Setelah Programmer-Arduino dikonfigurasi, koneksi antara Programmer-Arduino dan target Arduino terjalin. Konfigurasi pin harus dilakukan persis seperti yang dijelaskan dalam kode Arduino ISP.

3. Konfigurasikan komunikasi SPI

Arduino ISP berkomunikasi menggunakan protokol Serial Peripheral Interface (SPI) untuk memprogram mikrokontroler AVR. Komunikasi SPI menggunakan 4 sinyal logika: MOSI, MISO, SCLK, dan SS. Selain I2C, SPI merupakan salah satu mode komunikasi yang paling umum digunakan untuk mikrokontroler. SPI mengikuti arsitektur master-slave, yang berarti bahwa perangkat master dapat berkomunikasi dengan beberapa perangkat slave menggunakan pin data yang sama, dan perangkat slave target dipilih menggunakan jalur pemilihan slave.

Jika terdapat kartu memori, sinyal select digunakan untuk memilih chip tertentu di antara beberapa chip. Namun, saat menggunakan Arduino sebagai alat pemrograman, sinyal slave select hanya digunakan untuk mereset mikrokontroler. Reset mikrokontroler agar berada dalam keadaan siap menerima perintah dari Arduino programmer.

Pada Programmer-Arduino, pin 10, 11, 12, dan 13 digunakan sebagai pin data. Konfigurasinya adalah sebagai berikut:

pin 10 = reset

Pin 11 = MOSI

Pin 12 = MISO

Pin 13 = SCK

4. Konfigurasikan pin header ICSP

In-Circuit Serial Programming (ICSP) adalah kemampuan untuk memprogram mikrokontroler tanpa memutuskan rangkaian. Konektor ICSP tersedia dalam bentuk 6 pin pada papan Arduino. Hubungkan pin 11, 12, dan 13 pada Arduino target ke pin 11, 12, dan 13 pada Arduino programmer. Perhatikan bahwa pin 10 pada Arduino programmer harus dihubungkan ke pin reset pada Arduino target. Sebagai alternatif, pin header ICSP dapat digunakan untuk komunikasi SPI.

ICSP header for Arduino
ICSP header for Arduino

5. Konfigurasikan Arduino sebagai ISP

Setelah menghubungkan semua komponen di atas, Anda perlu mengatur agar PC host berada dalam mode Programmer. Buka menu Tools, lalu pilih "Arduino as ISP" pada opsi "Programmer".

Configure Arduino as ISP
Configure Arduino as ISP

6. Tulis Bootloader ke Arduino

Selanjutnya, muat bootloader ke dalam memori Arduino target dan tentukan "fuse". Dalam dunia Arduino, fuse adalah sekumpulan instruksi yang digunakan untuk menentukan berbagai fungsi dalam sebuah mikrokontroler. Misalnya, frekuensi chip dan sumber clock ditentukan dalam fuse. Mikrokontroler sangat sensitif terhadap tegangan operasi dan dapat mengalami gangguan jika tingkat tegangannya lebih rendah dari yang ditentukan. Tegangan operasi minimum juga ditentukan dalam fuse.

burn bootloader to Arduino
burn bootloader to Arduino

Tindakan pencegahan

#1. Jika mikrokontroler atau papan Arduino dapat berkomunikasi dengan program Arduino IDE, terdapat berbagai keuntungan, seperti kemampuan untuk menggunakan monitor serial Arduino IDE guna memeriksa hasilnya saat program sedang berjalan. (Monitor Serial akan terbuka di jendela terpisah, berfungsi sebagai terminal terpisah untuk menerima dan mengirim data serial.)

#2. Jika bootloader tidak dimuat ke dalam mikrokontroler, mikrokontroler tersebut tidak akan dapat menggunakan fungsi-fungsi Arduino dan tidak akan dapat berkomunikasi dengan Arduino IDE. Bootloader menggunakan sebagian ruang memori. Dalam beberapa kasus, penggunaan Arduino IDE tidak diperlukan, sehingga bootloader tidak perlu diprogram. Jika bootloader tidak diprogram, lebih banyak memori dapat dibebaskan untuk sketsa program utama. Misalnya, pada Arduino UNO, ukuran memori total adalah 32 KB, dan 0,5 KB memori dialokasikan untuk bootloader. Jika bootloader tidak diinstal, total memori yang tersedia untuk sketsa program utama menjadi lebih besar.

Ringkasan

Mikrokontroler AVR adalah chip yang mudah digunakan dan bertenaga, yang dapat diprogram untuk berbagai macam aplikasi. Chip ini sangat cocok bagi pemula yang ingin mempelajari mikrokontroler dan elektronika. Platform Arduino merupakan cara yang tepat untuk memulai belajar mikrokontroler dan dirancang khusus untuk pemula.

Berlangganan

Daftar ke milis kami untuk mendapatkan pembaruan blog bulanan, berita teknologi, dan studi kasus. Kami tidak akan pernah mengirimkan spam, dan Anda dapat berhenti berlangganan kapan saja.

Scroll to Top

Instant Quote