Yeni bir projeye başladığımızda, daha önceki projelerimizden yararlanmak isteriz. Bu da mevcut projelerden yenisine bazı kaynak kodların aktarılmasını gerektirir.
STM32 CubeIDE platformu yeni projenin ilk adımlarında bize bir proje şablonu oluşturuyor. Bunun ardından bu şablona başka projelerimizden burada da kullanmak istediğimiz kodları aktarmakla işe başlıyoruz.
Bu yayında bu aktarma işleminin kopyala yapıştır yöntemi ile nasıl yapılacağını anlatacağım. Bir başka yöntem de Import fonksiyonunun kullanılması. Onu anlattığım daha kapsamlı yayın için burayı tıklayabilirsiniz.
BLDC SERVO MOTOR KULLANIMI – 2
Bu yayının ilk bölümünde genel bir giriş yaparak BLDC Servomotor sürüm sinyalleri hakkında bilgi vermiştim. İlk bölüme gitmek için burayı tıklayabilirsiniz.
Şimdi Nucleo STM32F302R8 Motor Kontrol kitimize STSPN7 yazılımını yükleyerek motorumuzu çalıştıracağız.
Continue reading “BLDC SERVO MOTOR KULLANIMI – 2”Başka platformlardan Cube IDE ye program aktarımı
ST firması ürettiği mikroişlemciler ile kullanılmak üzere neredeyse sayısız örnek uygulama hazırlayıp yayınlıyor. Bunlar belirttikleri lisans kurallarına uyulması şartı ile ücretsiz, firmanın WEB sitelerinden kolaylıkla indirilebiliyor. st.com sitesinden bunlara erişilebiliyor.
Akla gelebilecek her konuda uygulama örnekleri var. Ancak bu örneklerin çoğunluğu STM32 CubeIDE değil, başka platformlar için hazırlanmış durumda.
Bunlardan AC6 System Workbench For STM32, kısaltılmış haliyle SW4STM32 platformundan STM32 CubeIDE ye aktarılmasını adım adım anlatmaya karar verdim.
STM32 Cube IDE İÇİNDE GENEL TANIMLAMALAR
DEFINES / UNDEFINES WITHIN STM32 Cube IDE CONFIGURATION SETTINGS
Kod geliştirirken aynı kodun farklı seçeneklere göre derlenmesini isteyebiliyoruz. Örneğin bu kodun SPI arayüzlü bir ekranla ya da Paralel girişli bir ekranla çalışan tipleri olsun isteyebiliriz.
Ya da geliştirme süresince ekranda bir sürü debug mesajı versin ama kullanıma sürüleceği zaman bunları kapatsın (örneğin Debug ve Release tipleri) isteyebiliyoruz.
Bu durumda belirli bir sürümde istenen komut bloklarını etkinleştirirken, bu sürümde gereksiz ve istenmeyen başka blokları kapatabilmek için #define derleyici tanımlarını kullanıyoruz.
Continue reading “STM32 Cube IDE İÇİNDE GENEL TANIMLAMALAR”STM32F GELİŞTİRME MODÜLLERİM – Bölüm 2 : Minikit_S R4 SPI girişli TFT
Bu yayında; geliştirmiş olduğum 64 pinli STM32F1, STM32F2 ve STM32F3 işlemcilerini ve SPI girişli bir TFT taşıyan modülümü anlatacağım.
Continue reading “STM32F GELİŞTİRME MODÜLLERİM – Bölüm 2 : Minikit_S R4 SPI girişli TFT”STM32F10x GELİŞTİRME MODÜLLERİM – Bölüm 1 : Minikit_P R4 – paralel girişli TFT
Şimdiye kadar çalışmalarımda Çin’den satın aldığım geliştirme modüllerini kullanıyordum. Bunlar hakkında bir başka yayınımda bilgi vermiştim. (görmek için burayı tıklayınız.)
Bunlar ucuz malzemeler olsa da artık ihtiyaçlarıma daha uygun modüller tasarlayıp kullanmanın vakti geldi. (Yerli ve milli !!! :)) )
Özellikle üzerinde TFT ekranlarımı doğrudan takabileceğim soketleri olan, SPI, I2C ve UART portlara kolayca erişebileceğim konnektörleri olan modüllere çok ihtiyaç duyuyorum.
Yeni geliştireceğim modüllerin eskilerinin yerine doğrudan takılabilmesi de gerekiyor ki, daha önce geliştirmiş olduğum cihazlara bunları takıp kullanabileyim.
Continue reading “STM32F10x GELİŞTİRME MODÜLLERİM – Bölüm 1 : Minikit_P R4 – paralel girişli TFT”
STM32 TIMER İLE DARBE DİZİSİ ÜRETİMİ (HAL Kütüphaneleri, Interrupt ve CUBE MX Kullanarak)
AMAÇ ve KAPSAM
En eğlenceli bulduğum projeler hareket eden şeyler yapmaya yönelik olanlar. İş hareket ve konumlandırma kontrolu olunca karşımıza motorlar ve encoderler çıkıyor.
BLDC SERVO MOTOR KULLANIMI – 1
Yeni bir adım: BLDC DC servo motorlar
Şimdiye kadar robotik çalışmalarımda “Adım Motor”larını (Stepper Motor) kullanageldim, sanırım geliştirdiğim yazılım kütüphanem de epeyi olgunlaştı.
Yaptığım her yenilik ve iyileştirmeyi de masa üstü CNC projemde uygulamaya koydum. Bu proje benim test alanım haline geldi.
Ancak robotik çalışmaların Servo Motorları kullanmadan tam olgunlaşması mümkün değil. Burada diğer tip motorların sadece adlarını anmakla geçerken, BLDC servo motorların detayına ineceğim.
Continue reading “BLDC SERVO MOTOR KULLANIMI – 1”STM32F103 İLE ILI9341 TFT KULLANIMI – 8 bit paralel giriş
STM32F103 ile ILI9341 GRAFİK TFT
STM32 ile başlangıçta kullandığım popüler 2 ve 4 satırlı mavi ya da yeşil LCD lerden sonra renkli grafik ekranları kullanmaya sıra gelmişti.
Ele aldığım ILI9341 arayüzlü ilk grafik TFT ekranı çalıştırmak beni epeyi uğraştırmıştı. İnternet üzerinen bulabildiğim birkaç örnek kod ve ekranın kullanım klavuzundan da yararlanarak epeyi bir çabalamadan sonra becerdim. Bulduğum örnek yazılımlar üzerinde epeyi bir değişiklik yapmam gerekmişti. Ama şimdi elimde farklı tiplerdeki Grafik TFT ler için kullanabildiğim bir yazılım kütüphanem var.
Continue reading “STM32F103 İLE ILI9341 TFT KULLANIMI – 8 bit paralel giriş”
KULLANDIĞIM GELİŞTİRME KİTLERİ
Kullandığım geliştirme modüllerine bazı örnekleri aşağıda veriyorum. Bu yayındakiler e-Bay, Ali Express gibi satıcılardan aldığım hazır, 10-15 doların altında, çoğunluğu da 1-15 dolara satılan şeyler.
En çok kullandıklarım ilk dört modül. (Yayın tarihi itibari ile – 2018). Diğerlerini de zaman zaman kullanıyorum ama ilk 4 tip her işimi görmeye yetiyor.
Pico Modül STM32F103C8T6 tipi 48 pinli yonga taşıyor. ST Firmasının “Medium Density” olarak sınıflandırdığı bir işlemci.
Bu yonganın 34 adet I/O portu, 64KByte flash belleği ve 20 Kbyte RAM’ı var. Adaptör kartı 40 adet pin ile I/O pinlerine, 4 pinli konnektör ile de SW flash programlama pinlerine erişim sağlıyor.
STM32F103CBT6 yongası kullanan Maple Leaf’in yukarıdaki Pico dan iki farkı var:
Birincisi Flash Bellek 64 yerine 128Kbyte. İkincisi ise modülün iki yanındaki 20 şer pin Arduino uyumlu olmak üzere düzenlemiş. Benim Arduino ile bir işim olmadığından bu ikinci özelliğin benim açımdan önemi yok. Pinleri Arduino uyumlu olarak numaralandırmışlar. Bazı pinlerin işlevlerine göre etiketlenmiş olması bir bakıma kolaylık sağlıyor, ama o kadar işte.
Öte yandan pinlerde I/O port bilgilerinin olmaması bu faydanın da büyük kısmını silip götürüyor. Örneğin sadece 15-16-17 vb yazılı pinler hiçbir şey ifade etmiyor. Bunların hangi portlara ait olduğunu doküman karıştırarak çıkarmak gerekiyor. Bu durum pin-port atama işlemleri ile uğraşmayan Arduino kullanıcıları için sorun değil.
Harici kristal yok, bu nedenle maksimum saat frekansı dahili osilatörün 64 MHz i ile sınırlı, 72 MHz e çıkılamıyor.
Programlama pinleri de Pico da olduğu gibi diğer pinlerden ayrılarak dışarı alınmamış, bunlara erişim kenardaki pinler üzerinden sağlanıyor. Bu da kitin bir başka kötü yanı. O pinleri etiketlememişler bile. Uzun lafın kısası, bir daha yanına yanaşmayacağım bir kart bu.
STM32F103R8T6 tabanlı bu Minikit 64, iki porttan alabildiğimden (A ve B) daha fazla GPIO giriş çıkışına ihtiyaç olduğunda kullandığım modül. Yukarıdaki Pico ve Maple modüllerin verdiği 34 I/O yetersiz olduğunda bu Modülün fazladan sağladığı 16 I/O lu C portu ile D portundan gelen 2 pin işimi görüyor. 64 pinin hepsine ulaşılabiliyor. Ben SW (Single Wire Programming) kullanıyorum ama istendiğinde kullanılabilecek JTAG programlama/debugging konnektörü de var.
Mikrodenetleyici 64 pinli, Flash Bellek 64 Kbyte, SRAM ise gene 20 Kbyte.
Mini STM32 V3.5 adlı bu modül de STM32F103C8T6 48 pinli, 64Kbyte Flash’lı yonga içeriyor. Yukarıdakilerden fazla olarak CH340G USB/UART çevirici devresi var. Biraz da kullanımı kolaylaştıran fazladan pinler var, bunlar besleme gerilimlerine ve toprağa erişim sağlıyorlar. Bir de açma kapama butonu var.
DİĞER STM32 MODÜLLERİ
Bunlar, ehven fiyatlar ile bulduğumda kaçırmamak üzere elimin altında bulunsun diye satın aldığım geliştirme modülleri. Yukarıda verdiğim minyatür modüllerle yapabileceklerimi yaptıktan sonra sıra bunlara gelecek.
STM32F103RBT6 Tabanlı LC STUDIO Modülü 64 pin ve 51 I/O, 128Kbyte Flash, 20KByte SRAM a sahip. Biraz daha rahat ve büyük bir kart üzerine bir Max232 üzerinden çalışan RSR232 portu da koymuşlar. Yer problemi olmadığında ya da sadece geliştirme amacı ile kullanılabilecek kullanışlı bir kit.
STM32 Discovery geliştirme kiti, ST nin geliştirip pazarlamasını yaptığı bir modül. Dolayısı ile ST nin müşterilerine sağladığı geniş bir kütüphaneden yararlanıyor. Ben bu aşamada ST nin hazır kütüphanelerini kullanmadığım için pek işim düşmedi, ama günü geldiğinde kullanacağım. Elimdeki bu modül STM32F407 tabanlı, yani ailenin büyük fertlerinden biri. 5 adet 16 I/O lu portu, 1Mbyte Flash Bellek, 194KByte SRAM ile büyük bir kapasitesi var.
STM32F401RET6 Tabanlı NUCLEO da yukarıdaki Discovery modülü gibi ST firmasının geliştirme kiti. Buna Arduino uyumlu aksesuarların kullanılabilmesi için iki sıra dişi konnektör de koymuşlar. Örneğin, Arduino uyumlu diye satılan bir TFT ekranı direkt olarak takıp kullanabiliyorsunuz. Yine STM32F4 serisinin ekstra özelliklerine sahip. 512Kbyte Flash, 96KByte SRAM ve 50 adet I/O pini var. Bu kapasiteye de henüz ihtiyacım olmadı ama ilerleyen günlerde olacak.
STM32F205RBT tabanlı XP KITS geliştirme modülü. STM ailesi ile tanışmam bunun STM32F103 versiyonu ile olmuştu. Ethernet portu, RS232 Portu ve bir sürü kullanıcı butonu, SD kart soketi, LCD ekranı olan yararlı bir eğitim aracı. Özellikle internet uygulamalarında çok yararlı olmuştu. Kit ile birlikte verdikleri örnek yazılım paketlerinden de çok yararlandım. Hala aklıma gelen yeni birşeyi denemek istediğimde elime aldığım güzel bir kit.
8 Bitlik mikro denetleyicilerle yapılabilecek işler için kullandığım mikro modüllerim de var. Bunlar STM8 serisinden çok ucuz, ancak I/O sayısı ve yetenekleri çok kısıtlı mikro denetleyiciler. Yazılım geliştirmek için KEIL değil de IAR platformunu kullanmak gerekiyor. Çok nadir elime aldığım modüller bunlar.