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.
|
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 featurd-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 memory
for program
storage. Since all AVR instructions are 16 or 32 bits wide, the Flash is
organized as
4K x 16. For software security, the Flash Program memory space is
divided into
two sections, Boot Program section and Application Program section.
The Flash
memory has an endurance of at least 10,000 write/erase cycles. The
ATmega8535
Program Counter (PC) is 12 bits wide, thus addressing the 4K program
memory
locations. The operation of Boot Program section and associated Boot Lock
bits for
software protection are described in detail in “Boot Loader Support – Read-
While-Write
Self-Programming” on page 224. “Memory Programming” on page 237 contains
a detailed
description on Flash Programming in SPI or Parallel Programming
mode.
Constant
tables can be allocated within the entire program memory address space (see
the 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 Khusus
|
PD0
|
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
Tidak ada komentar:
Posting Komentar