Komunikasi Serial Asynchronous (UART)
Komunikasi serial asynchronous merupakan salah satu metode komunikasi data yang ditransmisikan tidak secara terus menerus namun intermitent. Komunikasi asynchronous tidak menyertakan external clock namun interprestasi data dimulai pada saat start bit terdeteksi dan diakhiri oleh stop bit pada jumlah bit dan kisaran waktu tertentu.

Parameter umum komunikasi asynchronous adalah kecepatan bit yang dikenal dengan baudrate. Satuan dasar dari baudrate adalah bit per second (bps). Baudrate 9600 berarti dalam waktu satu detik ada 9600 bit data yang ditransmisikan dari sebuah transmitter ke receiver. Contoh sederhana dari komunikasi asynchronous adalah komunikasi RS232 pada PC.
Komunikasi RS485
Komunikasi RS485 terbagi menjadi half duplex dan full duplex. Pada komunikasi full duplex komunikasi dapat terjadi bersamaan dalam dua arah. Yang perlu dihindari adalah pada saat pengiriman data tidak boleh ada output yang low impedance lebih dari pada satu. Untuk mempermudah troubleshooting konfigurasi RS485 full duplex dibuat seperti gambar berikut

Lab 3.1 Komunikasi Data Asynchronous
- Persiapkan perangkat untuk komunikasi serial termasuk USB to Serial Converter.
- Hubungkan USB to Serial Converter ke PC, lihat COM yang aktif pada device manager.
- Jalankan program Hercules.exe (dapat di-download di : http://www.hw-group.com/products/hercules/index_en.html)

- Pilih tab serial sesuaikan parameter-parameternya sebagai berikut :
Name :
Baud : 9600
Data size : 8
Parity : none
Handshake : OFF
Tekan tombol “Open”
- Ketikan listing program berikut ini pada editor window :
/***************************************************** latih2.c www.teknikpersinyalan.com Basic Tutorial Rabbit Microprocessor ******************************************************/ #define DS1 0 #define BINBUFSIZE 63 #define BOUTBUFSIZE 63 // Ubah baudrate di sini....! #ifndef _232BAUD #define _232BAUD 9600L #endif void manual_delay() { unsigned long i; for (i=0; i<=1000000; i++) { #asm nop #endasm } } main() { unsigned char bacaser; WrPortI(PDDDR,&PDDDRShadow,0xFF); //Inisialisasi seluruh port D sebagai output serBopen(_232BAUD); //Membuka port serial B bacaser = "\0"; //Null char BitWrPortI(PDDR,&PDDRShadow,1,DS1); manual_delay(); //Warming up delay serBputc("\0"); while(1) //superloop { bacaser = serBgetc(); if (bacaser=='1') { BitWrPortI(PDDR,&PDDRShadow,0,DS1); serBputs("\nLED DS1 menyala ! \n\r"); } else if (bacaser=='0') { BitWrPortI(PDDR,&PDDRShadow,1,DS1); serBputs("\nLED DS1 mati ! \n\r"); } bacaser="\0"; } serBclose(); }
- Save pekerjaan anda pada folder <disk> :\RabbitTraining\ dengan nama file: latih2.c.
- Pasang jumper SMODE pada konektor JP1.
- Compile program tersebut di flash.
- Buka jumper SMODE pada konektor JP1. Abaikan error message pada Dynamic C.
- Tekan tombol reset.
- Kirim karakter ‘1’ dari Hercules, perhatikan yang terjadi pada Interface Board dan window Hercules.
- Kirim karakter ‘0’ dari Hercules, perhatikan yang terjadi pada Interface Board dan window Hercules.
- Ulang-ulang pengiriman data tersebut, perhatikan apa yang terjadi.