Komunikasi Serial

Pendahuluan

Keunggulan mikrokontroler antara lain sudah disediakannya port untuk komunikasi serial.  Dengan port ini, membuat mikrokontroler dapat berkomunikasi dengan mudah dengan devais lainnya.  Penguasaan pemrograman komunikasi serial mutlak disamping komunikasi Two wire interface (TWI), karena banyak aplikasi mikrokontroler yang terhubung ke PC melalui port serial.

Tujuan Praktikum

1.       Praktikan dapat menjelaskan cara kerja komunikasi serial pada mikrokontroler

2.       Praktikan dapat menjelaskan  fungsi pin TxD dan RxD pada mikrokontroler

3.       Praktikan dapat memprogram mikrokontroler AVR ATmega16 untuk komunikasi serial ke PC, serta menggunakan software visual untuk menampilkan data.

4.       Praktikan  mengusulkan suatu rancangan sistem minimum mikrokontroler untuk komunikasi data menggunakan port serial

 

Konsep Komunikasi serial

Komunikasi serial  merupakan hal yang penting dalam sistem embedded, karena dengan komunikasi serial  kita dapat dengan mudah menghubungkan mikrokontroler dengan devais lainnya. Port serial pada mikrokontrollr terdiri atas dua pin yaitu RXD dan TXD, RXD berfungsi untuk menerima data dari komputer/perangkat lainnya, TXD berfungsi untuk mengirim data ke komputer/perangkat lainnya, Standar komunikasi serial untuk komputer ialah RS-232, RS-232 mempunyai standar tegangan yang berbeda dengan serial port mikrokontroler, sehingga agar sesuai dengan RS-232 maka di butuhkan suatu rangkaian level converter, IC yang digunakan bermacam-macam, tetapi yang paling mudah dan sering digunakan ialah IC MAX232/HIN232. Pada mikrokontroler AVR ATmega 16, pin PD0 dan PD1 digunakan untuk komunikasi serial USART (Universal Synchronous and Asynchronous Serial Receiver and Transmitter) yang mendukung komunikasi full duplex  komunikasi 2 arah.

 

Gambar 3.1  Model pengkonversi level  serial

     Pinout for MAX-232 RS-232 Level ConverterTypical MAX-232 Circuit

                                     Gambar 3.2  Susunan kaki  dan rangkaian MAX 232

 

….

 

Konfigurasi yang umum untuk komunikai dengan baud rate 9600bps menggunakan kristal 4 MHz.  Untuk mengirimkan data, bias menggunakan fungsi putchar, puts atau menggunakan  I/O register UDR seperti contoh berikut:

unsigned char judul[]={"Praktikum AVR"};

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0X00;  // Baud rate 9600bps, pada  kristal 4 MHz

UBRRL=0X19;

puts(judul); //tampilkan pesan dan ganti baris

UDR=’O’;

 

Penerapan pada Program

Percobaan 1.  Mengirim data ke PC

Langkah-langkahnya:

1.       Siapkan Smart AVR ATmega 16 ver. 2.0, dan hubungkan  dengan kabel AVR ISP Programmer ke PC. Hubungkan kabel serial dari mikrokontroler ke port serial PC

2.       Buat program di bawah ini :

 

KirimSerial.c:

// Percobaan 3.1,  Percobaan kirim data serial ke PC

#include <mega16.h>

#include <stdio.h> 

#include <delay.h>

#include <string.h>

void main(void) {

unsigned char judul[]={"Praktikum AVR"};

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0X00;  // Baud rate 9600bps, pada  kristal 4 MHz

UBRRL=0X19;

puts(judul); //tampilkan pesan dan ganti baris

putchar('O');

delay_ms(100); //tunggu UDR siap

UDR='K';

}

 

3.       Kompilasi dan jalankan, buka hyperterminal , maka akan tampil pesan “Praktikum AVR”, ganti baris lalu karakter OK.

 

Percobaan 2.  Pengiriman Data ke Mikrokontroler

Langkah-langkahnya;

1.       Siapkan SmartAVR ATmega16 ver. 2.0, dan hubungkan  dengan kabel AVR ISP Programmer ke PC. Hubungkan juga kabel serial dari mikrokontroler ke Port serial PC

2.       Buat program di bawah ini :

 

TerimaSerial.c:

//Percobaan 3.2, Program terima data dari PC

#include <mega16.h>

#include <stdio.h> 

#include <delay.h>

#include <string.h>

void main(void) {    

unsigned char data;

DDRB=0XFF;

PORTB=0xFF;

UCSRA=0x00; //konfigurasi baud rate 9600bps

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0X00;

UBRRL=0X19;

while (1) {

while (UCSRA.7) //apakah ada data baru yang belum dibaca

{

data=UDR;

PORTB=data;  // data dikirim ke Port B

}

}

 }

3.        Jalankan program, tekan angka 0,1,2 dan seterusnya,   lihat data yang terkirim ke Port B dalam format ASCII( Misal angka 0 = 30H, angka 1=31H dst).

 

 

Percobaan 3.  Membuat Form Display VB .Net 2005

Langkah-langkahnya;

1.       Buka proyek baru di VB .Net 2005, desain form seperti gambar di bawah

 

….

 

2.       Masukkan kode dan jalankan program, jalankan juga mikrokontroler yang telah diisi program pengiriman data ke PC

3.       Klik button Koneksi, klik button reset pada mikrokontroler, maka akan tampil pesan di form tersebut.

 

 

 

Tugas  Pendahuluan

1.       Jelaskan cara kerja dari komunikasi serial pada mikrokontroler, serta gambarkan format  frame serial.

2.       Buat program C untuk mengirim data 14H ke PC, lalu dikirim balik ke mikrokontroler dan ditampilkan ke LED di Port B

 

Tugas Akhir Praktikum

1.       Buatlah  rancangan alat dan program yang mampu menampilkan data penekanan push button, dikirim melalui port serial PC  dan ditampilkan melalui form VB .Net.

 

 

Materi lebih lengkap bab ini, miliki buku ini

Panduan Praktikum Mikrokontroler ATmega16

Pesan ke Widodo@widodo.com atau  desy@elexmedia.co.id

Terbit Januari 2008