Inisialisasi USART Komunikasi Serial USART

Gambar 2.4.Mode Fast PWM [8]

2.2.5. Komunikasi Serial USART

Komunikasi USART Universal Synchronous and Asynchronous serial Receiver and Transmitter adalah fasilitas komunikasi serial yang disediakan oleh mikrokontroler Atmega32, baik secara sinkron maupun asinkron.Komunikasi seri dapat dibedakan menjadi 2 macam, yaitu komunikasi data seri sinkron dan komunikasi data asinkron. Dikatakan sinkron jika sisi pengirim dan sisi penerima ditabuh clocked oleh penabuh clock yang sama, satu sumber penabuh, data dikirim beserta penabuh. Dikatakan asinkron jika sisi pengirim dan sisi penerima ditabuh oleh penabuh yang terpisah dengan frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi[8]. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut: a. Operasi full duplex mempunyai register receive dan transmit yang terpisah b. Mendukung kecepatan multiprosesor c. Mode kecepatan berorde Mbps d. Operasi asinkron atau sinkron e. Operasi master atau slave clock sinkron f. Dapat menghasilkan baud-rate laju data dengan resolusi tinggi g. Modus komunikasi kecepatan ganda pada asinkron

2.2.5.1. Inisialisasi USART

Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain[8]: USART IO Data Register UDR UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan TXB atau tempat data diterima RXB sebelum data tersebut dibaca. Gambar 2.5. Register UDR [8] USART Control and Status Register A UCSRA Gambar 2.6. Register UCSRA [8] Penjelasan bit penyusun UCSRA[8]: a. RXC USART Receive Complete Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara otomatis bersamaan dengan eksekusi vektorinterupsi yang bersangkutan. b. TXC USART Transmit Complete Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. c. UDRE USART Data Register Empty Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berarti sebaliknya. d. FE Frame Error Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika stop bit data yang diterima berlogika nol. e. DOR Data OverRun Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai satu ketika terjadi tumpang tindih data. f. PE Parity Error Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit paritas digunakan. g. U2X Double the USART Transmission Speed Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol. h. MPCM Multi Processor Communication Mode Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan. USART CONTROL AND STATUS REGISTER B UCSRB Gambar 2.7. Register UCSRB [8] Penjelasan bit penyusun UCSRB[8]: a. RXCIE RX Complete Interrupt Enable Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan. b. TXCIE TX Complete Interrupt Enable Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika tidak diaktifkan. c. UDRIE USART Data Register Empty Interrupt Enable Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya. d. RXEN Receiver Enable Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin IO karena sudah digunakan sebagai saluran penerima USART. e. TXEN Transmitter Enable Bit ini berfungsi untuk mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin IO karena sudah digunakan sebagai saluran pengirim USART. f. UCSZ2 Character Size Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan. Tabel 2.2. Penentuan Ukuran Karakter UCSZ[2..0] Ukuran Karakter dalam bit 5 1 6 10 7 11 8 100-110 Tidak dipergunakan 111 9 g. RXB8 Receive Data Bit 8 Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR. h. TXB8 Transmit Data Bit 8 Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus ditulis dahulu sebelum membaca UDR. USART CONTROL AND STATUS REGISTER C UCSRC Gambar 2.8. Register UCSRC [8] Penjelasan bit penyusun UCSRC[8]: a. URSEL Register Select : Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b. UMSEL USART Mode Select Bit pemilih mode komunikasi serial antara sinkron dan asinkron. c. UPM[1…0] Parity Mode Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmittter USART akan membuat paritas yang akan digunakan secara otomatis. d. USBS Stop Bit Select Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e. UCSZ1 dan UCSZ0 Merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB. f. UCPOL Clock Parity Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron XCK[6].

2.3. LCD Liquid Crystal Display