Thursday, July 31, 2008

Cara mendownload file bin ke flash dengan OpenOCD

Sebelumnya anda harus membaca : Using Open Source Tools for AT91SAM7S Cross Development revision C.
Ternyata hanya dibutuhkan 3 file untuk mendownload file bin :
Misal saya hendah mendownload E:/Workspace/usb/bin/main-flash.bin, menggunakan Eclipse dan Olimex ARM-USB-OCD, maka yang dibutuhkan adalah


1. E:/Workspace/usb/bin/main-flash.bin


2.Makefile, berisi text :
# specify OpenOCD executable
OPENOCD = 'c:/Program Files/openocd-2007re204/bin/'openocd-ftd2xx.exe
# specify OpenOCD configuration file
OPENOCD_CFG = 'c:/Program Files/openocd-2007re204/bin/'at91sam7s256-armusbocd-flash-program.cfg
# program the AT91SAM7S256 internal flash memory
program:
$(OPENOCD) -f $(OPENOCD_CFG) # program the onchip FLASH here

3. Script.ocd, berisi text :

wait_halt # halt the processor and wait
armv4_5 core_state arm # select the core state
mww 0xffffff60 0x00320100 # set flash wait state (AT91C_MC_FMR)
mww 0xfffffd44 0xa0008000 # watchdog disable (AT91C_WDTC_WDMR)
mww 0xfffffc20 0xa0000601 # enable main oscillator (AT91C_PMC_MOR)
wait 100 # wait 100 ms
mww 0xfffffc2c 0x00480a0e # set PLL register (AT91C_PMC_PLLR)
wait 200 # wait 200 ms
mww 0xfffffc30 0x7 # set master clock to PLL (AT91C_PMC_MCKR)
wait 100 # wait 100 ms
mww 0xfffffd08 0xa5000401 # enable user reset AT91C_RSTC_RMR
flash write 0 E:/Workspace/usb/bin/main-flash.bin 0x0 # program the onchip flash
reset # reset processor
shutdown # stop OpenOCD

Meng-upload SAM-BA dari controller ke PC



Terkadang at91sam7-pxxx board tidak berhasil melakukan booting dari SAM-BA. Kita juga tidak yakin apakah SAM-BA memang sudah terinstall. Walau demikian, JTAG masih berjalan dengan baik. Maka, untuk lebih memastikan SAM-BA, kita download SAM-BA melalui JTAG. Tetapi, sebelumnya kita harus memiliki file bin SAM-BA itu. Caranya? Jangan sia-siakan kesempatan, pada saat SAM-BA berjalan dengan baik, upload dari controller.
Step 1 :

Step 2:

Wednesday, July 30, 2008

Really what the... (part2) SAM-BA

Suatu hari saya coba lakukan SAM-BA system recovery procedure. Setelah saya tancapkan kabel USB, PC segera mengenali driver dari atmel. SAM-BApun dapat mengenalinya.

Karena belum terbiasa menggunakan SAM-BA saya tidak sengaja klik erase all flash->execute. Maka hilanglah SAM-BA dari flash. Sejak saat itu tidak pernah berhasil merecovery. Berbagai literatur dan tanya jawab sudah saya baca, dan coba-coba beberapa haripun sudah saya jalani, termasuk melepas kapasitor kristal 1o pf yang terpasang pada kristal. Hasilnya nihil.

Entah bagaimana penjelasannya, ketika jumper TST dalam keadaan terpasang, tidak sengaja saya download program LED contoh dari atmel melalui OpenOCD - JTAG. Kemudian saya cek kontroler tidak bekerja. Saya berfikir jangan-jangan gara-gara kapasitor kristal diunsolder. Selidik punya selidik, ternyata jumper TST sedang terpasang.

Maka power saya matikan untuk melepas jumper TST, Setelah power saya hidupkan lagi, kemudian saya tancapkan kabel USB, terdengarlah bunyi "BEEP". Saya buka SAM-BA ahirnya terdekteksilah board saya itu.

Berikutnya saya coba lagi melakukan system recovery sesuai dengan prosedure standar. Hasilnya valid.

Pertanyaannya :
1. apakah penyebabnya memang karena kelebihan kapasitor pada kristal?
2.chip atmel ini memang tidak stabil, seperti yang dikatakan beberapa pengguna.

Setelah beberapa kali coba macam-macam program, saya berkesimpulan bahwa : kegagalan atmel board (dlm hal ini at91sam7s64) selalu yang berhubungan dengan penggunaan fitur USB pada atmel termasuk SAM-BA. Sebab jika flash didownload dengan program lain yang tidak menggunakan fitur USB atmel, program jalan dengan normal (walau kadang-kadang tidak juga). Penyebab utama menurut saya adalah clocknya tidak sinkron dengan clock USB. Penjelasan lengkapnya saya belum tahu.

Suatu saat tiba-tiba fitur USB termasuk SAM-BA bisa digunakan. Barangkali jika controllernya sudah cukup panas..bisa bekerja dengan baik. Brati butuh dipanasi? kyk mobil aja

Monday, July 28, 2008

Bagaimana cara menggunakan SAM-BA?

Secara singkat, suatu program yang disebut SAM-BA memungkinkan PC melakukan baca-tulis Flash/memory dan debugging terhadap controller melalui serial port atau USB.

Bagaimana caranya ? Install dulu SAM-BA ke flash. Atmel menyimpan SAM-BA dalam suatu read only memory yang tersembunyi. Untuk menginstal SAM-BA ke flash kita perlu melakukan suatu prosedur yang disebut system recovery. Berikut ini langkahnya:
  • Matikan power
  • Hubungkan pin TST ke VDDIO
  • Pastikan PA0,PA1,dan PA2 high (mereka mendapat internal pullup sehingga akan high meski tak terhubung ke manapun)
  • Hidupkan power.
  • Tunggu 10 detik.
  • Matikan Power.
  • Putuskan koneksi pin TST ke VDDIO

Effect proses diatas adalah, dua page pada flash akan diisi dengan SAM-BA. Begitu power dihidupkan, SAM-BA akan secara otomatis dijalankan. Berikutnya, untuk melakukan baca/tulis/download flash/memory, gunakan software SAM-BA GUI.

Wednesday, July 23, 2008

DBGU, what the....

DBGU,... istilah apalagi itu!!!
Secara sekilas saya simpulkan :
  • DBGU singkatan Debug Unit
  • DBGU adalah port serial (sama seperti rs232) di Atmel ARM7 ditujukan untuk mendownload / upgrade program ke flash dengan syarat : di flash sudah terdapat program boot yang disebut SAM-BA Boot Assistant.
  • SAM-BA memungkinkan pendownloadan melalui port DBGU dan port USB.
  • ARM7 Atmel menyimpan SAM-BA dalam suatu read only memory yang tersembunyi. SAM-BA ini dapat ditransfer ke flash dengan prosedur tertentu yang disebut SAM-BA™ Boot System Recovery. (Untuk lebih jauh tentang prosedur ini, silakan baca artikel-artikel tentang SAM-BA sistem recovery). Jika flash telah terinstall SAM-BA, kita bisa menggunakan port DBGU untuk mendownload program kita ke flash.
  • Untuk mendownload program melalui port DBGU kita harus pake software yang disebut SAM-BA GUI. Kadang disebut sebagai SAM-BA juga, menjadi rancu bahwa SAM-BA yang dimaksud adalah program yang ada di flash atau software di PC. Harus melihat konteks kalimatnya.
  • DBGU juga dapat digunakan untuk komunikasi serial biasa sama persis seperti RS232, hanya saja ada keterbatasan pilihan seperti jumlah bit data tidak bisa 9 bit.
  • Jika kita ingin dapat upgrade program di flash dan komunikasi serial layaknya RS232 hanya dengan satu port saja, gunakan port DBGU sebagai port untuk donwload program ke flah dan untuk komunikasi, dengan syarat di flash sudah ditanam SAM-BA.

Untuk keterangan lebih lanjut :

Men-download ke Flash

1. Lihat Jendela Make Targets, pilih project anda, kemudian klik Add Make Target
2. Isi kotak dialog Create a new Make target seperti berikut :
3. Pastikan ARM-USB-OCD , PC ,dan Atmel Board telah terhubung, kemudian klik dua kali Program

Jika main.bin tidak muncul

Seperti telah diketahui, main.bin akan didownload ke dalam flash. Jika project telah di-build tetapi main.bin tidak muncul, maka lakukanlah langkah berikut :
  1. klik kanan pada project yang bersangkutan, atau pilih menu project
  2. Klik properties
  3. Klik C/C++ Build
  4. Klik Settings
  5. Pilih Elf-Parser

Stroke and Color Blocking Study

Putri, Oil on canvas, 55cm x 50 cm, bali artist no 1;3,8, 23/07/2008

Renungan :
  • Visual manusia mengidentifikasi obyek tidak selalu dalam ketelitian yang sama. Misal : manusia akan lebih teliti dalam melihat bagian mata daripada ketika melihat area dahi, pipi, dan dagu. Oleh sebab itu, bagian-bagian yang tidak butuh ketelitian, diwarna dengan melakukan dengan koas ukuran besar dengan warna yang relatif homogen. Pendetailan yang berlebihan terhadap area-area besar justru dapat merusak kealamiahan selain juga sangat merepotkan
  • Pewarnaan daerah besar dengan koas kecil hasilnya tidak bagus, begitu sebaliknya. Maka seharusnya : garis mata dengan koas kecil, pupil dengan koas sedang, dahi dengan koas besar.

Next study :

  • Penguasaan beragam ukuran koas sesuai luas daerah/kedetailan/kebutuhan.

Monday, July 21, 2008

Konsep sederhana menjadi bahagia setiap saat

Renungan :
  • Ketika dalam melakukan perjalanan ingin segera sampai di tujuan, perjalanan justru terasa lama dan membosankan. Inilah yang terjadi jika hanya hasil yang jadi tujuan, saya sebut result oriented.
  • Tapi ketika niatnya memang jalan-jalan, perjalan terasa singkat dan menyenangkan. Fokus pada proses saya sebut sebagai process oriented.

Barangkali stress, beban, kegelisahaan, ketakutan, putus asa, dsb, disebabkan oleh result oriented. Result oriented menuntut hasil yang bagus, dampaknya adalah :

  • Selalu takut untuk memulai sesuatu sebab kuatir tidak sesuai target, akibatnya justru tertunda, lambat, menjadi beban, ahirnya stress.
  • Orang yang hanya melihat hasil bisa menjadi sombong jika sukses dan putus asa jika gagal, memandang proses sebagai sesuatu yang berat sehingga cepat puas, malas untuk mulai, kadang suka jalan pintas meski curang seperti para koruptor.
  • Waktu yang berlalu seperti tak bermakna, sebab yang ditunggu hanya hasil..hasil…dan hasil.

Kesadaran :

Hasil hanyalah bagian kecil dan paling ujung dari perjalanan panjang suatu proses. Proseslah yang sebenarnya berarti, berjalan, hidup, dan dinikmati, bukanlah hasil. Mestinya kita bersedih jika BERHASIL karena itu tandanya proses sudah HABIS. Kata-kata "menikmati hasilnya" terdengar aneh sebab apa yang bisa dinikmati dari "habis"? Jika kita selalu ingin cepat berhasil mestinya kita juga ingin cepat mati.

Proses Oriented

Apapun hasilnya nanti bukan urusan kita, urusan kita hanyalah prosesnya. Dengan prinsip ini kita bisa menikmati proses yang panjang sekalipun. Efeknya adalah :

  • Karena kita menyenangi proses, maka akan kita kerjakan sebaik-baiknya, dan yang terpenting bahagia tiap waktunya, tidak hanya saat berhasil.
  • Karena tidak peduli hasil, jika sukses tidak sombong dan cepat puas, jadilah kita rendah hati dan produktif. Jika gagal tidak putus asa jadilah kita sabar dan tangguh.
  • Hidup adalah serangkaian proses, orang yang menyenangi proses akan hidup dalam kesukuran, sedangkan orang yang mengejar hasil dan membenci proses akan penuh beban,tekanan bahkan kecurangan, dan kelicikan.
  • Kemerdekaan dari belenggu hasil dan kesukaan terhadap proses membuat orang tidak takut terhadap hasil dan mendorong orang untuk aktif, banyak terlibat dalam kegiatan, karya, dan misi. Apapapun prosesnya itu adalah sama yaitu kesenangan.

Kesimpulan :

  • Apakah dengan melupakan hasil segalanya akan buruk? Bisa jadi sebaliknya..karena kita berproses tanpa tekanan, maka kita bisa menikmati, berbahagia, bersukur, ahirnya kinerja kita optimal, maka hasil terbaik justru tercipta. Toh tiap hasil yang baik menyaratkan proses yang baik, artinya mau tidak mau, suka atau tidak suka proses tetap dilakukan.
  • Apakah dengan dipatok target secara keras akan menghasilkan hasil baik?Barangkali iya..tapi apakah kita menikmati?sangat diragukan.. Yang paling besar kemungkinannya adalah tekanan, stress, emosi,yang berahir pada menurunnya performansi.
  • Arus industri kapitalis materialis demikian keras mengalir maka pandai-pandailah kita memilih dan memilah kapan harus result oriented dan process oriented agar kita tetap mampu menempatkan nilai hidup diatas benda-benda mati barang-barang produksi.