IAR ile STM8S – UART

  • 7 ay önce, Baran EKREM yazdı.
  • 2 Yorum
  • 349 Kişi Okudu

UART/USART asla elimizin altından düşürmediğimiz bir protokol. Gerek özel haberleşmelerimiz gerek sensör okuma olsun bir çok yerde kullanılmasıyla birlikte uzun zamandır RS-232 olarak da çevremizde görüyoruz. Burada RS232 sadece daha farklı gerilim sevilerinde olmasının yanı sıra büyük port olması ve artık bilgisayarlarımızda bulunmaması nedeniyle sanal Com Port’lar bu eski dinazorların yerini çoktan aldı. FT232, CPxxx serisi gibi USB/Seri Çeviriciler hem az yer kaplaması hem USB den çalışması hemde düşük gerilim seviyeleri ile deneleyicilere uygun seviyede çıkış vermesinden ötürü bir hayli yaygınlaştı. Lafı daha fazla uzatmadan STM8S serisinde bu işleri nasıl yaptığımızı inceleyelim. (Devamını Oku)

IAR ile STM8S – PWM

  • 7 ay önce, Baran EKREM yazdı.
  • 0 Yorum
  • 404 Kişi Okudu

Bir önceki yazıda Timer konusunu tamamladığımıza göre bu bölümde PWM’e geçebiliriz. Burada Timer’dan çok farklı bir şey olmayacak sadece Timer’ları ilgili çıkışlara yönlendireceğiz. STM8S de bulunan bir güzel özellik Timer’ın çıkışı almaktan ziyade bu çıkışlarını “Complement”‘ini almak da mümkündür. Bahsettiğim bu yapıyı genellikle 32-Bit MCU’larda görüyordum. 8 bit bir MCU’da bu özelliği görmez oldukça güzel. Bu sayede Half Bridge – Full Bridge uygulamalarını rahatlıkla gerçekleştirebileceğiz. Kafanızdaki soruya hemen cevap vereyim. Evet “Dead Time” özelliği bile var.  (Devamını Oku)

IAR ile STM8S – TIMER

  • 7 ay önce, Baran EKREM yazdı.
  • 0 Yorum
  • 331 Kişi Okudu

Bu yazıda Timer’lara giriş yaparak artık zamanlama sorunlarının üstesinden rahatça gelebileceğiz. Daha önce STM32F0 Derslerinde sayaçları incelemiştik. Kısaca özetleyecek olursak. Belirlenen değere kadar saydıkların da bize bir kesme üretirler böylece ana programdan bağımsız olarak periyodik bir kesme sinyalimiz olur. Bu MCU’lar da  zaman yönetimi konusunu çözerek bize bir hayli fayda sağlar. Bunun dışında PWM çıkışları, Capture girişleri, Encoder girişleri gibi bir takım ekstra özellikleri de vardır. Bunlar daha sonraki yazılarda değineceğiz. Şimdi STM8S’in içindeki sayaç bloğunu inceleyerek işe başlayalım. (Devamını Oku)

IAR ile STM8S – Beeper ve Timer

  • 3 sene önce, Baran EKREM yazdı.
  • 4 Yorum
  • 1.035 Kişi Okudu

STM8S serisine kaldığımız yerden devam edecek olursak öncelikle hoşuma giden bir özelliği inceleyeceğiz. Sanırım sesi geldi bile BEEEP ! 🙂 Beeper modülü işlemci içerisinde bulunan bir buzzer kontrolcüsü gibi düşünülebilir. 3 farklı frekans da sinyal üreterek farklı ses ihtiyaçlarınızı oldukça hızlı bir şekilde karşılar. Normalde bu işi yapmak için bir tane Timer harcamak küçük işlemcilerde biraz fazla olabilir. Beeper 1, 2 ve 4kHz’lik çıkış sinyalleri mevcuttur. Kullanımı oldukça basit olan bu modül sadece kalibrasyon fonksiyonunu ihtiyaç duyar. Kalibrasyon işlemini bir kere yaptıktan sonra frekans’ı seçip modülü çalıştırabilirsiniz. Beeper kalibrasyon için bir tane Timer’a ihtiyaç duyar. (Devamını Oku)

IAR ile STM8S – Clock, CCO ve GPIO

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 1.119 Kişi Okudu

Bir önceki yazıda proje oluşturmayı ve basit bir led örneğini tamamlamıştık. Bu yazıda Clock ayarlarının nasıl yapıldığını ve temel GPIO komutlarının nasıl kullanıldığını göreceğiz. Öncelikle şunu belirtmek gerekirse ST yayınladığını standart kütüphanesi ile işleri bir hayli rahatlatıp basite indirgemiş. Kullandığınız kütüphane fonksiyonları tamamen elinizin altında. Yapacağı işin dışınca herhangi bir şeye müdahale etmiyor. Bu sayede register’leri kontrollü bir şekilde takip ediyor ve olağan dışı durumlar ile karşılaşmıyorsunuz. CCS C kullananlar bu durumlardan bir kaçını tecrübe etmiştir. İlk olarak yapılması gereken işlem her zaman olduğu gibi Clock ayarlarıdır. (Devamını Oku)

IAR ile STM8S – Giriş

  • 3 sene önce, Baran EKREM yazdı.
  • 10 Yorum
  • 1.608 Kişi Okudu

Bundan yaklaşık bir kaç ay önce STM8 programlamaya başlamak istiyordum fakat ST Visual Develop beni bu işten bir hayli soğuttu. Anlam verilemeyen derleme hataları ve eski IDE yapısı ile çok kullanışsız olduğunun farkına vardım. Kenarda duran STM8S leri denemek için IAR’I denemek istediğimde IDE rahatlığı, kod tamamlama, düzgün ve hızlı derleme, Debug yapma gibi özelliklerinin oldukça verimli olduğunu gördüm. Özelikle küçük projelerde kullanılan 8 Bit işlemciler fiyat konusunda kıyasıya yarışıyor. ST’nin STM32F1xx 32 bit olmasına rağmen çok ciddi fiyatlara satılıyor. Bu yüzden 8 bit kullanmak yerine daha ucuz olsun derseniz STM32 bile kullanabilirsiniz. (Devamını Oku)

Cyclic Redundancy Check (CRC Control)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 501 Kişi Okudu

Haberleşmede toplu veri transferinin vazgeçilmezi olan CRC oldukça faydalı ve onay görmüş bir hata tespit etme yöntemidir. Modbus CanBus ve bir çok haberleşme paketlerinde kullanılan bu yapı veride bozulma varsa bunu tespit etmemize yarıyor. Genellikle 8, 16, 32 bit olarak hesaplanan türlerinden ziyade 15 bitlik halde hesaplanan durumlarda mevcut. Bende CRC ye tasarlayacağım haberleşme paketinde ihtiyaç duydum. Büyük verilerin transferinde CRC şiddetle öneriliyormuş. (Devamını Oku)

C – Dynamic Memory Allocation

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 566 Kişi Okudu

Bu yazıda Dynamic Memory Allocation yani “Dinamik bellek tahsisi” konusundan bahsedeceğim. “Dinamik bellek yönetimi, Dinamik dizi tanımlama” gibi tanımlamalarda bu konunun içinde olacak. Konunun amacı bellekte bizim belirlediğimiz boyutta programımıza özel bir hafıza alanı ayırıp kullanmak ve gerekirse bu alanı genişletebilmek daha sonra işimiz bittiğinde alanı temizleyip serbest bırakmak. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – ADC

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 519 Kişi Okudu

stm32f0discoveryBu yazıda ADC örneği yapacağız.ADC ölçümü için potansiyometre ile gerilimi ölçüp USART ile bilgisayara aktaracağız. ADC bildiğiniz üzere Analog Dijital Converter. ADC de bilinmesi gereken özelliklerden biri çözünürlük. STM32F0 da 12-10-8-6 bit seçenekleri mevcut.Değerleri dijital olarak alacağımızdan olabildiğince hassas olarak alabilmek için 12 bit çözünürlük kullanıyoruz.Seçtiğimiz çözünürlük bize kaç adım(Step-ADC Value) verecek bunu hesaplayalım.Oldukça basit 2^(bit) 12 bit için 2^(12) = 4096 eder. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – SPI (OLED Display)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 448 Kişi Okudu

stm32f0discoveryBu yazıda SPI kullanımı öğrenerek bir OLED Display süreceğiz.Başlamadan önce ben 128×64 OLED Display kullanacağımı belirteyim.Bu SSD1306 ile sürülen bir Display.Sürücü dosyası mevcut gerekli kodları paylaşacağım.Bu örnek de SPI ile süreceğimiz OLED resmi aşağıda mevcut.Serial Peripheral Interface Bus ya da SPI veri yolu full duplex modda çalışan senkron bir seri veri bağlantısı standardıdır.Master-Slave şeklinde çalışır.Yani bir Master ile bir çok Slave ile haberleşebilirsiniz. (Devamını Oku)