Download - 2 Mikrokontroler Avr
2 MIKROKONTROLER AVR
Mikrokontroler AVR merupakan salah satu jenis arsitektur mikrokontroler yang menjadi
andalan Atmel. Arsitektur ini dirancang memiliki berbagai kelebihan dan merupakan
penyempurnaan dari arsitektur mikrokontroler-mikrokontroler yang sudah ada.
Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan digunakan di dunia
sebagai mikrokontroler yang bersifat low cost dan high performance. Di Indonesia,
mikrokontroler AVR banyak dipakai karena fiturnya yang cukup lengkap, mudah untuk
didapatkan, dan harganya yang relatif terjangkau.
2.1 Varian Mikrokontroler AVR
Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun kesemuanya
memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda. Tabel 2.1
membandingkan beberapa seri mikrokontroler AVR buatan Atmel.
Seri Flash (kbytes)
RAM (bytes)
EEPROM (kbytes)
Pin I/O
Timer 16-bit
Timer 8-bit
UART PWM ADC 10-bit
SPI ISP
ATmega8 8 1024 0.5 23 1 1 1 3 6/8 1 YaATmega8535
8 512 0.5 32 2 2 1 4 8 1 Ya
ATmega16 16 1024 0.5 32 1 2 1 4 8 1 YaATmega162 16 1024 0.5 35 2 2 2 6 8 1 YaATmega32 32 2048 1 32 1 2 1 4 8 1 YaATmega128 128 4096 4 53 2 2 2 8 8 1 YaATtiny12 1 - 0.0625 6 - 1 - - - - YaATtiny2313 2 128 0.125 18 1 1 1 4 - 1 YaATtiny44 4 256 0.25 12 1 1 - 4 8 1 YaATtiny84 8 512 0.5 12 1 1 - 4 8 1 Ya
Keterangan:
Flashadalah suatu jenis Read Only Memory yang biasanya diisi dengan program
hasil buatan manusia yang harus dijalankan oleh mikrokontroler
RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk
penyimpanan data sementara dan pengolahan data ketika program sedang running
EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori
untuk penyimpanan data secara permanen oleh program yang sedang running
Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran
ataupun masukan bagi program
Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data
khusus secara serial asynchronous
PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa
ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal
analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital
dalam range tertentu
SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial
secara serial synchronous
ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk
dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan
jumlah pin yang minimal
2.2 Arsitektur Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan
memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining.
Selain itu mikrokontroler AVR juga mengimplementasikan RISC (Reduced Instruction Set
Computing) sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien. Blok
sistem mikrokontroler AVR dapat dilihat dalam Gambar 2.1.
Gambar 2.1 Blok Diagram Mikrokontroler AVR
Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini adalah tipe
ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan untuk sistem yang
relatif sederhana dan berukuran kecil. Berikut adalah feature-feature mikrokontroler seri
ATtiny2313.
Kapasitas memori Flash 2 Kbytes untuk program
Kapasitas memori EEPROM 128 bytes untuk data
Maksimal 18 pin I/O
8 interrupt
8-bit timer
Analog komparator
On-chip oscillator
Fasilitas In System Programming (ISP)
Sedangkan ATmega8535 banyak digunakan untuk sistem yang kompleks, memiliki input
sinyal analog, dan membutuhkan memori yang relatif lebih besar. Berikut adalah feature-
feature mikrokontroler seri ATmega8535.
Memori Flash 8 Kbytes untuk program
Memori EEPROM 512 bytes untuk data
Memori SRAM 512 bytes untuk data
Maksimal 32 pin I/O
20 interrupt
Satu 16-bit timer dan dua 8-bit timer
8 channel ADC 10 bit
Komunikasi serial melalui SPI dan USART
Analog komparator
4 I/O PWM
Fasilitas In System Programming (ISP)
2.3 Peta Memori Mikrokontroler AVR
Gambar 2.2 memperlihatkan peta memori mikrokontroler AVR yang dapat dijelaskan
sebagai berikut:
Gambar 2.2 Peta memori mikrokontroler AVR
2.3.1 Memori Program
Mikrokontroler AVR memiliki 8 kbyte On Chip In System Reprogrammable Flash Memory
untuk menyimpan program. Karena semua instruksi AVR
The ATmega8535 contains 8K bytes On-chip In-System Reprogrammable Flash memoryfor program storage. Since all AVR instructions are 16 or 32 bits wide, the Flash isorganized as 4K x 16. For software security, the Flash Program memory space isdivided into two sections, Boot Program section and Application Program section.The Flash memory has an endurance of at least 10,000 write/erase cycles. TheATmega8535 Program Counter (PC) is 12 bits wide, thus addressing the 4K programmemory locations. The operation of Boot Program section and associated Boot Lockbits for software protection are described in detail in “Boot Loader Support – Read-While-Write Self-Programming” on page 224. “Memory Programming” on page 237 containsa detailed description on Flash Programming in SPI or Parallel Programmingmode.Constant tables can be allocated within the entire program memory address space (seethe LPM – Load Program Memory instruction description).
2.3.2 Memori Data
2.4 Penjelasan Fungsi Pin Mikrokontroler AVR
IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya
fungsi kaki yang ada pada IC memiliki persamaan. Gambar 2.3 menunjukkan salah satu
bentuk IC seri mikrokontroler AVR ATmega8535.
Gambar 2.3 Bentuk fisik Mikrokontroler ATMega8535
Berikut adalah penjelasan fungsi tiap kaki.
A. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus
disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai
output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi
A/D converter.
B. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus
disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin
memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai
output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang
dapat dilihat dalam Tabel 2.2.
Tabel 2.2 Fungsi Khusus Port B
Port Pin Fungsi Khusus PB0 T0 = timer/counter 0 external counter input PB1 T1 = timer/counter 0 external counter input PB2 AIN0 = analog comparator positive input PB3 AIN1 = analog comparator negative input PB4 SS = SPI slave select input PB5 MOSI = SPI bus master output / slave input PB6 MISO = SPI bus master input / slave output PB7 SCK = SPI bus serial clock
C. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus
disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin
memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai
output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai
oscillator untuk timer/counter 2.
D. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up
resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat
mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus
disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai
output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti
yang dapat dilihat dalam Tabel 2.3.
Tabel 2.3 Fungsi Khusus Port D
Port Pin Fungsi KhususPD0 RDX (UART input line)PD1 TDX (UART output line)PD2 INT0 ( external interrupt 0 input )PD3 INT1 ( external interrupt 1 input )PD4 OC1B (Timer/Counter1 output compareB match output)PD5 OC1A (Timer/Counter1 output compareA match output)PD6 ICP (Timer/Counter1 input capture pin)PD7 OC2 (Timer/Counter2 output compare match output)
E. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama
minimal 2 machine cycle maka system akan di-reset.
F. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock
operating circuit.
G. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
H. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal
terhubung ke Vcc melalui lowpass filter.
I. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC,
suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
J. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board
memiliki anlaog ground yang terpisah.
2.5 Rangkaian Sistem Minimum AVR 8535
Sistem minimum (sismin) mikrokontroler adalah rangkaian elektronik minimum yang
diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan
dengan rangkaian lain untuk menjalankan fungsi tertentu. Di keluarga mikrokontroler AVR,
seri 8535 adalah salah satu seri yang sangat banyak digunakan.
Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan beberapa komponen yaitu:
IC mikrokontroler ATmega8535
1 XTAL 4 MHz atau 8 MHz (XTAL1)
kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4)
1 kapasitor elektrolit 4.7 uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10 Kohm (R3)
1 tombol reset pushbutton (PB1)
Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC.
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di
port A. Rangkaiannya dapat dilihat dalam Gambar 2.4.
Gambar 2.4 Sistem Minimum Mikrokontroler ATMega 8535