FemtoOS – Sistem Operasi untuk Mikrokontroler Atmel AVR

26 Desember, 2012

090843-51

Pada kesempatan kali ini saya akan membahas mengenai salah satu sistem operasi yg dapat digunakan untuk mikrokontroler avr atmel.
Pembahasan ini adalah lanjutan dari pembahasan sebelumnya tentang sistem operasi pada mikrokontroler : atmelmikrokontroler.wordpress.com/2010/06/27/menggunakan-sistem-operasi-di-mikrokontroler/
Femto OS merupakan sistem operasi yg sangat efisien, penggunaan program memory nya sebuah aplikasi kecil dapat dibentuk dengan menggunakan hanya 300 byte saja.
Untuk mendownload source codenya melalui FemtoOS 9.22, sedangkan untuk tutorialnya dapat dilihat di website resmi FemtoOS femtoos.org.
Untuk melakukan compilasinya menggunakan winavr, langkah – langkahnya adalah sebagai berikut (under Windows) :
1. Download source code femtoOS dari link FemtoOS 9.22.
2. Extract source code tersebut ke salah satu direktori.
3. Generate avr studio project dengan menjalankan script dari command prompt dari direktori FemtoOS_0.922 : Install_Scripts\Install_avrstudio_workspace.bat.
4. Install compiler winavr, download winavr dari : WinAVR.
5. Install AVR studio AVRStudio 4.18.

6. Buka salah satu project dalam directory FemtoOS_0.922\IDE\studioprojects\

7. Lakukan build, maka akan tergenerate file .hex

File .hex tersebut dapat dituliskan ke mikrokontroler, untuk mengubah setting seperti jenis mikrokontroler dapat di atur
di confic_applicatiin.h

Untuk detil setting dapat dilihat di femtoOS website : FemtoOS.


WINAVR AVR-GCC Compiler

28 Agustus, 2010

Setelah mencoba beberapa jenis compiler, akhirnya saya menjatuhkan pilihan saya kepada WINAVR AVR-GCC Compiler, compiler ini saya anggap merupakan compiler C terbaik yang pernah saya pakai.

AVR-GCC adalah compiler yang berjalan di atas linux OS, akan tetapi WINAVR dapat berjalan di atas windows.

WINAVR dapat di download di :

http://sourceforge.net/projects/winavr/files/

Setelah menginstal winavr di pc kita, selanjutnya kita harus menginstall avrstudio sebagai editor atau programmer pada chip kita.

avrstudio dapat di download di :

AVRstudio

Untuk contoh source code nya dapat di download di:

Source Code

Dalam source code tersebut sudah di sediakan fungsi untuk menerima command dari serial port dengan baudrate 19200, pada mikrokontroler atmega8, anda dapat menggunakan nya pada mikrokontroler lainnya dengan mengatur konfigurasi pada file avrstudio project nya.

[Ym : mikro_kontroler@yahoo.com]


Menggunakan Sistem Operasi di Mikrokontroler

27 Juni, 2010

Linux OS

Linux Operating System

Sebuah sistem mikrokontroler / mikrokomputer hanya dapat melakukan satu proses instruksi di setiap siklus mesinnya (machine cycle), hal ini berarti sebuah mikrokontroler hanya dapat melakukan satu operasi saja pada suatu waktu.

Untuk dapat melakukan beberapa operasi sekaligus sebuah mikrokontroler memiliki fitur yang di disebut interupsi, interupsi inilah yang kemudian dapat membuat sebuah mikrokontroler seolah – olah dapat  melakukan beberapa operasi sekaligus.

Ada beberapa sumber interupsi dalam mikrokontroler, seperti interupsi external, interupsi timer, interupsi reset (highest priority), ataupun interupsi ADC, dll.

Sebagai contoh, misalkan sebuah sistem yang dapat menampilkan keluaran di seven segmen, dan juga dapat membaca input dari keypad secara bersamaan, maka pengaturan output pada seven segmen ada di program utama, sedangkan input dari keypad ada dalam program interupsi timer, yang misalnya dilakukan setian 1 mS.

Untuk proses yang tidak terlalu banyak cara diatas masih dapat dilakukan dengan mudah, akan tetapi bagaimana jika suatu terebut harus dapat melakukan banya proses, seperti display di lcd, output di seven segmen, input keypad, input dari ADC, mengatur pwm, kontrol motor, dll, dalam waktu yang seolah – olah bersamaan, maka program yang dibuat akan menjadi lebih rumit.

Untuk mengatasi keadaan tersebut dapat dilakukan dengan menggunakan sistem operasi pada mikrokontroler, sistem operasi ini yang akan mengatur proses yang dijalanka. Sehingga mikrokontroler dapat memiliki fitur multasking yang sebenarnya.

Operating System

Ada banyak sistem operasi yang ada sekarang ini, diantaranya adalah DOS, WINDOWS, LINUX, MACOS, UNIX, dll. Salah satu sistem operasi yang dapat diaplikasikan di mikrokontroler 8bit seperti AVR ATMEGAXX adalah FREERTOS. Source code nya bisa di download disini :

FreeRTOS


Untuk applikasi FREERTOS akan di jelaskan lebih lanjut di pembahasan selanjutnya.


Pemrograman Mikrokontroler AT89S51 (Tingkat Dasar)

15 Agustus, 2009

Setelah membuat programmer AT89S51 pada tulisan saya sebelumnya, maka kemudian untuk dapat menggunakan mikrokontroler tersebut, maka diperlukan program yang akan di tuliskan ke mikrokontroler tersebut agar mikrokontroler tersebut dapat berfungsi seperti yang kita harapkan.

Untuk dapat melakukan pemrograman pada mikrokontroler AT89S51 sebenarnya ada beberapa bahasa pemrograman yang bisa dipakai, diantaranya adalah bahasa pemrograman tingkat rendah seperti bahasa mesin dan bahasa assembly, ataupun dengan menggunakan bahasa pemrograman tingkat tinggi, seperti bahasa C, Basic, pascal, dll.

1. Bahasa Mesin dan bahasa assembly

Sebenarnya mikrokontroler sendiri cuma mengerti bahasa mesin, yang hanya mesin (mikrokontroler) saja yang mengerti, bahasa mesin ini tersusun dari angka – angka binary yang disimpan dalam memory mikrokontroler yang berupa flash, untuk AT89S51 flash nya berkapasitas 4kB. Contohnya adalah seperti dibawah ini:

Contoh bahasa mesin pada memory flash

Contoh bahasa mesin pada memory flash

Program diatas tersimpan dalam memory flash dari mikrokontroler AT89S51, program tersebut berasal dari hasil compile dari bahasa assembly sebagai berikut :

mov p1,#5
mov p1,#6
end

Dalam memory tersebut, tersimpan data yaitu : ox75, 0×90, 0×05, 0×75, 0×90, dan 0×06. Dari program tersebut, mesin dapat menerjemahkan sebagai berikut:

angka pertama adalah commandnya (0×75 = mov) adalam perintah untuk memberikan nilai pada alamat 0×90 (P1) sebesar 0×05, kemudian mov lagi (0×75) untuk memberikan nilai pada alamat 0×90 sebesar 0×05.

Untuk compiler bahasa assebly nya bisa di donwload melalui link berikut:

AT89SXX Assembly Compiler

Sedangkan untuk tutorial bahasa pemograman assembly untuk intel 8051 (AT89S51 full compatible dengan microprosesor intel 8051) dapat di download melalui link berikut:

8051 assembly language

Instruction setnya dapat dilihat dalam chapter 4 pada tutorial di atas.

2. Bahasa C

Penggunaan bahasa asembly memiliki kekurangan yaitu bahasa yang digunakan sulit sekali dimengerti oleh manusia, karena masih menggunakan pemrograman tingkat rendah, akan tetapi kelebihannya adalah penggunaan memorynya menjadi semakin kecil. Dengan menggunakan bahasa pemrograman C maka bahasa pemrograman menjadi lebih mudah dipahami, sedangkan penggunaan memori menjadi sedikit lebih besar.

Compiler bahasa C untuk 8051 diantaranya adalah

A. Reads51

programnya dapat di download melalui link berikut:

Reads51

Contoh programnya adalah sebagai berikut:

Pemrograman Mikrokontroler AT89S51 menggunakan Reads51

Pemrograman Mikrokontroler AT89S51 menggunakan Reads51

Jika program diatas dikompile, maka akan menghasilkan file .hex (bahasa mesin) sebagai berikut:

File .hex hasil compilan menggunakan Reads51 bahasa C

File .hex hasil compilan menggunakan Reads51 bahasa C

Pada program di atas, sebetulnya perintahnya hampir sama dengan perinta pada bahasa assembly di atas, akan tetapi dengan menggunakan bahasa C Reads51 ternyata banyak perintah – perintah inisialisasi yang besarnya mendekati 2 kB, hal ini tentu saja sangat memboros memory flash, yang pada At89S51 cuma 4 kB.

Program Read51 diatas juga bisa digunakan untuk mengkompile dengan menggunakan bahasa pemrograman asembly.

B. SDCC

Compiler SDCC dapat di download dari link berikut ini:

SDCC Compiler

Contoh programnya adalah sebagai berikut (dengan menggunakan Reads51 hanya untuk editornya saja)

Program menggunakan compiler SDCC

Program menggunakan compiler SDCC

Compiler SDCC masih berbasis dos, jadi untuk mengkompile program butuh sintaks tertentu untuk mengkompilenya, command untuk mengkompile nya adalah sebagai berikut :

dari command prompt :

C:\>sdcc [nama file]

misal :

C:\sdcc file.c

jika kompilasi berhasil, maka akan dihasilkan beberapa file, diantaranya ‘file.ihx’, file tersebutlah yang kemudian akan di download ke mikrokontroler, jika file tersebut dilihat menggunakan isppgm (seperti yang telah disinggung dalam pembahasan downloader /  writer mikrokontroler AT89S51), maka dapat dilihat buffernya adalah sebagai berikut :

File bahasa mesin (.ihx) menggunakan compiler SDCC

File bahasa mesin (.ihx) menggunakan compiler SDCC

Jika dibandingkan dengan compiler sebelumnya yang menggunakan Reads51, penggunaan memorinya lebih sedikit(inisialisasi program sekitar 99 byte) dengan menggunakan perintah bahasa C yang sama, oleh karena itu disarankan untuk menggunakan SDCC compiler untuk pemrograman bahasa C pada mikrokontroler AT89S51.

[YM : mikro_kontroler]


Programmer / Writer Mikrokontroler AT89S51

23 Juni, 2009

AT89S51

AT89S51

Mikrokontroler AT89S51 adalah mikrokontroler produsi Atmel yang kompatible dengan mikrokontroler Intel 8051.

Mikrokontroler tersebut murah harganya, serta mudah didapat di pasaran, mikrokontroler tersebut memiliki spesifikasi sebagai berikut :

8-Bit mikrokontroler keluarga MCS-51
Spesifikasi Teknis :
- 4K Byte Code Memory
- 3 Lock Bit
- 256 Byte Internal RAM
- Two 16-bit Timer / Counter
- 9 sumber interrupt
- Ful Duplex UART Interface
- Dual Pointer
- DIP-40 Package

Spesifikasi lengkapnya dapat dilihat dalam datasheet AT89S51 yang dapat di donwload di :

http://www.atmel.com/dyn/resources/prod_documents/doc2487.pdf

Dengan fitur – fitur yang lengkap tersebut, mikrokontroler jenis ini ternyata murah, cukup pas untuk experiment, karena tidak membutuhkan biaya yang mahal, dengan ditambah komponen – komponen lainnya seperti kristal 12Mhz, konektor db-25, pcb matrix, resistor, kapasitor, dll, kira – kira menghabiskan dana sekitar Rp 50.000 – Rp 75000, kita sudah bisa ber ekperimen dengan mikrokontroler AT89S51.

Mikrokontroler Atmel AT89S51 ini adalah penyempurnaan dari versi sebelumnya AT89C51 yang menggunakan pemrograman dengan interface paralel yang rumit.

AT89S51 sudah dilengkapi dengan ISP (In System Programming), sehingga hanya membutuhkan beberapa kabel untuk antarmuka pemrograman pada flash nya.

Mikrokontroler AT89S51 memiliki memori flash sebesar 4kB.

Adapun rangkaian antar muka pemrogramannya adalah sebagai berikut :

AT89S51 Programmer / Writer

AT89S51 Programmer / Writer

Software yang digunakan untuk memrogram mikrokontroler AT89S51 adalah menggunakan program ISPPGM.

Software ISPPGM dapat di download di :

http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-30a.zip

File yang dapat di download adalah file dengan extensi hex.

catatan : Sebelumnya, port paralel harus di set standard atau bidirectional terlebih dahulu melalui bios.

[YM : mikro_kontroler]


Antarmuka Komputer – Mikrokontroler

12 Juni, 2009

Antar muka Komputer

Antar muka Komputer

Mikrokontroler dapat digunakan untuk berhubungan dengan piranti lainnya, salah satunya adalah antarmuka dengan komputer.

Antarmuka ini dimaksudkan agar data yang diperoleh dari mikrokontroler kemudian dapat dihubungkan dengan komputer dan kemudian dapat diproses lebih lanjut, seperti penyimpanan ke database, menampilkan di layar monitor, atau di upload ke server lain di internet.

Ada beberapa terminal antar muka antara komputer dan mikrokontroler, antara lain melalui port paralel, port serial, usb, ataupun melalui card tambahan seperti PPI8255.

Dari beberapa teknik antar muka diatas dapat dijelaskan sebagai berikut :

1.  Antar muka melalui port paralel

Antar muka dengan menggunakan port paralel menggunakan komunikasi  paralel sebanyak 8 bit data dalam parelel port (port data) dihubungkan dengan 8 bit data dalam mikrokontroler. Sistem antar muka ini merupakan sistem antarmuka yang paling cepat diantara yang lainnya. Akan tetapi memiliki kekurangan yaitu membutuhkan jumlah sambungan yang banyak.

2. Antar muka dengan menggunakan serial port

Sitem antar muka dengan menggunakan port serial ini banyak digunakan dalam sistem saat ini. Dengan menggunakan sistem antar muka serial, port serial (UART) dari mikrokontroler dihubungkan ke konverter RS-232 kemudian dihubungkan ke port serial komputer.

Kecepatan transfer dari komunikasi ini bergantung pada baudrate dari komunikasi serial di antara dua piranti tersebut, kedua piranti tersebut, yaitu komputer dan mikrokontroler harus mempunyai nilai baudrate (jumlah byte per detik) yang sama, misal 1200,2100,19200, 115000, dll.

Misal baudrate 1200, maka komunikasi tersebut dapat mentransfer data sebanyak 1200 byte data dalam satu detik.

Sistem antar muka port serial ini banyak digunakan dalam sistem antarmuka saat ini.

3. Sistem antar muka menggunakan usb

Saat ini setiap komputer sudah dilengkapi dengan usb, serta sebagaian besar piranti tambahan komputer juga sudah menggunakan usb, usb saat ini sudah sangat populer untuk menghubungkan perangkat luar ke komputer, seperti transfer data atau gambar, dll.

Demikian juga dengan antar muka misalnya antara handphone dengan komputer juga menggunakan usb. Sistem antar muka antara mikrokontroler dan komputer melalui usb sebenarnya sama dengan antar muka melalui port serial. Jadi data serial dari mikrokontroler dihubungkan terlebih dahulu ke konverter serial – USB kemudian dihubungkan ke port usb.

Di dalam komputer port usb tersebut kemudian di kenali sebagai port serial baru. Jadi, program interface dalam komputer tersebut dapat menerima data tersebut sebagai data serial.

[YM:mikro_kontroler]


Mikrokontroler

12 Juni, 2009

Mikrokontroler adalah sebuah piranti elektronika digital yang yang terintegrasi dalam sebuah chip, mikrokontroler tersusun dari mikroprosesor dan piranti pendukungnya.

Ada beberapa jenis mikrokontroler dengan produsen pembuatnya antara lain Atmel, PIC, Renesas, dll.

Mikrokontroler dalam sebuah rangkaian elektronika berfungsi sebagai pengatur keseluruhan kerja dari sistem yang terprogram.

Mikrokontroler adalah otak dari sebuah sistem elektronika digital, dimana sistem kerjanya diatur berdasarkan program dalam bahasa pemrograman yang digunakan, ada beberapa bahasa pemrograman yang dapat digunakan, pada umumnya semua bahasa pemrograman dapat diaplikasikan ke mikrokontroler, akan tetapi membutuhkan kompiler yang mendukung mikrokontroler tersebut.

Diantara bahasa pemrograman yang biasa digunakan dalam memrogram mikrokontroler produksi Atmel adalah bahasa Assembler, bahasa C, C++, basic, ataupun turbo pascal.

Dari bebeerapa bahasa pemrograman diatas, bahasa pemrograman assembler merupakan bahasa pemrograman yang memiliki efisiensi yang tinggi dalam siklus ataupun penggunaan memori, akan tetapi bahasa pemrograman asembler memiliki kekurangan yaitu bahasanya susah dimengerti oleh pola pikir manusia karena masih merupakan bahasa pemrograman tingkat rendah.

Bahasa pemrograman yang lain yang sudah menggunakan bahasa pemrograman tingkat tinggi adalah bahasa C atau C++.

Bahasa pemrograman dipandang paling efisien dibandingkan bahasa pemrograman tingkat tinggi lainnya yang biasa digunakan dalam pemrograman mikrokontroler,  bahasa C atau C++ mudah dipahami oleh manusia, akan tetapi efisiensinya baik itu efisiensi siklus ataupun memorinya masih kurang bila dibandingkan dengan bahasa assembler.

Dari penjelasan diatas, menurut saya bahasa pemrograman yang paling optimal adalah bahasa pemrograman C atau C++.

[YM:mikro_kontroler]


Ikuti

Get every new post delivered to your Inbox.