Saturday, 29 November 2014

USART

USART


Dalam mikrokontroler ATMega8535 terdapat fitur USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter ), 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 yaitu :
  • USART Data Register (UDR)
Register ini merupakan register yang paling penting dalam komunikasi serial ini. Sebab data yang dikirim keluar harus ditempatkan pada register ini. Rrgister ini berfungsi sebagai buffer untuk menyimpan data, baik yang akan dikirim maupun yang diterima.
  • USART Control and Status Register A (UCSRA)
Mempunyai 8 bit yang memiliki fungsi masing-masing:
Bit   7
6
5
4
3
2
1
0
RXC
TXC
UDRE
FE
DOR
PE
U2X
MPCM
R
R/W
R
R
R
R
R/W
0X20
R/W
0
0
1
0
0
0
0
0
*) Bit-7 / RXC          :(USART Receive Complete), digunakan untuk mengetahui penerimaan data, jika bernilai 1 maka ada data baru yang diterima RXB dan belum terbaca, dan jika bernilai 0 maka sebaliknya.
*) Bit-6 / TXC          :(USART Transmit Complete), digunakan untuk mengetahui pengiriman data, jika bernilai 1 maka ada data baru yang diterima TXB dan belum terbaca, dan jika bernilai 0 maka sebaliknya.
*) Bit-5 / UDRE       :(USART Data Register Empty), digunakan untuk mengetahui isi UDR, jika bernilai 1 maka register UDR kosong, dan jika bernilai 0 maka sebaliknya.
*) Bit-4 / FE             :(Frame Error), digunakan untuk mengetahui terjadinya frame error pada penerimaan data.
*) Bit-3 / DOR         :(Data Over Run), digunakan untuk mengetahui kondisi over run dimana data yang masuk terlalu cepat.
*) Bit-2 / PE             :(Parity Error), digunakan untuk mengetahui terjadinya parity error.
*) Bit-1 / U2X          :(Double the Usart Transmission Speed), digunakan untuk membuat kecepatan transfer data menjadi 2x lipat.
*) Bit-0 / MPCM     :(Multi Processor Communication Mode), digunakan pada komunikasi multi prosesor.
  • UCSRB (USART Control and Status Register B):
Mempunyai 8 bit yang memiliki fungsi masing-masing:
Bit   7
6
5
4
3
2
1
0
RXCIE
TXCIE
UDRIE
RXEN
TXEN
UCSZ2
RXB8
TXB8
R/W
R/W
R/W
R/W
R/W
R/W
R
0X00
R/W
0
0
0
0
0
0
0
0
*) Bit-7 / RXCIE      :(RX Complete Interrupt Enable), untuk mengaktifkan interupsi RX, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. 
*) Bit-6 / TXCIE      :(TX Complete Interrupt Enable), untuk mengaktifkan interupsi TX, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. 
*) Bit-5 / UDRIE     :(USART Data Register Empty Interrupt Enable), digunakan untuk mengaktifkan interrupt UDR, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. 
*) Bit-4 / RXEN       :(Receiver Enable), digunakan untuk mengaktifkan receiver, jika bernilai 1 maka aktif dan jika bernilai 0 maka sebaliknya. 
*) Bit-3 / TXEN       :(Transmitter Enable), digunakan untuk mengaktifkan transmitter, jika bernilai 1 maka aktif dan jika bernilai 0 maka sebaliknya. 
UCSZ2
UCSZ1
UCSZ0
Ukuran Karakter
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
5 bit
6 bit
7 bit
8 bit
Reserved
Reserved
Reserved
9 bit
*) Bit-2 / UCSZ2     :(Character Size), digunakan bersamaan dengan UCSZ1 & UCSZ0, berfungsi untuk menentukan ukuran data dalam 1 frame. 
*) Bit-1 / RXB8       :(Receive Data 8 bit), bit ke-9 dari data yang diterima bila menggunakan 9 bit. 
*) Bit-0 / TXB8       :(Transmit Data 8 bit), bit ke-9 dari data yang dikirim bila menggunakan 9 bit. 








  • UCSRC (USART Control and Status Register C):
Mempunyai 8 bit yang memiliki fungsi masing-masing:
 Bit   7
6
5
4
3
2
1
0
 
 
URSEL
UMSEL
UPM1
UPM0
USBS
UCSZ1
UCSZ0
UCPOL
 
 
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0X86
R/W
 
 
1
0
0
0
0
1
1
0
 
*) Bit-7 / URSEL     :(USART Register Select) untuk memilih register yang digunakan yaitu register UCSRC atau UBRRH karena kedua register ini menempati lokasi register i/o yang sama. Jika bernilai 1 maka UCSRC yang dipilih dan jika bernilai 0 maka UBRRH yang dipilih.
*) Bit-6 / UMSEL    :(USART Mode Select) digunakan untuk menentukan mode komunikasi, jika bernilai 1 maka synchronous mode yang dipilih dan jika bernilai 0 maka ansynchronous yang dipilih.
*) UPM 1 dan 0       :
Bit 5 & Bit 4
UPM1
UPM0
Parity
0
0
1
1
0
1
0
1
Tidak Aktif
Tidak Digunakan
Genap
Ganjil
(USART Parity Mode) untuk mengatur parity  dengan setting:
*) Bit-3 / USBS       :(USART Stop Bit Select) untuk menentukan jumlah stop bit dalam setiap frame. Jika bernilai 0 maka panjang stop bit adalah 1 bit, jika bernilai 1 maka panjang stop bit adalah 2 bit.
*) UCSZ1 & UCSZ0 :
Bit 2 & Bit 1
(USART Character Size) sama seperti pengertian sebelumnya.
*) Bit-0 / UCPOL     :(USART Clock Parity) untuk mengatur mode transisi clock, berlaku hanya pada synchronous saja.











UCPOL
Pin TxD
Pin RxD
0
Transisi Naik
XCK
Transisi Turun
XCK
1
Transisi Turun
XCK
Transisi Naik
XCK