STM32 Bluepill’den Kendi ST-Link’imizi Yapalım

Merhaba arkadaşlar,

Bu yazımda sizlere STM8 / STM32 Debugger ve Programlayıcı olan ST-LINK V2 versiyonunu nasıl tasarlayabileceğimizden bahsedeceğim. ST-Link; STmicroelectronics tarafından geliştirilen ve üstün teknik detayları ile ön plana çıkan bir üründür. Hata ayıklamanıza da olanak sağlayan bu ürün, programlama ve kod yazma sırasında rahat bir şekilde tüm sorunları tespit edebilmek için debug yapmanızı da sağlıyor.

Ayrıca uygulamalardaki hataları bulan, beklenmedik değerler aldığınızda sorunun nerede olduğunu hızlı bir şekilde çözebilmenizi sağlayan bu programlayıcı, STM destekli mikrokontrolcüler ile bağlantı kurmanıza da yardım ediyor.

Orjinal ST-Link Digikey güncel fiyatı 22$ civarında. Tabi bu ürünün bir de Çin malı klon versiyonları mevcut. Bu klon versiyonlarının fiyatları da piyasada 20-30 TL aralığına bulunabilmekte. Hal böyle olunca klon versiyonların daha çok talep gördüğünü söyleyebilirim. Ancak orijinal versiyonlarına göre oldukça sade ve korumasız yapıları sebebiyle en ufak hatada bozulabilen bir yapıya sahipler. Bu da sık sık sorunlarla karşılaşmanıza ve projelerinizde aksaklıklara sebep olabiliyor.

Yakın bir tarihte çalışan bir programlayıcım olmadığında alternatif olarak neler yapabilirim diye araştırdığımda kendi ST-Link’imi yapabileceğimi fark ettim. Hızlıca işe koyulup bir prototip yaparak projeye devam ettim. Bu yazımda size hızlıca nasıl bir STM32 Bluepill geliştirme kartından nasıl bir ST-Link yapılabileceğinden bahsedeceğim. Bir sonraki yazıda ise kendi St-Link programlayıcımızı yapabiliriz.

İhtiyacımız olan ürünler;

  • STM32 Bluepill Geliştirme Kartı
  • USB TTL Dönüştürücü

STM32 Bluepill kartımıza bootloader’ı yükleyebilmek için USB TTL dönüştürücü ile birlikte PC’ye bağlayacağız ve ardından STM’nin yayınladığı Flash Loader Demonstrator programı yardımıyla bootloader’ı STM32 kartımıza yükleyeceğiz.

Bootloader’ı yükledikten sonra güncel versiyona upgrade işlemini gerçekleştirmek ve sonrasında ST işlemcilerimizi programlamak için yine STM’nin yayınladığı “ST Link Utility” programını kullanacağız. Ayrıca STM32 kartımıza yükleyeceğimiz bootloader .hex koduna ihtiyacımız olacak. Onu da aşağıdaki linkten indirebilirsiniz. Versiyon numarasının bir önemi yok, çünkü işlem tamamlandığında son versiyona güncelleyeceğiz.

Flash Loader Demonstrator programını bu linkten indirebilirsiniz:
https://www.st.com/en/development-tools/flasher-stm32.html

STM32 ST-Link Utility programını bu linkten indirebilirsiniz:
https://www.st.com/en/development-tools/stsw-link004.html

STLinkV2.J16.S4 versiyonunu aşağıdaki linkten indirebilirsiniz:
https://drive.google.com/drive/folders/1qVGcETaj5FdrfB2WHJ-mQQUYgoIlSQhM

Paylaştığım linklerdeki programları indirip kurduktan sonra donanımı ayarlıyoruz. Öncelikle BOOT0 jumper’ını “1” tarafına alıyoruz. Akabinde STM32F103 için default bootloader olarak gelen UART bacakları olan PA9 ve PA10 bacaklarına şekilde görüldüğü gibi TTL dönüştürücüyü bağlıyoruz.

PA9 : USB TTL RX

PA10: USB TTL TX

NOT: Besleme voltajının 3V3 olduğundan emin olunuz.

Ardından Flash Loader Demonstrator programını çalıştırıyoruz. Burada USB TTL dönüştürücünün bilgisayarınıza bağlandığı COM portu seçerek devam ediyoruz.

NOT: Eğer bu aşamada bir sorun ile karşılaşırsanız RX ve TX bacaklarının doğru olduğunu kontrol ediniz veya BOOT0 jumper konektörünün doğru yere takıldığından emin olunuz.

Eğer STM32 kartınızı daha önce programladıysanız ve okuma koruması var ise kaldırmanız gerekebilir. “Remove protection” butonuna tıklayarak kaldırabilirsiniz. Akabinde “Next” tuşuna basınız.

Burada yeşil ile işaretlenmiş alana tıklayarak daha önce indirmiş olduğumuz .bin dosyasını seçiyoruz.

“Next” butonuna tıkladıktan sonra kodumuz yükleniyor.

Ve sonrasında doğrulama yapıyor.

Ve son olarak başarıyla yüklendiğini belirtecektir.

Şimdi bütün kabloları çıkarıyoruz ve BOOT0 jumperını , konumuna alıyoruz. Akabinde microUSB kablo ile STM32 kartını bilgisayara bağlıyoruz. ST Link Utility programını açıyoruz ve sırasıyla “ST-LINK > Firmware Update” butonlarına tıklıyoruz.

Açılan pencerede “Device Connect” butonuna tıklıyoruz ve ST-LINK cihazımıza bağlanmasını bekliyoruz.

“Yes” butonuna tıkladığımızda son versiyona güncelleştirmeye başlayacaktır.

Tamamlandığında bildirim oluşturacaktır.

Şimdi sırada test işlemleri var. Aşağıdaki devreyi kurabilirsiniz. Burada test etmek için ikinci bir STM32 Bluepill devresi kullanıldı.

NOT: Şemadaki B12 ve B14 arasındaki kısa devreyi yapmayı unutmayınız.

Tüm bağlantıları yaptıktan sonra ST Link Utility programından “Target > Connect” butonlarına tıklıyoruz.

Herhangi bir hata olmadıysa başarıyla bağlanmanız gerekiyor.

Takıldığınız yerlerde sorabilirsiniz.

Kaynaklar:
– https://slemi.info/2018/08/14/making-your-own-st-link-v2/
– https://e.pavlin.si/2016/02/28/how-to-program-blank-stm32f1-with-stlink-v2-firmware/

Daha fazla özgün içerik ve motivasyon için sosyal medya hesaplarımdan beni takip etmeyi unutmayın.

Instagram: https://www.instagram.com/yusuffyk/

Youtube: https://www.youtube.com/yusuffyk