Mikrokontroler Turunan

Saat ini, begitu banyak pengembang mengembangkan turunan dari mikrokontroler yang ada, untuk tujuan kemudahan dalam penggunaan. Pola yang digunakan dalam “menciptakan” mikrokontroler turunan ini umumnya sama, yaitu menanam sebuah firmware khusus sehingga bisa bekerjasama dengan development tool berupa IDE – Integrated Development Environment dan compiler, yang dikembangkan bersamaan, agar saling mendukung. Jadi, pengembangannya dilakukan di dua sisi, sisi mikrokontroler dalam bentuk firmware dan sisi komputer berupa IDE dan compiler untuk pemrogramannya.

Kelemahan umum dari mikrokontroler turunan ini adalah, tidak bisa keluar dari pakem atau aturan yang telah ditentukan sejak semula oleh pengembangnya. Misalnya, bila mikrokontroler turunan tersebut fokus pada pemrograman dengan Bahasa BASIC, maka dia tidak bisa diprogram dengan cara lain. Pemrogramannya pun harus menggunakan resources yang disediakan oleh pengembang.

Dari statistik, turunan dari mikrokontroler PIC dari Microchip adalah yang paling banyak. Dua yang cukup populer adalah BASIC Stamp dan PICAXE. Keduanya menggunakan Bahasa BASIC sebagai rujukan. Di satu sisi, keduanya menawarkan kemudahan, dan memang kenyataannya cukup mudah dan nyaman untuk pengguna pemula. Namun di sisi lain, saat kita memikirkan cara yang berbeda untuk memprogramnya, itu tidak bisa dilakukan. Firmware yang ada di dalamnya sudah dikunci dan hanya mengerti token yang dikirimkan oleh IDE terkait.

Pada BASIC Stamp, “compiler” di sisi komputer meng-kompilasi source code ke dalam bentuk token. Token-token tersebut dikirim ke mikrokontroler BASIC Stamp untuk disimpan dalam EEPROM eksternal, kemudian diterjemahkan dan di-eksekusi saat program dipanggil. Mekanisme yang digunakan masih seperti BASIC pada awalnya, yakni interpreter.

PICAXE sudah menggunakan konsep compiler. Yang dikirim ke dalam chip sudah berbentuk machine code yang siap di-eksekusi. PICAXE hanya berupa single chip – berbeda dengan BASIC Stamp yang berupa rangkaian – yang di dalamnya sudah ditanam sebuah firmware, namun masih menyisakan sejumlah ruang untuk program yang kita kembangkan, yang ditempatkan dalam sebuah eeprom eksternal.

Contoh lain dari turunan mikrokontroler PIC adalah OOPIC. Mikrokontroler ini menerapkan konsep OOP – Object Oriented Programming berbasis Bahasa BASIC di sisi pemrogramannya. Dengan demikian, mereka yang terbiasa dengan Visual Basic, diharapkan, bisa lebih cepat menguasainya. Skema / rangkaiannya mirip dengan BASIC Stamp. Ada EEPROM eksternal untuk menyimpan object code hasil kompilasi yang dikirim dari komputer, dan dalam flash internal-nya sudah ditanam firmware yang sesuai dengan tujuan pengembangnya. Sama seperti BASIC Stamp dan PICAXE, OOPIC tidak bisa diprogram dengan cara lain, selain yang didukungnya. Saat ini OOPIC mendukung Bahasa BASIC, Java dan C.

IDE yang disediakan vendor-vendor di atas umumnya free, namun tanpa menggunakan perangkat yang mendukungnya, software tersebut tidak berguna.

Untuk mikrokontroler AVR, saya hanya mencatat satu turunan yang cukup populer, namun masih kalah populer dibanding turunan PIC; yang mengusung isu open source, yakni Arduino. Pemrogramannya menggunakan Bahasa C yang sedikit di-modifikasi untuk mencapai target kemudahan, serta menggunakan C compiler GCC yang juga open source, yang bisa run di Windows maupun Linux. Arduino menggunakan konsep yang berbeda dibanding turunan PIC di atas. Di dalam flash-nya tidak ditanam firmware yang spesifik. Jadi, program yang kita buat bisa disimpan dalam flash internal. Yang ditanam di dalamnya hanyalah sebuah bootloader, yang berisi sejumlah inisialisasi. Selebihnya tidak ada yang istimewa. Versi terakhir Arduino menggunakan ATmega168.

Dari contoh-contoh di atas, kita bisa melihat, bahwa banyak pengembangan dilakukan untuk “memanjakan” pengguna, sehingga bisa lebih produktif. Untuk aplikasi yang memerlukan waktu penyelesaian yang singkat, menggunakan mikrokontroler turunan jelas merupakan pilihan yang disarankan. Memang ada extra cost yang harus dibayarkan, namun itu sebanding atau bahkan lebih rendah dibanding time saving yang kita dapatkan.

Namun, untuk sebuah fleksibilitas, mikrokontroler “original” tetap merupakan pilihan, karena tidak tergantung pada vendor tertentu, kecuali produsennya 🙂