Alternatif Board STM32

Berikut ini survey singkat tentang board STM32 yang dapat dipakai untuk belajar.

STM32 Blue Pill. ST Link V2 (clone), STM32F4 Discovery, STM32 Discovery
STM32 Blue Pill. ST Link V2 (clone), STM32F4 Discovery, STM32 Discovery

 

Alternatif #1 STM32 Blue Pill

STM32 Blue Pill dan STL LINK V2
STM32 Blue Pill dan STL LINK V2

Prosesornya adalah STM32F103C8T6 , board ini dikenal luas sebagai ‘Blue Pill’. Untuk memasukkan program dan debugging dapat menggunakan modul ST-Link-V2.

Harga:

  • Blue Pill: sekitar Rp 32 ribu
  • ST LINK V2: sekitar Rp 33 ribu

Artikel terkait:

Alternatif #2 STM32F Discovery

STM32F407G Discovery
STM32F407G Discovery

Resource: https://www.st.com/en/evaluation-tools/stm32f4discovery.html

Harga sekitar Rp 400 ribuan, kata kunci “STM32F Discovery Boards”

Alternatif #3 STM32VL  Discovery

STM32 Value Line Discovery
STM32 Value Line Discovery

Prosesor: STM32F100

Resource: https://www.st.com/en/evaluation-tools/stm32vldiscovery.html

Harga: barang susah dicari.

STM32F401

STM32F401
STM32F401
STM32F401CCU6
STM32F401CCU6

Belum pernah dicoba, harga Rp 60 ribuan.

Perlu ST-Link-V2 untuk upload software

STM32F411CEU6

STM32F411CEU6
STM32F411CEU6

Prosesor STM32F411CEU6, belum pernah dicoba.

Harga Rp 200 ribuan.

Perlu ST-Link-V2 untuk upload software

Saran

Solusi murah meriah adalah STM32 Blue Pill dengan ST-LINK-V2. Board ini banyak dipakai dan ada banyak versinya, banyak juga resourcenya.

Jika ingin performance yang lebih baik, bisa cari board STM32F4, kalau yang mahal adalah board buatan STM32. Enaknya support lebih jelas dibandingkan board STM32F4 yang 3rd party.

 

 

 

 

 

 

Mikroprosesor untuk FreeRTOS

FreeRTOS adalah suatu sistem operasi untuk membuat sistem real time berbasis mikroprosesor. Sistem operasi ini cocok untuk sistem-sistem yang kecil dan sederhana. Untuk sistem yang lebih kompleks, diperlukan sistem operasi real-time yang lebih besar seperti eCOS, embedded Linux (or Real Time Linux) ataupun uCLinux.

Berikut ini beberapa mikroprosesor yang cocok untuk menjalankan sistem operasi FreeRTOS.

Prosesor di gambar di atas adalah sebagai berikut:

  • NXP LPCXpresso LPC1769
  • Espressif ESP8266
  • Esperssif ESP32
  • Arduino Nano (clone)
  • ST Micro STM32F103C8T dan programmernya ST-LINK-V2

Barang-barang yang ditampilkan di sini adalah prosesor yang ada di laboratorium dan sempat dicoba. Masih banyak lagi prosesor yang dapat menjalankan FreeRTOS yang belum dicoba.

Arduino Nano dapat menjalankan FreeRTOS mengingat porting FreeRTOS untuk Atmel AVR tersedia di situs FreeRTOS. Namun kemampuannya terbatas, mengingat memori di ATMega328 sangat terbatas.

Arduino Nano
Arduino Nano

Selanjutnya adalah board LPCXPresso dengan prosesor NXP LPC1769. Kemampuan prosesor ini cukup tinggi.

LPCXpresso dengan prosesor NXP LPC1769

STM32F103 kemampuannya menengah saja, tidak terlalu tinggi, namun kelebihan utama dari prosesor ini adalah tersedia dengan harga murah dari berbagai vendor. Artikel tentang modul ini banyak di Internet sehingga lumayan memudahkan bagi pemula.

Modul STM32F103C8T “Blue Pill”

STM32F103 dapat diisi proram dengan berbagai cara, namun yang paling mudah adalah menggunakan modul ST-LINK-V2 berikut ini.

ST-LINK-V2 untuk upload program ke STM32

Daya tarik utama dari ST-LINK-V2 adalah harganya yang murah, karena banyak versi clone / KW-nya.

Berikutnya adalah prosesor ESP8266 dan ESP32 dari Espressif. Porting FreeRTOS untuk prosesor ini banyak tersedia.

ESP8266
ESP8266
Modul ESP32 LOLIN32

Berikut ini tabel perbandingan kekuatan dari prosesor yang dipakai, dilihat dari clock, flash memory dan static RAM.

ModelClockFlash MemoryStatic RAM
ATMega32816 MHz32 kB2 kB
STM32F103C8T72 MHz64 kB20 kB
LPC1769100 MHz512 kB64 kB
ESP32240 MHzexternal (typical 4 MB)520 kB
ESP8266160 MHzexternal80 kB

Perbandingan clock kurang lebih mewakili kecepatan, walaupun sebenarnya perbandingan kecepatan tidak dapat hanya dibandingkan dari clock saja, namun juga mesti melihat arsitektur masing-masing mikroprosesor.

Referensi ports dan demo untuk FreeRTOS adalah sebagai berikut:

Upload Program ke STM32F103 Blue Pill Melalui Port USB di Windows

Mikrokontroler STM32F103 Blue Pill yang masih baru hanya dapat diprogram melalui bootloader USART, yaitu menggunakan port serial di pin A9 dan A10. Untuk dapat diprogram melalui USB, maka kita mesti memasang dulu bootloader yang dapat mengenali proses upload melalui port USB.

Berikut ini adalah konfigurasi port serial untuk melakukan pemrograman dengan bootloader USART:

konfigurasi port serial untuk pemrograman
konfigurasi port serial untuk pemrograman

Koneksi ke PC menggunakan modul USB to Serial dengan tegangan 3,3 volt. Modul USB to Serial ini banyak dijual dengan berbagai tipe. Untuk mudahnya, bisa pakai yang menggunakan chipset FTDI, karena driver FTDI sudah ada di Windows, jadi mudah dikenali. Konverter USB-Serial dengan chipset CH340 ataupun Prolific PL2303 biasanya lebih murah, namun agak sedikit kompleks karena perlu instalasi driver.

Berikut ini STM32F103 yang sudah terhubung dengan konverter USB-Serial.

Rangkaian pemrograman USART bootloader
Rangkaian pemrograman USART bootloader

Mesti dipastikan bahwa tegangan output TTLnya adalah 3.3 volt. Ada konverter USB Serial yang dapat diset di 5 volt maupun 3.3 volt. Mesti hati-hati jangan sampai salah, karena bisa rusak.

Konverter USB to Serial FTDI
Konverter USB to Serial FTDI

Program yang dipakai untuk melakukan pemrograman adalah “Flash Loader Demonstrator”, yang dapat diunduh di situs ST Micro : STM32 Flash loader demonstrator.

Untuk melakukan pemrograman, jumper BOOT0 dipindah ke “1”, sedangkan jumper BOOT1 tetap di “0”.

 

Boot 0 pada posisi 1
Boot 0 pada posisi 1

 

Boot 0 pada posisi 0
Boot 0 pada posisi 0

Untuk percobaan ini digunakan bootloader USB yang kompatibel dengan Arduino (STM32duino-bootloader) , dapat diambil di situs https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries.

Board Bluepill yang saya pakai menggunakan PC13 sebagai LED indikator, jadi binary yang diambil adalah generic_boot20_pc13.bin. Jika LED indikator menggunakan port lain, maka file binary yang diambil mesti disesuaikan.

Setelah file binary itu diupload dengan “Flash Loader Demonstrator”, kembalikan posisi jumper ke posisi 0, kemudian restart board tersebut. Jika sukses , mestinya akan muncul port serial baru di device manager.

Untuk pemrograman dengan Arduino, perlu beberapa tahap instalasi di Arduino, sesuai dengan petunjuk di https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

Referensi

 

Board ARM STM32F103CBT6

Berikut ini beberapa foto terkait STM32F103. Nantinya akan dilengkapi dengan hasil-hasil percobaan dengan STM32F103

STM32F103
Board STM32F103 “Blue Pill”

Layout PCB STM32F103
Layout PCB STM32F103

STM32F103 Pinout Diagram

STM32F103 Pinout Diagram

Pemrograman

Upload program ke STM32F103 dapat dilakukan dengan 3 cara:

  • Menggunakan bootloader internal yang dapat diaktifkan dengan mengubah setting pin BOOT0 menjadi 1. Pada mode ini program dapat dimasukkan menggunakan port serial yang terhubung pada PA9 dan PA10. Port serial pada STM32F103 menggunakan level TTL 3.3 volt, sehingga perlu konverter USB to serial 3V3 supaya dapat dihubungkan ke PC/Laptop.
  • Menggunakan pin SWD (Serial Wire Debugging). Untuk programming cara ini mesti menggunakan modul ST LINK V2
  • Menggunakan bootloader USB. Bootloader dapat menggunakan port USB untuk memasukkan program sehingga lebih praktis dibandingkan bootloader internal. Bootloader USB ini mesti dimasukkan menggunakan bootloader internal ataupun SWD.

Upload program ke STM32F103
Upload program ke STM32F103

Bootloader

  • Serial (TX1/RX1, atau pin PA9 dan PA10) : Built in bootloader yang tersambung ke port serial 1 di STM32F103
  • SWD (DIO/DCLK, atau pin JT): STLink v2
  • USB (D+/D- atau pin PA11 dan PA12)Custom boot loader, yang dapat dihubungkan ke USB

Untuk memasukkan software dari Windows menggunakan bult in bootloader, dapat menggunakan software Flash Demonstrator dari STMicro http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html

Salah satu custom boot loader yang sering dipakai adalah STM32duino bootloader, yang memungkinkan pemrograman STM32F103 dengan menggunakan IDE Arduino. Petunjuk instalasinya ada di https://github.com/rogerclarkmelbourne/STM32duino-bootloader

Pengembangan

Pembuatan software untuk STM32 ini dapat dilakukan dengan berbagai cara:

Links: