MODE TIMER AVR ATMEGA 16
OLEH: SULKIFLI YUNUS 323 13 004 II A ELEKTRONIKA
PROGRAM STUDI TEKNIK ELEKTRONIKA JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI UJUNG PANDANG 2015
KATA PENGANTAR Puji syukur penyusun panjatkan ke hadirat Allah Subhanahu wataala, karena berkat rahmat-Nya penyusun bisa menyelesaikan makalah yang berjudul Mode Timer AVR ATMega 16. Makalah ini diajukan guna memenuhi tugas mata kuliah Mikrokontroler. Penyusun mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga makalah ini dapat diselesaikan tepat pada waktunya. Makalah ini masih jauh dari sempurna, oleh karena itu, kritik dan saran yang bersifat membangun sangat kami harapkan demi sempurnanya makalah ini. Semoga makalah ini memberikan informasi bagi khalayak banyak dan bermanfaat untuk pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
Makassar, 2 Mei 2015
Penyusun
i
DAFTAR ISI
1. KATA PENGANTAR..............................................................................i 2. DAFTAR ISI..........................................................................................ii 3. BAB I a) KATA PENGANTAR......................................................................1 b) TUJUAN.........................................................................................1 c) BATASAN MASALAH....................................................................1 4. BAB II a) CodeVisionAVR.............................................................................2 b) ATMega16......................................................................................4 c) TIMER............................................................................................6 5. BAB III a) KESIMPULAN..............................................................................11 6. DAFTAR PUSTAKA...........................................................................12
ii
BAB I PENDAHULUAN
A. LATAR BELAKANG Timer merupakan peripheral yang memiliki fungsi sebagai pewaktu atau kapan suatu perintah yang diberikan akan dieksekusi. Pada ATMega16, terdapat tiga buah Timer/Counter, yaitu: Timer 0 (8 bit), Timer 1 (16 bit) dan Timer 2 (8 bit). Dalam pengaplikasiannya timer banyak digunakan sebagai pewaktu pada beberapa hardware seperti pengontrol suatu sistem.
B. TUJUAN a. Mengenal aplikasi CodevisionAVR dari Atmel. b. Mengetahui secara garis besar arsitektur Atmega16. c. Mengetahui Register Timer pada Atmega16.
C. BATASAN MASALAH a. CodeVisionAVR merupakan program aplikasi yang dirancang untuk menerjemahkan seluruh perintah dan bahasa ANSI C, dan memungkinkan untuk melakukan transfer program kedalam chip mikrokontroler setelah proses kompilasi. b. Atmega16 merupakan mikrokontroler keluarga AVR dengan 32 register
general-purpouse,
timer/
counter
dengan
metode
compare, dengan menggunakan arsitektur Harvard. c. Timer
merupakan
peripheral
yang
tertanam
didalam
mikrokontroler yang berfungsi sebagai pewaktu atau mengatur kapan perintah akan dijalankan (delay), dan juga berfungsi sebagai osilator, PWM, dan ADC.
1
BAB II PEMBAHASAN
1. CodeVision AVR
Gambar 1. CodeVisionAVR
CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang
didesain
untuk
mikrokontroler
buatan
Atmel
seri
AVR.
CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded. File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging
pada
tingkatan
C,
dengan
pengamatan
variabel,
menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip InSystem Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. Software In-System 2
Programmer
didesain
STK500/AVRISP/AVRProg,
untuk Kanda
bekerja
dengan
Systems
Atmel
STK200+/300,
Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics TCPU/Mega2000 programmers/development boards. Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk:
Modul LCD alphanumeric
Bus I2C dari Philips
Sensor Suhu LM75 dari National Semiconductor
Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari Maxim/Dallas Semiconductor
Protokol 1-Wire dari Maxim/Dallas Semiconductor
Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor
Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor
EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor
SPI
Power Management
Delay
Konversi ke Kode Gray
CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitunga menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut:
Set-up akses memori eksternal
Identifikasi sumber reset untuk chip
Inisialisasi port input/output
3
Inisialisasi interupsi eksternal
Inisialisasi Timer/Counter
2. ATMEGA16 Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa bandar masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi. Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam serpih yang sama dengen prosesornya (in chip).
4
Gambar 2. Datasheet ATMEGA16
Mikrokontroler
ini
menggunakan
arsitektur
Harvard
yang
memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent). Secara garis besar mikrokontroler ATMega16 terdiri dari : a. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz. b. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte c. Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D. d. CPU yang terdiri dari 32 buah register. e. User interupsi internal dan eksternal f. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial g. Fitur Peripheral
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
5
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture
Real time counter dengan osilator tersendiri
Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC
Byte-oriented Two-wire Serial Interface
Watchdog timer dengan osilator internal
3. TIMER Mikrokontroler AVR ATMEGA16 memiliki tiga buah Timer/Counter, yaitu: Timer 0 (8 bit), Timer 1 (16 bit) dan Timer 2 (8 bit). Namun, pada sub bab ini hanya akan membahas mengenai Timer/Counter 1 saja. Timer/Counter 1 mempunyai keunggulan dibanding Timer/Counter 0 atau 2, namun cara mengatur Timer 0, 1, 2 sama saja, yaitu pada masing-masing registernya. Timer/Counter 1 dapat menghitung sampai dengan 65536 Timer/Counter 0 atau 2 hanya sampai dengan 256. Selain itu, Timer 1 ini memiliki mode operasi sebanyak 16 mode. Register pada Timer ini dibagi menjadi beberapa register dengan fungsi khusus, yaitu: control register A, control register B dan interrupt mask. Register – register pada Timer/Counter 1 yang berfungsi untuk mengatur timer dan mode operasinya. Register tersebut mempunyai fungsi masing-masing sebagai berikut. a. Timer/Counter 1 Control Register A (TCCR1A)
Keterangan: Bit 7 dan 6 : Compare Output untuk kanal A Bit 5 dan 4 : Compare Output untuk kanal B Bit COM1 ini mempunyai Compare Output Mode pada setiap mode operasinya. Mode tersebut mempengaruhi pin I/O OC1 A dan B.
6
Tabel 3.1 Compare Output Mode, Non-PWM
Tabel 3.2 Compare Output Mode, Fast PWM
Tabel 3.3 Compare Output Mode Phase Correct dan Phase Correct & Frequency PWM
Bit 3 : Force Output untuk kanal A Bit 2 : Force Output untuk kanal B Bit 1 dan 0 : Waveform Generation Mode Mode operasi sebanyak 16 mode, diatur dalam bit WGM ini. Mode operasi tersebut ditunjukkan oleh Tabel 2.8 di bawah ini
7
Tabel 3.3 Compare Output Mode
b. Timer/Counter Control Register 1B (TCCR1B)
Keterangan: Bit 7 : Input Capture Noise Canceler, ketika bit ini diset 1(high) maka Noise Canceler aktif dan masukkan dari Input Capture Pin (ICP1) terfilter. Bit 6 : Input Capture Edge Select, bit ini digunakan untuk trigger yang disebabkan oleh edge ICP1. Jika bit ini diset 1 maka sebuah rising edge (positif) akan men-trigger capture, Jika bit ini diset 0 maka sebuah falling edge (negatif) akan mentrigger capture. Bit 5 : Reserved,
bit
ini
akan
digunakan
pada
tahap
pengembangan selanjutnya. Bit 4 dan 3
: lihat deskripsi register TCCR1A.
Bit 2, 1 dan 0 : Clock Select, bit ini digunakan untuk memilih jenis sumber
clock
untuk
digunakan
pada
suatu
timer/counter.
8
Tabel 3.4 Deskripsi Clock Select Bit
c. TCNT1, digunakan untuk menyimpan nilai timer yang diinginkan. TCNT1 dibagi menjadi 2 register 8 bit, yaitu TCNT1H dan TCNT1L.
d. TIMSK dan TIFR, Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag (TIFR) digunakan untuk mengendalikan interrupt mana yang diaktifkan, dengan cara melakukan setting pada TIMSK dan untuk mengetahui interrupt mana yang sedang terjadi.
Keterangan: Bit 7 : Timer/Counter2 Output Compare Match Interrupt Enable Bit 6 : Timer/Counter2 Overflow Interrupt Enable Bit 5 : Timer1 Input Capture Interrupt Enable Bit 4 : Timer/CounterA Output Compare Match Interrupt Enable Bit 3 : Timer/CounterB Output Compare Match Interrupt Enable Bit 2 : Timer/Counter1 Overflow Interrupt Enable Bit 1 : Timer/Counter0 Output Compare Match Interrupt Enable Bit 0 : Timer/Counter0 Overflow Interrupt Enable
9
Keterangan: Bit 7 : Output Compare Flag2 Bit 6 : Timer/Counter2 Overflow Flag Bit 5 : Timer1 Input Capture Interrupt Flag Bit 4 : Output Compare Flag1A Bit 3 : Output Compare Flag1B Bit 2 : Timer/Counter1 Overflow Flag Bit 1 : Output Compare Flag0 Bit 0 : Timer/Counter0 Overflow Flag
e. OCR1n, Output Compare Register Timer 1 n (n = A, B) merupakan register yang digunakan untuk membangkitkan interupsi eksternal dengan melakukan perbandingan (Output Compare) atau juga dapat digunakan untuk membangkitkan bentuk gelombang (PWM). Fungsi tersebut di atas dikeluarkan oleh pin OC1n (n = A, B).
Setiap mode timer seperti CTC, Fast PWM, Phase Correct PWM dan Phase and Frequency Correct PWM, mempunyai persamaan untuk menghitung frekuensi (clock) yang akan dihasilkannya.
10
BAB III PENUTUP
A. Kesimpulan AVR ATMEGA16 memiliki tiga buah Timer/Counter, yaitu: Timer 0 (8 bit), Timer 1 (16 bit) dan Timer 2 (8 bit). Timer merupakan peripheral yang tertanam dalam Mikrokontroler yang berfungsi sebagai pewaktu atau delay kapan perintah akan dijalankan, Timer sendiri memiliki beberapa register yang berfungsi sebagai control register A, control register B dan interrupt mask. Register – register pada Timer/Counter 1 yang berfungsi untuk mengatur timer dan mode operasinya.
11
DAFTAR PUSTAKA Kampung Multimedia, “Pengertian CodeVisionAVR” https://kampungmultimedia.wordpress.com/2013/05/06/pengertian-codevision-avr/ Akses 13.39 WITA Wikipedia, “ATMega16” http://id.wikipedia.org/wiki/ATMega16 Akses 13.06 WITA Rangga Putra “Microcontroller Blog” https://ranggamicrocontroller.wordpress.com/2012/12/21/timercounterpada-microcontroller-atmel-avr/ Akses 13.40 WITA
Mochamad, - jbptunikompp-gdl-mochamadbo-22888-3-babii.pdf
12