KUNJUNGI KAMI

KUNJUNGI KITA DI BUKALAPAK, TOKOPEDIA DAN SHOPEE

Memprogram STM32 (Blue Pill) menggunakan Arduino IDE

 

Memulai dengan Papan Pengembangan STM32 (STM32F103C8T6) menggunakan Arduino IDE
Memulai dengan Board Pengembangan STM32 (STM32F103C8T6) menggunakan Arduino IDE

Arduino akan menjadi pilihan pertama bagi banyak penghobi (termasuk saya) dan insinyur ketika mereka memulai dengan elektronika. Namun, ketika kita mulai membangun lebih banyak proyek dan menggali lebih dalam, kita akan segera menyadari bahwa Arduino tidak siap untuk kebutuhan industri dan CPU 8-bitnya dengan kecepatan clock yang sangat lambat tidak memberikan daya yang cukup untuk proyek-proyek kita. Namun, beruntunglah kita sekarang memiliki board pengembangan STM32F103C8T6 (Blue Pill) STM32 yang baru di pasaran, yang dapat dengan mudah mengungguli Arduino dengan CPU 32-bit dan arsitektur ARM Cortex M3-nya. Keuntungan lainnya adalah kita dapat menggunakan Arduino IDE yang sama untuk memprogram STM32 Boards kita. Jadi dalam tutorial ini, mari kita mulai dengan STM32 untuk mengetahui dasar-dasar tentang board ini dan membuat LED bawaan berkedip menggunakan Arduino IDE.

Selain board STM32 Blue Pill yang digunakan dalam tutorial ini, ada banyak board STM32 populer lainnya seperti board pengembangan STM32 Nucleo. Jika Anda tertarik, Anda juga dapat melihat ulasan tentang board STM32 Nucleo 64 dan jika Anda ingin belajar cara menggunakannya dan memprogramnya menggunakan STM32 CubeMX dan TrueStudio, Anda dapat melihat tutorial untuk memulai dengan STM32 Nucleo64.

Bahan yang Dibutuhkan:

1. STM32 – (BluePill) Development Board (STM32F103C8T6​)

2. Programmer FTDI

3. Breadboard 

4. Kawat Penghubung

5. Laptop dengan Koneksi Internet

Pengenalan tentang Board STM32 (Blue Pill)

Board STM32, juga dikenal sebagai Blue Pill, adalah Board pengembangan untuk Mikrokontroler ARM Cortex M3. Board ini terlihat mirip dengan Arduino Nano namun memiliki kinerja yang lebih tinggi. Board pengembangan ini ditunjukkan di bawah ini.

Board-board ini sangat murah dibandingkan dengan board Arduino resmi dan juga perangkat kerasnya bersifat sumber terbuka. Mikrokontroler yang digunakan pada board ini adalah STM32F103C8T6 dari STMicroelectronics. Selain mikrokontroler, board ini juga memiliki dua osilator kristal, satu adalah kristal 8MHz, dan yang lainnya adalah kristal 32 KHz, yang dapat digunakan untuk menggerakkan RTC internal (Real Time Clock). Karena fitur ini, MCU dapat beroperasi dalam mode tidur yang dalam sehingga ideal untuk aplikasi yang menggunakan baterai.

Karena MCU beroperasi dengan tegangan 3,3V, board ini juga dilengkapi dengan IC regulator tegangan 5V hingga 3,3V untuk mensuplai daya ke MCU. Meskipun MCU beroperasi pada 3,3V, sebagian besar pin GPIO-nya tahan terhadap 5V. Pin-pin MCU tertata rapi dan diberi label sebagai pin header. Terdapat juga dua LED onboard, satu (berwarna merah) digunakan untuk indikasi daya, dan yang lainnya (berwarna hijau) terhubung ke pin GPIO PC13. Board ini juga memiliki dua pin header yang dapat digunakan untuk mengubah mode boot MCU antara mode pemrograman dan mode operasi, kita akan mempelajari lebih lanjut tentang ini nanti dalam tutorial ini.

Beberapa orang mungkin bertanya-tanya mengapa board ini disebut sebagai "Blue Pill" (Pil Biru), sejujurnya saya tidak tahu. Mungkin karena board ini berwarna biru dan dapat meningkatkan performa proyek Anda, seseorang mengusulkan nama ini dan namanya tetap begitu. Ini hanya asumsi dan saya tidak memiliki sumber untuk mendukungnya.

Spesifikasi STM32F103C8T6

Mikrokontroler ARM Cortex M3 STM32F103C8 yang  digunakan dalam board Blue Pill. Berbeda dengan nama "Blue Pill", nama Mikrokontroler STM32F103C8T6 memiliki makna di baliknya

  • STM » adalah singkatan dari nama produsen, STMicroelectronics.
  • 32 » adalah singkatan dari arsitektur ARM 32-bit.
  • F103 » menandakan bahwa arsitektur ini adalah ARM Cortex M3.
  • C » 48-pin.
  • 8 » memiliki 64KB Flash memory.
  • T » tipe kemasan adalah LQFP.
  • 6 » rentang suhu operasi -40°C hingga +85°C.
Sekarang mari kita lihat spesifikasi dari Mikrokontroler ini.

Arsitektur: 32-bit ARM Cortex M3

Tegangan Operasi: 2.7V hingga 3.6V

Frekuensi CPU: 72 MHz

Jumlah pin GPIO: 37

Jumlah pin PWM: 12

Pin Input Analog: 10 (12-bit)

Peripheral USART: 3

Peripheral I2C: 2

Peripheral SPI: 2

Peripheral Can 2.0: 1

Timer: 3 (16-bit), 1 (PWM)

Flash Memory: 64KB

RAM: 20KB

Jika Anda ingin mengetahui lebih banyak tentang fitur teknis dari Mikrokontroler ini, Anda dapat merujuk ke Datasheet-nya. Anda juga mungkin tertarik dengan Manual Referensi dan Lembaran Errata dari Mikrokontroler ini yang juga terdapat dalam tautan tersebut.

Rincian Pin STM32

Seluruh pin-out board STM32 Blue Pill ditampilkan di bawah ini. Seperti yang dapat Anda lihat, setiap pin diberi label dengan rapi. Penyandian juga mirip dengan board Arduino. G digunakan untuk menandakan pin ground, 3.3V menghasilkan tegangan 3.3V yang teratur, dan pin 5V dapat digunakan untuk mensuplai daya ke board atau mendapatkan +5V jika ditenagai melalui micro USB. LED onboard terhubung ke pin PC13 pada Mikrokontroler.



Berbeda dengan board Arduino, board pengembangan STM32 harus diatur secara manual ke mode pemrograman menggunakan kabel jumper boot 1 dan boot 0. Posisi Boot 1 biasanya tidak diubah. Namun, kabel jumper boot 0 harus diatur ke 3.3V untuk mode pemrograman dan diatur ke ground untuk mode operasi. Kita akan mempelajari lebih lanjut tentang ini ketika kita mengunggah program ke board kita.


Pemrograman STM32 Blue Pill - Cara Memprogram STM32F103C8T6

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

Namun yang membuat board ini sangat populer adalah kemampuannya untuk diprogram dengan Arduino IDE. Dengan cara ini, orang-orang dapat memulai dan membangun proyek dengan STM32 dengan cepat karena banyak yang sudah familiar dengan Arduino IDE dan bahasanya yang mudah digunakan serta library yang tersedia secara luas. Jadi dalam tutorial ini, kita akan menggunakan Arduino IDE untuk memulai dengan STM32F103C8T6.


Diagram Sirkuit

Untuk memprogram board STM32 Blue Pill langsung dari Arduino IDE, kita perlu menggunakan board Serial FTDI. Board ini terhubung ke pin Rx dan Tx dari STM32 seperti yang ditunjukkan di bawah ini.




Pin Vcc dari board FTDI terhubung ke pin 5V STM32 untuk mensuplai daya ke board. Ground terhubung ke Ground STM32. Pin Rx dan Tx dari board FTDI terhubung ke pin A9 dan A10 STM32 masing-masing. Di mana A9 adalah pin Tx dari MCU STM32 dan A10 adalah pin Rx.


Memprogram STM32 melalui Board Micro USB tanpa Serial

Anda mungkin bertanya-tanya mengapa kami tidak menggunakan port micro-USB untuk memprogram board seperti board Arduino lainnya. Sebenarnya, kami dapat melakukannya, tetapi untuk tutorial ini kami memilih untuk tidak melakukannya. Board pengembangan STM32 Blue Pill saat dibeli tidak dilengkapi dengan bootloader untuk membuatnya kompatibel dengan Arduino IDE. Namun, bootloader ini dapat diprogram ke board STM32 dan kemudian port micro-USB dapat langsung digunakan untuk mengunggah program. Tetapi saat dokumentasi artikel ini dibuat, bootloader ini memiliki beberapa bug dan masih dalam tahap pengembangan. Jika Anda ingin informasi lebih lanjut, Anda dapat melihat artikel tentang Memrogram STM32 Blue Pill menggunakan port USB.

Mempersiapkan Arduino IDE untuk STM32 (Blue Pill)

Ikuti langkah-langkah di bawah ini untuk mengunduh dan mempersiapkan Arduino IDE agar dapat digunakan dengan board pengembangan STM32.


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 board STM32. Ini dapat dilakukan dengan memilih File -> Preferences.

Langkah 3: Klik pada Preferences akan membuka kotak dialog yang ditunjukkan di bawah ini. Di dalam kotak teks Additional Boards Manager URL, tempelkan tautan berikut:


dan tekan OK.


Langkah 4: Sekarang pergi ke Tool -> Boards -> Board Manager. Ini akan membuka kotak dialog Boards manager, cari "STM32F1" dan instal paket yang muncul.

Langkah 5: Setelah instalasi paket selesai, pergi ke menu Tools dan gulir ke bawah untuk menemukan Generic STM32F103C series seperti yang ditunjukkan di bawah ini. Pastikan varian yang dipilih adalah 64kFlah, kecepatan CPU adalah 72MHz, dan ubah metode unggah ke Serial.


Langkah 6: Sekarang, hubungkan board FTDI ke komputer dan periksa ke port COM 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 dari Arduino IDE dan Anda akan melihat pengaturan berikut telah diatur. Board FTDI saya terhubung ke COM7, tetapi nomor port Anda mungkin berbeda.


Sekarang Arduino IDE siap untuk memprogram board pengembangan STM32 Blue Pill.

Mengunggah Kode Contoh untuk stm32f103c8t6

"Mari kita unggah Program Blink Contoh dari Arduino IDE ke board STM32 Blue Pill untuk memastikan semuanya berfungsi dengan baik. Program contoh tersebut dapat ditemukan di"


Kode Bahasa C/C++ dalam Kotak HTML
        
            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 telah dijelaskan sebelumnya, board STM32 harus ditempatkan dalam mode pemrograman sebelum mengunggah program apa pun. Untuk melakukannya, letakkan kabel jumper boot 0 dalam posisi bawah. Posisi kabel jumper untuk mode pemrograman dan mode operasi ditunjukkan di bawah ini.


Sekarang, untuk mengunggah program, pastikan kabel jumper boot 0 berada dalam mode pemrograman seperti yang ditunjukkan di atas, lalu tekan tombol Reset. Begitu Anda menekan tombol reset, board akan masuk ke mode pemrograman dan lampu LED hijau akan mati, ini menunjukkan bahwa board siap untuk diunggah. Tekan tombol unggah pada Arduino IDE dan program Anda akan dikompilasi dan diunggah. Jika semuanya berjalan seperti yang diharapkan, Anda akan melihat pesan berikut pada konsol Arduino IDE Anda.


Catatan: Terkadang Arduino IDE akan menampilkan "done uploading" meskipun program belum berhasil diunggah dengan sukses. Jadi, periksa konsol Anda untuk memastikan persentase alamat tulis (teks berwarna oranye) untuk memastikan unggahan berhasil dilakukan dengan sukses.

Cara Kerja Program Blink STM32

Jika program telah berhasil diunggah, Anda seharusnya melihat LED hijau berkedip dengan interval 1 detik seperti yang ditampilkan dalam video di bawah ini. Anda juga dapat mengubah program untuk meningkatkan atau mengurangi keterlambatan.

Setelah mengunggah program, boot 0 harus dikembalikan ke mode operasi sehingga ketika Board dinyalakan kembali, program yang diunggah akan mulai dieksekusi secara otomatis. Posisi mode pemrograman dan mode operasi ditunjukkan dalam gambar di atas.



Semoga Anda telah memahami tutorial ini dan menemukan manfaatnya untuk memulai dengan STM32 Board. Anda juga dapat melihat tutorial pemrograman STM32F103 lainnya untuk mempelajari lebih lanjut tentang board ini. Jika Anda mengalami masalah, silakan tinggalkan komentar Anda di bagian komentar, dan beritahu saya proyek apa yang harus kami coba dengan board STM32 ini.

CODE 

Sample STM32 Blink Program
        
/*


 circuitdigest.com

 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
        
    
Belajar Memrogram STM32F103C8T6 dengan Arduino IDE
Tutorial Memprogram STM32
Tutorial Memprogram STM32 melalui Board Micro USB tanpa Serial
Tutorial Pemrograman STM32f103
Tutorial Lengkap Pemrograman STM32 dengan Arduino IDE
Cara Memprogram STM32F103C8T6
Rincian Pin STM32 Blue Pill dan Cara Penggunaannya

Tidak ada komentar:

Posting Komentar