Laporan usart
October 17, 2017 | Author: Dyah Anggraini | Category: N/A
Short Description
USART...
Description
LAPORAN PRAKTIKUM MIKROKONTROLLER UNIVERSAL SYNCHRONOUS AND ASYNCHRONOUS SERIAL RECEIVER TRANSMITTER (USART)
Oleh : Mei Rahayu Puspitasari 1541160040 JTD 2B
JARINGAN TELEKOMUNIKASI DIGITAL JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI MALANG 2017
UNIVERSAL SYNCHRONOUS AND ASYNCHRONOUS SERIAL RECEIVER TRANSMITTER (USART)
I.
Tujuan Setelah melakukan praktikum ini, mahasiswa diharapkan mampu: 1. Menyusun algoritma, flowcart dan program dengan memanfaatkan unit USART, unit ADC dan unit input-output ATMega16 untuk proses telemetri dan telekontrol. 2. Mengaplikasikan program komunikasi Serial dengan menggunakan ATMega16.
II.
Alat dan Bahan 1. Code Vision AVR (Software) 2. Progisp (Software)
III.
3. ISP Downloader
: 1 Unit
4. Modul Rangkaian
: 1 Unit
5. ATMega 16
: 1 Unit
6. Kabel Penghubung
: Secukupnya
7. 7 segment
: 1 buah
Teori Dasar Universal Synchronous dan Asynchronous dan Transmitter (USART) adalah perangkat komunikasi serial yang sangat fleksibel. Fitur-fitur utama adalah sebagai berikut:
Operasi full duplex
Operasi asinkron atau sinkron
Master atau slave clock pada operasi sinkron
Generator baud rate resolusi tinggi
Mendukung frame serial dengan 5, 6, 7, 8, atau 9 bit data dan 1 atau 2 bit stop
Paritas ganjil atau genap
Deteksi data over run
Deteksi kesalahan framing
Filter terhadap gangguan termasuk deteksi bit start palsu dan low pass filter digital
Tiga Interrupsi terpisah di TX komplit, TX Data Register Empty, dan RX komplit
Mode Komunikasi Multi-prosesor
Kecepatan ganda pada mode komunikasi asinkron
Blok diagram sederhana dari USART ditunjukkan pada Gambar 5.1 dan untuk Register I/O dan pin I/O yang dapat diakses ditampilkan dengan huruf tebal seperti Register UCSRA, UCSRB, UCSRC, UDR dan UBRR, serta pin RxD, TxD dan XCK.
Gambar 4.1. Blok Diagram USART pada ATMega 16 (ATMega16,2010;144) Dalam Gambar 4.1, kotak-kotak yang putus-putus dalam blok diagram memisahkan tiga bagian utama dari USART yaitu: Generator Clock, Transmitter dan Receiver. Register Kontrol dibagi ke semua unit. Clock pembangkit logika terdiri dari logika sinkronisasi untuk masukan clock eksternal yang digunakan oleh operasi sinkron slave dan generator baud rate. Pin XCK (Clock Transfer) hanya digunakan oleh mode Transfer Sinkron. Transmitter terdiri dari buffer register tulis, serial Shift regiseter, generator paritas dan kontrol logika untuk menangani berbagai format bingkai (frame)
serial. Buffer register tulis70 memungkinkan transfer data yang berkelanjutan tanpa ada penundaan antara frame. Pada receiver merupakan bagian paling kompleks dari modul USART karena clock dan unit pemulihan data. Unit-unit pemulihan digunakan untuk penerimaan data asinkron. Tambahan fungsi untuk unit pemulihan berupa pemeriksa paritas penerima (receiver), logika kontrol, Shift Register dan dua tingkat receive buffer (UDR). Receiver mendukung format frame yang sama seperti transmitter, dan dapat mendeteksi kesalahan frame, overrun data dan kesalahan paritas. Untuk dapat menggunakan USART, perlu diketahui dari fungsi-fungsi masingmasing register yang ada di dalam Blok diagram pada Gambar 4.1. Register-register tersebut sebagai berikut: 1. UDR atau USART Data Register
Gambar 4.2. Register UDR (ATMega16,2010;163) USART Transmit Data Buffer Register dan USART Receive Data Buffer Register menggunakan alamat I/O yang sama yang disebut USART Data Register atau UDR. Transmitter Data Buffer Register (TXB) akan menjadi tujuan dari penulisan data ke lokasi register UDR sedangkan saat membaca register UDR akan mendapatkan isi dari Receiver Data Buffer Register (RXB) seperti yang ditunjukkan dalam Gambar 4.2. 2. UCSRA atau USART Control Status Register A Nama bit-bit UCSRA ditunjukkan dalam Gambar 4.3.
Gambar 4.3. Bit-Bit Register UCSRA (ATMega16,2010;164) Keterangan bit-bit Register UCSRA adalah sebagai berikut: - Bit 7 – RXC: USART Receive Complete
Merupakan bit tanda bahwa ada data yang telah masuk secara serial melalui pin RxD. Bernilai logika satu bila ada data masuk ke buffer penerima dan belum dibaca, bila data sudah dibaca maka akan berubah menjadi nol. Bit RXC ini juga digunakan untuk membangkitkan intrupsi Receive Complete. - Bit 6 – TXC: USART Transmit Complete Merupakan bit tanda bila semua data sudah komplit dikirim secara serial melalui pin TxD. Bernilai logika satu bila transmit shift register telah kosong dan tidak ada data baru dalam transmit buffer (UDR). Bit TXC ini akan berubah menjadi nol secara otomatis saat intrupsi transmit complete dikerjakan atau dapat di-nol-kan dengan menuliskan satu ke bit ini. Tanda TXC juga membangkitkan sebuah intrupsi Transmit Complete. - Bit 5 – UDRE: USART Data Register Empty Tanda UDRE menunjukkan jika transmit buffer (UDR) siap menerima data. Bila UDRE berlogika satu buffer kosong, berarti siap untuk ditulis. Tanda UDRE dapat membangkitkan intrupsi Data Register Empty. UDRE berlogika satu untuk menunjukkan bagian transmitter siap. - Bit 4 – FE: Frame Error Bit berlogika satu jika karakter berikutnya dalam buffer penerima terjadi frame error ketika menerima yaitu saat stop bit pertama dari karakter berikutnya dalam buffer penerima (receiver) adalah nol. Bit FE adalah nol ketika stop bit data yang diterima adalah satu. Beri bit ini nol saat menulis ke UCSRA. - Bit 3 – DOR: Data OverRun Bit ini berlogika satu jika kondisi over run data terdeteksi. Sebuah data overrun terjadi ketika buffer penerima penuh (dua karakter), ada karakter baru yang menunggu dalam shift Registre penerima, dan start bit baru terdeteksi. Beri bit ini ke nol saat menulis ke UCSRA. - Bit 2 – PE: Parity Error Bit ini berlogika satu jika karakter berikutnya dalam buffer penerima memiliki kesalahan paritas (Parity Error) saat diterima dan pengecekan paritas telah diaktifkan
pada bagian UPM1 = 1. Beri bit ini nol saat menulis ke UCSRA. - Bit 1 – U2X: Double the USART Transmission Speed Bit ini hanya berpengaruh untuk operasi asinkron. Beri bit ini nol bila menggunakan sinkron operasi. Bila bit ini diberi nilai logika satu maka akan mengurangi pembagi dari pembagi baud rate dari 16 ke 8 sehingga secara efektif menggandakan transfer rate untuk komunikasi asinkron. - Bit 0 – MPCM: Multi-processor Communication Mode Bit ini memungkinkan Modus komunikasi multi-prosesor. Apabila bit MPCM diberi logika satu, maka semua frame yang diterima oleh penerima USART yang tidak mengandung informasi alamat akan diabaikan. Transmiiter tidak dipengaruhi oleh pengaturan MPCM. 3. UCSRB atau USART Control Status Register B Nama bit-bitnya ditunjukkan dalam Gambar 4.4.
Gambar 4.4. Bit-bit Register UCSRB (ATMega16,2010;165) Keterangan bit-bit Register UCSRB adalah sebagai berikut: - Bit 7 – RXCIE: RX Complete Interrupt Enable Bit ini digunakan untuk mengaktifkan intrupsi saat ada data masuk di buffer penerima atau saat RXC bernilai satu. Jika diberi logika satu maka intrupsi diaktifkan dan bila diberi nol maka intrupsi tidak aktif. - Bit 6 – TXCIE: TX Complete Interrupt Enable Bit ini digunakan untuk mengaktifkan intrupsi saat data sudah selesai dikirimkan atau saat TXC sama dengan satu. Jika diberi logika satu maka intrupsi diaktifkan dan bila diberi nol maka intrupsi tidak aktif. - Bit 5 – UDRIE: USART Data Register Empty Interrupt Enable Bit ini digunakan untuk mengaktifkan intrupsi saat UDRE sama dengan satu. Jika diberi logika satu maka intrupsi diaktifkan dan bila diberi nol maka intrupsi tidak aktif. - Bit 4 – RXEN: Receiver Enable
Bit ini digunakan untuk mengaktifkan bagian penerima (receiver) USART, dan pin RxD digunakan sebagai jalur komunikasi serial. Bila diberi logika satu akan aktif dan logika nol untuk non aktif - Bit 3 – TXEN: Transmitter Enable Bit ini digunakan untuk mengaktifkan bagian pengirim (transmitter) USART, dan pin TxD digunakan sebagai jalur komunikasi serial. Bila diberi logika satu akan aktif dan logika nol untuk non aktif - Bit 2 – UCSZ2: Character Size Bit UCSZ2 dikombinasikan dengan bit UCSZ1 dan UCSZ0 bit dalam register UCSRC untuk menetapkan jumlah bit data atau ukuran karakter dalam frame untuk penerima (receiver) dan pemancar (transmitter). - Bit 1 – RXB8: Receive Data Bit 8 RXB8 adalah bit data kesembilan dari karakter yang diterima ketika beroperasi dengan frame serial dengan sembilan bit data. Harus dibaca sebelum membaca bit rendah dari UDR. - Bit 0 – TXB8: Transmit Data Bit 8 TXB8 adalah bit data yang kesembilan dari karakter yang akan dikirim ketika beroperasi dengan frame serial dengan sembilan bit data. Harus ditulis sebelum menulis bit rendah untuk UDR. 4. UCSRC atau USART Control Status Register C Nama bit-bit dari Register UCSRC ditunjukkan dalam Gambar 4.5.
Gambar 4.5. Bit-bit Register UCSRC (ATMega16,2010;166) Alamat lokasi register UCSRC berbagi dengan register UBRRH. Sedang untuk keterangan bit-bit Register UCSRC adalah sebagai berikut: - Bit 7 – URSEL: Register Select
Bit ini digunakan untuk memilih antara mengakses register UCSRC atau register UBRRH. Bila diberi logika satu maka digunakan sebagai register UCSRC. - Bit 6 – UMSEL: USART Mode Select Bit ini digunakan untuk memilih mode operasi komunikasi serial, bila diberi logika ‘0’ maka mode Asikron dan bila diberi logika ‘1’satu maka mode Sinkron - Bit 5:4 – UPM1dan UPM0: Parity Mode Bit-bit yang digunakan untuk mengaktifkan dan menetapkan jenis generasi dan memeriksa paritas. Jika diaktifkan, bagian pemancar akan secara otomatis menghasilkan dan mengirim bit paritas dari data yang dikirimkan dalam setiap frame. Dan pada bagian penerima (receiver) akan menghasilkan nilai paritas dari data yang masuk dan bandingkan dengan pengaturan UPM0. Jika ketidakcocokan terdeteksi, maka tanda bit PE di UCSRA akan bernilai satu. Untuk pengaturan bit-bit UPM1 dan UPM0 ditunjukkan dalam Tabel 4.1. UCCSZ2
UCSZ1
UCSZ0
Character Size
0
0
0
5-bit
0
0
1
6-bit
0
1
0
7-bit
0
1
1
8-bit
1
0
0
Reserved
1
0
1
Reserved
1
1
0
Reserved
1
1
1
9-bit
Tabel 4.1.Pengaturan bit-bit UPM (ATMega16,2010;166) - Bit 3 – USBS: Stop Bit Select Bit ini digunakan untuk memilih jumlah Bit Stop yang akan dimasukkan oleh bagian pengirim. Sedang untuk bagian penerima enerima mengabaikan pengaturan ini. Bila USBS = 0 maka diatur menggunakan 1 bit stop, sedang bila USBS = 1 maka diatur mengunakan 2 bit stop. - Bit 2:1 – UCSZ1:0: Character Size
bit UCSZ1 dan UCSZ0 dikombinasikan dengan bit UCSZ2 bit dalam register UCSRB untuk menetapkan jumlah bit data atau ukuran karakter dalam frame untuk penerima dan pemancar. Dan untuk pengaturan UCSZ2 sampai UCSZ0 ditunjukkan dalam Tabel 5.2. - Bit 0 – UCPOL: Clock Polarity Bit ini digunakan untuk mode Sinkron saja. Untuk mode Asikron diberi logika 0. Bit UCPOL menetapkan hubungan antara perubahan output data dan sampel input data, dan clock sinkron (XCK). Untuk pengaturan bit UCPOL ditunjukkan dalam tabel 5.3 Tabel 4.2. Kombinasi UCSZ2 sampai UCSZ0 untuk Pengaturan Ukuran Karakter (ATMega16,2010;167) UCCSZ2
UCSZ1
UCSZ0
Character Size
0
0
0
5-bit
0
0
1
6-bit
0
1
0
7-bit
0
1
1
8-bit
1
0
0
Reserved
1
0
1
Reserved
1
1
0
Reserved
1
1
1
9-bit
UCPOL
Transmitted Data Changed
Received Data Sampled
(Output of TxD Pin)
(Input on RxD Pin)
0
Rising XCX Edge
Falling XCX Edge
1
Falling XCX Edge
Rising XCX Edge
5. UBRR atau USART Baud Rate Register UBRR terdiri dari dua buah register yaitu UBRRH dan UBRRL, registerregister ini digunakan untuk mengatur kecepatan pengiriman data atau Baud Rate. Untuk alamat register UBRRH digunakan bersama dengan register UCSRC. Bit-bit dari UBRRH dan UBBRL ditunjukkan dalam Gambar 4.6.
Gambar 4.6. Bit-bit Register UBRRH dan UBRRL (ATMega16,2010;167) - Bit 15 – URSEL: Register Select - Bit yang digunakan untuk memilih penggunaan register UBRRH atau UCSRC, harus diberi logika 0 saat digunakan untuk register UBRRH - Bit 14 sampai 12, cadangan - Bit 11 sampai bit 0 - Merupakan register 12-bit yang berisi USART baud rate. Regiseter UBRRH ini berisi empat bit MSB, dan UBRRL tersebut berisi 8 bit LSB dari USART baud rate. Untuk perhitungan Baud Rate dan nilai register UBRR ditunjukkan dalam tabel 5.4.
Tabel 5.4. Perhitungan Baud Rate dan nilai Register UBRR (ATMega16,2010;147) Catatan: 1. Baud rate didefinisikan sebagai kecepatan transfer dalam bit per detik (bps). 2. BAUD = Baud rate 3. fosc = Frekuensi Osilator Clock Sistem
IV.
Gambar Rangkaian
V.
Flow Chart Program
VI.
VII.
Script pada code vision
Prosedur Praktikum 1. Persiapan Program
a. Mengklik File New Project
b. Menekan tombol Yes untuk masuk ke menu selanjutnya
c. Memilih tipe chip, karena kita menggunakan Atmega, maka pilih yang atas
d. Pada menu Windows CodeWizard AVR, karena pada hal ini sedang melakukan praktikum input output, maka yang di setting adalah bagian Port dan Chip Menu Chip Pengaturan Chip Pengaturan X_Tal
e. Ketika semua sudah selesai, langkah selanjutnya Generate, Save and Exit (Catatan : pemberian nama file sebanyak 3x, dengan nama file yang sama, hindari kalimat yang panjang, capital, dan spasi) f. Kemudian masuk ke bagian USART, centang Tx dan Rx nya seperti pada gambar.
g. Setelah selesai memberi nama file, akan muncul bagian utama untuk proses pembuatan program h. Mengisi script
i. Mengklik Compile dan Build All Project File
j. emastikan bahwa script tidak ada error
Skrip tidak ada yang error
2. Memasukkan Program ke Modul Rangkaian Menggunakan Progisp a. Menghubungkan modul rangkaian dengan kabel isp downloader, kemudian menghubungkan kabel-kabel female, sesuai dengan port input output-nya b. Membuka Software progisp
c. Kemudian mengunduh file program dari komputer ke modul mikro dengan Mengklik “Load Flash”, lalu Memilih file
d. Mengklik bagian “...”, kemudian centang jtagen sehingga menjadi angka 1
e. Mengklik tulisan command, dan pilih menu write flash
f. Menguji modul mikro dengan mengirim menu tampilan menggunakan aplikasi Hercules.
VIII.
IX.
Hasil Praktikum Menu “1” untuk menampilkan nama
Menu “2” untuk menampilkan
“rahayu”
NIM“1541160040”
Menu “3” untuk menampilkan
Menu “4” untuk menampilkan nomor
tanggal lahir “19-05-1998”
hp “085726052337”
Menu “5” untuk menampilkan nilai
Menu “6” untuk menampilkan kondisi
adc potensiometer “0”-“255”
ldr “gelap” atau “redup” atau “terang”
Analisis Dalam mendeklarasi variable, yakni menggunakan unsigned char, dengan kode yang digunakan untuk membentuk angka pada seven segment adalah hexa. Untuk menampilkan secara berurutan, maka menggunakan fungsi for, dan sela waktu nya diatur dalam delay.
Menu diatur dalam fungsi if (jika 0) sehingga variabel memiliki sifat khusus untuk menampilkan satu fungsi saja. Di bagian Usart ini terdapat ADC berupa POT untuk mengetes tegangan input yang masuk ke ATmega, dan ATmega akan mencoba membacanya, ATmega akan membaca isyarat tegangan ini jika program telah dituliskan read_adc. Untuk mengatur tegangan yang masuk ini, POT diberi putaran tertentu, agar dapat menampilkan nilai tegangan sesuai program yang telah dibentuk sebelumnya. X.
Kesimpulan Dari hasil praktikum kali ini, dapat disimpulkan beberapa hal sebagai berikut : 1. Program yang dibuat sesuai prosedur sehingga tidak terdapat masalah yang serius. 2. Mahasiswa mengetahui bahwa ATmega 16 memiliki banyak kelebihan dan praktis dalam penggunaan nya sehingga mungkin kedepannuya dapat dikembangkan dalam alat-alat elektronika yang bermanfaat 3. PORT untuk input dan output pada mikrokontroller bebas untuk ditetapkan pada praktikum 1 I/O USART ini. Pada bagian input hanya diperlukan satu kabel female saja untuk ditancapkan ke port input, tidak seperti praktikum sebelumnya yang membutuhkan empat kabel female. Kemudian memerlukan kabel tambahan yakni RS232 sebagai jembatan antara PC dan ATmega.
View more...
Comments