Rabu, 20 Oktober 2010

Update Firmware dengan Bootloader

Dalam pembahasan kali ini saya tidak mengkhususkan pada satu jenis mikrokontroler, namun sebagai contoh sederhana saya ambil mikrokontroler jenis AVR.

Ok, pertama-tama apa sih yang disebut dengan firmware itu? Kalau dibandingkan dengan kata software, tidak ada perbedaan jelas antara keduanya. Namun firmware sendiri bisa disebut sebagai software yang ditanamkan pada chip (IC) tertentu yang mengatur kinerja dari suatu alat, apapun jenis bahasa yang digunakan, toh nantinya pun diubah ke bahasa mesin juga (sarua keneh).

Ada dua jenis firmware jika ditilik dari level-nya yaitu low-level firmware dan high-level firmware. Low-level firmware itu adalah firmware yang biasa ditanamkan di ROM (Read Only Memory). Nah firmware jenis ini tidak dapat diubah-ubah, jadi sekali program sudah ditanam ke dalam ROM maka seumur hidup tidak akan bisa diubah lagi. Yang satu lagi adalah high-level firmware. Firmware jenis ini biasanya ditanamkan di flash memory sehingga sewaktu-waktu bisa diganti dengan firmware yang lebih baru. Pernah dengar kan kalau di tempat service handphone CS-nya bilang begini: "Wah mas, hp-nya harus di-update nih firmware-nya". Nah itu berarti handphone kita menggunakan firmware jenis high-level.

Selasa, 15 Juni 2010

Hal yang Perlu Diketahui Tentang ATmega128

Beberapa hari yang lalu, saya mencoba menggunakan ATmega128 untuk pertama kalinya. PCB saya rancang sendiri kemudian pembuatan PCB-nya saya serahkan kepada jasa pembuatan PCB yang menurut saya lumayan bagus. Dengan bermodal satu buah IC ATmega128 TQFP saya pasang deh IC tersebut menggunakan solder tangan.

Secara kasat mata pemasangan IC tidak ada masalah. Namun ternyata masalah muncul ketika saya mengunduh software saya ke IC (flashing). Prosesnya selalu saja gagal, padahal semua sudah dicek, dari programmer-nya, kabelnya, dan koneksinya ke pin MISO, MOSI, dan SCK. Semuanya ok, tetapi tetap saja saya belum berhasil mengisi ATmega128 ini.

Selasa, 30 Maret 2010

Programmer USB AVR Open Source

Nah, programmer AVR yang sering dicari saat ini adalah yang mempunyai interface USB. Maklumlah hampir semua notebook/netbook saat ini sudah tidak memiliki port paralel atau port serial standar, namun diganti dengan port USB. Kalau waktu itu kita bisa dengan mudah membuat programmer sendiri dengan berbekal konektor paralel, 74VHC244, dan beberapa kabel, bagaimana dengan USB?

Jangan khawatir, di internet saat ini ada beberapa programmer USB untuk AVR yang berlisensi open source. Dua diantaranya yang terkenal adalah USBasp dan USBtinyISP. Di website keduanya dapat diunduh desain hardware lengkap dengan source code firmware-nya bagi yang ingin membuat sendiri programmer ini. Kedua programmer ini kadang dijual di pasaran, namun sayang tidak dilengkapi dengan source code dari firmware tersebut, yang harusnya ikut disertakan sesuai dengan ketentuan GPL.

Bagaimana dengan program yang digunakan?
Berikut beberapa program yang bisa dipakai dengan menggunakan kedua programmer tersebut:
  1. Avrdude (Linux, Windows, Mac OS X)
    Mendukung USBasp sejak versi 5.2, USBtinyISP sejak versi 5.5
  2. BASCOM-AVR (Windows)
    Mendukung USBasp sejak versi 1.11.9.6
  3. Khazama AVR Programmer (Windows)
    Untuk USBasp
  4. eXtreme Burner - AVR (Linux & Windows)
    Untuk USBasp
  5. AVR Studio (Windows)
    Bisa menggunakan USBtinyISP dengan firmware khusus (masih dalam versi alpha)

Alamat website:
  1. USBasp: http://www.fischl.de/usbasp/
  2. USBtinyISP: http://www.ladyada.net/make/usbtinyisp/

Selasa, 09 Maret 2010

Setting Fuse Bit di AVR (Clock Source)

Buat yang baru migrasi dari mikrokontroler MCS-51 ke AVR kesalahan ini mungkin sering terjadi, yaitu salah menggunakan frekuensi osilator. Misalnya jika kita menggunakan mikrokontroler AT89S52, berapa frekuensi osilator yang diinginkan, maka tinggal dikali 12 saja dan pasang kristalnya. Tetapi tidak demikian dengan mikrokontroler AVR.

Beberapa jenis AVR ATmega osilator pada factory setting sengaja diset ke internal oscillator sebesar 1MHz. Kalau tidak percaya coba saja isi AVR dengan program sederhana, kemudian jalankan tanpa kristal, dijamin bisa jalan!

Iya, itu karena pada AVR memang sudah ditanamkan osilator internal yang nilainya bisa diatur. Bagaimana jika kita ingin menggunakan kristal external? Pengaturan ini ada di Fuse Bit AVR, sudah dijelaskan di datasheet-nya. Walau begitu informasi yang ditampilkan di datasheet bagi sebagian orang kurang begitu jelas (termasuk saya). Tetapi jangan khawatir ada website yang dapat membantu kita untuk menentukan setting fuse bit pada AVR. Kita tinggal masukkan jenis AVR yang digunakan dan tentukan berapa frekuensi osilator yang diinginkan, muncul deh nilai fuse bit yang harus diset.

Langsung aja ke TKP: http://www.engbedded.com/fusecalc/

Semoga membantu...

Sabtu, 13 Februari 2010

USB Graphics Tablet Menggunakan AVR

Pendahuluan


Proyek ini sebenarnya adalah proyek tugas akhir saya di salah satu universitas untuk mendapatkan gelar sarjana, dengan program studi elektronika tentunya. Judul yang saya ambil ya seperti yang terlihat di judul posting ini, USB Graphics Tablet Menggunakan AVR.

Ide awalnya bermula dari final project salah satu mahasiswa Cornell University yang berjudul USB Magnetic Mouse. Dalam proyek ini mereka memanfaatkan PCB sebagai papan tablet dan menggunakan sensor hall effect (medan magnet) untuk menangkap gerakan yang dibuat stylus pada papan tersebut. Nah untuk mengirim data ke komputer digunakanlah kabel USB.

Proyek yang saya buat kali ini pun berbentuk graphics tablet namun memanfaatkan sensor kapasitansi. Berbeda dengan graphics tablet komersial pada umumnya yang menggunakan efek induktansi yang disusun dari rangkaian LC, saya memanfaatkan efek kapasitansi pada jalur PCB sehingga dapat dibuat sebuah graphics tablet tanpa menggunakan sensor yang berupa komponen satu pun. Konsep pemanfaatan efek kapasitansi ini saya peroleh dari proyek AVR-based Capasitive Sensor Matrix yang aslinya dibuat oleh Viacheslav Slavinsky dari Rusia.

Rabu, 10 Februari 2010

Software Elektronik Open Source? Ada

Biasa menggunakan software simulasi elektronik seperti Electronic Workbench (EWB)? Atau menggunakan software PCB layout seperti Protel atau OrCAD? Kalau saat ini masih menggunakannya, kenapa ngga coba software open source? Saya ngga bilang lho kalau kalian pakai software bajakan, tapi kalau memang demikian kenapa ngga beralih ke software lain yang legal dengan biaya gratis?

Sebenarnya software elektronik yang berlisensi open source atau sekedar freeware banyak sekali jumlahnya. Kemampuannya tidak kalah koq dengan software mahal yang biasa kita gunakan. Apalagi yang open source, karena kekuatan komunitasnya untuk mengembangkan aplikasi tersebut, fitur-fitur yang disediakan cepat sekali bertambah. Untuk desain PCB sebut saja GEDA dan KiCAD, kedua software ini sangat terkenal di kalangan pengguna linux karena kemampuannya dalam mendesain PCB yang tidak kalah dengan software sekelas Protel ataupun OrCAD. Atau ada juga software simulasi seperti Ktechlab yang bisa menyimulasikan rangkaian elektronik yang kita gambar, bahkan Ktechlab ini bisa menyimulasikan mikrokontroler PIC!

Nah software tersebut saat ini sudah dipaketkan dalam satu distro linux tertentu dengan nama Ubuntu Electronics Remix (UER). UER ini berbasiskan Ubuntu 9.10 Karmic Koala. Software yang ada di dalam UER ini sama persis dengan Ubuntu 9.10 dan ditambahkan paket software elektronik. Tujuan dari dibuatnya distro linux ini adalah untuk membuat linux mudah digunakan untuk keperluan elektronika dan memromosikan penggunaan aplikasi elektronik yang 100% open source.

Aplikasi elektronik yang disediakan ngga cuma sedikit, beberapa dari aplikasi tersebut adalah:

  • Electric, VLSI design system
  • gEDA schematic editor
  • gEDA attribute editor
  • PCB designer
  • gResistor, resistor calculator
  • Gerber file viewer
  • Piklab, PIC development IDE
  • SDCC and GCC compilers
  • VHDL simulator
  • Verilog simulator
  • gwave, waveform viewer
  • KiCad, electronic schematic diagrams and printed circuit board artwork creator
  • Examples of circuits and code
  • Lots of code editors, such as Anjuta, Geany, Gedit, Emacs, Vi, nano, Kate or Kdevelop
  • Getting Started tutorial
  • Helper scripts for Verilog, VHDL, AVR and others

Banyak kan!?

Nah, tunggu apalagi? Kalau selama ini pakai software bajakan, cepetan ganti dengan software tersebut. Tapi kalau memang mau beli software komersial seperti Protel dan lain-lain ya bagus.

Nah itu kan linux, gimana kalau kita biasa pakai Windows? Ngga masalah! Beberapa software tersebut sudah di-porting ke Windows koq, bahkan ada juga yang sudah bisa dipakai di MacOS. (tapi Windows dan MacOS nya yang asli lho :-) Setahu saya KiCAD bisa digunakan di Windows, untuk software yang lain saya belum mencobanya.

Buat yang ingin mendapatkan Ubuntu Electronics Remix bisa unduh dari tempat berikut:


Untuk informasi lebih lanjut bisa buka link berikut:
http://ubuntuelectronicsremix.net/
http://news.softpedia.com/news/Introducing-Ubuntu-Electronics-Remix-9-10-132890.shtml

Selasa, 09 Februari 2010

Apa Sih Embedded System Itu?

Apa sih Embedded System itu? Yup, apakah ini pertanyaan yang pernah terlintas di benak kita? Mari saya paparkan sedikit tentang Embedded System ini. Sedikit saya terjemahkan dari Wikipedia.

Embedded System adalah suatu sistem komputer yang didesain untuk mengerjakan satu atau beberapa pekerjaan tertentu saja yang seringkali dipaksakan untuk bekerja secara real-time. Kata embedded sendiri bisa berarti ditanamkan, bisa berupa perangkat keras dan perlengkapan mekanik lainnya. Sebagai perbandingan, general-purpose computer, seperti Personal Computer (PC) didesain secara fleksibel untuk mengerjakan berbagai macam kebutuhan pengguna seperti mengetik, mendesain gambar, bermain, membuat program, dll.

Secara tidak sadar saat ini kita hidup di dunia serba embedded. Hand phone yang kita pakai, ATM di mall-mall, mesin cuci di rumah, bahkan layar televisi milik saya yang masih 14" itu pun termasuk embedded system.

Embedded system dikendalikan oleh satu atau lebih main processing cores seperti mikrokontroler atau suatu Digital Signal Processor (DSP). Karakteristik dari embedded system ini adalah dedikasinya dalam menangani perkerjaan tertentu yang membutuhkan prosesor yang handal.

Karena kekhususannya untuk menjalankan pekerjaan tertentu maka desainer embedded system ini dapat mengoptimasi, mengecilkan ukurannya, dan menurunkan harga dari embedded ini tanpa mengurangi kehandalan produknya. Beberapa dari embedded system diproduksi massal, terutama yang berkaitan dengan consumer product.

Jadi, dilihat secara kasat mata cakupan embedded system sangat luas, dimulai dari alat-alat elektronik portabel seperti jam digital dan hand phone sampai instalasi besar seperti lampu lalu lintas, pengendali di pabrik, atau sistem kendali nuklir. Kerumitannya juga bervariasi, dari sederhana dengan sebuah chip mikrokontroler, sampai yang paling rumit yang terdiri dari beberapa unit, perlengkapan, dan jaringan yang terhubung terhadapnya.

Nah, bisa ditangkap kan apa sebenarnya embedded system itu? Untuk penjelasan lebih detail mungkin nanti saya bahas di tulisan tersendiri.

Referensi: http://en.wikipedia.org/wiki/Embedded_system