Archive for September, 2012

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