Maswie BloG

Free Delphi, Visual Basic, Microcontrol, Mechatronic tutorial

TOOL – TOOL PEMROGRAMAN AVR

Posted by maswie2000 on November 5, 2007

Untuk membuat suatu aplikasi AVR, perlu beberapa tool yang harus Anda siapkan. Tool-tool tersebut diperlukan untuk menjalankan tahap-tahap pemrograman AVR. Pada dasarnya, terdapat tiga tahap utama yang perlu dikerjakan dalam pemrograman AVR, yaitu:

1. Penulisan dan Editing: proses ini dilakukan menggunakan software Editor teks.

2. Asembling dan Debuging: merupakan proses penerjemahan dari bahasa assembler yang dituliskan pada Editor Teks menjadi bahasa mesin yang dipahami oleh mikrokontroler. Mikrokontroler hanya memahami bahasa mesin dalam format HEX. Proses asembling ini dilakukan dengan menggunakan software assembler. Sedangkan yang dimaksud dengan proses debugging adalah proses mencari error yang mingkin terjadi pada program yang anda buat pada saat program dijalankan. Meskipun pada proses assembling dinyatakan tidak terdapat error, namun pada proses debugging bisa saja ditemukan bug. Bug yang dimaksud adalah kondisi-kondisi yang menyebabkan program tidak berjalan sebagai mana mestinya. Salah satu contoh bug adalah stack overflow, di man dalam program anda menuliskan instruksi pemanggilan suatu subrutin hingga beberapa tingkat dan melebihi stack yang dimiliki oleh mikrokontroler target.

3. Programming/Downloading/Burning: merupakan proses penulisan kode mesin dari hasil assembling (berupa file berekstensi HEX) ke dalam memori program flash mikrokontroler AVR. Proses ini dilakukan dengan menggunakan perangkat programmer (hardware) beserta software programmernya, atau dengan menggunakan antarmuka ISP beserta software ISPnya.

Di samping tiga tahap utama tersebut, terdapat satu proses tambahan yang bisa dilakukan tapi boleh juga tidak dilakukan, yaitu proses simulasi menggunakan software simulator. Dengan Simulator, Anda dapat melihat setiap perubahan yang terjadi pada isi memori , register dan berbagai kondisi lain dalam mikrokontroler untuk setiap langkah yang dilakukan.

Software Asembler

Dalam prakteknya, banyak software asembler yang sekaligus menyediakan editor teks atau bahkan dapat untuk downloading dan simulasi. Anda dapat memilih tool-tool pemrograman AVR yang Anda sukai untuk anda gunakan. Beberapa software assembler yang dapat anda gunakan antaa lain: gavrasm.exe, WAVRASM dan AVR Studio. Khusus untuk AVR Studio, lebih lanjut akan dijelaskan pada Bab 6.

Secara umum,, fungsi suatu software assembler adalah menerjemahkan program assembler yang anda tuliskan dalam editor teks menjadi kode dalam bahasa mesin yang bisa diartikan oleh mikrokontroler. Kode ini dikemas dalam suatu file HEX.

Misalkan untuk program assembler (file ASM) berikut ini.

; Contoh Program sederhana

;”Pencacah biner8-bit pada portB mikrokontroler AT90S2313″

; nilai awal dan nilai akhir pencacah diset melalui

; variable: startnum dan ednum

;

; oleh; Sigit Haryanto

. nolist ;list file untuk include file tidak perlu ditampilkan

. include”C:\Atmel\AVRTools\AVrAssembler\Appnotes\2313def.inc”

. list

. equ startnum=0

. equ endnum=10

. def temp1=r16

. def temp2=r17

. def delay1=r18

. def delay2=r19

. def temp=r20

. cseg

. org 0

1di temp,0b11111111

out DDRB,temp

mulai:

1di temp1,startnum

1di temp2,endnum

count:

out portb,temp1

inc temp1

; rcall tunda ;skip saja

cpse temp1,temp2

rjmp count

out portb,temp1

; rcall tunda

rjmp mulai

tunda:

1di delay2,0xff

waitsome:

1di delay1,0xff

waitmore:

dec delay1

brne waitmore

dec delay2

brne waitsome

ret

. exit

Oleh software assembler, program di atas akan di asembli/kompilasi menghasilkan file HEX berikut ini.

:020000020000FC

:100000004FEF47BB0E01AE008BB039501113FCCF9C

:1000100008BBF8CF3FEF2FEF2A95FIF73A95D9F7C4

:02002000089541

:00000001FF

Untuk mengetahui bagaimana setiap instruksi dan operan tersebut dikodekan oleh assembler, Anda dapat melihatnya dari file LIST yang dibangkitkan selama proses asembli berlangsung. Flie ini juga akan membantu Anda untuk memperbaiki kesalahan yang mungkin Anda lakukan saat penulisan program.

AVRASM ver. 1.57 D:\UjiAVR\Belajar\test1.asm Thu Aug 16 21:49:34 2007

; Contoh Program sederhana

; ‘Pencacah biner 8-bit pada portB mikrokontroler AT90S2313”

; nilai awal dan nilai akhir pencacah diset melalui

; variable : startnum dan endnum

;

; oleh Sigit Haryanto

. nolist ; list file tidak perlu ditampilkan

. equ startnum=0

. equ endnum=10

. def temp1=r16

. def temp2=r17

. def delay1=r18

. def delay2=r19

. def temp=r20

.cseg

.org 0

000000 ef4f 1di temp, 0b111111111

000001 bb47 out DDRB, temp

mulai :

000002 e000 1di temp1, startnum

000003 e01a 1di temp2, endnum

count :

000004 bb08 out portb, temp1

000005 9503 inc temp1

; rcall tunda ; skip saja

000006 1301 cpse temp1, temp2

000007 cffc rjmp count

000008 bb08 out portb, temp2

; rcall tunda

000009 cff8 rjmp mulai

tunda :

00000a ef3f 1di delay2, 0xff

waitsome :

00000b ef2f 1di delay1, oxff

waitmore :

00000c 952a dec delay1

00000d f7f1 brne waitmore

00000e 953a dec delay2

00000f f7d9 brne waitsome

000010 9508 ret

. exit

Assembly complete with no errors.

Programmer/Downloader

Mikrokontroler AVR memiliki dua mode pemrograman, yaitu Pemrogramam Paralel (Parallel Programming Mode) dan Pemrograman Serial (In- System Programming Mode atau ISP).

Pad pmrograman parallel, AVR harus ditempatkan pada siket programmer dan tegangan pemrograman +12V diperlukan pada pin RESET-nya. Komunikasi antara programmer dengan AVR dilakukan dengan perintah pemrograman parallel, sehingga waktu pemrograman yang dibutuhkan relative lebih singkat dibanding dengan mode pemrograman ISP. Pemrograman ini biasa dilakukan untuk memprogram awal beberapa perangkat AVR atau bila sirkuit aplikasi tidak mendukung dilakukannya pemrograman dengan mode ISP.

Sedangkan pada pemrograman ISP, jalur yang dibutuhkan untuk pemrograman hanya 3 jalur untuk sinyal pemrograman dan tifak dibutuhkan tegangan pemrograman +12V. Dengan demikian, mode pemrograman ini sangat cocok untuk melakukan pemrograman didalam system aplikasi. Namun demikian, mode pemrograman ini tidak dapat digunakan untuk mengubah bit-bit fuse pada beberapa tipe AVR. Terdapat beberapa tipe AVR yang tidak mendukung untuk dilakukannya pemrograman dalam mode ini, sehingga untuk tipe tersebut harus diprogram menggunakan pemrograman parallel.

Selain itu, terdapat mode pemrograman serial menggunakan tegangan pemrograman +12V yang dinamakan High-Voltage Serial Programming. Pemrograman ini serupa dengan mode parallel, dan hanya terdapat pada jenis AVR 8 pin.

Pada bab 8, Anda akan dikenal pada sebuah programmer yang mudah digunakan dan cocok untuk berbagai jenis mikrokontroler maupun EEPROM. Dalam bab tersebut akan dibahas mengenai bagaiman melakukan download file HEX ke memori program dan EEPROM mikrokontroler.

Leave a comment