Arsitektur Mikrokontroler AVR ATmega32 Fitur ATMega32 Peta Memory ATMega32

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