Frekuensi referensi
2.3. Mikrokontroler AVR ATMega8535
Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output spesifik berdasarkan input yang diterima dan program yang dikerjakan.
Mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang
programmer. Program ini menginstruksikan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer.
Dengan perkembangan terakhir, yaitu generasi AVR (Alf and Vegard’s Risc processor), maka mikro ini telah memiliki kapabilitas yang amat maju, tetapi dengan biaya ekonomis yang cukup minimal [8].
2.3.1. Arsitektur Mikrokontroler AVR ATMega8535
[7]Mikrokontroler AVR ATMega8535 merupakan mikrokontroler CMOS dengan daya rendah yang memiliki arsitektur AVR RISC (Reduced Instruction Set Computer) 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Ini karena dalam MCS51 menggunakan CISC (Complex Instruction Set Computing). Arsitektur ini mendukung kemampuan untuk melaksanakan eksekusi dalam satu siklus clock osilator. AVR memiliki fitur untuk menghemat konsumsi daya yaitu dengan mode sleep. Mode sleep dalam mikrokontroler AVR ada dua macam yaitu mode idle dan mode power down.
Mikrokontroler AVR memiliki model arsitektur Harvard dimana memori dan bus untuk program dan data dipisahkan. Dalam arsitektur AVR ini, 32 register umum terhubung langsung ke ALU processor. Hal ini yang membuat AVR memiliki kecepatan tinggi dalam mengeksekusi instruksi.
Dalam satu siklus clock terdapat dua register independen yang dapat diakses oleh satu instruksi. Teknik yang digunakan adalah fetch during execution atau memegang sambil mengerjakan. Hal ini berarti dua operan dibaca dari dua register, dilakukan eksekusi operasi dan hasilnya disimpan kembali dalam satu register. Proses ini dilakukan dalam satu siklus clock.
Mikrokontroler ATMega8535 ini merupakan mikrokontroler 8 bit keluarga AVR yang memiliki beberapa fasilitas seperti [8]:
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 buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal. 6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kb 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.
2.3.2. Fitur ATMega8535
Kapabilitas detail ATMega8535 adalah sebagai berikut :
1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
2. Kapabilitas memori flash I8 KB, SRAM sebesar 512 byte dan EEPROM (Electrically Erasable Programable Read Only Memory) sebesar 512 byte.
3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
2.3.3. Konfigurasi Pin ATMega8535
Gambar 2.8 berikut ini menunjukkan tampilan pin-pin mikrokontroler ATMega8535
Dari tampilan pin seperti diatas dapat dijelaskan sebagai berikut :
a. VCC Æ Merupakan pin masukan tegangan (catu daya) sebesar 5 volt.
b. AVCC Æ Merupakan pin masukan tegangan ADC.
c. AREF Æ Merupakan pin masukan tegangan referensi ADC.
d. Reset Æ Merupakan pin reset, mikrokontroler akan mereset program jika pin ini berlogika low selama 50ns.
e. GND Æ Merupakan pin ground
f. Port A Æ Merupakan pin I/O dua arah kelompok 8-bit bi-directional I/O Port (PA0 – PA7). Port ini juga berfungsi sebagai 8 bit channel ADC (ADC0 – ADC7).
g. Port B Æ Merupakan pin I/O dua arah kelompok 8 bit bi-directional I/O Port (PB0 – PB7). Port B memiliki beberapa fungsi khusus yaitu T0 untuk input Timer dan T1 untuk input counter, AIN0 dan AIN1 untuk input analog komparator. SS, MOSI, MISO, dan SCK untuk komunikasi serial SPI. h. Port C Æ Merupakan pin I/O dua arah kelompok 8 bit bi-directional
I/O Port (PC0 – PC7). Port C memiliki beberapa fungsi khusus yaitu TOSC1, TOSC2, dan OC2 untuk input Timer Oscilator, SDA dan SCL untuk input komunikasi serial I2C.
i. Port D Æ Merupakan pin I/O dua arah kelompok 8 bit bi-directional I/O Port (PD0 – PD7). Port D memiliki beberapa fungsi
khusus yaitu input interupsi eksternal (INTO dan INT1), komunikasi serial USART (TXD dan RXD) dan OC1B, OC1A, ICP1.
j. X-TAL 1 dan X-TAL2 Æ Merupakan input clock external
2.3.4. Peta Memori
AVR ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data yang terbagi menjadi 3 bagian yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai periferal mikrokontroler, seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Alamat memori digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F. Konfigurasi memori data ditunjukkan pada Gambar 2.9 di bawah ini :
Gambar 2.10. Memori Data dan Memori Program AVR ATMega8535.
Memori data pada mikrokontroler memiliki memori data RAM (Random Access Memory) atau memori yang bisa dibaca dan ditulis dan ROM (Read Only Memory) atau memori yang hanya bisa dibaca saja. Di dalam ATMega8535 memiliki dua buah ROM, yaitu Flash PEROM (Programable Erasable Read Only Memory) dan EEPROM (Electricslly Erasable Programable Read Only Memory). Memori program yang terletak dalam Flash PEROM tersusun dalam word atau 2 byte karena setiap instruksi memiliki lebar 16 bit atau 32 bit. AVR ATMega8535 memiliki 4Kbyte x 16 bit Flash PEROM dengan alamat mulai dari $000 sampai $FFF tersebut yang memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati Flash. Selain itu AVR ATMega8535 juga memiliki memori data berupa EEPROM 8 bit sebanyak 512 byte. Alamat EEPROM dumulai dari $000 sampai $1FF.
EEPROM adalah salah satu dari tiga tipe memori pada AVR (dua yang lain adalah memori Flash dan SRAM). EEPROM dapat menyimpan data saat tidak
dicatu daya dan juga dapat diubah saat program berjalan. Oleh karena itu, EEPROM sangat berguna untuk menyimpan informasi seperti nilai kalibrasi, nomer ID, dan juga password. Untuk menulis dalam EEPROM, perlu ditentukan terlebih dahulu data apa yang akan ditulis serta alamat untuk menulis data tersebut untuk mencegah ketidaksengajaan menulis di dalam EEPROM. Proses penulisan dalam EEPROM tidak berlangsung waktu itu juga, tetapi membutuhkan waktu sekitar 2.5 ms sampai dengan 4 ms. Oleh karena alasan tersebut, program yang dibuat harus dicek terlebih dahulu apakah EEPROM telah siap untuk ditulis dengan byte data baru (kemungkinan operasi penulisan yang terdahulu belum selesai).
2.3.5. Status Register (SREG)
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.
1. Bit 7 – I : Global Interupt Enable
Bit harus diset untuk meng-enable interupsi. Setelah itu, dapat mengaktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh interuksi RETI.
2. Bit 6 – T : Bit Copt Storage
Interuksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit-T menggunakan interuksi BST, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan intruksi BLD.
3. Bit 5 – H : Half Carry Flag 4. Bit 4 – S : Sign Bit
Bit-S merupakan hasil operasi EOR antara flag-N (negatif) dan flag-V (komponen dua overflow).
5. Bit 3 – V : Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika. 6. Bit 2 – N : Negative Flag
Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan diset.
Bit akan diset bila hasil operasi yang diperoleh adalah nol. 8. Bit 0 – C : Carry Flag
Apabila suatu operasi menghasilkan carry, maka bit akan diset.
2.3.6. Instruksi Mikrokontroler ATMega8535
Mikrokontroler ATMega8535 memiliki 130 macam instruksi. Instruksi-instruksi mikrokontroler AVR dapat dibagi sebagai berikut [8] :
a. Instruksi transfer data, instruksi ini berfungsi untuk transfer data antara register ke register, memori ke memori, register ke memori, antarmuka ke register, dan antarmuka ke memori.
b. Instruksi aritmatika dan logic, instruksi aritmatika meliputi penjumlahan, pengurangan, penambahan satu (increament), dan pengurangan satu (decreament). Instruksi logika dan manipulasi bit, yang melaksanakan operasi AND, OR, XOR, perbandingan, penggeseran, dan komplemen data.
c. Instruksi Bit dan Bit-Test, yaitu instruksi untuk setting kondisi tiap bit, baik set maupun clear, bahkan ada beberapa variasi, seperti instruksi putar, hingga watchdog reset.
d. Instruksi percabangan, yang berfungsi mengubah urutan normal pelaksanaan suatu program menjadi sesuai yang dikehendaki. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Instruksi percabangan dibedakan atas percabangan bersyarat dan percabangan tanpa syarat.
e. Instruksi stack, I/O dan kontrol, yang digunakan untuk mengatur penggunaan stack, membaca/menulis port I/O serta pengontrolan-pengontrolan.