STM32, STMicroelectronics'in ARM Cortex-M çekirdekli 32 bitlik mikrodenetleyici ailesidir. Arduino Uno'daki 8 bitlik ATmega328P'ye göre çok daha hızlıdır, daha fazla belleğe, daha fazla zamanlayıcı ve haberleşme birimine ve 12 bitlik ADC'ye sahiptir. En bilinen hobi kartı STM32F103C8T6 tabanlı "Blue Pill"dir; daha güçlü F401/F411 tabanlı "Black Pill" kartlar da yaygındır. STM32, Arduino IDE ile ya da STM32CubeIDE ile programlanabilir; yükleme için genellikle ST-LINK programlayıcı kullanılır.
Arduino ile başlayanların bir noktada sorduğu soru şudur: daha hızlı, daha fazla pinli ve daha profesyonel bir mikrodenetleyiciye nasıl geçerim? Endüstride çok yaygın olan STM32 ailesi bu sorunun en güçlü cevaplarından biridir. Bu rehberde STM32'yi tanıtıyor, Arduino ile karşılaştırıyor ve ilk adımları anlatıyoruz.
STM32 nedir?
STM32, STMicroelectronics firmasının ARM Cortex-M0, M3, M4, M7 ve M33 gibi çekirdekleri kullanan 32 bitlik mikrodenetleyici ailesidir. Düşük güç tüketimli küçük modellerden yüksek performanslı modellere kadar yüzlerce çeşidi vardır; otomotiv, endüstriyel cihazlar, drone uçuş kontrol kartları ve tüketici elektroniğinde yaygın olarak kullanılır.
STM32 ile Arduino Uno karşılaştırması
| Özellik | Arduino Uno (ATmega328P) | STM32F103C8T6 (Blue Pill) |
|---|---|---|
| Mimari | 8 bit AVR | 32 bit ARM Cortex-M3 |
| Hız | 16 MHz | 72 MHz |
| Flaş / RAM | 32 KB / 2 KB | 64 KB (çoğu zaman daha fazla) / 20 KB |
| ADC | 10 bit | 12 bit |
| Lojik seviye | 5V | 3,3V (bazı pinler 5V toleranslı) |
| Haberleşme | 1 UART, 1 SPI, 1 I2C | Çoklu UART, SPI, I2C, CAN, USB |
| Programlama | USB üzerinden kolay | ST-LINK ya da bootloader ile |
Yaygın STM32 kartları
- Blue Pill (STM32F103C8T6): Ucuz ve yaygın başlangıç kartı; ör. STM32F103C8T6 mini geliştirme kartı.
- Black Pill (STM32F401/F411): Cortex-M4, daha hızlı ve USB'den doğrudan programlanabilir; ör. STM32F401RCT6 Type-C geliştirme kartı.
- Daha güçlü kartlar: STM32F407VET6 mini geliştirme kartı ve STM32F4 Discovery.
- Küçük ve ekonomik: STM32F030F4P6 geliştirme kartı.
STM32 adım adım nasıl programlanır?
- Programlayıcı: Kartı bilgisayara bağlamak için bir ST-LINK V2 programlayıcı edinin. Bağlantı: SWDIO, SWCLK, GND ve 3,3V.
- Arduino IDE ile: Kart Yöneticisi'nden STM32 kart paketini (STM32duino) kurun, kart ailesini ve modelini seçin, yükleme yöntemi olarak ST-LINK'i seçin. Arduino kodlarının büyük bölümü küçük değişikliklerle çalışır.
- STM32CubeIDE ile: Üreticinin ücretsiz geliştirme ortamında pinler ve çevre birimleri grafik arayüzle ayarlanır, HAL kütüphanesiyle C kodu yazılır. Profesyonel projeler için daha uygundur.
- İlk program: Kart üzerindeki LED'i (Blue Pill'de genellikle PC13, ters mantıkla) yakıp söndürün.
- Seri port: USB üzerinden seri haberleşme için kartın USB desteğini kodda etkinleştirin ya da bir USB-TTL dönüştürücü kullanın.
Dikkat edilmesi gerekenler
- 3,3V pinler: STM32 pinleri 3,3V ile çalışır; bazı pinler 5V toleranslıdır (veri sayfasında FT olarak işaretlenir), ancak her pin değil. Analog pinler 5V'a dayanıklı değildir.
- Kopya çipler: Ucuz kartlarda farklı üreticilerin uyumlu çipleri bulunabilir; bazı programlayıcı ve yazılımlar bu çiplerde uyarı verebilir.
- Blue Pill USB sorunu: Bazı Blue Pill kartlarında USB hattındaki direnç değeri standart dışıdır ve USB bağlantısı bazı bilgisayarlarda tanınmayabilir.
Arduino'dan STM32'ye ne zaman geçilmeli?
Hız, bellek, hassas zamanlama, çok sayıda haberleşme birimi ya da 12 bitlik analog ölçüm gerektiğinde ve kablosuz bağlantı gerekmediğinde STM32 iyi bir seçimdir. Örneğin motor kontrolü, hızlı sinyal işleme, CAN Bus uygulamaları (bkz. CAN Bus rehberi) ve uçuş kontrol kartları. Wi-Fi ya da Bluetooth gerekiyorsa ESP32 genellikle daha pratiktir; başlangıç projeleri için ise Arduino hâlâ en kolay yoldur (bkz. Arduino nedir).
Sık sorulan sorular
STM32 Arduino IDE ile programlanır mı?
Evet; STM32duino kart paketiyle birçok STM32 kartı Arduino IDE'de programlanabilir. Yükleme için ST-LINK, seri bootloader ya da USB DFU yöntemleri kullanılır.
STM32 mi, ESP32 mi?
ESP32'de Wi-Fi ve Bluetooth vardır ve IoT projeleri için çok pratiktir. STM32 ise geniş model seçeneği, düşük güç tüketimli modelleri, hassas zamanlayıcıları ve endüstriyel çevre birimleriyle öne çıkar.
ST-LINK ne işe yarar?
ST-LINK, STM32'ye program yüklemeyi ve programı adım adım çalıştırıp değişkenleri izleyerek hata ayıklamayı sağlayan programlayıcıdır.
Blue Pill neden bilgisayarda görünmüyor?
Kartta USB bootloader bulunmuyor olabilir ya da USB hattındaki direnç uyumsuz olabilir. İlk yükleme ST-LINK ile yapılmalı, USB seri desteği kodda etkinleştirilmelidir.
STM32 pinleri 5V'a dayanıklı mı?
Bazı dijital pinler 5V toleranslıdır; hangi pinlerin toleranslı olduğu veri sayfasında belirtilir. Analog pinler ve toleranslı olmayan pinler 5V ile zarar görebilir.
Özet
- STM32, ARM Cortex-M çekirdekli 32 bitlik mikrodenetleyici ailesidir.
- Arduino Uno'ya göre çok daha hızlı, daha fazla bellek ve çevre birimine sahiptir.
- Blue Pill (F103) ve Black Pill (F401/F411) yaygın hobi kartlarıdır.
- ST-LINK ile Arduino IDE ya da STM32CubeIDE'den programlanır.
- Pinler 3,3V'tur; 5V toleransı yalnızca belirli pinlerde vardır.
