Sabtu, 24 Desember 2011

TUTORIAL KEIL UNTUK STM32

keil uvision4


tidak fair kalo saya membuat artikel tentang menginstal keil tetapi tidak menjelaskan bagaimana membuat program di keil. karena saya menggunakan STM32, maka saya menulis tentang tutorial keil untuk STM32.
ingat kan waktu kita belajar pemograman pada ATMEGA 8535, kita bias enak belajarnya karena sudah ada buku yang berbahasa Indonesia. sepertinya akan lama kalo kita harus menunggu buku tentang STM32F10x keluar karena STM32 mempunyai banyak sekali peripheral dan aplikasi yang luas. buku-buku yang membahas pemograman pada mcu biasanya berisi register-register pada mcu yang berfungsi untuk setting peripheral dari mcu itu sendiri, penjelasan tentang definisi dan kegunaan dari peripheral, dan masuk ke step-step yang harus dilakukan pada compiler baik dengan statement list dan configuration wizard seperti pada codevision.

PILIHAN BOOTING PADA STM32F10x

kembali tentang mcu canggih ARM CM-3 keluaran ST, STM32F10x. STM32F10x menyediakan 3 opsi booting memory untuk kemudahan penggunanya. opsi booting memory ini dapat dikonfigurasi dari logic pada pin BOOT0 dan BOOT1. opsi booting memory yang diinginkan ini kemudian akan aktiv setelah menekan tombol reset.

tabel konfigurasi

Jumat, 02 Desember 2011

VARIABEL VOLATILE DALAM C

di pemrograman komputer, khususnya di C, C++ dan C#, suatu variabel atau objek yang dideklarasikan dengan keyword volatile biasanya memiliki properti khusus berkaitan dengan optimalisasi dan/atau threading. dalam bahasa umum, keyword volatile ditujukan untuk mencegah (pseudo) compiler dari penerapan optimalisasi apapun pada kode yang mengasumsikan nilai variabel-variabel tidak dapat berubah “oleh mereka sendiri”
definisi aktual dan aplikabel dari keyword volatile seringkali disalah-artikan dalam konteks bahasa C, dan karena C++, C# dan Java  “mewarisi” volatile dari bahasa C, ada perbedaan besar dalam hal semantik dan penggunaan volatile pada masing-masing bahasa pemrogramman tersebut. maka kita akan membahas konteks keyword volatile dalam C.
dalam bahasa C dan C++, variabel volatile merupakan variabel yang nilainya dapat berubah karena faktor eksternal. dari fakta, hanya ada 3 macam faktor eksternal yang dapat mengubah nilai variabel, yaitu:
  • memory-maped io (baca: alamat memory yang dipetakan untuk io, contoh di mcu 8051 pin 0 memiliki alamat 0x80).
  • variabel global yang nilainya berubah karena interrupt service routine.
  • variabel global dalam aplikasi multi-threaded.

Rabu, 30 November 2011

JENIS-JENIS VARIABEL DALAM BAHASA C

dalam menulis program bahasa c, kita pernah mengalami program yang kita buat baru bisa jalan kalo interupt nya didisable, atau task yang satu baru bisa jalan kalo task yang lain didisable. problem-problem seperti ini bisa terjadi karena kesalahan dalam penggunaan jenis variabel.

dalam bahasa c jenis variabel dibedakan menjadi empat macam yaitu variabel otomatis, statis, eksternal, dan register.

1) variabel otomatis

penjelasan:
variabel otomatis adalah variable yang hanya dikenal di dalam suatu blok saja (dalam tanda {…}), baik itu blok pemilihan, pengulangan ataupun fungsi. dikatakan ‘otomatis’ karena variable ini dialokasikan pada saat pendeklarasian dan akan didealokasikan secara otomatis ketika program keluar dari suatu blok. walaupun bersifat opsional, namun untuk mempertegas bahwa variable tersebut sebagai variable otomatis, kita dapat menggunakan kata kunci auto pada saat pendeklarasian.
syntax:
auto tipe_data nama_variabel

Rabu, 02 November 2011

CARA MENGINSTAL REALVIEW MICROCOTROLLER DEVELOPMENT KIT ARM

dari yang kita tau dari artikel sebelumnya, terdapat dua jenis file yaitu mdk arm dan rl-arm. Singkatnya mdk arm berfungsi untuk menambahkan device database, compilation tools (rvct), contoh program dll, sedangkan rl-arm berfungsi menambahkan fitur dan debug program untuk fitur-fitur RTX, TCP/IP, File Flash System, USB interface device, dan CAN interface pada mcu jenis arm.

setiap dua atau tiga bulan keil selalu mengeluarkan versi terbaru untuk mdk arm dan rl-arm, contohnya untuk keil uvision 4 ada mdk 4.00, rl-arm 4.00, mdk 4.01, rl-arm 4.01, dan seterusnya sampai sekarang yang terbaru yaitu mdk 4.13a dan rl-arm 4.13. mulai versi mdk 4.20, keil memperkenalkan mdk professional, yaitu mdk arm dan rl-arm dalam satu paket. sampai saat ini versi yang terbaru yaitu mdk 4.22a. mdk 4.22a ini sudah support device database stm32f407vgt6, yaitu mcu keluaran stmicroelectronics yang berbesasis arm cortex-m4 yang sudah ada interface kamera digitalnya. lebih lengkapnya liat dimari http://www.keil.com/update/relnotes/MDK422a.htm

Senin, 31 Oktober 2011

KEIL REALVIEW MICROCONTROLLER DEVELOPMENT KIT

fungsi-fungsi di dalam mdk arm


software realview microcontroller development kit (mdk arm) ini menggabungkan compiler c/c++ arm realview IDE dan keil uvision. di dalam environment software ini sudah terdapat fungsi project management, source code editing, program debugging, flash programming dan lain-lain untuk kemudahan dalam menggunakan mikrokontroler berbasis arm7, arm9, cortex-m3 keluaran nxp, samsung, sharp, ti, stmicroelectronics, freescale dan atmel. mdk arm merupakan tool yang ideal untuk aplikasi di dunia industri standar dengan fungsi debugging yang dikembangkan dan dukungan untuk aplikasi riil-time

Sabtu, 29 Oktober 2011

FITUR-FITUR ARM CORTEX-M3

untuk mempermudah membaca datasheet mcu jenis arm, akan lebih seru kalo kita tahu dulu penjelasan fitur-fitur yang disediakan oleh mcu ini. berikut adalah penjelasan dari fitur-fitur yang disediakan mcu jenis arm cortex-m0 yang banyak digunakan saat ini.
Nested vector interrupt controller (nvic)
nvic adalah peripheral yang mengatur interrupt arm cortex-m (arm cortex m0, arm cortex m1, arm cortex m3, arm cortex m4). nvic mengatur prioritas interrupt, mengaktifkan/menonaktifkan interrupt, menyimpan isi register-register arm cortex-m ke memori stack ketika prosesor memasuki interrupt handler, dan mengembalikan isi register-register arm cortex-m dari memori stack ketika prosesor keluar dari interrupt handler.
System control block (scb)
scb adalah peripheral yang digunakan untuk mengatur mode prosesor. scb menyediakan berbagai info untuk program pengguna (seperti cpu id, konfigurasi memori big/little endian, nomor interrupt yang saat ini ditangani, dan sebagainya)

Jumat, 28 Oktober 2011

MCU BERBASIS ARSITEKTUR ARM

arsitektur mikrokontroler (mcu) jenis arm adalah mcu berteknologi 32-bit reduce instruction set computer (risc) yang dikembangkan oleh arm holdings. dalam teknologi risc, sebagian besar instruksi dieksekusi dalam 1 siklus clock. beda sama mcu 8051 yang dieksekusi selama 1 sampai 4 siklus mesin, dimana 1 siklus mesin membutuhkan 12 periode clock. ini berarti jika sama-sama menggunakan clock 12 Mhz, dalam satu detik mcu jenis arm akan mengeksekusi rata-rata 12 juta instruksi sedangkan mcu 8051 akan mengeksekusi rata-rata 1 juta instruksi. perbedaan tersebut disebabkan 8051 berteknologi complex instruction set computing (cisc). arsitektur yang sederhana dari arm memungkinkan untuk aplikasi yang membutuhkan daya rendah sehingga banyak digunakan untuk aplikasi embedded software. daya yang dipakai yaitu 3,6 V setara dengan baterai hp. ajib gak tu, sebagai perbandingan atmega8535 yang biasa kita pakai membutuhkan daya 5 V untuk beroperasi.

LQFP
BGA