2.1.1 Arsitektur Mikrokontroler AVR ATmega32
Mikrokontroler AVR ATMega32 merupakan sebuah mikrokontroler low power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini
memiliki karakteristik sebagai berikut. 1. Menggunakan arsitektur AVR RISC
131 perintah dengan satu clock cycle 32 x 8 register umum
2. Data dan program memori 32 Kb In-System Programmable Flash
2 Kb SRAM 1 Kb In- System EEPROM
3. 8 Channel 10-bit ADC 4. Two Wire Interface
5. USART Serial Communication 6. MasterSlave SPI Serial Interface
7. On-Chip Oscillator 8. Watch-dog Timer
9. 32 Bi-directional IO 10. Tegangan operasi 2,7
– 5,5 V Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32
register umum. Semua register tersebut langsung terhubung dengan Arithmetic Logic Unit ALU yang memungkinkan 2 register terpisah diproses dengan satu
perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif
Universitas Sumatera Utara
dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC biasa..arsitektur mikrokontroler AVR atmega32 yaitu seperti berikut :
Gambar 2.1 Arsitektur AVR ATMega32
2.1.2 Fitur ATMega32
Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega32: 1.
Frekuensi clock maksimum 16 MHz 2.
Jalur IO 32 buah yang terbagi dalam Port A,Port B,Port C,Port D. 3.
Analog to Digital Converter 10 bit sebanyak 8 input,4 chanel PWM 4.
TimerCounter sebanyak 3 buah
Universitas Sumatera Utara
5. CPU 8 bit yang terdiri dari 32 register
6. SRAM sebesar 2K Byte
7. Memori flash sebesar 32K Byte dengan kemampuan read while write
8. Port komunikasi SPI
9. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
10. Analog Comparator
11. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.
2.1.3 Konfigurasi Pin ATMega32
Konfigurasi pin ATMega32 dengan kemasan 40 pin DIP Dual In-line Package dapat dilihat pada Gambar 2.1. Dari gambar tersebut dapatdijelaskan fungsi
darimasing – masing pin ATMega32 sebagai berikut :
1.VCC merupakan pin yang berfungsi sebagai masukan catu daya 2.GND merupakan pin Ground
3.Port A PA0…PA7 merupakan pin inputoutput dua arah danpin masukan ADC
4.Port B PB0…PB7 merupakan pin inputoutput dua arah danpin fungsi khusus yang akan dibahas selanjutnya
5.Por t C PC0…PC7 merupakan pin inputoutput dua arah danpin fungsi khusus
yang akan dibahas selanjutnya 6.Port
D PD0…PD7 merupakan pin inputoutput dua arah danpin fungsi khusus yang akan dibahas selanjutnya
7.RESET merupakan pin yang digunakan untuk me-reset mikrokontroler 8.XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
Universitas Sumatera Utara
9.AVCC merupakan pin masukan tegangan untuk ADC 10.AREF merupakan pin masukan tegangan untuk ADC
Selain fitur tersebut diatas, masing – masing pin pada mikrokontroler memiliki
fungsi khusus diantaranya :
Tabel 2.1 : Fungsi Khusus Port B
Pin Fungsi Khusus
PD7 SCK SPI Bus Serial Clock
PD6 MISO SPI Bus Master InputSlave Output
PD5 MOSI SPI Bus Master OutputSlave Input
PD4 SS SPI Slave Select Input
PD3 AIN1 Analog Comparator Negative Input
OC0 TimerCounter0 Output Compare Match Output
PD2 AIN0 Analog Comparator Positive Input
INT2 External Interrupt 2 Input PD1
T1 TimerCounter1 External Counter Input
PD0 T0 T1 TimerCounter0 External Counter Input
XCK USART External Clock InputOutput
Tabel 2.2 : Fungsi Khusus Port C
Pin Fungsi Khusus
PD7 TOSC2 Timer Oscillator Pin2
PD6 TOSC1 Timer Oscillator Pin1
PD5 TDI JTAG Test Data In
Universitas Sumatera Utara
PD4 TDO JTAG Test Data out
PD3 TMS JTAG Test Mode Select
PD2 TCK JTAG Test Clock
PD1 SDA Two-wire Serial Bus Data InputOutput Line
PD0 SCL Two-wire Serial Bus Cock Line
Tabel 2.3 : Fungsi Khusus Port D
Pin Fungsi Khusus
PD7 OC2 TimerCounter2 Output Compare Match Output
PD6 ICP TimerCounter1 Input Capture Pin
PD5 OC1A TimerCounter1 Output Compare A Match Output
PD4 OC1B TimerCounter1 Output Compare B Match Output
PD3 INT1 External Interrupt 1 Input
PD2 INT0 External Interrupt 0 Input
PD1 TXD USART Output Pin
PD0 RXD USART Input Pin
Universitas Sumatera Utara
Gambar 2.2 Konfigurasi Pin ATMega32 2.1.4 Deskripsi pin-pin pada mikrokontroler ATMega32:
1. Port A Port A adalah 8-bit port IO yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara
langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC Analog to Digital Converter sebesar 10 bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada table.
Tabel 2.4 Fungsi khusus port A
Port Alternate Function
PA7 ADC7 ADC input channel 7
PA6 ADC6 ADC input channel 6
PA5 ADC5 ADC input channel 5
Universitas Sumatera Utara
PA4 ADC4 ADC input channel 4
PA3 ADC3 ADC input channel 3
PA2 ADC2 ADC input channel 2
PA1 ADC1 ADC input channel 1
PA0 ADC0 ADC input channel 0
2. Port B
Port B adalah 8-bit port IO yang bersifat bi-directional dan setiap pin mengandung internal pull-up resistor.Output buffer port B dapat mengalirkan arus
sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya : SCK port B, bit 7
Input pin clock untuk updownloading memory. MISO port B, bit 6
Pin output data untuk uploading memory. MOSI port B, bit 5
Pin input data untuk downloading memory. Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada table
Tabel 2.5 Fungsi khusus port B
Port Alternate Function
PB7 SCK SPI Bus Serial Clock
PB6 MISO SPI Bus Master InputSlave Output
Universitas Sumatera Utara
PB6 MOSI SPI Bus Master OutputSlave Input
PB5 SS SPI Slave Select Input
PB3 AIN1 Analog Comparator Negative Input
OCO TimerCounter0 Output Compare Match Output
PB2 AIN0 Analog Comparator Positive Input
INT2 External Interrupt 2 Input PB1
T1 TimerCounter1 External Counter Input
PB0 T0 TimerCounter External Counter Input XCK USART
External Clock InputOutput
3. Port C
Port C adalah 8-bit port IO yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor.Output buffer port C dapat mengalirkan arus
sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang tertera pada tabel dibawah ini.
Tabel 2.6 Fungsi khusus port C
Port Alternate Function
PC7 TOSC2 Timer Oscillator Pin 2
PC6 TOSC1 Timer Oscillator Pin 1
PC6 TD1 JTAG Test Data In
PC5 TD0 JTAG Test Data Out
Universitas Sumatera Utara
PC3 TMS JTAG Test Mode Select
PC2 TCK JTAG Test Clock
PC1 SDA Two-wire Serial Bus Data InputOutput Line
PC0 SCL Two-wire Serial Bus Clock Line
4. Port D Port D adalah 8-bit port IO yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port D dapat mengalirkan arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara
langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.7 Fungsi khusus port D
Port Alternate Function
PD7 OC2 Timer Counter2 Output Compare Match Output
PD6 ICP1 TimerCounter1 Input Capture Pin
PD6 OCIB TimerCounter1 Output Compare B Match Output
PD5 TD0 JTAG Test Data Out
PD3 INT1 External Interrupt 1 Input
PD2 INT0 External Interrupt 0 Input
PD1 TXD USART Output Pin
PD0 RXD USART Input Pin
Universitas Sumatera Utara
5. RESET
RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah aktif Low selama minimal 1,5us.
6. XTAL2
Merupakan out put dari penguat dari osilator pembalik
7. XTAL1
Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVcc
Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc
melalui lowpass filter.
9. AREF
AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.
2.1.5 Peta Memory ATMega32
Mikrokontroller ATMega32 memiliki 3 jenis memori yaitu memori program, memori data dan memori EEPROM. Ketigannya memiliki ruang-ruang
tersendiri dan terpisah seperti terlihat pada gambar 2.3
Universitas Sumatera Utara
Gambar 2.3 Organisasi memori ATMega32
1. Memori Program ATMega32 memiliki kapasitas memori program sebesar 8 Kbyte yang
terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki
lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu
program boot dan juga bagian program aplikasi. 2. Memori Data
ATMega32 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna,register IO dan SRAM.32 byte
alamat terendah digunakan untuk register serbaguna yaitu R0 –14 R31. 64 byte
berikut nya digunakan untuk register IO yang digunakan untuk mengatur fasilitas
Universitas Sumatera Utara
timer counter, interrupsi, ADC, USART, SPI, EEPROM dan port IO seperti Port A, Port B, Port C, dan Port D.Selanjutnya 512 byte diatasnya digunakan untuk
memory data SRAM . Jika register-register IO diatas diakses seperti mengakses data pada
memori Jika kita menggunakan instruksi LD atau ST maka register IO diatas menempati alamat 0020-005F. Tetapi jika registerregister IO diakses seperti
mengakses IO pada umumnya menggunakan instruksi INIOUT maka register IO diatas menempati alamat memori0000h
– 003Fh.
32 Register 64 IO Register
Internal SRAM 512 x 8
0000 - 001F 0020 - 005F
0060
025F 64 IO Register
0000 003F
a b
Gambar 2.4 a Register IO Sebagai Memori Data, b Register IO sebagai IO
3.Memori EEPROM
ATMega32 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun dari memori data.Memori EEPROM ini hanaya
dapat diakses dengan menggunakan register-register IO yaitu register EEPROM Addres EEARH-EEARL,register EEPROM Data EEDR dan register
Universitas Sumatera Utara
EEPROM control EECR. Untuk megakses memory EEPROM ini diperlakukan sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama
dibadingkan jika kita mengakses data dari SRAM.
2.1.6 Status Register SREG