Pengantar STM32CubeProgrammer

STM32CubeProgrammer adalah alat pemrograman STM32 yang sangat canggih yang diluncurkan oleh STMicroelectronics. Alat ini mengintegrasikan secara mendalam fungsi-fungsi dari alat-alat berikut:

  • STVP atau STLinkUtility (alat pemrograman JTAG/SWD)
  • STMFlashLoaderDemo (alat pemrograman UART)
  • DfuSeDemo (alat pembakar USB)
  • ST-LinkUpgrade (alat pembaruan firmware programmer STLink)

Antarmuka Pengguna STM32CubeProgrammer

STM32CubeProgrammer menyediakan antarmuka pengguna berbasis grafis maupun baris perintah. Selain itu, perangkat lunak ini juga menyediakan antarmuka pemrograman aplikasi (API) C++, sehingga pengguna dapat mengintegrasikan fungsi-fungsi STM32CubeProgrammer ke dalam aplikasi PC yang mereka kembangkan.

Overview of STM32CubeProgrammer
Overview of STM32CubeProgrammer

Seperti yang ditunjukkan pada gambar di atas, di area konfigurasi di sebelah kanan, pengguna dapat memilih untuk terhubung ke mikrokontroler STM32 melalui antarmuka debugging STLink, atau antarmuka komunikasi seperti USB dan UART. Setelah terhubung ke mikrokontroler STM32, Anda dapat melihat model MCU, versi, dan ukuran Flash saat ini di area "Informasi perangkat". Jika papan pengembangan resmi ST terhubung, nama papan pengembangan tersebut juga akan ditampilkan.

Fungsi STM32CubeProgrammer

STM32CubeProgrammer mendukung penghapusan serta pembacaan dan penulisan memori internal MCU STM32 melalui antarmuka debugging SWD/JTAG STLink atau melalui antarmuka komunikasi seperti UART, USB, I2C, SPI, dan CAN, dengan menggunakan bootloader sistem yang telah diprogram di pabrik dan tersimpan di dalam chip.

Berikut adalah fungsi utama STM32CubeProgrammer:

Menghapus dan Memprogram

STM32CubeProgrammer mendukung penghapusan memori Flash secara per sektor maupun penghapusan seluruh chip. Aplikasi ini dapat mengimpor berbagai format file untuk pemrograman, termasuk file biner (.bin), ELF (.elf, .axf, .out), heksadesimal (.hex), dan Motorola S-record (.srec).

Erasing and Programming of STM32CubeProgrammer
Erasing and Programming of STM32CubeProgrammer

Operasi Penghapusan

Setelah terhubung dengan MCU target melalui STLink, Anda dapat menghapus sektor-sektor Flash pada halaman "Erasing & Programming" secara per sektor atau melakukan penghapusan seluruh chip dengan memilih tombol "Full chip erase".

Operasi Pemrograman

Di halaman "Penghapusan & Pemrograman", Anda dapat mengklik tombol "Telusuri" untuk mengimpor berkas yang dapat dieksekusi, lalu klik "Mulai Pemrograman" untuk memulai proses pemrograman.

Sebagai alternatif, pada halaman "Memory & File Edition", Anda dapat membuka file executable yang ingin diprogram, lalu klik "Download" untuk memulai pemrograman.

Di halaman "Memory & File Edition" di bawah "Device Memory," Anda juga dapat membaca nilai memori MCU pada rentang alamat tertentu dan menyimpan konten yang dibaca sebagai file biner (.bin), hex (.hex), atau S-record (.srec) menggunakan menu "Save As".

Selain memprogram seluruh berkas eksekusi, Anda dapat langsung memodifikasi nilai pada alamat tertentu di halaman "Memory & File Edition" di bawah "Device Memory." Setelah menekan "Enter," STM32CubeProg akan secara otomatis membaca, memodifikasi, menghapus, dan menulis kembali. Metode ini dapat digunakan untuk memprogram byte yang dapat diprogram sekali (OTP).

Opsi Baca/Tulis Byte

Di halaman OB (Option Byte), Anda dapat melihat pengaturan terkini dari byte opsi untuk MCU yang terhubung. Anda juga dapat mengubah nilai byte opsi di sini. Untuk penjelasan terperinci mengenai byte opsi, silakan merujuk ke buku panduan referensi untuk MCU yang bersangkutan.

Option bytes Reading and Writing of STM32CubeProgrammer
Option bytes Reading and Writing of STM32CubeProgrammer

Pemrograman "Dua-dalam-Satu"

Dengan menggunakan mode pemrograman "Two-in-One" pada halaman "Erasing & Programming", Anda dapat memprogram memori FLASH dan byte opsi dalam satu kali proses. Konfigurasi byte opsi dilakukan menggunakan "STM32CubeProgrammer command-line" dengan perintah "-ob". Misalnya, untuk mengatur perlindungan baca ke level 1 setelah memprogram FLASH, ikuti langkah-langkah berikut:

  • Tentukan jalur ke file eksekusi yang akan diunduh.
  • Centang "Full chip erase" dan "Download file" di bawah "Automatic Mode."
  • Di kotak input "Option bytes commands", masukkan "-ob rdp=0xBB."
  • Klik "Start automatic mode," dan STM32CubeProgrammer akan menjalankan operasi yang ditentukan secara berurutan, menampilkan kemajuan di jendela log.
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer

Untuk detail mengenai format perintah "-ob", lihat bagian 3.2.15 dari UM2237 (Panduan Pengguna Perangkat Lunak STM32CubeProgrammer). Definisi bidang OptByte dalam perintah "-ob" tidak dijelaskan dalam UM2237, tetapi Anda dapat menemukannya dengan memeriksa tab "Option bytes" di antarmuka grafis STM32CubeProgrammer, karena definisi dalam perintah "-ob" sesuai dengan yang ada di sini. Sebagai alternatif, Anda dapat menggunakan perintah "-ob displ" untuk menampilkan konfigurasi saat ini dari semua byte opsi, sehingga Anda dapat memahami definisi setiap bidang OptByte.

Pembacaan/Penulisan Memori Eksternal

Jika Anda ingin membaca/menulis ke memori eksternal yang terhubung ke STM32 melalui antarmuka seperti SPI, FMC, atau QSPI, Anda memerlukan loader eksternal. CubeProgrammer menyediakan loader eksternal bawaan yang sesuai dengan memori eksternal yang terintegrasi pada papan pengembangan STM32. Jika Anda menggunakan model memori yang berbeda, Anda dapat membuat berkas loader eksternal Anda sendiri (*.stldr). Lihat bagian 2.3.3 dari UM2237 untuk petunjuk terperinci.

External Memory Programming of STM32CubeProgrammer
External Memory Programming of STM32CubeProgrammer

Sebelum melakukan operasi pada memori eksternal, Anda harus memilih loader eksternal yang sesuai di halaman "External Loader". Loader eksternal ini akan digunakan dalam operasi penghapusan dan pemrograman selanjutnya pada memori eksternal di halaman "Erasing & Programming" dan "Memory & File Edition".

Bootloader

Secara default, MCU STM32 dilengkapi dengan memori sistem internal yang berisi bootloader, sehingga memungkinkan pembaruan memori Flash on-chip melalui antarmuka seperti USART, USB, I2C, SPI, dan CAN. Antarmuka bootloader yang didukung bervariasi tergantung pada model MCU STM32, dan Anda dapat menemukan informasi spesifik dalam catatan aplikasi AN2606. STLink v2 dan STLink v3 menyediakan antarmuka jembatan dari protokol komunikasi USART, USB, I2C, SPI, dan CAN ke USB, sehingga memungkinkan MCU STM32 terhubung ke PC.

Bootloader of STM32CubeProgrammer
Bootloader of STM32CubeProgrammer

STM32CubeProgrammer menyediakan antarmuka di sisi PC untuk menghapus dan memprogram memori Flash terintegrasi melalui bootloader. STLink v2 hanya mendukung antarmuka komunikasi USART dan USB, sedangkan STLink v3 menambahkan dukungan untuk antarmuka komunikasi I2C, SPI, dan CAN. ST sebelumnya menawarkan dua alat perangkat lunak terpisah di sisi PC: "STM32 Flash loader demonstrator" dan "Dfuse Demo," masing-masing mendukung bootloader USART dan fungsi USB DFU. Kini, Anda dapat menggunakan STM32CubeProgrammer, sebuah alat perangkat lunak tunggal, untuk mendukung semua antarmuka komunikasi tersebut.

Jendela Masukan Informasi SWO

Selama proses pengembangan, seringkali diperlukan untuk menampilkan informasi debugging. Salah satu metode yang umum adalah mengalihkan keluaran printf ke port serial, yang akan menggunakan satu port serial. Metode lain adalah mengalihkan keluaran printf ke pin SWO (Serial Wire Output) melalui antarmuka debugging SWD, sehingga informasi debugging dapat dikirim melalui SWO. Jendela SWV (Serial Wire Viewer) pada STM32CubeProgrammer dapat menampilkan informasi debugging yang dikirim melalui SWO dan menyimpan semua informasi yang diterima ke dalam berkas ".log" yang ditentukan.

Serial Wire Viewer of STM32CubeProgrammer
Serial Wire Viewer of STM32CubeProgrammer

Antarmuka Baris Perintah

STM32CubeProgrammer menyediakan antarmuka baris perintah yang memungkinkan Anda menjalankan sebagian besar fungsinya dengan mengeksekusi perintah. Berkas yang dapat dieksekusi "STM32_Programmer_CLI.exe" dapat ditemukan di folder "bin" pada direktori instalasi STM32CubeProgrammer. Menjalankan "STM32_Programmer_CLI.exe" akan menampilkan daftar perintah yang didukung beserta parameternya.

Command Writing of STM32CubeProgrammer
Command Writing of STM32CubeProgrammer

Antarmuka baris perintah juga menyediakan beberapa fungsi yang tidak tersedia di antarmuka grafis, seperti membuat paket tepercaya, pemrograman aman, menghitung nilai CRC, dan lain-lain. Untuk petunjuk terperinci, lihat UM2237. Contoh pada gambar menunjukkan cara menghubungkan ke chip target melalui antarmuka SWD dan mengatur tingkat perlindungan baca 1 menggunakan perintah baris perintah. Perintah lengkapnya adalah "STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB."

Pembaruan Firmware STLink

Setelah menghubungkan debugger STLink ke komputer Anda, buka STM32CubeProgrammer dan segarkan koneksi STLink untuk melihat versi firmware STLink saat ini. Klik tombol "Firmware upgrade", lalu buka alat STLinkUpgrade untuk memperbarui versi firmware STLink.

Firmware Upgrade of ST-LINK of STM32CubePorgrammer
Firmware Upgrade of ST-LINK of STM32CubePorgrammer

Bagaimana Cara Menggunakan STM32CubeProgrammer?

STM32CubeProg adalah alat pemrograman yang lengkap yang mencakup operasi-operasi umum seperti membaca, menulis (mengunduh/memprogram), menghapus, dan memprogram byte opsi.

Lingkungan Pemasangan

STM32CubeProg mendukung sistem operasi Windows, Linux, dan macOS. Karena berbasis JAVA, Anda perlu menginstal Java Runtime Environment (JRE) di komputer Anda. Proses pemasangannya ditunjukkan pada gambar di bawah ini (versi 2.5.0b):

Menghubungkan Chip dan STM32CubeProg

Saat menggunakan STM32CubeProgrammer untuk terhubung ke papan target melalui STLINK, terkadang koneksi bisa gagal. Hal ini mungkin disebabkan oleh versi firmware yang terlalu lama di dalam STLINK. Untuk mengatasinya, klik tombol "Firmware upgrade" untuk melakukan pembaruan firmware. Selama proses pembaruan, Anda mungkin perlu mencabut dan memasang kembali beberapa kali. Setelah pembaruan selesai, cabut dan pasang kembali sekali agar STM32CubeProgrammer dapat mengenali STLINK.

Pemrograman dan Debugging Chip

Setelah menyelesaikan proses debugging program, Anda perlu memprogram chip tersebut dengan kode Anda. Biasanya, Anda memiliki tiga pilihan:

  1. Gunakan antarmuka debugging JTAG/SWD untuk memprogram chip, yang sering kali memerlukan perangkat lunak STLink Utility atau STVP.
  2. Memprogram chip melalui antarmuka UART, menggunakan perangkat lunak STM32 Flash Loader Demonstrator di PC.
  3. Memprogram chip melalui antarmuka USB, dengan memanfaatkan perangkat lunak USB DfuSe.

Pemrograman dengan ST-LINK

Programming with ST-LINK _ STM32CubeProgrammer
Programming with ST-LINK _ STM32CubeProgrammer

Pemrograman dengan UART

Programming with UART_ STM32CubeProgrammer
Programming with UART_ STM32CubeProgrammer

Pemrograman dengan USB

Programming with USB_ STM32CubeProgrammer
Programming with USB_ STM32CubeProgrammer

Saat melakukan pemrograman melalui mode USB DFU, pastikan untuk menghapus instalasi semua alat pemrograman STM32 DFU yang telah terpasang sebelumnya. Kemudian, jalankan berkas STM32Bootloader.bat di direktori instalasi.

Bagikan ke:

Scroll to Top

Instant Quote