STM32 Mikrodenetleyici Ailesine Genel Bakış

Artık günümüzde 8-bit klasik mikrodenetleyicilerin yerini 32-bit ve çoğunlukla ARM tabanlı mikrodenetleyiciler almaktadır. Bunların ucuz olmasının yanı sıra sağladığı özellikler de 8-bit mikrodenetleyicilere göre aşırı derecede fazladır. Yüksek işlem hızı ve kapasitesinin yanı sıra 8-bit mikrodenetleyicilerde olmayan zengin çevre birimleri yer almaktadır. Bu mikrodenetleyicilerden en ucuz ve en erişilebilir olanlardan biri ise STM32 serisidir. STM32 mikrodenetleyiciler STMicroelectronics firmasının ürettiği ve pazara yeni girse de pazarda büyük bir payı olan mikrodenetleyici ailesidir. STM32 mikrodenetleyicilerin diğer mikrodenetleyicilere göre oldukça geniş bir yelpazede üretilmesi ve oldukça ucuz olmasıyla pek çok geliştirici tarafından kullanılmaya başlanmıştır. Seri üretimi yapılacak ürünlerde de gönül rahatlığı ile kullanılabilir. En ucuz AVR ya da PIC mikrodenetleyicinin yarı fiyatından aşağıya 32-bit ARM tabanlı bir mikrodenetleyiciyi almamız mümkündür. Böyle bir mikrodenetleyiciyi kim kullanmak istemez ? Üstelik hemen her uygulama için de çeşitli hız, kapasite ve çevre birimleriyle farklı adlarda üretilmektedir. Şimdi bu mikrodenetleyici ailesine bir göz gezdirelim.

STM32L0

ARM Cortex-M0+ tabanlı olan bu mikrodenetleyiciler aşırı düşük güç tüketimi ile ön plana çıkmaktadır. Küçük yapıları ve basitlikleri sayesinde giriş seviyesinde bir mikrodenetleyici olarak kullanılabilir. Hız ve kapasite bakımından çok şey beklememek lazımdır. Cortex-M0 yada M0+ tabanlı olan her mikrodenetleyici gibi diğerlerine göre kısıtlı diyebileceğimiz özellikleri vardır. Yine de 8-bit PIC ya da AVR ile kıyasladığımızda kat kat daha iyi diyebiliriz. STMicroelektronics’in sitesinden aldığımız ürün tablosunda özellikleri özetlenmektedir.

14 pine kadar düşen kılıfa sahip olan bu mikrodenetleyiciler uygulama alanlarına uygun olarak dahili EEPROM ile gelmektedir. Kendi içerisinde üç alt seriye sahip olup 100 pinlik kılıfa kadar çıkmaktadır. Yukarıda gördüğümüz yüksek özellikler aslınd giriş seviyesinde ve diğerlerine göre en alt seviye özelliklerdir. Üst seviyedekileri siz hayal edin.

STM32L1

STM32’nin düşük enerji tüketimi ile ön plana çıkan başka bir mikrodenetleyici ailesi ise STM32L1 serisidir. Buradaki L harfinin “Low-power” anlamına geldiğini kestirebilirsiniz. Bu mikrodenetleyici ailesi diğerinden farklı olarak Cortex-M3 çekirdeğini barındırır. Bu çekirdeklerin sıfırdan itibaren yükseldiğini görmek mümkündür. Bu mikrodenetleyiciler MHz başına 230 mikroamper gibi çok düşük bir güç tüketmektedir. En düşük güç tüketimi ise 0.27 mikroamperdir. Önceki seriye göre biraz daha yüksek sistem özellikleri bulunmaktadır. Bunu madde madde sayalım.

  • ARM Cortex-M3 32MHz CPU
  • 32-384K arası Program Hafızası
  • 48K’ya kadar SRAM
  • 12K’ya kadar EEPROM
  • 1.65-3.6 Arası Çalışma Gerilimi

Görüldüğü gibi AVR mikrodenetleyicilere göre program hafızası az çok yakın olsa da (Mega2560’da 256KB Program hafızası vardı.) RAM ve EEPROM bellekler aşırı derecede yüksektir. Ayrıca AVR mikrodenetleyicilerde olmayan çevre birimlerine de sahiptir. Ortak çevre birimlerinin sayısı ve özellikleri de fazladır.

Örneğin bu mikrodenetleyicilerde DAC ve Opamp bulunmaktadır ki bunlar AVR denetleyicilerde rastlanmaz.

STM32L4

Ne kadar düşük güç tüketimine sahip mikrodenetleyici serisi olsa da bu seriye giriş seviyesi demek mümkün değildir. Cortex-M4 tabanlı olan bu seri hem düşük güç tüketimine hem de yüksek performansa sahiptir. 80MHz’de 100 DMIPS performansa sahip olan bu mikrodenetleyici ayrıca 16-bit ADC, opamp, karşılaştırıcı, 12-bit DAC gibi düşük güç tüketimli çevre birimlerine sahiptir.

Bu mikrodenetleyicilerin kullanım alanı hem düşük güç hem de yüksek performans gerektiren uygulamalardır. TFT ekran sürmemiz gereken taşınabilir bir aygıt buna örnek olabilir.

STM32F0

Aslında bu seri STM32’nin en temel ve giriş seviyesindeki mikrodenetleyici serisidir. ARM Cortex-M0 tabanlı olmasından dolayı Cortex-M0+ tabanlı mikrodenetleyicilerden bile daha alt bir seviyede diyebiliriz. Özellik olarak baktığımızda 8-bit mikrodenetleyicilerin kullanıldığı devrelerde onların yerine geçmeye uygundur. Özelliklerinin düşük olması fiyatını da aşağı çekmektedir. Yine de 8-bit bir mikrodenetleyiciye göre çok daha fazla özellik sunmaktadır. Bu özelliklere madde madde değinelim.

  • 32-bit ARM Cortex-M0 Çekirdek. 48MHz, 12 DMA kanalı
  • 1.8-3.6V Çalışma Gerilimi
  • 2 x SPI
  • 3 x I2C
  • USB Tam Hız (Full Speed)
  • I2S 8KHz’den 96KHz’e kadar frekans örnekleme
  • 8’e varan USART birimi.
  • 11’e varan Zamanlayıcı/Sayıcı (16-32bit)
  • RTC
  • 12MHz hızında giriş ve çıkış birimi.
  • Saniyede 1 milyon örnek alabilen 12-bit ADC
  • 12-bit DAC
  • 2 adet Analog Karşılaştırıcı

Arduino’yu yüzyılın icadı görenler acaba bu özellikler karşısında nasıl bir tepki verirdi diye merak ediyoruz. Şimdi bu özelliklerin tablo olarak verildiği resmi buraya koyalım.

STM32F2

ARM Cortex-M3 tabanlı bu mikrodenetleyiciler F0 serisine göre daha yüksek kapasite ve işlem hızına sahiptir. Yüksek performans için artık Cortex-M4’ün daha sık kullanılmaya başlandığı görülüyor. Atmel SAM mikrodenetleyicilerinde Cortex-M4 kullanmaya başladığı gibi STM32’de Cortex-M4’lü mikrodenetleyicilere ağırlık vermiş duruyor. O yüzden bu seride M4 çekirdeklerde olduğu kadar mikrodenetleyici göremiyoruz.

Şimdi mikrodenetleyicinin göze çarpan özelliklerini madde madde verelim.

  • 120MHz’de 150DMIPS işlem hızı.
  • 16 DMA kanalı
  • 528 bayt OTP (Bir defa programlanabilir) bellek. Önemli bilgileri, MAC adresini ya da şifre çözme anahtarlarını yazmak için kullanılabilir.
  • 2 x USB OTG
  • 1 x Ethernet MAC
  • 2 x CAN 2.0B
  • 3 x SPI (30Mbit/s’e kadar)
  • 6 x USART (7.5Mbit/s’e kadar)
  • 3 x I2C
  • 2 x I2S
  • Harici hafıza birimi 60MHz’e kadar çalışabilir. Flash, SRAM, PSRAM, NOR ve NAND hafızaları destekler.
  • LCD sürücüsü
  • 2 x motor sürücü zamanlayıcısı
  • 12x Zamanlayıcı ve Sayıcı
  • 2 x 32-bit Zamanlayıcı ve Sayıcı
  • 2x WDG zamanlayıcısı
  • 3 x 12-bit ADC (24 Kanal)
  • 2 x 12-bit DAC
  • 60MHz hızında giriş ve çıkış
  • RTC
  • Gerçek rastgele sayı üreteci
  • Şifreleme

Özellikleri sayınca alışılageldik bir mikrodenetleyici olmadığını görüyoruz. PIC ve AVR’nin çevre birimleri bunun yanında çok cılız kalıyor. Adeta koca bir sistemi tek bir çipe toplamışlar.

STM32F3

Cortex-M4 çekirdekli olan bu mikrodenetleyici serisi dijital sinyal işleme ve analog çevre birimleriyle öne çıkmaktadır. Analog sistemler ile çalışacak kişiler için yüksek performanslı bir mikrodenetleyici olarak oldukça iyi iş çıkaracaktır. Burada hangi mikrodenetleyici serisinin iyi olduğuna değil hangi serinin işinize en uygun olacağına bakmak gerekir. Bu kararı da sizin vermeniz gerekli.

Bu seride DSP ve FPU (Floating Point Unit) bulunup 72MHz’de çalışmaktadır. Gömülü olan DSC 12-bit 5MSPS hızda çlaışmaktadır. Ayrıca 16-bit sigma-delta ADC bulunmaktadır. Programlanabilir kazanç amplifikatörleri, 50 nanosaniyelik karşılaştırıcılar analog işlemler için diğerlerinin vermediği bir esnekliği verir. Şimdi madde madde teknik özelliklerini sayalım.

  • 4 x 12-bit ADC birimi ile saniyede 5 milyon örnekleme
  • 3 x 16-bit sigma delta ADC (50 bin örnek / saniye )
  • 12-bit DAC
  • 50 nano saniye ve 25 nano saniyelik ultra hızlı karşılaştırıcılar
  • PGA (Programlanabilir kazanç amplifikatörü)
  • 17 adete kadar zamanlayıcı/sayıcı
  • 5x USART
  • 3x SPI/I2S
  • 2x I2C
  • CAN
  • USB Aygıt
  • RTC

STM32F4

Artık gerçek manada en üst seviye mikrodenetleyici ailelerini anlatmaya bununla başlıyoruz. Şimdi üst seviye diye öve öve bitiremesek de bu yazıyı okuyanların aldanmaması lazımdır. Mikrodenetleyicinin üst seviye olması yüksek işlem hızının olması çok önemli değildir. Önemli olan sizin hangi mikrodenetleyiciyi nerede kullanacağınızdır. Yeri geldiğinde PIC16F serisi bile yeterli olur. Aynı işi bu seviyede bir mikrodenetleyiciye yaptırmak gereksiz olacaktır. Yine de şunu hatırlamanızda fayda var bu ailede 8-bit’in karşılığı Cortex-M0 mikrodenetleyicilerdir. STIM32F4 mikrodenetleyiciler Cortex-M4 çekirdeğini kullanmaktadır ve kendi içerisinde bir hiyerarşiye sahiptir.

Genel maksatlı kullanıma göre üretilip diğer saydıklarımızdan farklı olarak üzerinde TFT sürücüsü bulunur. Ayrıca 180MHz’e kadar saat hızına sahiptir. Aşağıdaki tabloda özellikleri özetlenmiştir.

STM32F7

STM32 ailesinin en üst sınıf mikrodenetleyicilerindendir. ARM Cortex-M7 çekirdeği bulundurur. Çok yüksek işlem gücü ve hız gerektiren uygulamalarda kullanılabilir. 100-216pin arası kılıfa sahiptir. 400MHz’e kadar saat hızına sahiptir. 400MHz şimdiki nesil için yavaş görünse de Pentium II ya da III dönemlerinde bilgisayarla tanışmış nesil için oldukça dikkate değer bir hız olacaktır. Bu serideki mikrodenetleyicilerin genel özellikleri şu şekildedir.

STM32H7

STM32 ailesinin en en üst seviye mikrodenetleyicilerindendir. Bazı modeller 2019’da piyasaya sürülecektir.

Bu Cortex-M7 hakkında çok ayrıntılı bilgi veremediğim için kusura bakmayın. Bunlar için ayrı bir başlığın açılması ve bu makale uzunluğunda bir makalenin yazılması gerekiyordu.O yüzden bu kadarıyla yetinelim.

UYARI!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

5 Responses

  1. Huseyin dedi ki:

    Hocam bu serinizi ilgi ile takip edeceğim.

    Stm32F serileri ile uğraştım. HAL kütüphanelerni kullanarak uygulamalar yaptım.

    Siz bu seride hangi kütüphaneyi kullanarak programlayacaksınız?

Bir cevap yazın

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