Video: STM32F103C Serisi Kartlar İçin Arduino IDE MicroUSB Firmware Kurulumu ve Oluşan Hataların Çözümü

Bu yazımızda STM32F103C8, C6, veya Fake C8 çipli Blue Pill mikrodenetleyicileri nasıl Arduino IDE ile kullanabileceğinizi göstereceğim.

GEREKLİ MALZEMELER:

  • STM32 Mikrodenetleyicisi
  • Bir USB-TTL Dönüştürücüsü(3.3v logic seviye desteği olması gerekir) Örnek olarak: FT232RL,CP2102
  • Sahip Olduğunuz USB-TTL dönüştürücünün gerekli olursa sürücüleri
  • MicroUsb kablo
  • 4 Jumper Kablo

BOOTLOADER HAZIRLIĞI

Öncelikle bu kartı Arduino IDE ile kartın dahili MicroUsb portu ile programlayabilmek için kart üstündeki jumper seçimini yapmamız gerekiyor. Size gelen jumper bağlantı konfigurasyonu bu şekildedir:

Bu jumper seçimlerini BOOT0 1 moduna gelecek şekilde ayarlıyoruz:

Jumper seçimlerini yaptığımıza göre artık bilgisayar ile bağlantısına geçelim. Mikrodenetleyicinin içinde en başta hiçbir komut bulunmadığından ötürü dahili D+ ve D- pinlerini kullanamaz ki bu pinler USB portlarının veri iletim hatlarıdır. Bu yüzden normalde Arduino kartlarında fabrika çıkışında SPI arayüzü kullanılarak yapılan bootloader yükleme işlemini bizim STM32 kartları UART arayüzü üzerinden yapmamız gerekiyor. Bu yüzden bilgisayarla iletişimini sağlamak için tek seferlik bir köprü kullanmamız gerekiyor ve bu köprü UART arayüzü ile USB arayüzünü birbirlerine bağlıyor.

Bir diğer önemli husus ise bu köprünün seçimi. İnternette USB-TTL dönüştürücü olarak arattığınızda birçok dönüştürücüyü rahatlıkla bulabilirsiniz. Ama normalde bu köprülerin mantık voltaj seviyesi 5 voltdur fakat STM32 Blue Pill kartının mantık seviyesi voltajı 3.3 voltdur. Mikrodenetleyici veri gönderirken bir sorun yaşanmayacaktır ama dönüştürücüden veri gelirken 5v gerilim STM32’nin pinlerine kalıcı olarak hasar verebilir. Eğer ki dönüştürücünüzün böyle bir jumper ile seçimi varsa ayarlamayı unutmayın. Örnek kullanabileceğiniz bazı dönüştürücüler en başta var.

Şimdi ise köprümüz ile STM32’nin bağlantısına geçelim:

Bu resimdeki STM32 üzerindeki jumper konnektörler yanlış duruyor. Harici bütün bağlantılar aynı şekilde yapılacak.

Şimdi artık bilgisayar tarafına geçebiliriz. Dönüştürücüyü bilgisayara bağlamadan önce internetten kullandığınız köprünün(dönüştürücü) sürücülerininin kurulumunu yapmanız gerek. Bu işlemlerden sonra bootloader yükleme işlemleri için bir bootloader dosyasına(generic_boot_pc13.bin) ve programa(flash_loader_demonstrator.exe) ihtiyacımız var:

https://github.com/Om1f/STM32-Arduino-MicroUSB-Firmware-Kurulumu/raw/refs/heads/main/STM32%20Bootloader.zip

Bu dosyaları indirdikten sonra programın kurulumunu yapın. Şirket adına adınızı girebilirsiniz. Kurulumundan sonra USB dönüştürücüyü STM32’ye bağlı bir şekilde bilgisayarınıza bağlayın ve programı çalıştırın.

BOOTLOADER ATMA

Burada sadece COM portunu seçin. COM portunu aygıt yöneticisinden bulabilirsiniz. Devama basın.

Ardından trafik lambalı bir sayfa karşına çıkıyor. Burada “Flash Size:”ın karşısında yazan değeri unutmayın. Bu sizin işlemcinizin hafızası ve değişkenlik gösterebilir.

Burada en üstteki Target seçeneğini bir önceki adımdaki hafızanıza göre seçiyorsunuz. Devama basın

Şimdiki ekranda sizde varsayılan olarak Erase seçeneği seçili gelecektir, onu Download to Device olarak seçin. Ardından bootloader dosyasını seçin ve ayarları görseldeki gibi ayarlayın. Ardından Sonraki dediğinizde direk bootloader yazılmaya başlıyor. Bittiğinde tamam diyerek kapatın ve dönüştürücüyü bilgisayardan çıkarın sonra da STM32’nin bütün köprü ile olan bağlantılarını çıkarın. Kartın üzerindeki jumper konnektörlerini eski haline yani BOOT0’ı 0 a geri çekin.

STM32 USB ARAYÜZÜ İÇİN GEREKLİ SÜRÜCÜLER

Öncelikle sürürcülere ihtiyacımız var:

https://github.com/Om1f/STM32-Arduino-MicroUSB-Firmware-Kurulumu/raw/refs/heads/main/STM32%20Driver.zip

Bu .ZIP dosyasının içindeki STM32 Driver/driver/ ve eğer bilgisayarınız x86 ise dpinst_x86.exe x64 ise dpinst_amd64.exe dosyasını STM32 bilgisayara MicroUSB ile bağlı iken kurun. Sonradan Aygıt Yöneticisi’nden COM ve Bağlantı Noktaları sekmesinden Maple Mini şeklinde bir cihaz gelip gelmediğini kontrol edin. Eğer ki göremezseniz veya bir ünlem çıkarsa adımları tekrar etmeyi deneyin veya sürücüleri güncelleme seçeneği ile bilgisayardaki uyumlu sürücülerden aynı sürücülerin kurulumunu yapmayı deneyin. Olmazsa iletişime geçebilirsiniz.

ARDUINO IDE VE JAVA HATALARI

Biz STM32 kartlarımızı halen çözülemeyen bazı Java hatalarından ötürü Arduino IDE 2.x sürümleri ile kullanamıyoruz. Kartın kütüphanesi eklense de kod yükleme aşamasında hatalarla karşılaşıyoruz. Bazı kütüphanelerde çalıştığı söylense de denediğimde yine aynı hataları almaya devam ettim. Bundan ötürü Arduino IDE sürümünüzü 1.9.x ile kullanmanızı tavsiye ederim. Eğer ki hata almaya devam ederseniz 1.8.x versiyonunu da deneyebilirsiniz.

ARDUINO IDE’YE STM32 KARTLARININ EKLENMESİ

Şimdi sıra STM32 kartlarını Arduino IDE’nin Kart Yöneticisine eklememiz gerekiyor. Bunun için Arduino IDE’de önce Dosya>Tercihler:

Ve Ek Devre Kartları Yönetici URL’leri yazan metin kutusuna(sizde en başta boş gelecek) bu linki yapıştırıyoruz:
https://dan.drown.org/stm32duino/package_STM32duino_index.json

Sonra Tamam dedikten sonra Arduino IDE’yi yeniden başlatıyoruz. Sırasıyla:
Araçlar>Kart>Kart Yöneticisi:

Aramaya stm32 yazıyoruz ve gelen ekranda STM32F1xx/GD32F1xx paketini yüklüyoruz:

Sonra Arduino IDE’yi yeniden başlatıyoruz ve sırasıyla:
Araçlar>Kart>STM32F1 Boards>Generic STM32F103C Series veya sizinki neyse onu seçin:

Ardından:
Araçlar>Upload Method>STM32DUINO BOOTLOADER olarak seçiyoruz ki MicroUSB protuyla programlayabilelim. İsterseniz Serial seçerek ve STM32’yi en baştaki gibi bootloader atarken yapılan bağlantıları yaparsanız bu şekilde de direk kullanabilirsiniz:

Ardından portunuzu Aygıt Yöneticisi’nden baktığınız büyük ihtimalle Maple Mini(COMX) olarak yazan COM portunu seçin ve ilk örnek kodunuzu atın:
Dosya>Örnekler>01.Basics>Blink

Ve Yükle tuşu ile ilk yüklemeyi yapın ve çıktı bu ise başarı ile kodunuz yüklenmiştir demektir:

Okuduğunuz için teşekkür ederim!