STM8 Programlama -IAR- #4 (Mikrodenetleyici ile Tanışıyoruz)

Yazılımsal ve donanımsal araçlarımızı tamamladıktan sonra mikrodenetleyici (bundan sonra MCU olarak ifade edeceğim) ile tanışma adımına geçebiliriz. Yazımızda MCU’ yu genel hatlarıyla inceleyeceğiz.
Kabaca inceleme yapacağız anlamadığınız yerler olabilir bunlara yeri gelince yeterince değineceğiz.
İnceleme yapacağımız döküman STM8S103F3′ ün datasheet kaynağı olacaktır. İlgili dökümana buradan ulaşabilirsiniz.

Özelliklere kısaca madde madde değinelim.

  • Çekirdek çalışma frekansı 16 MHz olan olan MCU ‘nun 8KByte Flash belleği ile 640 Byte EEPROM(Electronically Erasable Programmable Read-Only Memory / Verileri kalıcı olarak saklayabildiğimiz depolama alanıdır) depolama alanı bulunuyor.
  • RAM(Random Access Memory-Rastgele Erişimli Bellek): 1 Kbyte
  • 2,95 — 5,5 V çalışma gerilimi.
  • Harici kristal osilatör bağlantı seçeneğine ek olarak dahili RC(Resistor-Capacitor) osilatör bulunmaktadır.
    >1-16 MHz high-speed external crystal (HSE)
    >16 MHz high-speed internal RC oscillator (HSI)
    >128 kHz low-speed internal RC (LSI)
    >1-16 MHz high-speed external crystal (HSE)
  • Düşük güç modları (wait, active-halt, halt)
  • Çevre birimlerinin clocklarını ayrı ayrı kapatabilmek.
  • Toplamda 6 vektörde 27 harici kesme;
    SPI,UART,ADC,GPIO portları, Timer….. gibi çevre birimleri için.
  • 10 Bit ADC
  • Donanımsal UART,SPI,I2C haberlerşme arayüzleri.
  • Kullanacağımız MCU’nun 20 pinden 16’sı I/O olarak ayarlanabilmekte ve bu pinlerin 12’si HS(High Sink IO)’dur (20mA’e kadar).

TIMER-Zamanlayıcılar

  • Zamanlayıcılar MCU’nun rutin bekleme işlem yüklerini azaltan yapılardır. 7Segment, PWM,Zaman gibi uygulamalarda kullanılır.
  • TIM1 – 16-bit Gelişmiş Kontrollü Zamanlayıcı
  • TIM2 – 16-bit Genel Amaçlı Zamanlayıcı
  • TIM4 – 8-bit Temel Zamanlayıcı
  • Şuanlık isimlerini ve tablodaki bilgilere aşina olmak bize fazlasıyla yetecektir.

Beeper

Sesli ikazlar için içerisinde rezonatör devresi olmayan buzzerları kullanmaya olanak sağlar. Hani şu 5V verince doğrudan öten kulakları tırmalayan buzzerlar varya, heehhhh işte, onların 5V’a bağlayınca çalışmayanlarını çalıştırmak için kullanıyoruz bu özelliği 🙂 .

ADC Analog-to-Digital Converter (ADC1)

  • Analog sinyalleri MCU’nun anlayacağı bilgilere çeviren birimdir. Mesela NTC ile sıcaklık ölçmek istediğimizde kullancağız.
  • Giriş gerilim aralığı 0–>VDD gerilimi kadardır.
  • Veriyi 14 clock cycles çevirme zamanı vardır.

PINOUT

  • HS High Sink kabiliyetli pinleri
  • (T) True open drain (GPIO bölümünde açıklayacağım.)
  • [ ] Alternatif pin seçeneği için kullanılır (remapping option)
    Bunu IAR’da MCU’nun ilgili AFR(Alternate Function Remap) bitlerini değiştirerek sağlayacağız. Olay kısaca şöyle; örnek olarak PD2 pinini alırsak normal pin tanımı AIN3(Analog in ch3)’tür. Biz bu pini TIM2_CH3 özelliği ile kullanacaksak ilgili AFR bitinin değerini değiştireceğiz.
  • MCU çalışabilmesi için Vcap pinine bağlı bir kondansatöre ihtiyaç duyar. Kondansaörün sığa aralığı ise aşağıdaki gibidir.

Memory Map

Burada Hafıza Adreslerinin başlangıç ve bitiş değerleri yazmakta. Mesela EEPROM’un ilk Byte’ına veri yazmak için 0x004000 adresini kullanmalıyız.

Evet mikrodenetleyiciyi genel hatlarıyla tanıdık. Devamında IAR programını inceleyip proje yapısına göz attıktan sonra ilk kodumuzu yazacağız. Bir sonraki yazıda görümek üzere.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Whatsapp Hattı