AT89: Sistem Control dan Sensor Menggunakan uC – USB

Kebutuhan-kebutuhan…

Perangkat keras

* AT89C51 atau AT89S51, sebagai mikrokontroler-nya;
* LM35, sebagai sensor suhu-nya;
* ADC0808, sebagai ADC-nya, dan
* MAX232, sebagai konverter RS232-TTL

Perangkat Lunak

* C-Compiler, program mikrokontroler ditulis dalam bahasa C;
* Visual Basic 6.0, antarmuka komputer menggunakan Visual Basic 6.0

Gambar Rangkaian

Gambar Antatmuka Komputer

* Semua bisa diunduh disini (termasuk program komputer, gbr rangkaian dan lain-lain).
* Piranti ini merupakan sistem pemantauan dan pengendalian suhu (melalui ON/OFF pemanas).
* Pada rangkaian mikrokontroler telah dihubungkan 4 dari maksimum 8 (atau bahkan lebih dengan modifikasi program) sensor suhu. Nilai-nilai dari semua sensor tersebut dikirim ke komputer melalui port serial (informasi mengenai aplikasi port serial bisa dibaca disini). Ini adalah tugas utama dari mikrokontroler AT89, dimana programnya ditulis dalam Bahasa C untuk mikrokontroler seri 51.
* Program komputer, yang ditulis dalam Visual Basic 6.0, digunakan untuk menerima nilai suhu tersebut dan menampilkannya melalui komputer, sekaligus dapat menyimpan data-data tersebut ke basis data “daq.mdb” (format Microsoft Access). Kita bisa mengatur parameter-parameter misalnya set point, low limit dan high limit. Saat suhu yang terdeteksi pada suatu sensor naik di atas set point, maka pemanas yang terhubungkan (berkaitan dengan sensor yang bersangkutan) akan dimatikan (OFF), ON jika kondisi sebaliknya. High limit dan Low Limit digunakan untuk alarm, jika suhu diatas High Limit atau suhu dibawah Low Limit, maka alarm akan ON.
* Intinya:
o Mikrokontroler hanya mengirim data-data suhu saat diminta dan melakukan ON/OFF heater sesuai perintah dari komputer.
o Komputer menerima data, kemudian melakukan interpretasi data (berkaitan dengan set point, low limit dan high limit) dan memberikan perintah ON/OFF pemanas ke mikrokontroler sesuai dengan interpretasi yang dihasilkan.

USB TO SERIAL CONVERTER

Padabagian 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/
3. http://www.cesko.host.sk/

~ oleh dourangga pada 02/27/2011.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: