Belajar Pemrograman STM32 menggunakan Arduino IDE

Spread the love

Arduino menjadi board pertama bagi banyak pengguna mikrokontroller (termasuk saya) dan pelajar, mahasiswa dan engineer ketika mereka mulai dengan elektronik. Namun, ketika kita mulai membangun lebih banyak dan menggali lebih dalam, kita akan segera menyadari bahwa Arduino belum banyak digunakan untuk industri dan karena merupakan CPU 8-bit maka kinerjanya dinilai kurang cepat. Sedangkan STM32F103C8T6 STM32 Development Board (Blue Pill) baru banyak di pasaran dengan harga yang terjangkau, sehingga banyak sekarang yang menggunakan nya untuk berbagai project yang mana STM32 merupakan CPU 32-bit dan arsitektur ARM Cortex M3. Ditambah lagi bahwa kita dapat menggunakan Arduino IDE yang sama untuk memprogram board STM32 kita. Jadi dalam tutorial ini, mari kita mulai dengan STM32 untuk mengetahui sedikit dasar-dasar tentang board ini dan mengedipkan LED on-board menggunakan Arduino IDE.

Bahan yang Dibutuhkan :

  • STM32 – Board Development (BluePill) (STM32F103C8T6)
  • Programmer FTDI
  • Breadboard
  • Kabel jumper
  • Laptop / PC

STM32 Development Board (Blue Phil) adalah sebuah Development Board untuk Mikrokontroler ARM Cortex M3. Untuk bentuk dan ukuran fisiknya, sepintas terlihat sangat mirip dengan Arduino Nano. Seperti terlihat pada gambar di bawah ini.

Board ini cukup murah dibandingkan dengan board Arduino resmi dan juga perangkat kerasnya open source. Mikrokontroler di dalamnya adalah STM32F103C8T6 dari STMicroelectronics. Selain Mikrokontroler, board ini juga menggunakan dua osilator kristal, satu adalah kristal 8MHz, dan yang lain adalah kristal 32 KHz, yang dapat digunakan untuk menggerakkan RTC internal (Real Time Clock). Karena itu, MCU dapat beroperasi dalam mode deep sleep sehingga ideal untuk aplikasi yang dioperasikan dengan baterai.

Karena MCU bekerja dengan 3.3V, board juga memiliki IC regulator tegangan 5V hingga 3.3V untuk memberi daya pada MCU. Meskipun MCU beroperasi pada 3.3V, sebagian besar pin GPIO-nya 5V toleran. Pin MCU ditarik keluar dengan rapi dan dihubungkan ke pin header. Ada juga dua LED on-board, satu (warna merah) digunakan untuk indikasi daya / power, dan yang lainnya (warna hijau) terhubung ke pin GPIO PC13. Board ini juga memiliki dua pin header yang dapat digunakan untuk beralih mode boot MCU antara mode pemrograman dan mode operasi, kita akan mempelajari lebih lanjut tentang ini nanti dalam tutorial ini.

Spesifikasi STM32F103C8T6

STM » adalah nama produsen STMicroelectronics
32 » adalah arsitektur ARM 32-bit
F103 » berdiri untuk menunjukkan bahwa arsitektur ARM Cortex M3
C » 48-pin
8 » Memori Flash 64KB
T » jenis paket adalah LQFP
6 » suhu pengoperasian -40 ° C hingga + 85 ° C

Berikut adalah spesifikasi Microcontroller ini :

  • Arsitektur : 32-bit ARM Cortex M3
  • Tegangan Pengoperasian : 2.7V hingga 3.6V
  • Frekuensi CPU : 72 MHz
  • Jumlah pin GPIO : 37
  • Jumlah pin PWM : 12
  • Pin input analog : 10 (12-bit)
  • Periferal USART : 3
  • Perangkat I2C : 2
  • Periferal SPI : 2
  • CAN 2.0 Periferal : 1
  • Timer : 3 (16-bit), 1 (PWM)
  • Memori Flash : 64KB
  • RAM: 20kB

STM32 Detail Pin

Pin-out lengkap dari boatd STM32 ditunjukkan di bawah ini. Seperti yang Anda lihat, masing-masing pin diberi label dengan rapi. Labelnya juga mirip dengan board Arduino Nano. Label G digunakan untuk menunjukkan pin ground, outpus 3.3V yang diatur 3.3V dan pin 5V dapat digunakan untuk memberi daya pada board atau mendapatkan + 5V jika didukung melalui micro USB. LED on-board terhubung ke pin PC13 pada Microcontrller.

Tidak seperti board Arduino, Development board STM32 harus secara manual diatur ke mode pemrograman menggunakan pin header jumper boot 1 dan boot 0. Posisi Boot 1 biasanya tidak terganggu. Tetapi jumper boot 0 harus ditetapkan sebagai 3.3V untuk mode pemrograman dan diatur ke ground untuk mode operasi. Kita akan mempelajari lebih banyak tentang itu ketika kita mengunggah program ke board.

Bagaimana cara memprogram Board STM32

STM32 merupakan mikrokontroler dari keluarga STMicroelectronics. Jadi semua metode yang ada untuk memprogram chip ARM dapat digunakan untuk papan STM32 juga. Salah satu IDE terkenal dan umum digunakan adalah Keil ARM MDK dan selain itu kita juga dapat menggunakan IAR, Atollic TrueStudio, MicroC Pro ARM, ARM Crossworks, Ride 7, PlatformIO + STM32 dll.

Namun yang membuat board ini sangat populer adalah kemampuannya untuk diprogram dengan Arduino IDE. Dengan cara ini orang dapat memulai dan membangun proyek dengan STM32 dalam waktu singkat karena banyak yang sudah terbiasa dengan Arduino IDE dan bahasa pemrograman yang mudah digunakan dan banyak dukungan library yang tersedia. Untuk itu dalam tutorial ini kita akan menggunakan IDE Arduino untuk memulai dengan STM32.

Diagram Sirkuit

Untuk memprogram papan STM32 langsung dari Arduino IDE kita perlu menggunakan modul USB to Serial TTL seperti Serial FTDI, PL2030 atau CH340. Modul USB to serial ini dihubungkan ke pin Rx dan Tx dari STM32 seperti yang ditunjukkan di bawah ini.

Pin Vcc modul FTDI terhubung ke pin STM32 5V power board. Ground terhubung ke Ground of STM32. Pin Rx dan Tx pada papan FTDI masing-masing terhubung ke pin A9 dan A10 dari STM32. Di mana A9 adalah pin Tx dari STM32 MCU dan A10 adalah pin Rx.

Mempersiapkan Arduino IDE untuk STM32

Ikuti langkah-langkah di bawah ini untuk mengunduh dan menyiapkan Arduino IDE untuk digunakan dengan papan Pengembangan STM 32.

Langkah 1: – Jika Anda belum menginstal Arduino IDE, unduh dan instal dari tautan ini. Pastikan Anda memilih sistem operasi yang benar.

Langkah 2: – Setelah Menginstal Arduino IDE buka dan unduh paket yang diperlukan untuk papan STM32. Ini dapat dilakukan dengan memilih File -> Preferences.

Langkah 3: – Mengklik Preferensi akan membuka kotak dialog yang ditunjukkan di bawah ini. Di kotak teks URL Boards Manager tambahan tempel tautan di bawah ini :

dan tekan OK.

Langkah 4: – Sekarang pergi ke Tools -> Board -> Board Manajer. Ini akan membuka kotak dialog Boards manager, mencari “STM32F1” dan menginstal paket yang muncul.

Langkah 5: – Setelah paket, instalasi selesai. Pergi ke Tools dan geser ke bawah untuk menemukan seri Generic STM32F103C seperti yang ditunjukkan di bawah ini. Kemudian pastikan variannya adalah tipe 64kFlash, kecepatan CPU adalah 72MHz dan ubah metode upload ke Serial.

Langkah 6: – Sekarang, hubungkan board FTDI Anda ke komputer dan periksa port COM yang mana board FTDI terhubung menggunakan device manager. Kemudian, pilih nomor port yang sama di Tools-> Port

Langkah 7: – Setelah semua perubahan dilakukan, periksa sudut kanan bawah Arduino IDE dan Anda akan melihat pengaturan berikut sedang diatur. Papan FTDI saya terhubung ke COM7 tetapi milik Anda mungkin berbeda.

Sekarang Arduino IDE siap memprogram STM 32 Blue Pill Development Boards.

Mengunggah Program Sampel Blink ke STM32

Mari kita unggah Program Sampel Blink dari Arduino IDE ke STM32 Blue Pill board untuk memastikan semuanya bekerja dengan baik. Contoh program dapat ditemukan di

Pada contoh program yang terbuka, kita harus membuat perubahan kecil. Secara default program ini akan ditulis untuk PB1 tetapi di papan kami LED on-board terhubung ke PC13 jadi gantilah semua PB1 dengan PC13 dan kami baik untuk melanjutkan. Program contoh lengkap yang dimodifikasi juga dapat ditemukan di bagian bawah halaman ini.

Kode di dalam fungsi loop saja ditunjukkan di bawah ini, di mana kita dapat melihat bahwa pin PC13 tetap TINGGI (aktif) selama 1000 milidetik dan kemudian mematikan RENDAH (mati) untuk 1000 milidetik lainnya dan ini dilakukan untuk waktu tak terbatas karena berada dalam fungsi loop. Dengan demikian LED tampak berkedip dengan interval 1000 milidetik.

digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second

Seperti yang diceritakan sebelumnya, STM32 Board harus dimasukkan ke mode pemrograman sebelum mengunggah program apa pun, untuk melakukan ini, letakkan jumper boot 0 di posisi bawah. Posisi Jumper untuk mode Pemrograman dan mode Operasi ditunjukkan di bawah ini.

Sekarang, untuk mengunggah program, pastikan jumper boot 0 dalam mode pemrograman seperti yang ditunjukkan di atas dan kemudian tekan tombol Reset. Segera setelah Anda menekan tombol atur ulang papan akan masuk ke mode pemrograman dan LED hijau akan dimatikan, ini menunjukkan bahwa papan siap untuk diunggah. Tekan tombol unggah pada Arduino IDE dan program Anda harus dikompilasi dan diunggah. Jika semuanya berjalan seperti yang diharapkan maka Anda akan melihat yang berikut di konsol IDE Arduino atau Anda.

Catatan: Terkadang Arduino IDE akan menampilkan Pengunggahan yang telah dilakukan meskipun program tidak berhasil diunggah. Jadi seret buka konsol Anda untuk memeriksa persentase alamat tulis (teks berwarna oranye) untuk memastikan Pengunggahan berhasil dilakukan.

Jika Program telah berhasil diupload maka akan terlihat LED Hijau berkedip pada interval 1 detik seperti yang ditunjukkan dalam video di bawah ini. Anda juga bisa mencoba-coba dengan program ini untuk menambah atau mengurangi delay.

Setelah mengupload program, boot 0 harus diubah kembali ke mode pengoperasian sehingga saat berikutnya ketika Board dinyalakan, program yang diunggah mulai dijalankan secara otomatis. Mode pemrograman dan posisi mode operasi ditunjukkan pada gambar di atas.

Semoga Anda mengerti tutorialnya dan bermanfaat untuk memulai dengan STM32 Board. Jika Anda memiliki masalah tinggalkan di bagian komentar, katakan juga proyek apa yang harus kami coba dengan board STM32 ini.

Code Program

/*
 Sample STM32 Blink Program for Blue Pill board 
 */

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin PC13 as an output.
  pinMode(PC13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Selain belajar pemrograman STM32 dengan Arduino IDE seperti yang sudah diuraikan, kita juga bisa belajar pemrograman STM32 dengan menggunakan aplikasi dari STMicroelectronics langsung yang bisa dipelajari pada artikel berikut :

Pemrograman STM32 Menggunakan Keil uVision & STM32CubeMX

+++++++ Semoga Bermanfaat +++++++

2 Komentar

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*