Mikrokontroler ATMega8535 Perangkat Keras

BAB II LANDASAN TEORI

2.1 Perangkat Keras

2.1.1 Mikrokontroler ATMega8535

Mikrokontroler merupakan alat pengolah data digital dan analog fitur ADC pada seri AVR dari tegangan maksimum 5 Volt. Keunggulan mikrokontroller di banding mikroprosessor yaitu lebih murah dan didukung dengan software compiler yang sangat beragam seperti software yang sangat beragam compiler CC++, Basic, bahkan assembler sekalipun sehingga pengguna dapat memilih program yang sesuai dengan kemampuannya. Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR Alf and Vegard’s Risc processor ATmega8535 yang menggunakan teknologi RISC Reduce Instruction Set Computing dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing- masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Mikrokontroler AVR memiliki arsitektur RISC 8-bit, dimana semua intruksi dikemas dalam kode 16-bit dan sebagian besar intruksi dalam 1 siklus clock, berbeda dengan intruksi MCS51 yang membutuhkan 12 siklus clock. Hal ini terjadi karena kedua mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC, sedangkan seri MCS51 berteknologi CICS Complex Intruction Set Computing. Mikrokontroler AVR ATmega8535 memiliki fitur yang cukup lengkap. Mikrokontroler AVR ATmega8535 telah dilengkapi dengan ADC internal, EEPROM internal, TimerCounter, PWM, analog comparator, dll. Sehingga dengan fasilitas yang lengkap ini memungkinkan kita belajar mikrokontroler Universitas Sumatera Utara keluarga AVR dengan lebih mudah dan efisien, serta dapat mengembangkan kreativitas penggunaan mikrokontroler ATmega8535. Beragam jenis mikrokontroller seperti AVR jenis ATtiny, ATmega dan AT90 dibedakan dari segi jumlah pin dan memori, dapat kita lihat perbedaan jenis mikrokontroller seperti table di bawah ini. Mikrokontroler Memori Tipe Jumlah Pin Flash EEPROM SRAM TinyAVR 8 – 32 1 – 2k 64 – 128 – 128 AT90Sxx 20 – 44 1 – 8k 128 – 512 – 1k ATMega 32 – 64 8 – 128k 512 – 4k 512 – 4k Tabel 2.1 Jenis-jenis AVR Pemograman AVR dengan bahasa C lebih baik dari bahasa pemograman lainnya. Karena bahasa pemograman independen terhadap hardware C. keunggulan lainnya penyusunan program besar dapat dilakukan dengan mudah dan program yang telah jadi dapat digunakan ke jenis AVR lainnya dengan hanya mengubah fungsi – fungsi port dan registernya. Beberapa faktor pertimbangan penting untuk memilih mikrokontroler jenis AVR antara lain: - Harga mikrokontroller yang lebih murah dibanding mikroprosesor; - Ukuran memori mikrokontroller yang cukup besar dan untuk menambah memorinya dapat digunakan memori eksternal; - Fitur ADC, Timer, PWM, USART, dan fasilitas lainnya yang memudahkan Designer dalam merancang sistem; - Kecepatan eksekusi program dimana instruksi dieksekusi dalam 1 clock sementara mikrokontroller jenis MCS51 atau mengeksekusi instruksi dalam 12 clock; - Adanya clock internal sehingga mikrokontroller dapat digunakan tanpa menggunakan crystal. Universitas Sumatera Utara Software pendukung yang sangat beragam dan penggunaannya jauh lebih mudah karena software menyediakan fitur yang memudahkan dalam memprogramnya seperti Code Vision AVR dan BASCOM AVR yang menyediakan fitur desain LCD pada BASCOM AVR dan fitur penghasil program pada Code Vision AVR. Mikrokontroller ATmega8535 adalah mikrokontroller 8bit CMOS dengan menggunakan daya rendah dan menjalankan semua instruksi dalam satu siklus clock. Mikrokontroller ATmega8535 dikombinasikan dengan 16 buah register. Semua register terhubung langsung ke Aritmetical Logical Unit, membiarkan 2 register untuk diakses di dalam satu instruksi dieksekusi dalam satu clock. Gambar 2.1 Arsitektur ATmega8535 Universitas Sumatera Utara Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut: 1. Saluran IO sebanyak 32 buah, yaitu port A, port B, port C, dan port D. 2. ADC internal sebanyak 8 saluran. 3. Tiga buah TimerCounter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register. 5. SRAM sebesar 512 byte. 6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 7. Port antarmuka SPI 8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 9. Antarmuka komparator analog. 10. Port USART untuk komunikasi serial. 11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. 12. Dan lain-lainnya. Read Only Memory ROM yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS51 memori penyimpanan program ini dinamakan sebagai memori program. Random Acces Memori RAM isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data disebut sebagai memori data. Atmega8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk keamanan, memori program dibagi menjadi dua bagian yaitu boot flash section dan application flash section. Boot flash section digunakan untuk menyimpan program boot loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan. Application flash section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalankan program aplikasi ini sebelum menjalankan program 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. Universitas Sumatera Utara

2.1.1.1 Spesifikasi ATmega8535

a. High-performance, Low-power AVR® 8-bit Microcontroller b. Advanced RISC Architecture – 130 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip 2-cycle Multiplier c. Nonvolatile Program and Data Memories – 8K Bytes of In-System Self-Programmable Flash Endurance: 10,000 WriteErase Cycles – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation – 512 Bytes EEPROM Endurance: 100,000 WriteErase Cycles – 512 Bytes Internal SRAM – Programming Lock for Software Security d. Peripheral Features – Two 8-bit TimerCounters with Separate Prescalers and Compare Modes – One 16-bit TimerCounter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Four PWM Channels – 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels for TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP Package Only – Byte-oriented Two-wire Serial Interface – Programmable Serial USART – MasterSlave SPI Serial Interface Universitas Sumatera Utara – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator e. Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator – External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby f. IO and Packages – 32 Programmable IO Lines – 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF g. Operating Voltages – 2.7 - 5.5V for ATmega8535L – 4.5 - 5.5V for ATmega8535 h. Speed Grades – 0 - 8 MHz for ATmega8535L – 0 - 16 MHz for ATmega8535

2.1.1.2 Konfigurasi Pin AVR ATmega8535

Konfigurasi pin-pin Atmega8535 dapat kita lihat pada gambar di bawah ini : Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP, dan 44 pin untuk model TQFP dan PLCC. Nama-nama pin pada mikrokontroler ini adalah 1. VCC untuk tegangan pencatu daya positif. 2. GND untuk tegangan pencatu daya negatif. 3. PortA PA0 - PA7 sebagai port InputOutput dan memiliki kemampuan lain yaitu sebagai input untuk ADC 4. PortB PB0 – PB7 sebagai port InputOutput dan juga memiliki kemampuan yang lain. 5. PortC PC0 – PC7 sebagai port InputOutput untuk ATMega8535. 6. PortD PD0 – PD7 sebagai port InputOutput dan juga memiliki kemampuan yang lain. Universitas Sumatera Utara 7. RESET untuk melakukan reset program dalam mikrokontroler. 8. XTAL1 dan XTAL2 untuk input pembangkit sinyal clock. 9. AVCC untuk pin masukan tegangan pencatu daya untuk ADC. 10. AREF untuk pin tegangan referensi ADC . Gambar 2.2 Pin-pin ATmega8535

2.1.1.3 Alternatif PORT A

PORT A memiliki fungsi input output dan juga sebagai input analog yang akan dikonversi menjadi data –data digital ADC, seperti yang ditunjukkan pada tabel di bawah. Jika salah satu PORT A dikonfigurasi kan sebagai output ketika PORT A difungsikan sebagai ADC maka hasil pengkonversian analog ke digital akan menghasilkan data error. Untuk mengaktifkan fungsi ADC pada PORT A dengan Code Vision AVR akan dibahas di bab selanjutnya tentang teknik pemrogram C pada ATmega8535 dengan menggunakan software yang telah disebutkan di atas. Fungsi PORT A dapat kita lihat pada tabel di bawah ini: Universitas Sumatera Utara Port Fungsi Alternatif PA7 ADC7 ADC input channel 7 PA6 ADC6 ADC input channel 6 PA5 ADC5 ADC input channel 5 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 Tabel 2.2 PORT A

2.1.1.4 Alternatif PORT B

Fungsi PORT B dapat dilihat di tabel di bawah ini: PORT Fungsi Alternatif PB7 SCKSPI Bus Serial Clock PB6 MISOSPI bus master inputslave output PB5 MOSISPI Bus Master Output Slave Input PB4 SS SPI Slave Select Input PB3 AIN1Analog Comparator Negative Input OCO TIMER COUNTER OUTPUT COMPARATOR MATCH OUTPUT PB2 AIN0 Analog Comparator Positive Input INT2 External Interrupt 2 Input PB1 T1 TimerCounter External Counter Input PB0 T0T1 TimerCounter External Counter Input XCX USART EXTERNAL CLOCK INPUTOUTPUT Tabel 2.3 PORT B Universitas Sumatera Utara

2.1.1.5 Alternatif PORT C

Fungsi PORT C dapat dilihat pada tabel di bawah ini: PORTC FUNGSI KHUSUS PC7 TOSC2TIMER OSCILATOR PIN2 PC6 TOSC1TIMER OSCILATOR PIN1 PC5 TDIJTAG TEST DATA IN PC4 TDOJTAG TEST DATA OUT PC3 TMSJTAG TEST MODE SELECT PC2 TCKJTAG TEST CLOCK PC1 SDATWO WIRE SERIAL BUS DATA INOUT LINE PC0 SCLTWO WIRE SERIAL BUS CLOCK LINE Tabel 2.4 Fungsi PORT C

2.1.1.6 Alternatif PORT D

Fungsi PORT D dapat dilihat pada tabel di bawah ini : PIN FUNGSI KHUSUS 7 OC2 TIMER COUNTER2 COMPARE MATCH OUTPUT 6 ICP TIMERCOUNTER1 INPUT COMPARE CAPTURE PIN 5 OC1A TIMERCOUNTER1 OUTPUT COMPARE A MATCH OUT 4 OC1B TIMERCOUNTER OUTPUT COMPARE B MATCH OUTPUT 3 INT1 EXTERNAL INTERRUPT 1 INPUT 2 INT0 EXTERNAL INTERRUPT 0 INPUT 1 TXD USART OUTPUT PIN RXD USART INPUT PIN Tabel 2.5 Fungsi PORT D Universitas Sumatera Utara

2.1.1.7 Konstruksi ATmega8535

Mikrokontroler ATmega8535 memiliki 3 jenis memori, yaitu memori program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah. a. Memori program ATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi. b. Memori data ATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna, register IO dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register IO yang dapat diakses sebagai bagian dari memori RAM menggunakan instuksi LD atau ST atau dapat juga diakses sebagai IO menggunakan instruksi IN atau OUT, dan 512 byte digunakan untuk memori data SRAM. c. Memori EEPROM ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register IO yaitu register EEPROM Address, register EEPROM Data, dan register EEPROM Control. Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM. ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat dikonfigurasi, baik secara single ended input maupun differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri. ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timercounter 8 bit dan 1 buah timercounter 16 bit. Ketiga modul timercounter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu, semua Universitas Sumatera Utara timercounter juga dapat difungsikan sebagai sumber interupsi. Masing-masing timercounter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya. Serial Peripheral Interface SPI merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega8535. Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter USART juga merupakan salah satu mode komunikasi serial yang dimiliki oleh ATmega8535. USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART. USART memungkinkan transmisi data baik secara syncrhronous maupun asyncrhronous, sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode asyncrhronous masing-masing peripheral memiliki sumber clock sendiri, maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama- sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK.

2.1.2 LED Light Emitting Dioda