Konfigurasi pin ATmega8 Mikrokontroler ATmega8

Pengaturan bit COM1A1:0 dan COM1B1:0 digunakan untuk mengontrol pin OC1A dan pin OC1B. Jika salah satu bit dari COM1A1:0 diatur menjadi 1 atau mungkin keduanya, maka kaki pin OC1A tidak berfungsi normal sebagai Port IO. Hal tersebut juga serupa pengaruhnya pada pengaturan bit COM1B1:0. Pengaturan bit COM1A1:0 dan COM1B1:0 memiliki perbedaan kegunaan berdasarkan mode operasi yang dipakai. Pengaruh mode operasi teradap pengaturan bit COM1A1:0 dan COM1B1:0 ditunjukan pada Tabel 2.4, Tabel 2.5, dan Tabel 2.6. Tabel 2.4. Konfigurasi Compare Output Mode untuk non-PWM [14] Tabel 2.5. Konfigurasi Compare Output Mode untuk Fast PWM [14] Tabel 2.6. Konfigurasi Compare Output Mode untuk Phase Correct and Frequency Correct PWM [14] Pengisian data pada register OCR1A dan OCR1B akan mempengaruhi batasan nilai counter yang dilakukan TCNT1. Gambar susunan bit pada register OCR1A dan OCR1B ditunjukkan pada Gambar 2.17 dan Gambar 2.18. Register ini bertugas secara kontinyu untuk membandingkan nilai OCR1x terhadap nilai TCNT1. Saat nilai OCR1x mendapat kondisi yang sama terhadap TCNT1, maka kondisi tersebut dapat digunakan untuk membangkitkan Output Compare Interrupt, atau untuk membangkitkan bentuk gelombang output pada pin OC1x. kapasitas data maksimal register OCR1A dan OCR1B ditentukan saat pengaturan WGM1:0 pada Tabel 2.2 kolom nomor 7. Gambar 2.17. Susunan Register OCR1A [14] Gambar 2.18. Susunan Register OCR1B [14]

2.8.2.1.2 Mode operasi

fast PWM Mode ini melakukan pengendalian lama waktu on T on dan waktu off T off berdasarkan nilai dari register pembanding OCR1A atau OCR1B. Pengendalian lama waktu on dan off tersebut berdampak pada perubahan duty cycle. Pencacahan pada register TCNT1 berlangsung single slope satu arah, yakni dilakukan counting-up yang dimulai dari BOTTOM 0x0000 hingga nilai TOP kemudian diulang kembali. Besarnya nilai TOP dapat ditentukan sesuai dengan resolusi yang diinginkan dan dibutuhkan. Resolusi nilai yang tersedia yang tercatat pada tabel pemilihan mode operasi seperti 8-bit, 9-bit, dan 10- bit , akan tetapi dapat pula ditentukan secara manual melalui register ICR1 atau OCR1A. Resolusi minimal yang diperbolehkan yaitu 2-bit pengaturan nilai pada penggunaan ICR1 atau OCR1A yaitu 0x0003, sedangakan resolusi maksimal yang diperbolehkan adalah 16- bit pengaturan nilai pada penggunaan ICR1 atau OCR1A yaitu yaitu 0xFFFF. Nilai resolusi PWM dalam bentuk bit dapat dirumuskan sebagi berikut [14]: Gambar 2.18 adalah gambar timming diagram penggunaan mode Fast PWM. Gambar tersebut akan terlihat pola pencacahan dan output dalam penggunaan mode operasinya. Gambar 2.19. Diagram Pewaktuan Fast PWM Mode [14] Gambar 2.19 menunjukan nilai OCR1A atau ICR1 didefinisikan sebagai nilai TOP. Pola diagram pada TCNTn mengilustrasikan bentuk pencacahan single-slope. Gambar diagram tersebut memunculkan output compare OCnx dalam 2 bentuk yaitu inverting dan non-inverting. Garis pendek pada pola TCNTn menunjukan kondisi compare match antara OCR1x dan TCNT1. Bit register TOV1 interrupt flag akan bernilai 1 saat terjadi compare match. Perubahan duty cycle terlihat pada hasil output dari oleh OCnx. Output pada posisi inverting akan terkondisikan set high1 saat terjadi compare match, sedangkan pada posisi non-inverting akan terkondisikan clear low0 saat terjadi compare match. Kondisi tersebut waktu on dan off pada pulsa yang dikeluarkan pin OCnx. Pengaturan lama waktu on terlihat pada posisi non-inverting, sedangan pengaturan lama waktu off terlihat pada posisi inverting. Nilai frekuensi Fast PWM Mode dapat dihitung dengan persamaan berikut [14]: Dimana variabel N adalah nilai prescaler sumber clock. Nilai prescaler sudah tersedia yaitu 1, 8, 64, 256, dan 1024. Variabel f clk_IO adalah nilai frekuensi clock yang kita gunakan pada chip mikrokontroler.

2.8.3. USART Universal Synchronous and Asynchronous Serial Receiver

and Transmitter USART Universal Synchronous Asynchronous serial Receiver and Transmitter merupakan protokol komunikasi serial yang terdapat pada mikrokontroler AVR. Fitur ini berguna dalam pengiriman data secara serial antar mikrokontroler, namun dapat juga dilakukan antara mikrokontroler terhadap hardware lain contohnya seperti PC. Komunikasi serial pada fitur USART ini mempunyai 2 cara yaitu sinkron dan asinkron. Penggunaan mode sinkron harus melakukan fase sinkronisasi data dengan pengiriman data pulsaclock terlebih dahulu. Berbeda dengan penggunaan mode asinkron tidak perlu melakukan pengiriman data terlebih dahulu, tetapi sinkronisasi dilakukan dengan inisialisasi data pada program. Proses inisialisasi dilakukan terhadap perangkat yang akan melakukan pengiriman data secara serial dengan menyamakan kecepatan laju data baud rate. Pada mikrokontroler AVR untuk mengaktifkan fitur USART harus melakukan pengaturan bit pada register-register yang mempengaruhi komunikasi USART.

2.8.3.1. Pengaturan USART

Pengaturan register-register USART perlu diperhatikan saat melakukan komunikasi serial. Pengaturan bit RXEN bernilai 1 akan mengaktifkan fungsi penerimaan data, saedangkan pengaturan TXEN akan mengaktifkan fungsi pengiriman data. Besarnya ukuran data yang dikirim atau diterima dapat diatur melalui bit UCSZ2:0 dengan mengacu pada Tabel 2.7. Tabel 2.7. Pengaturan Ukuran Data [14]