Makalah USART [PDF]

  • Author / Uploaded
  • Sidik
  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

KATA PENGANTAR



Puji dan syukurpenulis panjatkan kehadirat Allah SWT karena berkat rahmat dan hidayah-Nya penulis dapat menyelesaikan penulisan makalah ini dengan baik Makalah ini merupakan salah satu tugas yang kami susun untuk memenuhi tugas di semester ganjil pada mata kuliah system mikroprosesor /EMBEDDED. Adapun makalah ini menjelaskan tentang Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter (USART) . Baik dari segi definisi, konsep , bagian bagian, prinsip kerja, dan lain lain. Yang mana didalamnya memuat hal hal penting yang sering terjadi dalam aplikasi mikro controller, khususnya saat kita berhubungan dengan computer. Makalah ini mungkin jauh dari sempurna, akan tetapi dalam makalah yang sederhana ini diharapkan dapat bermanfa’at khususnya bagi kami yang menyusun umumnya bagi pembaca sekalian.



Bandung, 17 Desember 2015



Penyusun



1



DAFTAR ISI KATA PENGANTAR........................................................................................... 1 DAFTAR ISI.......................................................................................................... 2 BAB I PENDAHULUAN A. Latar belakang.............................................................................................. 3 B. Tujuan penulisan.......................................................................................... 3 C. Rumusan masalah..........................................................................................3 D. metode penulisan ………………………………….…………………….....4



BAB II PEMBAHASAN PETA KONSEP................................................................................................ 5 A. Pengertian USART..................................................................................... 6 B. Register register dalam USART....…………………………………...….. 6 C. Inisialisasi USART................................................................................... 16 D. Dual USART............................................................................................ 22 E. Simulasi USART .................................................................................... 25 F. Layout simulasi USART.......................................................................... 26 BAB III PENUTUP A. Kesimpulan............................................................................................... 24 B. Saran......................................................................................................... 28 DAFTAR PUSTAKA......................................................................................... 29



2



BAB I PENDAHULUAN A. Latar Belakang Pada saat ini, teknologi semakin berkembang dengan sangat cepat dan semakin canggih. Perkembangan teknologi ini pastinya sangat berkaitan dengan perkembangan teknologi komputer. Dimana teknologi komputer merupakan pendukung bahkan penggerak kemajuan teknologi informasi pada jaman sekarang ini. Dan tidak bisa dipungkiri bahwa ilmu elektronika sangat berpengaruh kepada perkembangan Teknologi. Sebuah komputer mampu mengendalikan sebuah rangkaian alat elektronika menggunakan sebuah chip IC yang dapat diisi program dan logika yang disebut teknologi Mikroprosesor. Salah satu teknologi dari system Mikroprosesor yang berhubungan dengan computer adalah USART, USART merupakan salah satu mode komunikasi yang dimiliki oleh Mikrokontroler yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC. Untuk lebih jelasnya akan dibahas dalam makalah yang sederhana ini. B.



Rumusan Masalah Dalam perumusan masalah ini penulis akan merumuskan tentang: A. Apa yang dimaksud dengan USART? B. Sebutkan register register dalam USART? C. Bagaimana Inisialisasi dari USART? D. Apa yang di maksud dengan dual USART? E. Bagai mana contoh simulasi dari USART?



C.



Tujuan Penulisan Tujuan penulisan makalah ini adalah untuk: 1. Menjelaskan pengertian USART 2. Menjelaskan konsep kopnsep register USART 3.



Mesimulasikan Prinsip kerja USART



3



D. Metode Penulisan Metode yang digunakan dalam penulisan makalah ini adalah menggunakan metode pustaka yaitu penulis menggunakan media pustaka dalam penyusunan makalah ini.



4



PETA KONSEP Definisi USART



UDR (USART Data Register)



UCSRA (USART Control dan Status Register A) UCSRB (USART Control



REGISTER USART



dan Status Register B)



USART UCSRC (USART Control dan Status Register C) UBRR (USART Baud Rate Register) Pemrograman dengan AVR/CVAVR INISIALISASI USART Penerimaan data



Penerimaan data serial



DUAL USART



Pengiriman data dengan string Mengirim data dengan interupsi



SIMULASI & LAYOUT



Menerima data dengan interupsi



5



BAB II PEMBAHASAN A. PENGERTIAN USART Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang dimiliki oleh ATmega8535. USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART. USART memungkinkan transmisi data baik secara syncrhronous maupun asyncrhronous, sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode syncrhronous masing-masing peripheral memiliki sumber clock sendiri, maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama-sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK. USART merupakan salah satu mode komunikasi yang dimiliki oleh Mikrokontroler ATMega8535. USART memiliki 2 pin (RxD dan TxD) untuk Asynchronous dan 3 bit TxD, RxD, xCK untuk Synchronous.Untuk mengatur komunikasi USART dilakukan melalui beberapa register. B. REGISTER PADA USART Komunikasi dengan menggunakan USART dapat dilakukan dengan dua cara yaitu dengan mode sinkron dimana pengirim data mengeluarkan pulsa/clock untuk sinkronisasi data, dan yang kedua dengan mode asinkron, dimana pengirim data tidak mengeluarkan pulsa/clock, tetapi untuk proses sinkronisasi memerlukan inisialisasi agar data yang diterima sama dengan data yang dikirimkan. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baud rate (laju data) yang sama. Pada mikrokontroler AVR untuk mengaktifkan dan mengeset 6



komunikasi USART dilakukan dengan cara mengaktifkan register2 yang digunakan untuk komunikasi USART. Register – register yang dipakai antara lain:



1. UDR (USART Data Register) UDR (USART Data Register) adalah register yang paling penting dalam komunikasi serial ini. Sebab data yang dikirim keluar harus ditempatkan pada register ini, sedang data yang diterima dari luar dapat dibaca pada register ini pula. Pada intinya register UDR digunakan sebagai buffer untuk menyimpan data, baik yang akan dikirim maupun yang akan diterima. 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.



Seperti yang dapat dilihat pada gambar, sejatinya UDR adalah terdiri dari 2 buah register terpisah, dengan alamat dan nama yang sama, yakni UDR. Saat kita menulis data pada UDR ini, maka sebenarnya kita menulis data pada UDR (Write) yang kemudian USART mem-frame dengan bit-bit frame dan segera akan segera mengirimkan data tersebut secara serial. Saat kita membaca UDR, sebenarnya



7



adalah membaca UDR (Read). Data yang diterima secara serial akan disimpan dalam register tersebut, setelah hadirnya stop bit, maka USART akan membuang frame dan menyiapkan data pada UDR (Read ) sehingga dapat segera di ambil. Kita dapat menggunakan instruksi OUT dan IN untuk menulis dan membaca register UDR ini. 2. UCSRA (USART Control dan Status Register A) UCSRA adalah register yang penting. Sebegian besar adalah berisi status dari dari proses transfer komunikasi serial itu sendiri. Adapun penjelasan dari bitbit tersebut adalah:



Keterangan Per-bit: a. Bit 7 – RxC: USART Receive Complete Bit ini menjadi tinggi jika ada data yang masih belum diambil atau dibaca di dalam buffer penerima ( UDR-read ). Bit ini akan otomatis rendah setelah buffer penerima telah dibaca. Jika Unit Penerima tiba-tiba dimatikan setelah diaktifkan, maka isi dalam buffer penerima akan langsung dibuang (flushed) dan bit RxC ini akan langsung dibuat rendah. Bit ini juga bisa mengaktifkan instrupsi “Receive Complete interrupt ”. Lihat penjelasan tentang bit RxCIE. Untuk mengetahui penerimaan data jika high (1) ada data baru dan jika low (0) tidak ada data baru.



b. Bit 6 – TxC: USART Transmit Complete Bit ini akan otomatis tinggi saat semua frame dalam shift-register pengiriman telah digeser semuanya keluar dan jika tidak ada data baru yang berarada dalam buffer pengiriman (UDR-write). Bit TxC ini akan otomatis rendah setelah “Transmit Complete interrupt ” dijalankan, atau dengan meng-clearkan secara manual dengan cara menulis bit ini dengan nilai 1’s (tinggi). Bit TxC ini pula dapat membangkitan “Transmit Complete interrupt ”. Lihat penjelasan



8



tentang bit TxCIE. Untuk mengetahui pengiriman data, jika high (1) ada data baru dan jika low (0) tidak ada data baru.



c. Bit 5 – UDRE: USART Data Register Empty Bit UDRE ini adalah untuk menjadikan tanda jika buffer pengiriman (UDRwrite) telah siap untuk diberikan data baru. Bit ini akan bernilai 1 (tinggi) , berarti kita saat itu boleh menulis UDR. Bit ini dapat membangkitkan UDRIE atau “Data Register Empty interrupt ”. Lihat penjelasan tentang bit UDRIE. Bit ini setelah reset langsung bernilai 1, yang berarti siap untuk melakukan pengiriman.



d. Bit 4 – FE: Frame Error `



Bit ini otomatis menjadi tinggi jika saat menerima data, ternyata ada



kesalahan dari frame yang diterima. Misalnya saat Unit penerima seharusnya menunggu sebuah bit Stop, ternyata data yang ada adalah 0 (rendah). Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. e. Bit 3 – DOR: Data OverRun Bit ini akan menjadi tinggi saat kondisi overrun terjadi. Kondisi ini terjadi saat buffer penerima sudah penuh dan berisi 2 data karakter, dimana data karakter terakhir tidak bisa dipindahkan ke UDR-read, karena tidak kunjung dibaca oleh user. Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. f. Bit 2 – PE: Parity Error Bit ini akan menjadi tinggi saat karakter yang sedang diterima ternyata memiliki format parity yang salah. Tentu saja hal ini terjadi jika bit parity checking diaktifkan (UPM1 = 1). Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. g. Bit 1 – U2X: Double the USART Transmission Speed



9



Bit ini hanya berlaku untuk operasi tak sinkron (asynchronous). Jika bit ini kita tulis dengan 1’s (tinggi) maka baud rate akan menjadi lebih cepat 2 kali. Hal itu terjadi karena pembagi baud rate yang biasanya membagi 16 kemudian menbagi menjadi dengan 8 saja. Tulis bit ini dengan 0’s (rendah) untuk oprasi sinkron (synchronous). h. Bit 0 – MPCM: Multi-processor Communication Mode Bit ini digunakan untuk mode komunikasi Multi-Prosesor. Saat bit PMCM ini dibuat menjadi tinggi maka setiap data yang diterima oleh unit penerima, namun tidak dilengkapi dengan informasi alamat, data yang benar, maka akan diabaikan. Bit ini hanya berguna untuk penerima, dan bukan untuk pengirim.



3. UCSRB (USART Control dan Status Register B) UCSRB (USART Control dan Status Register B) adalah register yang penting. Sebagian besar adalah berisi status dari dari proses transfer komunikasi serial itu sendiri. Adapun penjelasan dari bit-bit tersebut adalah:



Keterangan Per-bit: a. Bit 7 – RxCIE: RX Complete Interrupt Enable Menulis bit ini menjadi tinggi akan mengaktifkan instrupsi yang berkaitan dengan bit RxC. "USART Receive Complete interrupt" akan terjadi hanya jika bit RxCIE ini dan bit I (Global Inteurpt) milik register SREG adalah 1's (Tinggi), dan a d a U



t i n g g i n y a C



b i t



S



R x C R



m i l i k A



.



b. Bit 6 – TxCIE: Tx Complete Interrupt Enable Menulis bit ini menjadi tinggi maka akan mengaktifkan interupsi pada bit TxC, yakni "USART Transmit Complete interrupt" yang akan menjalankan



10



interupsi setiap frame dari data pengiriman selasai dikirim atau dengan kata lain terjadi interupsi setiap bit TxC menjadi tinggi. Interupsi hanya bisa terjadi jika sebelumnya bit TxCIE ini di-set tinggi dan bit Global Interupt (I) milik register UCSRA juga di-set tinggi. c. Bit 5 – UDRIE: USART Data Register Empty Interrupt Enable Menulis bit ini menjadi tinggi maka akan mengaktifkan interupsi pada bit UDRE, yakni "Data Register Empty interrupt" yang akan menjalankan interupsi saat data pada buffer pengiriman sudah kosong atau dengan kata lain setiap bit UDRE menjadi tinggi. Interupsi hanya bisa terjadi jika sebelumnya bit UDRIE ini di-set tinggi dan bit Global Interupt (I) milik register UCSRA juga di-set tinggi. d. Bit 4 – RxEN: Receiver Enable Agar unit penerima dari USART dapat bekerja, maka bit RxEN ini harus dibuat tinggi sebelumnya. Begitu dibuat tinggi, pin RxD akan diputus sebagai standar I/O dan dihubungkan dengan unit penerima USART ini. Namun jika tibatiba bit RxEN ini dibuat rendah kembali setelah tadinya tinggi, maka unit penerima USART akan segera menghentikan kerjanya dan membatalkan proses penerimaan data, serta membersihkan buffer penerimaan, termasuk juga bit FE, DOR, dan PE. e. Bit 3 – TxEN: Transmitter Enable Agar unit pengirim USART dapat bekerja, maka bit TxEN ini harus dibuat tinggi sebelumnya. Begitu dibuat tinggi, pin TxD akan diputus dari standar I/O dan dihubungkan dengan unit pengirim USART ini. Namun jika tiba-tiba bit TxEN ini dibuat rendah kembali setelah tadinya tinggi, maka unit pengirim USART masih harus menyelesaikan tugasnya yang terakhir, yakni mengirim data yang tersisa. Baru kemudian iUnit pengiriman USART akan berhenti dan mengembalikan port TxD menjadi standar I/O kembali. f. Bit 2 – UCSZ2: Character Size Bit ini adalah pasangan dari Bit UCSZ1 dan bit UCSZ0 milik register UCSRC, untuk menentukan jumlah data yang hendak ditransfer. g. Bit 1 – RxB8: Receive Data Bit 8



11



Jika kita menggunakan format penerimaan data 9-bit maka bit yang terakhir yang diterima akan ditempatkan pada bit RxB8 ini. Pabrik menyarankan untuk membaca bit ini terlebih dahulu sebelum membaca 8-bit data lainnya di UDR. h. Bit 0 – TxB8: Transmit Data Bit 8 Jika kita menggunakan format pengiriman data 9-bit maka bit yang terakhir yang hendak dikirim ditempatkan pada bit TxB8 ini. Pabrik menyarankan untuk menulis bit ini terlebih dahulu sebelum menulis 8-bit data lainnya di UDR.



4. UCSRC (USART Control dan Status Register C) regsiter ini adalah register penting, untuk melakukan kontrol pada peralatan USART. Namuin jika tidak menggunakan fungsi USART, maka boleh mengabaikan register ini seperti dalam keadaan resetnya. dengan nilai $96, yang berarti bahwa sedang meggunakannya sebagai UART, Parity-none, 1 stop bit, ukuran data 8-bit (UCSZ2 = 0).



Catatan



: Register UCSRC adalah berbagi alamat I/O yang sama dengan



register UBBRH. Lihat bagaimana mengakses UBBRH dan UCSRC pada “Accessing UBRRH/UCSRC Registers” untuk mendapatkan penjelasan lebih lengkap. a. Bit 7 – URSEL: Register Select Saat akan menulis port $20 maka ada dua register yang akan akan diakses, yang ditentukan dari D7 dari data yang dituliskan. Jika D7 (MSB) adalah 1 atau datanya diatas $80 maka sedang menuliskan data pada UCSRC. Sedang jika data yang hendak dituliskan adalah dibawah $80, maka kita sedang menulis UBRRH. Bagaimana saat membaca UCSRC, pastikan sebelumnya bit ini dalam keadaan tinggi sebelumnya membaca lokasi $20 ini. b. Bit 6 – UMSEL: USART Mode Select



12



Bit ini untuk memilih USART dijadikan mode Taksinkron (Asynchronous) atau Sinkron (Synchronous). c. Bit 5:4 – UPM1:0: Parity Mode Bit-bit ini adalah untuk menghidupkan pembangkit dan pemeriksa parity. Jika diaktifkan maka akan otomatis membangkitkan parity pada setiap data yang dikirimkan dan akan memeriksa validitas parity dari setiap data yang diterima. Pada Unit penerima kita akan mendapatkan parity yang diterima, kemudian parity tersebut akan dibandingkan dengan status dari UMP0. Jika ternyata tidak cocok, maka bendera bit PE (Parity Error) pada UCSRA akan diaktifkan. d. Bit 3 – USBS: Stop Bit Select Dengan membiarkan bit in menjadi 0 maka frame akan dilengkapi dengan Stop-bit selebar 1-bit. Sedang jika bit ini ditulis tinggi, maka bit stop menjadi 2bit. Stop bit sepanjang 2-bit ini biasanya diperlukan bagi system lain yang terhubung dengan AVR akan memiliki waktu yang cukup untuk memproses data yang baru saja diterimanya, dan sudah berar-benar siap untuk menerima data berikutnya. Unit penerima USART tidak menggunakan bit ini. Tabel Jumlah Bit Sebagai Bit Stop



e. Bit 2:1 – UCSZ1:0: Character Size Menentukan karakter dari data yang hendak dikirimkan dan diterima haruslah merujuk pada bit-bit ini. Yakni bit UCSZ1 dan bit UCSZ0 milik register ini. Ditambah dengan bit UCSZ2 pada register UCSRB. Tabel Jumlah Data Yang Di Transfer



13



\ f. Bit 0 – UCPOL: Clock Polarity Bit ini hanya digunakan pada mode Synchronous. Dalam mode ini akan direlasikan antara daya yang diterima dan data yang dikirm dan disinkronkan dengan status dari XCX (synchronous clock). Perhatikan tabel 5 untuk mendalami bagaimana singkronikasi terjadi untuk ujung XCX (edge) yang berbeda dengan mengatur bit UCPOL ini.



5. UBRR (USART Baud Rate Register) Sebagaimana biasanya, baud rate antara AVR (sumber) dan device target haruslah sama. Hal ini menjadi sangat penting agar tidak ada transfer data palsu yang isinya diluar kemauan.



Catatan: Register UBRRH adalah berbagi alamat I/O yang sama dengan register UBBRH. Lihat bagaimana mengakses UBBRH dan UCSRC pada “Accessing UBRRH/UCSRC Registers” untuk mendapatkan penjelasan lebih lengkap.



a. Bit 15 – URSEL: Register Select Bit ini untuk memilih dalam mengakses alamat port $20. Seperti yang kita tahu bahwa alamat port ini dimiliki oleh 2 buah regsiter yang berbeda, yakni



14



UBRRH dan UCSRC. Saat kita hendak menulis UBBRH maka pastikan data bit MSB atau D7 harus rendah. b. Bit 14:12 – Reserved Bits Bit ini tidak digunakan saat ini. Mungkin akan digunakan pada produksi berikutnya. Oleh karena itu kita disarankan untuk tidak menulisnya dengan nilai 1 pada bit-bit yang tidak digunakan. c. Bit 11:0 – UBRR11:0: USART Baud Rate Register Ini adalah merupakan register 12-bit yang mana berisi dengan pengatur baud rate USART. Register ini adalah pasangan dari register UBBRH dan UBRRL, dimana UBBRL berisi 8-bit LSB (bit-bit terbawah) dan sisanya dimiliki oleh UBRRH. Mengubah nilai dari register ini saat transmisi berlangsung, akan menyebabkan kesalahan transmisi, karena baud rate akan langsung berubah seiring dengan berubahnya nilai dari register ini. Tabel UBRRH (USART Baud Rate Register High)



Keterangan: Baud



= Baud Rate (bps)



fosc



= Frekuensi Kristal



UBRR



= Nilai UBRR



15



C. INISIALISASI USART USART harus diinisialisasi sebelum komunikasi dilakukan. Proses inisialisasi biasanya terdiri dari pengaturan baud rate, pengaturan format frame dan mengaktifkan(enable) Transmitter atau Receiver/Penerima tergantung pada penggunaan. Untuk operasi USART dgn interupsi, Global Interrupt Flag harus diclearkan



(dan interupsi dinonaktifkan secara global) ketika melakukan



inisialisasi. Bit Flag TXC dapat digunakan untuk memeriksa bahwa Transmitter telah menyelesaikan semua transfer, dan bit flag RXC dapat digunakan untuk memeriksa bahwa tidak ada data yang belum dibaca dalam buffer penerima. Perhatikan bahwa Flag TXC harus diclearkan sebelum pengiriman (sebelum UDR ditulis) jika digunakan untuk pengiriman. Berikut ini contoh inisialisasi dan program penerimaan dan pengiriman dgn AVR USART. 1. Pemrograman AVR USART dgn AVR Studio atau Pemrograman USART dengan codevision Pada pemrograman dgn codevision anda tdk perlu pusing menghitung nilai register control UCSR dan register UBRR , cukup gunakan tool codewizard. klik Tools ->Codewizard , pilih tab USART sbb:



16



Setelah



USART anda



setting sesuai



kebutuhan pd tab USART , code template dan nilai seting register register USART otomatis akan dibuatkan oleh codevision setelah anda mengklik menu



generate,save



and



exit



hasilnya seperti dibawah ini : #include #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1