• Tidak ada hasil yang ditemukan

Mikrokontroller merupakan chip cerdas yang menjadi tren dalam pengendalian dan otomatisasi, terutama dikalangan mahasiswa. Dengan banyak jenis keluarga, kapasitas memori, dan berbagai fitur, mikrokontroller menjadi pilihan dalam aplikasi prosessor mini untuk pengendalian skala kecil.

Beberapa vendor populer seperti intel, atmel, motorola, microchip, dan harris telah memasarkan beberapa jenis mikrokontroller ke pasar seeuruh dunia dalam berbagai bentuk dan fiturnya.

2.6.1 Mikrokontroller AVR

Mikrokontroller AVR (Alf and Vegard’s Risc processor) dari Atmel ini menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang artinya prosessor tersebut memiliki set instruksi program yang lebih sedikit dibandingkan dengan MCS-51 yang menerapkan arsitektur CISC (Complex Istruction Set

Computer).

Hampir semua instruksi prosessor RISC adalah intruksi dasar (belum tentu sederhana), sehingga intruksi-instruksi ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya. Kecuali siklus percabangan yang membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam satu atau dua siklus mesin, sehingga akan semakin cepat dan handal. Proses downloading programnya relatif lebih mudah karena dapat dilakukan langsung pada sistemnya.

Sekarang ini, AVR dapat dikelomokkan menjadi 6 kelas, yaitu keluarga Attiny, keluarga AT90Sxx, keluarga ATMega, keluarga AT90CAN, keluarga AT90PWM, dan AT86RFxx. Pada dasarnya yang membedakan kelas adalah memori, periperal dan fungsinya, sedangkan dari segi arsitektur dan instruksi yang digunakan, mereka hampir sama. Sebagai pengendali utama dalam pembuatan robot ini, digunakan salah satu produk ATMEL dari keluarga ATMega yaitu ATMega8535.

2.6.2 Arsitektur ATMega8535

mikrokontroller ATMega8535 memiliki fitur utama, sebagai berikut. 1. Saluran I/O sebanyak 32 buah yaitu port A, port B, port C, dan port D. 2. ADC 10 bit sebanyak 8 saluran.

3. Tiga unit Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.

5. Watchdog Timer dengan isolator internal. 6. SRAM sebesar 512 byte.

7. Memori flash sebesar 8 kbytes dengan kemampuan Read While Write. 8. Unit interupsi internal dan eksternal.

9. Port antarmuka SPI

10.EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 11.Antarmuka komparator analog.

12.Port USART untuk komunikasi serial.

Mikrokontroller AVR ATMega8535 merupakan mikrokontroller pproduksi Atmel dengan 8 kbyte In-System Programable-Flash, 512 byte EEPROM dan 512 bytes internal SRAM. AVR ATMega8535 memiliki seluruh fitur yang dimiliki AT90S8535. Selain itu, konfigurasi pin AVR ATMega8535 juga kompatibel dengan AT90S8535.

Diagram blok arsitektur ATMega8535 ditunjukkan oleh gambar 2.3. terdapat sebuah inti prosessor (processor core) yaitu Central Processing Unit, dimana terjadi proses pengumpanan instruksi (fetching) dan komputasi data. Selurung register umum sebanyak 32 buah terhubung langsung dengan unit ALU (Arithmatic and

Logic Unit). Terdapat empat buah port masing-masing delapan bit dapat difungsikan

sebagai masukan maupun keluaran.

Media penyimpanan program berupa Flash Memory, sedangkan penyimpanan data berupa SRAM (Static Random Acces Memory) dan EEPROM

(Electrical Erasable Programable Only Memory). Untuk komunikasi data tersedia

fasilitas SPI (Serial Peripheral Interface), USART (Universal Synchronous and

Asynchronous serial Receiver and Transmitter), serta TWI (Two-wire Serial Interface).

Di samping itu terdapat fitur tambahan, antara lain AC (Analog Comparator), 8 kanal 10-bit ADC (Analog to Digital Converter), 3 buah Timer/Counter, WDT (watchdog Timer), manajemen penghematan daya (Sleep Mode), serta oscilator internal 8 MHz. Seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyedikan suumber interupsi hingga 21 macam. Sebuah stack Pointer selebar 16 bit dapat digunakan untuk menyimpan data sementara saat interupsi.

Mikrokontroller ATMega8535 dapat dipasang pada frekuensi kerja hingga 16MHz (maksimal 8 MHz untuk versi ATMega8535L). sumber frekuensi bisa dari luar berupa osilator kristal, atau menggunakan osilator internal. Keluarga AVR dapat mengeksekusi instruksi dengan cepatkarena menggunakan teknik “memegang sambil mengarjakan” (Fetch during Execution). Dalam satu siklus clock, terdapat dua register independen yang dapat diakses oleh satu instruksi.

Gambar 2.11 Blok Diagram dan Arsitektur ATmega 8535

2.6.3 Konfigurasi PIN

Tabel 2.2 konfigurasi pin mikrokontroller ATMega8535

Nama PIN Fungsi

VCC Catu Daya GND Ground Port A

(PA7..PA0)

Port I/O 8-bit dua arah dengan resistor pull up internal.

Juga berfungsi sebagai masukan analog ke ADC (ADC0 s.d. ADC 7) Port B

(PB7..PB0)

Port i/O 8-bit dua arah dengan resistor pull up internal. Fungsi khusus masing-masing pin:

PB0 T0 (Timer/Counter0 External Counter Input)

Port Pin Fungsi Lain

PB1 T1 (Timer/Counter1 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)

Port C (PC7..PC0)

Port i/O 8-bit dua arah dengan resistor pull up internal.

Dua pin yaitu PC6 dan PC7 berfungsi sebagai oscillator luar Timer/Counter2.

Port D (PD7..PD0)

Port i/O 8-bit dua arah dengan resistor pull up internal. Fungsi khusus masing-masing pin:

Port Pin

PD0 RXD (USART Input Line)

Fungsi Lain

PD1 TXD (USART Output Line) PD2 INT0 (External Interupt 0 Input) PD3 INT1 (External Interrupt 1 Input)

PD4 OC1B (Timer/Counter1 Output CompareB Match

Output)

PD5 OC1A (Timer/Counter Output CompareA Match

Output)

PD7 OC2 (Timer/Counter2 Output Copare Match Output) RESET Masukan reset. Sebuah reset terjadi jika pin ini diberi logika rendah

melebihi periode minimum yang diperlukan.

XTAL1 Masukan ke inverting oscillator amplifier dan masukan ke rangkaian

clock internal.

XTAL2 Keluaran dari inverting oscillator amplifier. AVCC Catu daya untuk port A dan ADC.

AREF Referensi masukan analog untuk ADC. AGND Ground Analog.

2.6.4 Peta Memori

Mikrokontroler AVR ATmega 8535 memiliki dua jenis memori yaitu (1) memori data (SRAM) dan (2) memori program (memori Flash). Di samping itu juga dilengkapi dengan EEPROM (Electrical Erasable Programmable Read Only

Memory) untuk penyimpanan data tambahan yang bersifat non-volatile. Memori

EEPROM ini mempunyai lokasi yang terpisah dengan sistem register alamat, register data dan register kontrol yang dibuat khusus untuk EEPROM.

Mikrokontroler ATmega 8535 memiliki On-Chip In-SystemReprogrammable

Flash Memory untuk menyimpan program. Untuk alasan keamanan, memori

program dibagimenjadi dua bagian yaitu (1) Boot Flash Section dan (2) Application

Flash Section. Boot Flash Section digunakan untuk meyimpan program Boot Loade,

yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan. Application Flash Section digunakan untuk menyimpan progam aplikasi yang dibuat pengguna. Mikrokontroler AVR tidak dapat menjalankan program aplikasi ini sebelum menjalankan Boot Loader. Besarnya memori Boot Flash Section dapat diprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di-register BOOTSZ. Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.

Memori data dibagi menjadi tiga yaitu :

1. Terdapaat 32 register keperluan umum (general purpose register_GPR biasa disebut register file di dalam teknologi RISC)

2. Terdapat 64 register untuk keperluan input/output (I/O register)

3. Terdapat 512 byte SRAM internal. Selain itu, terdapat pula EEPROM 512

byte sebagai memori data yang dapat diprogram saat beroperasi. I/O register

dan memori SRAM pada mikrokontroler AVR ATmega 8535.

Gambar 2.12 Memori AVR ATmega8535

2.6.5 Bahasa Pemograman Mikrokontroller ATMega8535

Pemrograman mikrokontroler ATMega8535 dapat menggunakan low level language

(assembly) dan high level language (C, Basic, Pascal, Java, dll) tergantung compiler

yang digunakan. Bahasa Assembler mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun bahasa assembler relatif lebih sulit dipelajari dari pada bahasa C. Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah untuk menangani project yang besar.

Bahasa C memiliki keuntungan-keuntungan yang dimiliki bahasa

mesin, dapat dilakukan dengan bahasa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa pemrograman tingkat tinggi dan assembly.

Gambar 2.13 tampilan CodeVisionAVR

Bahasa pemrograman yang sering digunakan pada pemrograman Mikrokontroller ATMega 8535 adalah bahasa pemrograman CodeVisionAVR dengan basic bahasa C.

Dokumen terkait