Bu yazımda size popüler olan bir kart olan Stm32f103c8 kartını diğer adıyla Blue Pill‘i Arduino Idesi ile nasıl kodlayacağınızı anlatacağım. Aslında BluePill ARM işlemcili bir kart fakat geliştiriciler bu kartı genelde bir arduino gibi kullanmayı tercih ediyor. Normalde bu kartı kullanmanın bir çok yolu var fakat neredeyse bu yöntem hariç hiçbiri tek başına BLUEPİLL’i çalıştıramıyor. Biz sadece Bootloader yüklerken bir tane arduino kullanacağız.

Alt kısıma ayrıca arduino ile bluepill arasında ki farkları anlamanız için küçük bir tablo bırakıyorum.

İçindekiler

Gerekli Olanlar

STM32F103C8 Nedir ?

Mini Geliştirme Kartı, STM32F103C8T6 entegresi kullanan Arduino Nano baz alınarak üretilen bir geliştirme kartıdır. Giriş çıkışları tamamen aynıdır, bu sebeble Arduino Nano için üretilen Shield ve benzeri ürünleri bu geliştirme kartı ile kullanabilirsiniz.

SWD simulasyon debug indirme arayüzü ile basitçe debug yapabilirsiniz. Micro USB arayüzü sayesinde kart ile haberleşme sağlayabilirsiniz. RTC kristali Epson marka kolay ve stabildir.

  • STM32F103C8T6 Entegresi Kullanır
  • Paket tipi: LQFP
  • Pin sayısı: 48
  • İşlemci: Cortex-M3
  • Çalışma Frekansı: 72MHz
  • Depolama Kaynakları: 64K Byte Flash, 20KByte SRAM
  • Arayüz Kaynakları: 2x SPI, 3x USART, 2x I2C, 1x CAN, 37x I / O ports
  • Analog-digital çevirim: 2x ADC (12-bit / 16-kanal)
  • Timers: 3 genel timer ve 1 advanced timer
  • Debug Download: Support JTAG / SWD debug interface to download, support for IAP
  • RT9193: 3.3V regulator chip, 300mA maksimum çıkış voltajı

Gerekli Pin Bağlantıları

stm32f103 setup

Yukarıda ki pin haritalarına bakarak gerekli pin baglantılarını yapmamız gerekli. Bu Bootloader yüklemi için arduino nano kullanacağım. Fakat diğer arduinolar için de aynı bağlantılar geöerlidir.

  • Arduino TX -> STM A9
  • Arduino RX -> STM A10
  • Arduino GND -> STM GND
  • Arduino RESET(rst) -> Arduino GND
  • Arduino 5V -> STM 3.3V
  • STM Boot0 değerini 0 -> 1

Burada sizinle bir uyarı paylaşmak istiyorum. Lütfen voltaj bağlantısını ilk olarak Arduino 5V -> STM 5V olarak bağlayınız. Fakat bu hata verirse(setup programında) hata verirse 5V ARDUINO pinini yukarıda belirttiğim gibi STM’in 3.3 V girişine bağlayınız. Bu sorununuzu çözecektir.

İkinci olarak burada bir uyarı daha eklemek istiyorum. Normalde Tx -> Rx şeklinde bağlanır biliyorum fakat arduino kullandığımız için bu bağlantı tersine dönüyor. USB-TTL Dönüşütürücü kullansaydık bu bağlantı TX-RX şeklinde olacaktı buna dikkat edin lütfen.

Bootloader Yükleme İşlemi

Gerekli programı indirdikten sonra gerekli yükleme işlemini yapıyoruz. Kurulumu gayet basit bu yüzden herhangi bir açıklama yapmıyorum.

flash_stm_1.PNG

Burada arduino’nun baglı olduğu portu seçiyoruz. Ayarları ise yukarıdaki gibi ayarlıyoruz.

flash_stm_2.PNG

Burada eğer daha önceden bir boot attıysanız silmeniz gerektiğini söylüyor.

flash_stm_3.PNG

Buraya dokunmadan ileri butonuna tıklayınız.

flash_stm_4.PNG

Burada gerekli flash dosyasını eklememiz gerekmekte yukarıdaki yerin kenarındaki 3 noktaya tıklayıp gerekli seçimi yapıyoruz.

flash_stm_4_2.PNG

Dosyayı direk görmeyecektir ve alt kısımdan .bin olarak seçmeniz gerekmektedir.

flash_stm_5.PNG

100% olduktan sonra ise bağlantıları kesebiliriz. STM üzerinde boot0 değerini yeniden 1'den sıfıra değiştiriniz.

Driver Kurulumu

driver_setup_stm32.PNG

STMF103 (BluePill) usb kablo ile bilgisayarıma bağlıyoruz.

Drivers/win/installdrivers.bat

Dosyasını Çalıştırınız. (Yönetici olarak çalıştırınız.)İşlem tamamlandıktan sonra ise tanınmayan cihazın Mapple Mini olarak değiştiğini göreceksiniz.

driver_setup_final.PNG

Arduino IDE kurulum ve ilk program

Arduino idesini kurduktan sonra Dosya/Tercihler kısmına giriyoruz. Buradan ise Ek Devre Kartları Yöneticisi Urleri Kısmına girip Adresini ekliyoruz. Daha sonra tamam diyip kapatıyoruz.

Araçlar kısmından gerekli ayarları yapıyoruz.

  • Kart : Generic STMF103C
  • Variant : 64k Flash
  • Upload Method : STM32Duino bootloader
  • CPU Speed : 72Mhz
  • Port : Mapple Mini

Gerekli ayarlamaları yaptıktan sonra ise örnek blink kodunu yükleyip deneyebilirsiniz. Eğer yazımı beğendiyseniz bana bir kahve ısmarlayarak destek olabilirsiniz. İyi kullanımlar :)