Jika sebelum ini catatan yang saya unggah adalah mengenai STM8S103F3P6 (STM8) maka untuk catatan ini giliran mikrokontroler STM32F103C8T6. Sekalipun sama-sama produksi STMicroelectronics, arsitektur keduanya berbeda. STM32F103C8T6 adalah bagian dari keluarga STM32, μC 32-bit yang core prosesornya bukan berasal dari rancangan ST sendiri (seperti STM8), melainkan mengadopsi arsitektur dasar dari ARM. Tepatnya ARM®Cortex®-M3 32-bit RISC core [link]. Lebih jauh tentang ini nanti akan diungkapkan di artikel lain.
Untuk artikel ini, akan coba diungkap pengujian cepat pada sistem STM8S103F3P6 yang merupakan papan Maple Mini atau yang kompatibel. Ini mirip dengan Arduino (Uno/Zero/Mega/Micro/Nano) yang sebenarnya mempergunakan mikrokontroler Atmel AVR. Untuk Maple Mini ini pun sama, bahkan kalau melihat IDE-nya maka pengguna akan segera ingat dengan IDE milik Arduino (tentu jika sudah pernah melihat sebelumnya).
Berdasarkan penanda pada papan, Maple Mini clone yang saya miliki sepertinya diproduksi oleh Baite. Papan ini clone ini menggunakan bootloader asli dari LeafLabs. Produk asli dari LeafLabs (Maple Mini) sepertinya sudah tidak diproduksi lagi.
Gambar 2. [image credit: lincomatic.com]
Gambar 3. [image credit: lincomatic.com]
Berbeda dengan papan Arduino (dan clone-nya), cara pemrograman clone dari Maple Mini ini agak “unik” jika menggunakan STM32duino (Arduino IDE) maupun Maple IDE v.0.0.12 (dibangun dari Arduino 0018). Menurut Roger Clark, untuk pemrograman dari OS GNU/Linux papan Maple Mini ini perlu perlakuan khusus agar dapat diprogram dengan baik. Setelah tombol reset pada papan ditekan, saat lampu led masih berkedip cepat maka pengguna harus segera menekan-tahan tombol yang lain. Saat led mulai berkedip pelan, pengguna bisa melepas tombol tadi. Indikator keberhasilan prosedur ini akan mudah dilihat jika sistem tidak berisi kode program led berkedip (blinking). Pada kondisi normal, setelah tobol reset ditekan lalu dilepas, led akan berkedip dalam dua tahap. Tahap cepat lalu tahap lambat, kemudian led akan padam. Jika pengguna sukses melakukan prosedur sebagaimana yang dikemukakan di atas maka saat tahap led berkedip cepat, led kemudian akan terus berkedip lambat dan tidak berhenti.
Before each upload the board needs to be put into “Perpetual bootloader” mode.
- Press the reset button (it’s the button labeled RESET). The board should blink quickly 6 times, then blinks slowly a few more times, then stop flashing (unless it has a sketch loaded that flashes the LED)
- Press reset again, and this time push and hold the other button during the 6 fast blinks (the normal button is labeled BUT). You can release it once the slow blinks start.
Someone did a Youtube video of this http://youtu.be/rvNIeKuXsxM
Pemantauan bisa jadi lebih mudah jika di sistem anda juga anda install sendiri program dfu-util.
$ sudo apt-get install dfu-util
Jika papan sedang tidak berada dalam mode “perpetual bootloader” maka hasil tampilan akan seperti pada Gambar 4.
Sedangkan jika papan berhasil dibuat berada dalam mode perpetual bootloader, terus menerus sampai IDE mengirim sinyal reset, maka tampilan akan seperti pada Gambar 5.
Selain itu jangan lupa juga untuk mengatur file konfigurasi udev. Jika perlu buar file baru (gunakan sudo jika perlu akses sebagai admin) /etc/udev/rules.d/45-maple.rules . Mengacu sumber inilah seharusnya isi file tersebut.
ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="664", GROUP="dialout" ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="664", GROUP="dialout" ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="dialout" SYMLINK+="maple" ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="dialout" SYMLINK+="maple"
Selain dengan cara memasukkan sistem papan ke “perpetual bootloader mode” ada cara lain yang berhasil saya coba. Caranya adalah setelah melakukan perintah upload dari IDE, maka akan ada pesan di IDE; “Uploading to I/O Board”. Proses akan seperti terhenti, hang. Pada saat itulah saya menekan tombol reset di papan mikrokontroler hingga program selesai di-upload (diunggah).
Listing program kosong, jika diperlukan.
Gambar 8. Pemrograman menggunakan Arduino IDE (menggunakan STM32duino)
Untuk pemrograman dengan Arduino IDE 1.6.10 ada tantangan tambahan jika mempergunakan cara hanya menekan tombol reset satu kali untuk memprogram. Berbeda dengan Maple IDE yang berbasis pada Arduino IDE yang lama, pada Arduino IDE yang baru ini penguna harus lebih sigap, cepat dalam hal menekan tombol reset pada papan Maple Mini. Tidak terdapat saat “menunggu” seperti pada Maple IDE, jika terlambat menekan maka proses uploading akan langsung dinyatakan gagal dan pesan kesalahan akan tampil.
Proses instalasi STM32duino sendiri cukup mudah, menurut situs sumber [link];
- Copy the Arduino_STM32 folder to the hardware folder in your Arduino sketches folder . If the hardware folder does not exist, please create one.
- Run the udev rules installation script in tools/linux/install.sh
- Note. If you are uploading via USB to Serial or STLink etc, you may need to set the relevant permissions for your specific upload device in order to be able to use it from within the Arduino IDE. You may also need to change the udev rules for the device in question.
Untuk pengujian cepat seperti ini maupun untuk prototyping, fasilitas penggunaan bootloader dan penggunaan Arduino IDE sangatlah mempermudah. Selain itu sistem berbasis mikrokontroler STM32F103C8T6 (keluarga ARM® Cortex® -M3 32-bit) yang telah diberi Maple-bootloader (versi original) dan dapat diprogram dengan Arduino IDE ini juga menarik sebagai bahan belajar awal arsitektur mikrokontroler modern.
Adapun pin mapping dari Maple Mini ini dapat di lihat di link ini atau lebih lengkap lagi di link ini. Dokumentasi skematik dan pcb Maple Mini terdapat di GitHub.
Sumber belajar Maple Mini dari halaman lama LeafLabs dapat diakses di sini: LeafLabs Documentation Index.