Rabu, 23 Mei 2018

LAPORAN
PRAKTIK MIKROKONTROLLER
DOSEN PENGAMPU MUSLIKHIN, M.Pd.




KOMUNIKASI SERIAL (UART)

Disusun oleh:
Istiqomah        16507134035  Angkatan 2016



TEKNIK ELEKTRONIKA-D3
PENDIDIKAN TEKNIK ELEKTRONIKA DAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2018






A.    TUJUAN
Setelah melakukan praktik mahasiswa diharapkan dapat:
1.      Memahami prinsip kerja komunikasi UART
2.      Mampu mengirim data menggunakan UART USB termonitor di hyperterminal

B.     TEORI DASAR
UART merupakan sebuah subsistem hardware yang memungkinkan untuk melakukan transmit dan receipt data secara serial. Fitur ini biasnya telah terinclude dalam sebuah mikrokontroller. Berbeda dari metode komunikasi lain, komunikasi secara serial mengandalkan clock pada sisi transmit dan receive dimana kedua sisi clock ini harus sama. Sehingga pada komunikasi ini hanya dibutuhkan tiga pin, yakni Tx (Transmit), Rx (Receive), dan GND. Pada PC level tegangan RS232 antara +3 hingga +25 volt untuk data 0, dan -3 hingga -25 untuk logika 1. Perlu diketahui, bahwa pada Atmega16 terdapat pin Txd dan Rxd yang bekerja pada level UART. Sementara untuk strandar RS232, kita memerlukan sebuah IC converter untuk menyesuaikan dengan tegangan RS232. Karena level logika pada AVR hanya sekitar 3 – 5 volt.
Ciri khas dari komunikasi UART adalah sebagai berikut: 1) Pada transmisi asinkron, mengirimkan 1 stop bit (1) di awal dan 1 atau lebih start bit (0) di akhir setiap byte. 2) Data ditransmisikan per karakter dalam satu saat (5 sampai 8 bit). 3) Asinkron berarti “asinkron pada level byte”, tetapi bit-bit tetap disinkronkan; durasinya sama. Teknik paritas memerlukan tambahan satu bit (bit paritas) pada data word. Bit paritas dapat bernilai 1 atau 0 tergantung pada:
a.       Jumlah angka 1 di dalam data word
b.      Pola paritas yang digunakan
c.       Bit Paritas digabungkan pada byte data, sehingga menjadi 9 bit
Pola paritas genap (even parity) memerlukan total jumlah angka 1 (termasuk bit paritas sendiri) genap. Pola paritas ganjil (odd parity) memerlukan total jumlah angka 1 ganjil.


C.    ALAT DAN BAHAN
1.    Modul AVR Atmega8535/8/16/32
2.    PC (Personal computer)/laptop
3.    Jumper
4.    Power supply 5-12V
5.    CRO

D.    SKEMA RANGKAIAN


E.     LANGKAH KERJA DAN PENGAMATAN
1.      Membuat alat dan bahan seperti rangkaian di atas;
2.      Sebelum menulis program hendaknya mengatur seperti gambar berikut;

3.      Membuat list program
4. Setelah dicompile, mensimulasikan di Proteus lalu coba pada hardware nyata; 
5. Merakit modul/hardware mikrokontroller dengan menghubungkan kabel USB ke dalam UBS PC/laptop. 
6. Mengecek USB driver prolific, jika anda menggunakan win7, win8, maupun xp silahkan gunakan prolific 3.2.00 yang tersedia di besmart.uny.ac.id (elearning).
7.Melihat hasilnya pada device manager, jika teristal sempurna akan tampak seperti berikut; 



            8. Selanjutnya, settinglah parameter komunikasi seperti langkah 2, atau seperti contoh berikut; 

9. Mengatur AVR (pada simulasi Proteus) dan hasilnya seperti berikut;
           10. Pada hardware, hubungkan pin PD0 dan PD1 ke CRO, tekanlah tombol PB4 dan PB0,                    mengamati apa yang terjadi pada hyperteminal PC/laptop Anda.
     11. Tugas, buatlah program UART, apabila PB0 ditekan akan mengirim (tx) data “kirim”, dan apabila PB4 ditekan akan menerima data “diterima”. 
    12. Tuliskan hasil praktikum anda sesuai format dan simpulkan hasilnya. 
F.     HASIL DAN ANALISIS

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 15/03/2018
Author  : tyery08
Company : embeeminded.blogspot.com
Comments:


Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 11,052000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>
#include <stdio.h>
#include <delay.h>

unsigned char m, n;
// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
      {
           if(PINB.4==0)
{n=n+1;
if (n==1)
{
putsf("Kalau tidak belajar mirko sekarang, kapan lagi?\r");
delay_ms(200);
{n=0;}
}
} if(PINB.0==0)
{m=m+1;
if (m==1)
{
putsf("Kalau bukan kelas B, siapa lagi?\r");
delay_ms(200);
}
{m=0;}
{n=0;}
}
}
}
Pada Atmega16, pengaturan mode synchronous dan asynchronous sama. Perbedaannya terletak pada sumber clock. Jika pada mode asynchronous masing-masing peripheral memiliki sumber clock sendiri, maka pada mode synchronous hanya terdapat satu sumber clock yang digunakan secara bersamaan. Dengan demikian, secara hardware untuk mode asynchronous hanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk mode synchronous harus 3 pin yaitu TXD, RXD dan XCK. Pada transimi sinkron (USART) pengirim akan mengirimkan clock / timing signal sehingga device penerima tahu kapan membaca bit data berikutnya. Transmisi asinkron (UART) mengijinkan pengirim tidak memberikan clock sinyal pada penerima, sebagai gantinya untuk memulai transmisi pengirim mengirimkan start bit pada tiap byte data yang dikirimkan dan diakhiri dengan stop bit.

G.    KESIMPULAN
Berdasarkan hasil praktikum yang telah dilakukan dan teori yang ada maka dapat disimpulkan bahwa :
1.    UART atau Universal Asynchronous Receiver Transmitter merupakan protokol komunikasi yang umum berfungsi dalam pengiriman data serial antara device satu dengan yang lainnya. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.
2.    USART merupakan komunikasi yang memiliki fleksibilitas tinggi, dimana dapat melakukan transfer data antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART.
3.    Terdapat perbedaan antara UART dan USART diantaranya USART memungkinkan transmisi data baik secara synchronous maupun asynchronous, sehingga dengan memiliki USART pasti kompatibel dengan UART.
H.    REFERENSI



Tidak ada komentar:

Posting Komentar