Sabtu, 03 Desember 2011

Starting ARM7 Programming with WINARM

tadhaaaa.......sudah lama sekali ngga nambah postingan saudara saudara. hampir lupa sama ini blog. untung ae sebelum nyuci baju iseng iseng buka blog orang, akhire malah g jadi nyuci baju, tak nguprek blog ku disek ae. hahahaha

ok...let's start about ARM progrmming. sebenarnya sejarah nya arm juga gw g tau banyak yah, pokoe tauku arm tu uc dengan spek yang cukup gila gilaan(baca dasheetnya, bandingin sama atmega ato PIC yng setara atmega). hp hp yg make android rata rata juga make processor jenis ini. Model model uc jaman lama macam ATMEGA gitu ma lewat, tapi kalo ATXMEGA kayae masih bisa ngejar lah untuk beberapa aplikasi tertentu. Kebetulan ane kerjadi sebuah perusahaan yang bergerak di bidang mesin diesel (kuliah gw apa, kerjaan gw apa -.-'), tapi ya masih ada dikit dikit lah nyambung elektro, soale kalo jadi engineer service harus bisa semuanya. Kalo g salah, ECU ECU model model jaman sekarang jga banyak yg udah pada pindah aliran ke ARM, lebih kompetitif jare.

sudah cukup opening nya, langsung menuju ke main menu. mari kita mulai MEMULAI PEMROGRAMAN ARM7 DENGAN MENGGUNAKAN WINARM alias STARTING ARM7 PROGRAMMING WITH WINARM. Sebenare cukup banyak developer lain macam KIEL ato crosswork, tapi ane milih WINARM soale gratis(+ adanya cuman itu). hehehe

mengenai WINARM, bisa didownload di web nya scienceprog.com. Di situ udah tersedia tutorial installasinya dan beberapa contoh progrma. Tapi kalo download WINARM disitu, ntar udah ada folder bawaan yang isinya contoh contoh project nya.

Udah selesai di download? (harap sabar bagi pengguna flash yang udah diluar kuota. hahaha)

ok lah, kilta langsung mulai instalasinya:
1. File download an yang besarnya sekitar 90mega itu tersedia dalam bentuk .rar. jadi kalo belum punya winrar ato sejenisnya, monggo diinstal dulu. Disini saya menggunakan laptop HP mini dengan OS Windows7 starter (ori cak, dengan bangga gw nyatakan kalo OS gw ori !!!!). kemudian extract file .rar tersebut di drive C, sebenare terserah mau dimana, tapi biar aman ditaruh di drive default aja , drive C.

2. selesai diekstrak, kita perlu nyetting sedikit environment variable buat compiler kita, kalo di winarm nyebutnya jadi 'make'. hehehe.... Lu buka aja Start > My computer > klik kanan > properties .(cerita lucu, gw lama banget nyari bagian ini karena uda terbiasa make XP .hahah)

ini gw kasih prinscreennya :


di bagian path, kamu masukkan file yang akan dipakebuat nge-"make" kodingan sampean. Karena tadi kita ngasih default di drive C, tinggal copas tulisan di bawah ini

;C:\WinARM\bin;C:\WinARM\utils\bin;

kemudian TAMBAHKAN di Path nya windows (klik edit, kemudian paste di bagian paling belakang). ntar ini nyambungnya ke progrmammer notepad nya WINARM, biar kita ngga nge-"make" pake command prompt. klik save, dan kita bisa memulai progrmmaing di WINARM.

3. Kita nyoba aja buat simulasi beberapa contoh program simple bawaanya winarm di proteus. eh, disini ane make proteus 7.5 SP3 (kebetulan masih bajakan, kalo mau monggo cari sendiri minta bantuan mbah google). sebelumnya kita coba dulu buka programmer notepad kita. ini printscreen nya:


WINARM sebenarnya buka software installer, tapi semacam kumpulan library dll yang di kumpulan jadi satu folder yang sudah diintregasikan, jadi biar gampang nyetting nyetingnya. File programmer notepad .exe bisa dilihat di folder C:\WinARM\pn , biar gampang , bikin ae shortcut di dekstop ntar.

4. Dan sekarang kita coba buka example file bawaannya WINARM. kita mulai dari yg simple aje, alias led kedap kedip. klik File > Open Project (s) > pilih folder winarm > example > lpc2106_blink_switch . klik ledswitch.pnproj, dan Open. ini penampakannya juragan juragan sekalian :

klik file ledswitch.c , disitu kita baca sedikit overview dari project ini. Project ini sebenare untuk modul ARM nya olimex, jadi konfigurasi pin pin nya udahdi setting bir cocok sama modul. tapi kayae bukan masalah, ntar aja diedit edit biar cocok sama Modul made ini dewek ae. hehehe...
Terus ada juga file readme yang isinya paling kocak adalah :

credits:
- WinARM-200502 has been used
- The makefile is based on an nmake-makefile from R O SoftWare
and the WINAVR makefile-sample by E. Weddingtion, J. Wunsch et. al.
I've added/changed/ported a lot so don't expect everything is
correct - it works for me in this project.
- The linker-skripts and the startup-code is also from a sample
made by R O Software. IRC it has been found in the yahoo LPC-group
file-archive.
- The lpc210x.h file is from the gnuarm-project (part of WinARM)
It differs from other files with the same name
- The main-code was based on a sample from Rowley Associates Limited
but there is not much (nothing?) left from the original code.

wkwkwkw...ternyata yg buat sample juga copas juga. sesama copaser koding lah :D. jadi untuk makefile nya editan, kita gunakan file makefile ini juga untuk project project lain aja lah, tingaal edit edit dikit. hehehe

kemudian kita coba untuk compile file kita ini, klik Tools > MAKE ALL atau Ctrl+F7. Kalo WINARM nya uda g ada masalah, hasilnya kaya gini nih :




5. Dan sekarang kiat bikin file proteus yuk. Di sini ane make ARM7 produknya Philips, LPC2106. ngga tau gimana critanya, pokonya jadinya gini lah :


disini da sedikit kekacauan yng glayak untuk di tiru. hahahaha...karena aga males ngrangkai komponen, gw simplein aja deh gambar. settingan gw mah kaya di bawa ini:
-> default voltage powernya ane kasi 3.3V . caranya kilk design > Configure power Rails , terus setting tegangan POWER ke 3.3 volt. Tegangan ini dibutuhkan untuk menghidupi I/O LPC2106. kalo rangkaian aslinya, monggo make LM317 atau AIC1722A buat regulator 3.3 V.
-> Core supply dari LPC2106 besarnya 1.8V. ini buat ngasih power ke processor dalamnya. disini tak saranin make LM317. Cara voltage devider kaya gambar diatas kayae tidak layak untuk ditiru. wkwkwkwkwkw
-> masukkan file hexa dari project kita. file hexa di dapet dari proses MAKE ALL yang tidak didapati adanya error. double klik IC LPC2106, dan pilih program file (file hexa) kita: tampilannya akan kaya dibawah ini nih :


kalo masalah clock value dll, kita kesampingkan dulu, ntar kalo aplikasinya udah agak dalem, baru kta utak atik. hehehehe

6. Running dah tu project di proteus. hasilnya cuman kelap kelap doang. tapi kelap kelip led sebiji ini digunakan sebagai staring project for more bigger project :D




wah, cukup panjang ya postingan gw, sampe ngga jadi nyuci nih :D

ya segitulah postingan buat ngawalin ARM7. Buat yang suka mrogram AVR make winavr pastinya g bakal lama buat ngejar kodinagnnya WINARM, terutama yang sudah mulai masuk ke RTOS, jadi lebih manteb kalo RTOS di masukkin ke ARM. soale rata rata clock speed nya bisa nyampe 100mega, jadi ntar bisa didapat time thick yang lebih kecil, jadi bisa multitasking lebih banyak. kalo yg suka same CVAVR macam awak awak ndewek ngene iki ya ya lumayan kejar tayang lah. heheheh

Kayae untuk acara KRI, KRCI atau KRSI, ARM akan mualai digunakan mulai tahun ini. Soale kalo make AVR macam ATMEGA gitu mah wes g ngejar buat kompetisi jaman sekarang. Ini juga sebanare ARM7 uda agak jadul, di pasaran sekarang wes banyak beredar modul modul make ARM11. kalo taun ini masi ada tim yang make MCS51 kayak jaman gw, gw salut banget dah, Saya hormati kesetiaan anda dengan uc legendaris, MCS51 (tapi kalo di luar masi bayak yg make sebenare. wkwkwkwkw)