Pengantar Pemrograman Mikrokontroler Atmega128 / 328

Atmega128/328 adalah mikrokontroler yang sangat mumpuni dan digunakan dalam berbagai bidang aplikasi. Mikrokontroler 8-bit ini sangat terintegrasi dan dilengkapi dengan beragam periferal serta fitur. Dalam postingan blog ini, kita akan membahas berbagai fitur Atmega128/328, konfigurasi pin-nya, teknik pemrograman, serta aplikasinya. Kami juga akan membahas keunggulan mikrokontroler Atmega128 / 328 dibandingkan mikrokontroler lainnya, serta memberikan beberapa praktik terbaik dalam menggunakannya.

Apa itu Atmega128 / 328?

Atmega128 / 328 adalah mikrokontroler 8-bit yang diproduksi oleh Atmel Corporation. Mikrokontroler ini didasarkan pada arsitektur AVR, dan merupakan salah satu mikrokontroler paling populer yang digunakan dalam sistem tertanam. Mikrokontroler ini tersedia dalam berbagai kemasan dan konfigurasi, termasuk PDIP 40-pin, TQFP 44-pin, dan VQFP 64-pin. Atmega128 / 328 didasarkan pada arsitektur RISC dan memiliki berbagai periferal, termasuk konverter A/D 8-saluran 10-bit, tiga timer 16-bit, port serial, dan port SPI. Mikrokontroler ini memiliki total memori program sebesar 128 Kbyte dan EEPROM sebesar 2 Kbyte.

Atmega128
Atmega128

Gambaran Umum Atmega128 / 328

Fitur

Atmega128 / 328 memiliki beragam kemampuan, sehingga menjadikannya mikrokontroler yang serbaguna dan bertenaga. Mikrokontroler ini memiliki arsitektur RISC 16-bit, yang memungkinkannya menjalankan instruksi dengan cepat dan efisien. Mikrokontroler ini dapat beroperasi pada frekuensi 8MHz, 16MHz, atau 20MHz, sehingga cocok untuk berbagai macam aplikasi. Atmega128 / 328 juga dilengkapi dengan berbagai periferal, termasuk konverter A/D 8-saluran 10-bit, tiga timer 16-bit, port serial, dan port SPI. Mikrocontroller ini juga memiliki memori program sebesar 128 Kbyte / 328 Kbyte dan EEPROM sebesar 2 Kbyte, sehingga mampu menyimpan data dalam jumlah besar.

Atmega128 / 328 juga sangat terintegrasi, menjadikannya ideal untuk digunakan dalam sistem tertanam. Mikrokontroler ini dilengkapi dengan osilator terintegrasi, sirkuit reset terintegrasi, dan regulasi tegangan terintegrasi. Selain itu, terdapat sirkuit reset saat daya dinyalakan (power-on reset) yang memastikan mikrokontroler direset saat daya diterapkan. Selain itu, Atmega128 memiliki berbagai port I/O, sehingga memungkinkan untuk berinteraksi dengan berbagai perangkat eksternal.

Konfigurasi Pin

Atmega128 / 328 memiliki total 64 pin, yang disusun dalam dua baris. Pin-pin tersebut dibagi menjadi dua kategori: pin I/O digital dan pin I/O analog. Pin I/O digital digunakan untuk mengendalikan sinyal digital, sedangkan pin I/O analog digunakan untuk mengendalikan sinyal analog. Atmega128/328 juga dilengkapi dengan port serial, port SPI, dan port I2C.

Pin Configuration of Atmega128
Pin Configuration of Atmega128

Aplikasi

  • Proyek robotika, seperti lengan robot dan robot otonom.
  • Proyek komunikasi, seperti modul Bluetooth dan Wi-Fi.
  • Sistem akuisisi data dan sistem tertanam untuk pencatatan data dan pengendalian.
  • Aplikasi otomotif, seperti sistem kontrol mesin dan sistem infotainment dalam kendaraan.
  • Produk konsumen, seperti remote control, kamera digital, dan peralatan rumah tangga.

Pemrograman Atmega128 / 328

IC Atmega128 / 328 dapat diprogram menggunakan bahasa C atau bahasa assembly. IC ini memiliki berbagai fitur yang memudahkan pemrograman, termasuk beragam port I/O, osilator terintegrasi, dan regulator tegangan terintegrasi.

Jika Anda ingin memprogram Atmega128 / 328, Anda memerlukan programmer. Programmer adalah perangkat yang digunakan untuk mentransfer kode program dari komputer ke Atmega128 / 328. Setelah kode program ditransfer, IC dapat diprogram menggunakan perangkat lunak yang sesuai. Semua langkah dapat dibagi menjadi 4 bagian sebagai berikut:

  • Bagian 1: Menyiapkan Komponen yang Diperlukan.
  • Bagian 2: Membuat Sirkuit Arduino pada Breadboard.
  • Bagian 3: Menuliskan bootloader ke IC Atmega128 / 328.
  • Bagian 4: Memprogram IC Atmega128 / 328.

Bagian 1: Menyiapkan Komponen

Atmega128 / 328: Komponen utama pada papan prototipe dan diagram pinnya ditunjukkan di atas.

Breadboard (LM7805): Perangkat tanpa solder untuk menghubungkan komponen elektronik dengan kabel jumper.

Osilator (16 MHz): Menyediakan sinyal clock untuk IC, dihubungkan ke Pin 23 dan Pin 24.

Kapasitor (10uF): Digunakan pada bagian input dan output LM7805 untuk mengalirkan komponen arus bolak-balik (AC) ke ground.

Kabel Jumper: Kabel logam yang menghubungkan dua titik pada papan sirkuit atau papan prototipe.

Bagian 2: Membuat Sirkuit Arduino di Papan Rangkaian Tanpa Solder

Langkah 1: Pertama, sambungkan bagian catu daya seperti yang ditunjukkan pada diagram rangkaian dan uji dengan catu daya eksternal LM7805. Tampilannya seperti ini:

Connecting the power to LM7805 breadboard

Langkah 2: Selanjutnya, sambungkan bagian mikrokontroler seperti yang ditunjukkan pada diagram rangkaian.

Connecting the Atmega128 / 328 IC to breadboard

Langkah 3: Sekarang, gunakan kabel jumper untuk menghubungkan catu daya dan bagian mikrokontroler.

Connecting the power supply and the Atmega128 / 328 IC by wire jumpers

Bagian 3: Menulis bootloader ke IC Atmega128 / 328

Bootloader adalah potongan kecil kode yang dapat dieksekusi yang disimpan secara permanen di memori mikrokontroler. Ukuran bootloader ini kurang dari 1 KB. Bootloader memungkinkan IC menerima kode dari komputer dan menyimpannya di memori mikrokontroler.

Saat Anda membeli Atmega128 / 328 baru di pasaran, IC tersebut belum memiliki bootloader. Oleh karena itu, untuk memprogramnya menggunakan Arduino IDE, Anda harus mengunggah bootloader terlebih dahulu.

Untuk mengunggah bootloader, ada dua metode yang dapat digunakan:

  • Menggunakan USBasp Programmer
  • Menggunakan papan Arduino UNO

Dibandingkan dengan metode pertama, metode kedua lebih mudah. Karena metode ini membutuhkan lebih sedikit koneksi dan versi terbaru Arduino IDE kurang kompatibel dengan programmer USBasp.

Jadi, dalam tutorial ini, kita akan menggunakan papan Arduino UNO untuk mengunggah bootloader.

Langkah 1: Buka Arduino IDE. Buka menu: File -> Contoh -> ArduinoISP. Kemudian pilih ArduinoISP.

Opening Arduino IDE and Choose ArduinoISP Examples

Langkah 2: Sekarang, Anda harus mengunggah kode ini ke papan Arduino Anda. Pilih port com dan papan dari menu alat, lalu klik tombol unggah.

Langkah 3: Setelah pengunggahan selesai, lepaskan papan Arduino dari komputer. Kemudian hubungkan papan Arduino dengan IC Atmega128 / 328 seperti yang ditunjukkan pada gambar di bawah ini.

Connecting the Arduino board with the Atmega128 / 328

Langkah 4: Silakan buka Arduino IDE setelah Anda menghubungkan papan Arduino dengan komputer Anda. Selanjutnya, buka menu: Tools -> Board: "Arduino/Genuin0 Uno" dan pilih port yang tepat untuk papan Anda. Kemudian, pilih Programmer: sebagai "Arduino as ISP".

Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP

Langkah 5: Sekarang, buka kembali bilah menu Tools dan klik Burn Bootloader di bawah opsi Programmer. Setelah beberapa detik, bootloader berhasil diunggah. Jika terjadi kesalahan saat mengunggah, silakan periksa koneksinya.

Burning Bootloader to Atmega128 / 328

Bagian 4: Memprogram IC Atmega128 / 328

Chip Arduino Atmega128 / 328 dapat diprogram dengan berbagai cara, antara lain:

  1. Gunakan papan Arduino tanpa IC Atmega128 / 328.
  2. Gunakan modul konversi USB ke serial TTL (modul FTDI).
  3. Gunakan programmer USBasp (jika ada banyak koneksi).

Di sini, kami memperkenalkan cara pertama dan kedua untuk memprogram IC Atmega128 / 328.

4.1 Memprogram IC Atmega128 / 328 Menggunakan Papan Arduino

Langkah 1: Siapkan papan Arduino yang tidak dilengkapi chip Atmega128/328. Kemudian hubungkan papan Arduino tersebut dengan papan prototipe kami seperti yang ditunjukkan.

Connecting the Arduino board with the breadboard

Langkah 2: Hubungkan papan Arduino dengan komputer dan buka Arduino IDE. Pilih Arduino Uno dari menu Board di Tools, Programmer sebagai USBasp, dan port com yang benar dari papan tersebut.

Langkah 3: Kita akan mulai dengan mengunggah program Blink. Jadi, pilih program blink dari contoh dan tekan tombol unggah.

Uploading the Blink program to Atmega128 / 328

Sekarang Anda dapat melihat LED di papan prototipe mulai berkedip.

4.2 Memprogram Atmega128 / 328 menggunakan Konverter USB-ke-Serial

Ini adalah cara terbaik untuk memprogram Atmega128 / 328 jika Anda tidak memiliki papan Arduino.

Langkah 1: Siapkan koneksi konverter USB-ke-serial sebagai berikut:

Pin RXD FTDI -> Pin Tx Atmega128 / 328 (pin 3)

Pin TXD FTDI -> Pin Rx (pin 2) Atmega128 / 328

GND -> GND (pin 8)

5v -> Vcc (pin 7)

Beberapa modul FTDI memiliki pin Reset, yang juga dikenal sebagai pin DTR, yang harus dihubungkan ke pin Reset (pin 20) Atmega128 / 328.

Langkah 2: Sekarang, hubungkan FTDI dengan komputer dan buka pengelola perangkat di panel kontrol. Anda akan melihat bagian Port, buka bagian tersebut. Jika driver memiliki tanda kuning di depannya, driver modul harus diperbarui.

Connecting the FTDI with computer and open Device Management in Control Panel

Jika tidak ada tanda, catat nomor port COM dan buka Arduino IDE. Buka Tools -> Ports -> Pilih port COM yang telah Anda catat.

Langkah 3: Terakhir, kita mengunggah program Blink ke Arduino Breadboard kita. Buka File -> Examples -> Basics -> Blink. Dari menu Board di Tools, pilih Arduino Uno, Programmer sebagai USBasp, dan port com papan yang benar.

Kemudian klik tombol unggah.

(Catatan: Jika modul FTDI Anda tidak memiliki pin DTR, tekan tombol reset pada breadboard dan tekan tombol unggah. Jika muncul tulisan "Compiling sketch…", tekan dan tahan tombol tersebut hingga muncul tulisan "Uploading…" lalu lepaskan tombol tersebut.)

Sekarang program akan berhasil diunggah ke chip Atmega128 / 328 Bootloader Arduino.

Atmega128 / 328 vs Mikrokontroler Lainnya

Atmega128 / 328 adalah mikrokontroler yang kuat dan serbaguna, tetapi ada mikrokontroler lain yang mungkin lebih cocok untuk aplikasi tertentu. Misalnya, prosesor ARM Cortex-M lebih cocok untuk aplikasi yang membutuhkan kinerja lebih tinggi. Prosesor ARM juga lebih hemat daya dan lebih cocok untuk aplikasi berdaya rendah.

Atmega128 / 328 juga lebih mahal dibandingkan beberapa mikrokontroler lainnya. Namun, ini adalah mikrokontroler yang kuat dan serbaguna, serta cocok untuk berbagai macam aplikasi. Oleh karena itu, penting untuk mempertimbangkan persyaratan aplikasi saat memilih mikrokontroler.

Praktik Terbaik dalam Menggunakan Atmega128 / 328

Atmega128/328 adalah mikrokontroler yang kuat dan serbaguna, dan ada beberapa praktik terbaik dalam menggunakannya. Penting untuk menyimpan mikrokontroler di lingkungan yang bebas listrik statis, karena listrik statis dapat merusak mikrokontroler. Penting juga untuk memastikan bahwa mikrokontroler disuplai dengan tegangan yang tepat dan bahwa regulator tegangan internal berfungsi dengan baik. Selain itu, penting untuk memastikan bahwa osilator internal berfungsi dengan baik, karena ini digunakan untuk menghasilkan sinyal clock.

Penting juga untuk memastikan bahwa alat pengembangan sudah yang terbaru dan bahwa kode pemrograman telah diuji secara menyeluruh sebelum digunakan dalam mikrokontroler. Selain itu, penting untuk mematuhi peraturan keselamatan yang sesuai saat bekerja dengan mikrokontroler.

Bagikan ke:

Scroll to Top

Instant Quote