Senin, 05 Juli 2010

Tips membuat sendiri "Downloader USB".

.
Sudah banyak modul / dongle untuk memprogram Mikrokontroller AVR.
Menggunakan port serial, parallel, dan USB, yang termurah dan termudah adalah menggunakan port parallel selain itu port parallel memliliki kecepatan program yang tinggi dibanding dengan port serial maupun USB. Oleh sebab itu untuk memprogram banyak chip mikrokontroller dengan kecepatan tinggi sebaiknya menggunakan port parallel karena menggunakan port USB atau port serial akan memakan waktu lama. Akan tetapi laptop sekarang sudah tidak mendukung dan menyediakan port parallel hanya tersedia pada PC, oleh sebab itu dibutuhkan dongle USB yaitu programmer yang memprogram mikrokontroller menggunakan port USB.

Judul post Tips membuat sendiri "Downloader USB" di beri tanda petik karena dongle ini tidak benar-benar di buat sendiri, melainkan mencontoh dan meniru dongle USB yang dibuat orang lain.
Akan tetapi mengubah string atau nama pembuat yang akan tampil di Device Manager sehingga tampak seperti buatan sendiri.

Membuat Hardware

Berikut informasi singkat membuat hardwarenya.
Sumber link-linknya :
www.fischl.de/usbasp
www.scienceprog.com
www.fun4diy.com
www.ulrichradig.de

Ingat yang tidak disarankan pada rangkaian ini adalah menggunakan Power Supply dari port USB untuk memberikan tegangan ke rangkaian mikrokontrollernya karena bisa merusak port USB tersebut.
Rangkaian skematiknya :





"Dongle USB-ku"

Setelah membuat hardwarenya atau membeli USB ISP untuk memprogram AVR, pasang di port USB dan instal drivernya kamudian cek di device manager maka akan muncul nama pembuat Dongle USB tersebut, seperti Kli*** Ro***, K-1**, dll bahkan driver USB-RS232 Converter seperti PL2*** serial port COM juga bisa di ubah data stringnya.

Tips ini intinya adalah bagaimana mengubah string tersebut menjadi nama yang anda inginkan seperti : USB buatanku, Dongle USBku, Downloader USB AVR Usahaku, dll.
Caranya pada link berikut ;

www.payztronics-store.com/forum/Dongle USB

Semoga manfaat ;)

Jumat, 02 Juli 2010

Konversi Angka ASCII menjadi nilai

.
Interface dengan komputer menjadi hal yang wajib untuk aplikasi berbasis mikrokontroller, tetapi komunikasi yang terjadi khususnya data ASCII harus diolah terlebih dahulu. Pengolahan ASCII angka (string angka) penting jika data tersebut akan dikalkulasi pada proses perhitungan / aritmatika di mikrokontroller agar hasil perhitungannya tidak salah.
Oleh sebab itu dibutuhkan suatu fungsi mengubah data string (angka ASCII) menjadi nilai bertipe integer, float, atau char pada mikrokontroller.

Menerima Data ASCII
Sumber data ASCII yang datang ke mikrokontroller bisa dari berbagai macam seperti : Komputer, mikrokontroller lain, input keypad, perangkat wireless, dll, yang penting anda paham bahwa data yang dikomunikasikan adalah data ASCII. Oleh sebab itu sebaiknya anda memahami dan mengetahui apa itu data ASCII, jika tidak, akan susah untuk memahami selanjutnya. Searching di google atau di post-post sebelumnya.
Link tabel ASCII : ASCII

Pada kasus ini, data ASCII diterima dari komputer melalui port serial (COM) yaitu komunikasi secara serial asinkron (USART).
Baca link-link berikut : Tutorial komunikasi data.

Cara I : Buat Fungsi sendiri
Agar mudah saya menggunakan fungsi getchar() seperti pada coding berikut :









Misal data yang akan dikirim dari komputer adalah "12345" maka proses yang terjadi di MCU yaitu:
  1. Menunggu karakter dari komputer dengan fungsi getchar().
  2. Data diterima akan disimpan di variabel buf_rx[x] dengan nilai x yang bersesuaian.
  3. Data diterima adalah buf_rx[0]='1', buf_rx[1]='2', buf_rx[2]='3',buf _rx[3]='4', buf_rx[4]='5'.
  4. Ubah data ASCII angka menjadi nilai heksadesimal. ASCII '1' = 0x31 heks oleh sebab itu agar nilai heksadesimalnya menjadi 0x01, nilai tersebut harus dikurangi 0x30 sehingga '1'-0x30 = 0x01. Maka '1'-0x30=0x01, '2'-0x30=0x02, '3'-0x30=0x03, '4'-0x30=0x04, '5'-0x30=0x05.
  5. Gabungkan nilai tersebut sehingga di dapat nilai integer yang sebenarnya. Maka 1 x10000 + 2x1000 + 3x100 + 4x10 + 5 = 12345 (dua belas ribu tiga ratus empat puluh lima).
  6. Ambil data yang telah dikonversi lalu tampilkan data yang diterima di LCD (Optional).
  7. Selesai deh.
Cara II : Menggunakan Library stdlib.h
Fungsi strtoint ini memang terbatas yaitu komunikasi harus 5 buah data. Pada library CoViAVR telah ada fungsi atoi (Array to Integer) pada library stdlib.h. dan lebih sederhana tuh ^^.




Semoga manfaat ;)

Topik yang Populer