Gunakan MimeTex/LaTex untuk menulis simbol dan persamaan matematika.

Selamat datang, Pengunjung. Silahkan masuk atau mendaftar. Apakah anda lupa aktivasi email?

Juli 30, 2021, 06:19:35 AM

Masuk dengan nama pengguna, kata sandi dan lama sesi

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139657
  • Total Topik: 10399
  • Online Today: 86
  • Online Ever: 441
  • (Desember 18, 2011, 12:48:51 AM)
Pengguna Online
Users: 0
Guests: 56
Total: 56

Ikuti ForSa

ForSa on FB ForSa on Twitter

Penulis Topik: [ASK] Komunikasi Serial  (Dibaca 31315 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
[ASK] Komunikasi Serial
« pada: Agustus 03, 2009, 09:10:37 AM »
Ajarin komunikasi serial dari dasar donk..... bingung nih.

pertama dari USART. beda nya Async sama yg Sync apa ya???
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

Offline tAZZZ

  • Mahasiswa
  • **
  • Tulisan: 44
  • IQ: 7
Re: [ASK] Komunikasi Serial
« Jawab #1 pada: Agustus 04, 2009, 12:52:35 AM »
Asyncronous itu tuh brarti gak sinkron (kan ada A nya), klo yang syncronous artinya sinkro
Async === ga sinkron, brarti sumber clocknya beda (misal komunikasi PC ke mikrokon, PC punya clock sendiri dan mikrokontroller punya sumber clock sendiri
Syncron=== sinkron, brarti sumber clocknya satu, sumber clock itu dipake sama2 (oleh dua peripheral atau lebih)

mau tau lebiiih lengkap coba googling :) :), lagi banyak kerjaan

biasanya too payz langsung nyahut...:) mana nieh

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #2 pada: Agustus 04, 2009, 05:09:30 AM »
trus baud rate tuh apaan ya?? itu asal sama antara mikro - PC nya uda jalan, ato ada cara ngitungnya harus pake yg brp??

dah gt ada parameter nya, 8 Data 2 Stop No Par. artinya apa ya???

terakhir, RXB RXC RXD apaan ya?

Offline ksatriabajuhitam

  • Moderator
  • Profesor
  • *****
  • Tulisan: 791
  • IQ: 97
  • Gender: Pria
  • keep holding on
    • hsw weblog
Re: [ASK] Komunikasi Serial
« Jawab #3 pada: Agustus 05, 2009, 11:07:49 AM »
baud rate = laju pengiriman data, biasanya dinyatakan dalam bps (bit per second)
harus sama antara PC sama micro nya

2 stop --> pake 2 stop bit (stop bit --> sinyal logic 1)
no par --> no parity --> parity-nya ga di-chek
parity ada paritas genap (even parity) dan paritas ganjil (odd parity)
paritas genap --> jumlah bit 1 dalam 1 byte harus genap; parity buat ng-chek integrity data tiap byte

Rx biasanya diasosiakan dengan receiver pin


-----
mana too pay, biasanya smangat dia kalo ngejelasin :D
not all the problems could be solved by the sword, but sword holder take control of problems.
ForSa versi mobile: http://www.forumsains.com/forum?wap2

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #4 pada: Agustus 05, 2009, 01:18:47 PM »
tupai lagi sibuk mungkin hahhaha


jadi parity itu fungsi nya apa? klo d operasional nya, bedanya pake parity sama engga dmn? stop juga gmn?

thx ksatria.

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #5 pada: Agustus 06, 2009, 06:25:00 AM »
alow....

Offline ksatriabajuhitam

  • Moderator
  • Profesor
  • *****
  • Tulisan: 791
  • IQ: 97
  • Gender: Pria
  • keep holding on
    • hsw weblog
Re: [ASK] Komunikasi Serial
« Jawab #6 pada: Agustus 06, 2009, 11:35:15 AM »
...
jadi parity itu fungsi nya apa? klo d operasional nya, bedanya pake parity sama engga dmn?
...
...
parity buat ng-chek integrity data tiap byte
...
buat ng-check apakah byte nya corrupt apa engga
kebanyakan untuk aplikasi mikrokontroller (sejauh yg saya alami) biasanya di-disable (dianggap ga ada error)
tapi kalo udah ke level product yg mass production, biasanya diaktifkan
misal di SIM card handphone, parity di-check, kalo ketauan error (misal pake parity genap, tapi dalam 1 byte bit 1 nya ternyata ganjil), maka si SIM card harus ngirim byte lagi

...
 stop juga gmn?
...
tujuan stop bit itu pertama untuk mengembalikan kondisi sinyal ke idle state (biasanya 1), kedua untuk memberi kesempatan buat penerima untuk mengolah data
jadi kalo cuma dikasih 1 stop bit, maka kemungkinan terburuk bagi penerima ialah harus siap menerima data selanjutnya dalam selang waktu 1 bit itu,
kalo 2 bit ya berarti penerima agak leluasa
p.s.: SIM card memakai 2 stop bit

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #7 pada: Agustus 06, 2009, 12:56:13 PM »
jadi klo stop bit tuh d sesusaikan sama fungsi & program uC nya ya.
trus klo clock uC ada pengaruh sama baud rate ga?


oya bole minta conto source buat 8535 ga buat ngirim data dari PC k mikro.
simple aja, misal teken spasi trus LED d port C nyala misalnya. klo bisa pake C (CV AVR dsb)

yg harus d inisiasi apa aja?
thx b4.

Offline micro

  • Mahasiswa
  • **
  • Tulisan: 10
  • IQ: 5
Re: [ASK] Komunikasi Serial
« Jawab #8 pada: Agustus 06, 2009, 09:50:14 PM »
saya coba buat tp blm di coba buat silahkan dicoba...
bagian if nya di isi kenginan.,misal jika huruf a di tekan maka led pada PORTC berubah., ;D

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

// Declare your global variables here
//unsigned char datax[8],i;
unsigned char datarx;

void kirim_serial(unsigned char datatx)
{
//UART data register empty, Until UDRE = 1
UDR=datatx;             //Serial buffer content
while(!UCSRA.6);        //Until TXC = 1
UCSRA.6 = 1;            //Reset TXC with 1
}

void terima_serial()
{
//while(!UCSRA.5);   //UART data register empty, Until UDRE = 1
while(!UCSRA.7);        //Until RXC = 1
datarx=UDR;
//datax = datarx;         //Serial buffer content
delay_ms(2);
UCSRA.7 = 1;            //Reset RXC with 1
}

void main(void)
{
PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;

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

ACSR=0x80;
SFIOR=0x00;

while (1)
      {
      // Place your code here
       terima_serial();
       if (datarx=di isi dengan yang diinginkan)
       {PORTC=di isi dengan keinginan}
       else
       {PORTC=di isi dengan keinginan}
      kirim_serial(datarx);
      //kirim_serial(datax);
     
      };
}

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #9 pada: Agustus 06, 2009, 11:16:38 PM »
kirim_serial(datarx);

gunanya apa ya??

Offline Too Payz

  • Dosen
  • ****
  • Tulisan: 260
  • IQ: 7
Re: [ASK] Komunikasi Serial
« Jawab #10 pada: Agustus 07, 2009, 09:17:03 AM »
Wew... saya d kata"in....  :D
Mo liat dulu comment-comment yang lain baru nyahut...  ;)
Lagian emang sibuk nih, alat udah jadi 2 n tinggal satu nih yang sulit, lama n mahal

Waah kalo mo pelajari komunikasi serial g bakal cukup nih tempat.
Baca aj Link ini :
http://en.wikipedia.org/wiki/Serial_communication
http://www.taltech.com/TALtech_web/resources/intro-sc.html#bidir
Kutip
Async === ga sinkron, brarti sumber clocknya beda (misal komunikasi PC ke mikrokon, PC punya clock sendiri dan mikrokontroller punya sumber clock sendiri
Syncron=== sinkron, brarti sumber clocknya satu, sumber clock itu dipake sama2 (oleh dua peripheral atau lebih)
Pada Asinkron (tidak sinkron) antar perangkat yang berkomunikasi punya clock sendiri-sendiri tetapi clocknya harus sama (satuannya kbps) agar komunikasi tidak error.
contoh : serial RS232, RS423, RS485, USB port, mikro-mikro, dll.
Jika mikro komunikasi dgn perangkat lain maka harus mengikuti standard kecepatan (kbps) perangkat tersebut, misalnya komputer memiliki baudrate standar ......,1200,2400,4800,9600,19200,38400,....
Tetapi jika komunikasi USART antar mikro, anda bisa membuat kbps dengan nilai terserah anda, asal kbps kedua mikro sama, misal .....,1250,2500,4555,....

Pada sinkron clock-nya hanya satu dan digunakan bersamaan, biasanya dengan sistem master slave dan umumnya pembangkit clock-nya ditentukan oleh master-nya. Konfigurasi koneksi juga umumnya SDA (serial data) atau SDI+SDO (serial data input + serial data output) dan SCK(serial clock).
contoh : SPI, TWI, I2C, PS2 (keyboard), dll.
Hal yang perlu diketahui pada serial sinkron adalah perangkat dengan clock (frekuensi) tinggi harus mengikuti clock perangkat yang lebih kecil, karena jika tidak maka komunikasi tidak terjadi.
Misal : komunikasi dengan antar mikro secara TWI, mikro master Xtal-nya 12 MHz sedangkan mikro slave 4 MHz maka clock pada SCK Master harus lebih lambat minimal 3x agar Slave bisa mengikuti komunikasi datanya.

Kutip
jadi parity itu fungsi nya apa? klo d operasional nya, bedanya pake parity sama engga dmn? stop juga gmn?
Parity berfungsi untuk mengecek "banyaknya logika 1" sebagai pengecekan error data, apakah berjumlah ganjil atau genap dan parity berfungsi menggenapkan (even) atau mengganjilkan (odd), tergantung pilihannya antar lain : even parity, odd parity, mark parity, space parity dan no parity. (yg mark n space tidak pernah dipakai).
Misal :
Even parity dan data 01010101 => logika 1-nya ada 4 maka parity = 0
Even parity dan data 01010111 => logika 1-nya ada 5 maka parity = 1
Odd parity kebalikannya..

Kalau terdeteksi error gimana ?? nah itu dia masalahnya tergantung metode anda dan umumnya yaitu dengan mengirimkan data yang "tadi".
Kalau tidak ada metode pengecekan error maka tidak menggunakan parity tidak masalah, malah bisa lebih menghemat bandwidth.

Dah.. nyahut neh... gmana ?   ;D   ;D

Offline Too Payz

  • Dosen
  • ****
  • Tulisan: 260
  • IQ: 7
Re: [ASK] Komunikasi Serial
« Jawab #11 pada: Agustus 07, 2009, 09:31:19 AM »
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>

// Declare your global variables here
//unsigned char datax[8],i;
unsigned char datarx;

void kirim_serial(unsigned char datatx)
{
//UART data register empty, Until UDRE = 1
UDR=datatx;             //Serial buffer content
while(!UCSRA.6);        //Until TXC = 1
UCSRA.6 = 1;            //Reset TXC with 1
}

void terima_serial()
{
//while(!UCSRA.5);   //UART data register empty, Until UDRE = 1
while(!UCSRA.7);        //Until RXC = 1
datarx=UDR;
//datax = datarx;         //Serial buffer content
delay_ms(2);
UCSRA.7 = 1;            //Reset RXC with 1
}
Saya binggun nih  ???   ???
kan sudah menggunakan library stdio.h trus kok masih membuat fungsi kirim_serial dan terima_serial,,.. ??
Saran saya untuk CoViAVR aktifkan USART dgn CodeWizzardAVR.

fungsi mengirim karakter dengan misal : putchar('T');
fungsi mengirim kata / kalimat dengan misal : putsf("Too PayZ"); atau printf("Ganteng");
fungsi menerima karakter dengan misal : datarx = getchar();

nah kalo di main programnya jadinya :

#include <delay.h>   //tambahkan fungsi delay

void main(void)
{
...........
DDRC = 0xff;   //PORTC jadi output
PORTC = 0x00;   //led nyala saat diberi logika 1.
while(1)
{
   datarx = getchar();
         if (datarx=='A')   { PORTC.0=1;   delay_ms(1000);}   // led PORTC.0 nyala 1 detik
   else if (datarx=='B')   { PORTC.1=1;   delay_ms(1000);}   // led PORTC.1 nyala 1 detik
   else if (datarx=='C')   { PORTC.2=1;   delay_ms(1000);}   // led PORTC.2 nyala 1 detik
   PORTC=0x00;
}
}

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #12 pada: Agustus 07, 2009, 12:53:02 PM »
until UDRE gunanya apa ya?? btw UDRE tuh register buat apaan ya??

Offline frans3q

  • Dosen
  • ****
  • Tulisan: 153
  • IQ: 22
Re: [ASK] Komunikasi Serial
« Jawab #13 pada: Agustus 08, 2009, 05:13:34 AM »
oya, klo program buat UART TTL ma UART RS232 sama ga sih? inisiasi nya gmn?

Offline Too Payz

  • Dosen
  • ****
  • Tulisan: 260
  • IQ: 7
Re: [ASK] Komunikasi Serial
« Jawab #14 pada: Agustus 08, 2009, 03:28:22 PM »
USART TTL, RS232, dan RS485, sama yg berbeda level tegangannya dan konfigurasi kabel.

 

Related Topics

  Subyek / Dimulai oleh Jawaban Tulisan terakhir
2 Jawaban
6947 Dilihat
Tulisan terakhir Juli 29, 2009, 10:03:37 AM
oleh Too Payz
3 Jawaban
4958 Dilihat
Tulisan terakhir April 23, 2010, 05:18:45 AM
oleh kuin
6 Jawaban
4837 Dilihat
Tulisan terakhir Juli 03, 2010, 10:27:28 PM
oleh 0y1k
2 Jawaban
6857 Dilihat
Tulisan terakhir Juni 30, 2010, 02:30:48 AM
oleh cahcyber
1 Jawaban
2755 Dilihat
Tulisan terakhir November 20, 2010, 02:45:30 PM
oleh Tom Kru