Mikrokontroler ATMega32 adalah mikrokontroler yang diproduksi oleh Atmel. Mikrokontroler ini memiliki clock dan kinerja sampai 16 MHz. Ukuran flash memorinya cukup besar, kapasitas SRAM sebesar 2 Kilobyte dan 32 buah port I/O yang sangat memadai untuk berinteraksi dengan LCD serta keypad.
a. Arsitektur CPU ATmega32
CPU memiliki fungsi utama yaitu memastikan pengeksekusian instruksi dilakukan
dengan benar. CPU harus dapat mengakses memori, mengontrol peripheral,
menangani interupsi dan melakukan kalkulasi serta terdapat 32 buah General
Purpose Register yang membantu ALU bekerja.
b. Program Memori
ATMega32 memiliki 32KB flash memori untuk menyimpan program. Flash memori
dibuat berukuran 16K x 16 karena lebar instruksi 16 bit atau bisa juga 32 bit.
Arti dari "16K" yaitu alamat di flash memori yang bisa dipakai di
mulai dari alamat 0 heksa sampai 3FFF heksa dan setiap alamatnya menyimpan 16
bit instruksi.
c. SRAM Data Memori
ATMega32 memiliki 2KB SRAM yang dipakai untuk menyimpan variabel. Tempat khusus
di SRAM yang senantiasa di tunjuk register SP disebut stack. Stack tersebut
digunakan untuk menyimpan nilai yang di push.
d. EEPROM Data Memori
EEPROM Data Memori yang dimiliki ATMega32 sebanyak 1024 byte. Data yang berada
di EEPROM tidak akan hilang meskipun catuan daya ke sistem mati. EEPROM
digunakan untuk menyimpan parameter sistem yang penting. Parameter dibaca dan
system diinisialisasikan sesuai dengan nilai paramater tersebut saat sistem
pertama kali menyala.
e. Interupsi
ATMega32 memiliki sumber interupsi sebanyak 21 buah. Saat interupsi diaktifkan
dan terjadi interupsi maka CPU menunda instruksi sekarang dan melompat ke
alamat rutin interupsi yang terjadi. Setelah selesai mengeksekusi semua
instruksi yang ada di alamat rutin, interupsi CPU kembali melanjutkan instruksi
yang sempat tertunda.
f. I/O Port
Ada 32 buah pin I/O yang terdapat pada ATMega32. Pin I/O tersebut digunakan
untuk berinteraksi dengan sistem lain. Setiap pin I/O memiliki 3 register,
yaitu DDxn, PORTxn dan PINxn. Untuk menentukan arah pin I/O menggunakan
kombinasi nilai DDxn dan PORTxn.
g. Clear Timer on Compare Match (CTC)
CTC merupakan salah satu mode Timer/Counter1. Selain itu ada juga Normal mode,
FastPWM mode dan Phase Correct PWM mode. Pada CTC mode nilai TCNT1 akan menjadi
nol jika nilai TCNT1 telah sama dengan OCR1A atau ICR1. Jika nilai top
ditentukan OCR1A dan interupsi diaktifkan untuk Compare Match A maka saat nilai
TCNT1 sama dengan nilai OCR1A interupsi terjadi. CPU melayani interupsi ini dan
nilai TCNT1 menjadi nol.
h. USART
USART berfungsi untuk general I/O. Selain itu, pin PD1 dan PD0 ATMega32
berfungsi untuk mengirim dan menerima bit secara serial. Pengubahan fungsi ini
dibuat dengan mengubah nilai beberapa register serial. Untuk menekankan fungsi
ini, pin PD1 disebut TxD dan pin PD0 disebut RxD.
0 Komentar