Skip to content
Site Tools
Narrow screen resolution Wide screen resolution Auto adjust screen size Increase font size Decrease font size Default font size default color blue color green color
You are here: Home arrow AVR Microcontroller arrow Membuat Sendiri “USB TO SERIAL CONVERTER” Dengan Microcontroller AVR ATMEL ATmega8

Membuat Sendiri “USB TO SERIAL CONVERTER” Dengan Microcontroller AVR ATMEL ATmega8

(All information on this article is without warranty, please all refer to datasheet)

Pada artikel berikut akan dibahas bagaimana caranya mengimplementasikan dan membuat Converter USB to Serial sendiri dengan microcontroller ATmega8. Pada ATmega8 ini nanti akan diberikan source code firmwarenya Free dan bisa di download di bagian bawah.

Karena pada ATmega8 tidak tersedia fasilitas untuk komunikasi dengan USB, maka mau tidak mau protokol komunikasi data dengan USB harus dibuat sendiri pada firmware tersebut. Untuk panduan belajar protokol USB bisa dilihat di bagian lain di Website ini atau klik link berikut untuk melihatnya. Pada firmware yang bisa didownload sudah ada code untuk menghandle protokol usb, sehingga bisa langsung digunakan, tetapi jika anda ingin menambahkan fasilitas lain, anda bisa meng-edit firmware tersebut. Firmware yang disediakan ditulis dalam bahasa assembler yang bisa di kerjakan dan di compile dengan AVR Studio 4. Selain code Assemblernya disertakan juga code Hexa-nya hasil kompilasi dari AVR Studio 4 yang bisa langsung di masukkan di IC-nya.

Berikut ini adalah gambar schematic rangkaian USB to Serial converter dengan ATmega8.


Line data USB yaitu D+ dan D- dihubungkan dengan PB0 dan PB1 pada ATmega8, koneksi ini tidak boleh dirubah karena pada pin ini bisa dilakukan transfer data dengan kecepatan tinggi. Agar terjadi suatu koneksi dan pen-signal-an yang bagus antara USB dan devais ini, maka ATmega8 akan diperkerjakan pada kecepatan data Low Speed yaitu dengan cara mem-pull-up resistor 1k5 Ohm pada line data D-. Untuk komponen yang lain hanya digunakan sebagai pelengkap agar system dapat beropersai dengan bagus, misalnya Xtall digunakan sebagai clock dan capacitor digunakan sebagai filter power supply.

Jika pada rangkaian ini anda menginginkan USB to RS-232 converter maka anda perlu menambahkan IC MAX 232 sebagai converter dari Level TTL ke level RS232. Jika hanya ingin digunakan untuk mengontrol LED anda bisa langsung hubungkan ke PIN I/O langsung yang di seri dengan resistor sebelumnya.

Untuk implementasi firmwarenya sebagai penerima dan coding dari USB protocolnya, akan menerima semua paket data dari USB dan kemudian disimpan di dalam internal buffer. Dimulai dari penerimaan pertama yang diperoleh dari external interrupt (INT0) adalah data untuk “sync pattern”, selama proses penerimaan hanya paket yang terakhir yang di check yaitu signal EOP (End of Packet). Setelah proses penerimaan berhasil, berikutnya firmware akan mong-coding sejumlah paket data yang diterimanya dan kemudian menganalisanya. Sekali lagi karena protocol USB ini sangat sulit anda bisa baca lagi protocol USB pada Link berikut.  Proses penerimaan data pada USB secara umum bisa dilihat pada alur flowchart berikut.

 

 

Firmware secara umum dibagi menjadi beberapa bagian blok utama, yaitu :

  • Interrupt Routine
  • Decoding Routine (Termasuk NRZI Encoding, BitStuffing Removal/Addition).
  • USB Reception
  • USB Transmission
  • Requested Action Decoding
  • Performing Requested Custom Actions

User dapat menambah function function tertentu kedalam firmware, seperti function untuk membuat “Customer-Specific”, function untuk “Direct Pin Control” dan lain sebagainya. Untuk firmware lengkapnya bisa anda download di bagian bawah. 

Untuk ATmega8 yang akan dipakai berikut support untuk 800 byte FIFO buffer, dengan baudrate 300 sampai 115200 baudrate, databit (5,6,7,8), stopbit (1,2), dan parity-nya (none, odd, even,  mark, space). 

Dengan menggunakan ATmega8 ini ada beberapa kemungkinan fitur yang bisa ditambahkan misalnya :

  • USB read/write ke dalam internal memori EEPROM yang berukuran 512 byte untuk menyimpan data misalnya data kalibrasi atau data kode produk.
  • Kemungkinan untuk memanfaatkan PWM dan ADC (Analog to Digital Converter) yang ada pada ATmega8.
  • Dengan space memori program yang masih besar, user bisa menambahkan fasilitas lain misalnya untuk USB to I2C converter atau USB to Serial PS2 dan converter – converter yang lain.
  • User bisa membuat / menambahkan semacam bootloader kedalam ATmega8, sehingga apabila ingin dilakukan Upgrade Firmware cukup dilakukannya lewat USB.

Pada contoh artikel dibawah ini digunakan Delphi sebagai program antarmuka di komputernya. Untuk source code dan executable Delphi ini bisa di download dibagian bawah. Bentuk program delphi executablenya seperti pada gambar dibawah 

 Download Section :

  1. Program antarmuka dengan Delphi
  2. DLL dan Driver
  3. Source Code Firmware ATmega8 dan file hasil kompilasinya

Resource :

  1. http://www.usb.org
  2. http://www.atmel.com

 

 
< Prev   Next >

Voucher Elektric Termurah

SPONSOR

  

  

Polling

What do you like? ( Mana yang anda suka? )
 

Free Resource For Embedded Holic

A T T E N T I O N

Anda Di HALAL-KAN MENGCOPY-PASTE isi dari BLOG ini.

Bagi pengunjung yang suka dan nyaman dengan isi Blog ini silahkan di nikmati dan dikunjungi lagi lain waktu, Bagi yang tidak suka Jangan pernah lagi mengunjungi Blog ini.

Kami lebih suka menerima saran dan kritikan dari anda dengan mencantumkan data sesuai identitas resmi anda.

Who's Online

We have 14 guests online

Visitor Counter

Today192
Yesterday200
All151667

(C) Fliesenstadt


 

DISCLAIMER :

MATERIAL PUBLISHED ON THIS BLOG IS SUBMITTED BY OWNER. MOST OF THE MATERIAL ON THIS BLOG IS NOT MADE BY ME. I ONLY COLLECT THEM AND PUT THEM IN MY GALLERIES. ALL NEWS HAVE BEEN GATHERED FROM THE INTERNET, FROM FREE SITE, FORUM, FRIENDS, USERS ETC. AND ARE BELIEVED TO BE IN THE "PUBLIC DOMAIN". IF YOU ARE THE RIGHTFULL OWNER OF ANY MATERIAL AND WANT IT REMOVED PLEASE CONTACT ME AND I WILL REMOVE IT IMMEDIATELY ON DEMAND