Arduino programlarınızı, STM8S kartlarında kullanmak

Arduino IDE kullanarak STM8S nin programlanması ve Arduino programlarınızın STM8S üzerinde çalıştırılması.

Alıştığınız Arduino IDE yi kullanarak STM8S kartlarını programlayabiliyoruz. Birileri bir güzellik yapıp programları çevirebilecek bir kütüphane hazırlamış. Ufak değişikliklerle Arduino programınızı STM8 in anlayacağı formata çevirebiliyor.
Bu kütüphane halen geliştirilmekte olsa da bir çok açıdan size yetecektir.
Mesela aşağıdaki kütüphaneler hazır


Arduino blink programı ve buton led programları hiç değişiklik yapmadan kullanılabilir.

Seri port sadece donanımsal seri port çalışıyor.

PWM kısmında sadece 2 pwm ucu var. Ben programımda STM8S diziliminde PD4 pimini kullandım.

Wire kütüphanesi aynı şekilde kullanılıyor. (Arduinoda kullandığım I2C lcd modülün IO genişletici olarak çalışmasına yarayan program, değişiklik yapmadan STM8S de çalıştı.)

SPI ise donanımsal SPI kullanılır 10Mhz de.

Diğer kütüphaneleri de sizler test edebilirsiniz.

Hiçbir değişiklik yapmadan derken, değişken eklemek ya da komut değişikliği yapmaktan bahsediyorum. Fakat komutlar aynı görünse de komutlarda bazı değişiklikler var.
Seri port kullanımı aynı gibi görünse de Komutlardaki değişikliği fark edeceksiniz.

inByte = Serial_read();
Serial_write(inByte); // ascii olarak gönderir.
Serial_println_s(“”);
Serial_println_u(inByte);
Serial_println_s(” DENEME yazisi “);
Serial_print_c(‘A’);
Serial_println_s(“”);
Serial_println_ub(19,HEX);
Serial_println_ub(19,DEC);
Serial_println_ub(19,BIN);

WIRE kütüphanesinde de benzer değişiklikler var.

Bu gibi değişikliklerle arduino programınızı STM8S ye aktarabilirsiniz. Bir çoğumuzun yapabileceği gibi bende IDE deki bul ve değiştir özelliğini kullanarak . işaretini _ işaretine çevirerek adapte ettim.

Diğer kütüphanelere bakmadım. Her kütüphanede olan örnekleri incelerseniz bir süre sonra yazarken bile STM8S modunda yazmaya başlayabilirsiniz.

Bununla birlikte başta aklım karıştı. Acaba kendi wire kütüphanesini yüklemem gerekir mi diye. Böyle bir şey gerekmedi. İlk kurulumu doğru yaptıysanız artık başka bir şey yapmanıza gerek kalmıyor. Sadece ilk kurulumu yaptım sonrasında Buton, Led, seri port , wire (I2C) programlarını yaptım. Github dan kütüphane indirip eklemem gerekmedi.

Arduino ile STM8S kullanımını gösteren güzel bir yazı vardı. Bende bu yazıdaki siteden öğrenip Size bilgileri aktardım.
Kaynak : https://circuitdigest.com/microcontroller-projects/programming-stm8s-microcontrollers-using-arduino-ide

Kurulum bilgilerine bakalım. Arduino ile ESP programlayanlar bu işlemlere aşinadır. Ben hiç bilmeyenler için 1. videoda anlatmaya çalıştım. Burada da kaynak siteden aldığım resimlere göre anlatacağım.


Yukarıdaki, resimdeki menüye Dosya-Tercihler menüsüne basarak gelebilirsiniz. Kırmızı işaretli alana
https://github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
linkini girmeniz yeterli.

Yukarıdaki resimdeki pencere için. ARAÇLAR – KART – KART YÖNETİCİSİ ni seçerek gelebilirsiniz. Arama kısmına SDUINO yazarak bekleyin, gelen programı seçerek kurun.


Arduino IDE yi kapatın ve tekrar açın. Sonrasında yukarıdaki resimdeki gibi Kart seçimi yaparak modülünüzü seçin. Bendeki STM8S103F3 modüldür. Sizler buradaki modüllerden kendinizinkini seçebilirsiniz.

Ayrıca şunu da bilmemiz gerekir. Arduinoda seri port seçimi vardı. Çünkü seri port monitör vardı. Fakat STM8S de sadece programlama yapılıyor. Ve bu programlama USB ye takılan ST_link_V2 programlayıcısıyla yapılıyor. Bundan dolayı burada port seçimi önemli değil. Program direkt programlayıcıyı buluyor. Bunu da en başta biz ayarlıyoruz.

Com port önemsizdir herhangi biri seçilebilir.

 

Yukarıdaki resimdeki gibi Programlayıcıyı da menüden seçebilirsiniz.
ARAÇLAR – PROGRAMLAYICI kısmından ST-Link/V2 yi seçtim. Siz elinizde hangi model varsa onu seçmelisiniz.

Artık IDE hazır.
Öncelikle aşağıdaki pim yerlerinin bağlantısına bakın. Modülün iç kısmında görünen P olan modülün kendi kodlamasıdır. Dış kısımda olan ise Arduino karşılıklarıdır.

Yazıda PWM için D13 ve D7 kullanabilirsiniz diyor. Ben D13 ü kullandım. Ayrıca Mavi renkle gösterilen pimler biraz hassas. Diğerleri yaklaşık 20ma akıma kadar dayanıyorken, Mavi ile gösterilen pimler 10mA maksimum akıma dayanır diyor. Buna dikkat ediniz.

Öncelikle Blink programımızı yükleyelim. Orijinal Blink programında
pinMode (LED_BUILTIN, OUTPUT); yazar.
Burada BUILT_IN dediği, arduino üzerindeki, test için sizin kullanımınıza ayrılan ve pimlerden birine bağlı olan Led dir. Arduinoda, hangi pime bağlı olduğu bellidir. Programda pim numarası vermeseniz bile  Built in dediğinizde program Arduino kartı üzerindeki standart Ledi kullanır. Ayrıca LED bağlamanız gerekmez.
STM8S de de bir TEST ledi vardır. Bu LED STM8S pimlerine göre PB5 pimine bağlıdır. Yani programda, Arduino sıralamasına göre D3 pimine bağlı olarak göstermeniz gerekir.

Bu şekilde programı yüklediğinizde Modül üzerindeki TEST Ledi istediğiniz, zaman aralığına göre yanar.

Videoları seyrederken birden fazla örneğin çalışmasını görebileceksiniz.

İlk videoda kurulum kısmı ve Aşağıdaki örnek programlar yer alıyor.

İkinci videoda ise I2C LCD modülün, IO genişletici olarak çalışmasını göreceksiniz.
Bu program ve kullanım şekli, Arduino yazılarım arasında var. Aynı programın STM8S modülüyle kullanıldığını göreceksiniz.

Arduino ile yapılmış I2C LCD modül IO genişletici çalışmasının yazısı buradadır.

ESP8266 ile yapılmış I2C LCD modül IO genişletici çalışmasının yazısı buradadır.

ST-LINK/V2 programlayıcıyı aşağıdaki resimdeki gibi Modüle bağlayabilirsiniz.

Tüm örnek programlar için kullandığım bağlantı şeması

NOT – 1 : Yukarıdaki resim tüm örnek programlarımı denediğim bağlantı şemasıdır. GND kısmına dikkat edin. FT232RL den sadece Tx-Rx-GND çıkıyor. I2C LCD modülden de SDA-SCL,GND çıkıyor. Bu kablolar STM8S modülüne bağlanıyor. GND lerin hepsi birleşiyor. Aslında STM8S modülü ST-LINK programlayıcıdan 3V3 alıyor. Fakat tüm kartları beslediğinizde akım yetersiz gelebilir ya da ısınma olup ST-link arızalanabilir. Bundan dolayı I2C LCD modülün beslemesini 5V powerbank ile sağladım. Fakat STM8S modülü 3V3 ile çalıştığından I2C LCD modülü de 3V3 ile beslemem gerekiyordu. Böyle yapmasaydım araya 5V – 3V3 seviye dönüştürücü gerekecekti. Bundan dolayı 5V,  3V3 luk regüleden geçerek I2C modülünün beslemesini sağladı. FT232RL usb seri çevirici ise 3V3 jumper ayarıyla STM8S modülünün seri port uçlarına 3V3 seviyesinde gerilim uyguladı. Seviye dönüştürücü yapmadım. FT232RL ise beslemesini PC usb den alıyor.
Bundan dolayı, FT232RL , STM8S , I2C modüllerinin GND uçları birleştirildi. Buna dikkat etmeniz gerekiyor.

NOT – 2 :  STM kartlarını bu şekilde Arduino IDE ile programlamak başlangıç için iyi olsa da, sonrasında STM için yazılmış IDE yi kullanmak iyi olacaktır. Hem kartları daha iyi tanımış olacaksınız. Hem Arduino IDE ile kullanamadığınız özellikleri kullanmış olacaksınız, Hem de DEBUG (Hata Ayıklama) imkanından mahrum kalmazsınız. Programcı için DEBUG sistemi çok fayda sağlamaktadır. Programı çalıştırırken hataları tespit edebilirsiniz. Anlık değişkenleri takip edebilirsiniz. Bazı durma noktaları belirleyerek programın o noktalarda durmasını ve adım adım çalışmasını sağlayabilirsiniz. ST-link /v2 Programlayıcı DEBUG özelliğiyle geliyor.

Tüm programlara GITHUB üzerinden ULAŞABİLİRSİNİZ. https://github.com/safaka123/Mikrobotik_yazilarim/tree/main/arduino_ide_stm8

Tüm programları bu linkten İNDİREBİLİRSİNİZ. https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/safaka123/Mikrobotik_yazilarim/tree/main/arduino_ide_stm8

Bu yazının oluşmasında destek aldığım kaynak : https://circuitdigest.com/microcontroller-projects/programming-stm8s-microcontrollers-using-arduino-ide

Kütüphaneyi yazan kişinin GITHUB sitesi : https://github.com/tenbaht/sduino/tree/development/sduino/stm8

Kütüphaneyi yazan kişinin GITHUB üzerindeki diğer programları : https://github.com/tenbaht

Sduino anlatım sitesi : https://tenbaht.github.io/sduino/

 

STM8S ile Arduino IDE kullanmadan başlamak istiyorum derseniz bu linklerdeki yazılarıma bakabilirsiniz.

STM8S Modülü ile Programlamaya Başlamak

STM8S103F3 modülü ile EASYLCD modülü kullanımı.

STM32 ile Program yapmaya başlamak.

Video 1 : Arduino IDE üzerinde STM8S programlanması için gereken kurulum. GPIO kullanımı, PWM, seri port kullanım örnekleri. 
Video 2 : I2C LCD modülün IO genişletici olarak kullanılması. 

3 Comments

  1. Arduino2.0.4 versiyonda yükleniyo ama board görülmüyo. Hangi sürüme kadar çalışıyor acaba???

    1. Arduinoyu kaldırdım, sonra 185 i yükledim çalıştı, 1819 u denedim oda çalıştı, sonra nightly denedim oda çalıştı, enson kaldırdığımı tekrar yükledim oda çalıştı, ilginç bi durum…

      1. Demek ki bir şeyler eksikti belki önceki kurulumlardan belki de kütüphane yapısından dolayı. Şimdi bunları yklerken yeniden orjinal haline gelmiş ve çalışmış olabilir. Bazen üst versiyonlarda hata da verebiliyor. Bunun sebebi kütüphane farklılıkları olabiliyor. Arduino programlarını saklarken bile hangi kütüphaneleri kullandıysanız onunla saklamak gerekiyor. Ben de son aylarda ESP programlarımı bile derleyemez oldum. eskileri denedim onlarda hata verdi. sonrasında her şeyi silerek yeniden yükledim. kart yüklemesi ve kütüphane yüklemelerini yaparken eski versiyonları yeni ide de kullanamdığımı farkettim. sanırım eski hatalar düzeltilmiş ve yeni kütüphanelerle doğru çalışmaya başlamış. belki de bazı hatalı kabuller iptal edildi. Yüksek versiyonu kullanmak iyi olabilir ama eski programlarınızı saklarken kütüphanesiyle saklayıp bir de kendinize not düşün hangi ide versiyonuyla çalıştı diye. Son başıma gelen ise arduino json kütüphanesinde geldi.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.