Sunday, 14 April 2013

Cara Mengetahui Penggunaan SRAM pada Compiler Arduino

Menurut saya salah satu kekurangan compiler pada Arduino adalah kita tidak mengetahui jumlah SRAM yang dipakai pada AVR target, misal ATMega328p. Arduino Compiler hanya menampilkan jumlah penggunaan flash. ATmega328p memiliki 32Kbyte Flash Dan 2 Kbyte SRAM. Flash digunakan mikrokontroller sebagai menyimpan program yang akan dieksekusi mikrokontroller. Flash bersifat read-only ketika AVR berjalan, ALU hanya akan membaca dan menterjemahkan program-program secara berurutan dari flash memory. Sedangkan SRAM adalah tempat menyimpan variabel,  sehingga SRAM bersifat read-write.

Pengalaman saya menggunakan Arduino pernah suatu ketika membuat suatu project dan AVR selalu restart/reset sendiri. Kemudian setelah saya analisa ternyata SRAM yang saya gunakan melebihi kapasitas ATMega328p. Kemudian saya browsing akhirnya menemukan cara untuk mengetahui jumlah SRAM dengan menggunakan WinAVR. Salah satu fitur pada WinAVR adalah avr-size.exe. Avr-size mampu mengetahui jumlah Flash dan SRAM yang digunakan dari .elf hasil compiler.
Berikut adalah langkah-langkahnya:
  1. Download dan install WinAVR
  2. Pada Arduino IDE. Pilih File > Preferences > Centang Show verbose output during compilation
  3. Compile project yang kita gunakan. Copy lokasi .elf hasil compiler
  4. Buka Command Prompt ketik perintah > avr-size.exe(spasi)lokasi .elf(spasi)-C. Opsi commnad -C digunakan untuk menampilkan format data usage Flash dan SRAM.
  5. Maka ada keluar hasil sebagai berikut:
  6. Gambar hasil command prompt diatas adalah terdapat 2 jenis output. Program merupakan jumlah byte yang menempati flash. Sedangkan data merupakan byte variabel yang menempati SRAM.
  7. Program examples > blink cuma menggunakan SRAM sebesar 11 bytes, sedangkan flash sebesar 1632 bytes. 
  8. Tambahkan opsi "--mcu=(nama AVR yang digunakan)" untuk menambah persen flash dan SRAM yang digunakan pada AVR tertentu. 
  9. Contoh: avr-size.exe(spasi)lokasi .elf(spasi)-C(spasi)--mcu=atmega328
  10. Selamat mencoba.
*Note = mulai Arduino IDE 1.6.3 keatas, console arduino IDE sudah mengeluarkan besarnya SRM


Wednesday, 27 March 2013

Membuat Arduino Simulator dengan Software Proteus

Arduino sangat populer dengan kemudahan dalam pemakaian librarinya yang open source. IDE nya pun sederhana dengan menggunakan java yang dapat berjalan di banyak platform termasuk (windows, MAC, Linux, dsb). Kali ini saya akan membuat Simulatornya arduino dengan proteus 7.5 SP3. Software ini tidak gratis anda bisa mencari versi fullnya di banyak situs maupun torrent, karena saya tidak memberikan link software yang bukan freeware atau open source.
Berikut tampilan Arduino simulator saya :


Skematik diatas compatible dengan Arduino UNO. Sayangnya saya tidak bisa menerapkan bootloader arduino di simulator ini. Jadi untuk mendownload programnya kita link kan output .HEX dari Arduino IDE dengan ATmega 328.  Desain saya bisa di download disini

Software yang diperlukan untuk simulator ini adalah:
  1. Arduino IDE, saya menggunakan versi 1.0.3. Download disini
  2. ISIS Proteus 7.5 SP3. Versi sebelumnya belum mempunyai ATmega328.
  3.  VSPE sebagai pair virtual COM Port. Download disini. Freeware untuk 32-Bit windows atau bisa menggunakakan com0com
  4.  Hercules sebagai Serial Terminal . Download disini.  Bisa menggunkan hyper terminal untuk Windows XP ataupun software terminal lainnya.
Langkah - langkah menggunakan simulator:
  1. Pertama instal seluruh software yang diperlukan
  2. Buka file arduino.dsn dengan ISIS proteus.
  3. Buka Arduino IDE. Pilih File > Preferences > Centang Show verbose output during compilation

Tuesday, 26 March 2013

Membuat AVRisp MKII-Clone Dengan AT90usb162

AVRisp MKii adalah programmer yang dikeluarkan oleh ATMEL untuk mensuport ISP/PDI/TPI. ISP sudah  banyak kita ketahui sebagai programmer hampir seluruh keluarga AVR 8 bit. PDI digunakan untuk memprogram AVR XMEGA, sedangkan TPI digunakan untuk TINY AVR. Dengan kecepatan download maksimal 8Mhz tentu programmer sangat cepat untuk mendownload mikrokontroller Atmel.

Untuk membuat clone-nya saya menggunakan skematik sebagai berikut:


Sumber rangkaian : http://hackaday.com/2011/07/30/avr-programmer-modelled-after-the-mkii-uses-lufa/

Dari rangkaian yang perlu diperhatikan adalah IC MAX3002 yang digunakan sebagai level converter dari 5 Volt ke 3.3 Volt. Untuk AVR yang menggunakan 5V supply IC MAX3002 bisa ditiadakan. Xmega yang menggunakan catu daya 3.3 V dapat di convert tegangannya menggunakan FET atau level coverter lainnya. Untuk project kali ini saya tanpa menggunakan MAX3002 karena cuma menggunakan ISPnya untuk mendownload  5 Volt AVR. Dengan konfigurasi PIN sebagai berikut :

AT90usb162Target AVR
PB4  (T1)RESET
PB2  (MOSI)MOSI
PB3  (MISO)MISO
PB1  (SCK)SCK
GNDGND
VccVcc

Yang dibutuhkan dalam membuat AVRisp mkii clone ini adalah:
  1. Modul AT90usb162 atau membuat rangkaian seperti skematik diatas.
  2. Software FLIP untuk mendownload AT90usb162 menggunakan DFU bootloader. Download disini
  3. LUFA sebagai firmware AVRisp mkii. Download disini.
  4. WinAVR sebagai compiler LUFA. 
  5. AVRstudio sebagai driver dan platform buat mendownload file .HEX. Bisa di download di situs resmi Atmel akan tetapi harus register dulu.
Modul AT90usb162 bisa memakai modul apa saja termasuk modul yang dikeluarkan Atmel AT90USBkey.
Karena harus impor dan pertimbangan harga saya memutuskan menggunakan modul AT90usb162 yang dijual oleh innovative electronics yang saya beli dari digi-ware.com. Berikut modul yang saya pakai :

Sumber Gambar : http://www.innovativeelectronics.com/innovative_electronics/pro_dtavr90usb162cpu.htm

Dengan menambahkan push button untuk pin reset mikrokontroller yang saya jumper diatasnya dan saya lekatkan dengan double-tape. 


Cara Membuat AVRisp MKII

  1. Buat atau beli modul AT90usb162.
  2. Instal seluruh software yang dibutuhkan (FLIP, AVRstudio, WinAVR).
  3. Extract LUFA. Saya menggunakan LUFA versi LUFA-130303
  4. Buka WinAVR. Pilih File > Open Project(s) . Buka LUFA.pnproj
  5. Pilih Project > AVRisp MKII > Buka makefilenya. Kita sesuaikan makefile tersebut sesuai dengan board yang kita beli. Ganti konfigurasi makefile sebagai berikut
    • BOARD = NONE  > karena saya menggunakan board custom
    • F_CPU = 8000000 > crystal board yang saya pakai
  6. Setelah diganti save makefile tersebut dan highlight AVRisp MKii project. Lalu pilih Tool > Make All. Maka anda akan melihat proses compile berjalan setelah selesai anda aka menemukan hasil compilernya di  LUFA-130303\Projects\AVRISP-MKII\AVRISP-MKII.hex
  7. Siapkan software FLIP dan hubungkan modul AT90usb162 menggunakan USB-Mini dengan laptop/ PC anda.
  8. Reset AT90usb162 dengan push button darurat yang sudah dibuat. Install driver otomatis. Maka akan muncul Atmel USB devices di device manager.
  9. Masuk software FLIP, pilih settings > communication > USB atau langsung dengan shortcut CTRL+U. Kemudian pilih file > Load Hex File > AVRISP-MKII.hex. 
  10. Klik Run untuk mendownload software. Klik Start Application. Maka AVRISP MKii sudah dideteksi.
  11. Gunakan AVRstudio/ AVRDUDE untuk mendownload. Untuk ISP maksimal speed yang bisa diapakai adalah 1/4 dari crystal MCU. Misalnya menggunakan 16 Mhz maka maksimum speednya adalah 4 Mhz. Sedangkan untuk mendownload AVR baru gunakan speed dibawah 1 Mhz untuk mengubah fusebit-nya.
  12. Saya menggunakan AVR Studio 6. Pilih tool > Device Programming . Pilih AVRisp MKii sebagai programmer anda. Pilih speed sesuai selera dan klik > Set

Monday, 7 November 2011

Membuat sendiri AVRisp USBasp ATMEGA8

USBasp merupakan downloader Open Source yang banyak digunakan oleh para programmer AVR. Selain mudah penggunaanya downloader ini mempunyai kecepatan download yang sangat cepat mencapai 5kB/detik. Penggunaanya sangat mudah dan simple karena didukung oleh AVRDUDE sebagai platform programmernya. Oleh karena itu, downloader ini sangat direkomendasikan untuk para pecinta mikrokontroller AVR.



Para hobbies biasanya membuat dowloader ini dengan menghilangkan pin Slow SCK. Saya tegaskan untuk tidak melakukan ini karena jumper Slow SCK berguna untuk mendownload AVR baru. Setelah mengubah sedikit skematik saya merouting-nya sebagai berikut:


Apabila menginginkan design USBasp saya bisa di download disini

Keunggulan USBasp

  • Mampu berjalan di semua OS baik windows,linux ataupun Mac.
  • Komponen sangat murah dan mudah dicari di pasaran.
  • Kecepatan pemrograman yang sangat cepat mencapai 5Kb/detik.
  • Mendukung operasi slowSCK untuk mendownload mikrokontroller dibawah kecepatan 1.5Mhz. Sebagai catatan mikrokontroller baru biasanya menggunakan internal clock sebesar 1Mhz, gunakanlah metode slowSCK untuk mendonwload flash ataupun mengganti fusebit mikrokontroller.

 

Cara Membuat USBasp

  1. Buat atau download board USBasp diatas.
  2. Setelah board sudah jadi dan komponen sudah disolder pastikan download firmwarenya disini
  3. Download firmware menggunakan downloader lainnya, Bisa menggunakan downloader paralel standart STK200.
  4. Pastikan H-Fuse = DF dan L-Fuse = FF.
  5. Koneksikan dengan USB PC dan instal drivernya di folder usbasp yang di download.
  6. Dengan menggunakan software khazama 1.7 maka bisa diubah speed SCK-nya sekehendak hati. dapat didownload disini .
  7. Selamat Mencoba.
Selanjutnya akan saya posting cara membuat AVRisp MKII dengan modul AT90usb162. Mohon di tunggu :)

Sumber : http://www.fischl.de/usbasp/

Develop STM32 dengan STM32cubeMx + OpenSTM32 IDE

Banyak temen ² yang masih ngoprek STM32 di Keil, yang harus nyari software crack ²an. Bebas sih, tapi saya sepaham dengan dosen saya saat ...