STM32F7 Ailesine ve ARM Cortex-M7 Çekirdeğine Giriş

Ben STM32F3 serisi üzerinde çalışacak olsam da STM32 ailesinin oldukça geniş ve farklı ihtiyaçlara cevap veren serilerinin olduğunu biliyorum. O yüzden diğer seriler üzerinde bir ön araştırma yaptım ve serilerin özelliklerini yeteri kadar bilmekteyim. Bu aile içerisindeki en kuvvetli serinin de STM32F7 ve H7 serileri olduğunu biliyoruz. Daha ilerisinde mikrodenetleyici kategorisinden çıkıp mikroişlemcilere geçiş yapmamız gerektiğinden mikrodenetleyici kullanarak en yüksek performans ve kapasiteyi arayanların STM32F7 serisine bakması gereklidir. Ben Jeofizik alanında daha çok analog sinyal işleme ile uğraştığımdan STM32F3 serisini tercih etsem de görüntü işleme gibi yazılımsal yönü ağır basan yani işlem gücü gerektiren uygulamalarda F7 gibi yüksek performanslı seriler kullanılmalıdır. Bir gün bana da lazım olabilir diye bu seriyi araştırıp bir mikrodenetleyici hakkında ön bilgi edinmem iyi olacaktır. Bunu da sizlerle paylaşacağım.

Öncelikle F7 serisini inceleyeceğiz ve ardından F7 serisinde uygun gördüğümüz bir mikrodenetleyiciyi datasheet üzerinden ayrıntıları ile anlatıp yorumlayacağız. Şimdi STM32F7 serisini incelemekle işe başlayalım. Ben de bu yazıyı yazarken bu konu hakkında herhangi bir ön araştırma yapmış değildim. Önemli olan bunu bilip bilmemek değil nereden öğreneceğiniz ve nasıl anlayacağınızdır. Bu yazı bittiğinde ben de sizin gibi ö ğrenmiş olacağım.

STM32F7 serisine ait bilgiyi üreticisi olan ST Microelectronics’in sayfasında bulabiliriz. Başka kaynaklar da buradan istifade ederek kendi kaynaklarını hazırlamaktadırlar. İnternette başka kaynak olarak şu internet sayfası gözümüze çarpmaktadır. Fakat bu sayfanın da üreticinin sağladığı bilgilerden çok fazlasını içermediğini söyleyebiliriz.

http://www.emcu.it/STM32F7/STM32F7xx.html

STM32F7’nin üretici sayfasına bakarak incelemeyi devam ettirelim. Siz de benimle beraber incelemeniz için sayfanın bağlantısını vereyim.

https://www.st.com/en/microcontrollers-microprocessors/stm32f7-series.html?querycriteria=productId=SS1858

Burada STM32F7 serisinin çok yüksek performanslı mikrodenetleyiciler olduğu ve Cortex-M7 çekirdeğini ihtiva ettiği belirtilmektedir. Cortex-M7 çekirdeğini incelemeye ARM’ın sitesinden devam edeceğiz biz şimdi sayfada yer alan bilgileri size aktaralım.

  • AXI ve çoklu AHB yol makriksi ile çekirdek, çevre birimler ve hafızalar arasında iç bağlantı ağı kurulabilir.
  • 16 + 16 Kilobayta kadar l-tamponu ve D-tamponu
  • 2 Megabayta kadar gömülü Flash hafıza. Bu hafıza belli aygıtlar tarafından okunup yazılabilir.
  • 2 adet genel maksatlı DMA denetimcisi ve belli çevre birimleri için (Ethernet, USB, ART Grafik Hızlandırıcısı) özel DMA birimleri bulunmaktadır.
  • Çevre yolu hızı işlemci hızından bağımsızdır. Bu sistem saati değişikliği sırasında herhangi bir etkileşime sebep olmaz.
  • Çok fazla çevre birimi, iki adet seri ses arayüzü (SAI), üç adet I2S arayüz ve 2 USB OTG arayüzü ve SPI Flash hafıza arayüzü.
  • Bölünmüş mimarisi ile yüksek kapasiteli SRAM bellek. 512 kilobayta kadar genel veri hafızası bulunur ve belli bölümleri kritik işlemlere göre ayrılmıştır.
  • Korunmuş kod işletimi özelliği.
  • Çip üzerinde USB yüksek hız PHY katmanı (bazı modellerde)

Uyumluluğa baktığımızda Cortex-M7’nin Cortex-M4 komut setiyle uyumlu olduğunu görmekteyiz. Ayrıca STM32F7 serisi STM32F4 serisine ayaktan ayağa uyumluluk göstermektedir. Günümüzde pek çok mühendisin STM32F4 ile başladığını görmekteyiz. STM32F4 bize yeterli işlem gücünü vermediği zaman STM32F7’ye geçmekte çok sıkıntı yaşanmayacağını buradan anlamak gereklidir. Çekirdeklerin mimarilerini incelediğimizde de bunun farkına varacağız.

Şimdi F7 ailesindeki ürünlerin ve ürün özelliklerinin özetlendiği tabloyu inceleyerek yazımıza devam edelim.

Öncelikle burada ortak yer alan özelliklerin sol taraftaki sütunda bulunduğunu hatırlatalım. Bu özellikler bizim bildiğimiz F0, F1, F3 ya da 8-bit mikrodenetleyicilerin çevre birimlerine göre oldukça farklı görülmektedir. Adeta mikrodenetleyici bilgisayara daha çok yaklaşmış ve yazılımsal alanda kendini daha fazla gösterir olmuştur. Örneğin burada ilk defa gördüğümüz ART görüntü hızlandırıcı birimi görmekteyiz. Bu birimi kullanmak için bir TFT ekran kullanmamız gerektiğini ve görüntü ile alakalı hatta multimedya uygulamalarını yapmamız gerektiğini görebiliriz. USB bağlantılarının fazla olması, HDMI birimi içermesi, Ethernet denetleyicisinin olması adeta bir bilgisayarda göreceğimiz özelliklerdir. Ayrıca bilgisayar ve multimedya sistemlerinde ses özelliklerine de ihtiyaç olduğundan ses konusunda da yeni yeni birimler eklenmiştir.

Biz bu özelliklere bakarak mikrodenetleyicinin multimedya, işlem gücü ve çok yönlülük odaklı olduğunu söyleyebiliriz. Fakat analog birimlere baktığımızda STM32F3 serisinden zayıf olduğunu görmekteyiz. STM32F3 serisinden başka bir seriyi kullanamayacağım anlaşılan. 🙂

İşlem gücü ve hafızaya baktığımızda karşımıza yeni bir kavram olan Cache bellek çıkmaktadır. Bu zamana kadar bilgisayarın işlemcilerinden tanıdığımız Cache belleğin mikrodenetleyici seviyesinde bile kullanıldığını görmekteyiz. Flash hafızanın 1-2MB arası olduğunu ve ileri seviyelerde 512KB ram bellek olduğunu görebiliriz. Bu bir dönemin bilgisayarlarından bile fazla değerlerdir. Günümüz bilgisayarları ile yarışamayacak seviyede olsa da bir dönemin koca bilgisayarları bir çipe sığdırılmış haldedir.

Value Line, yani ekonomi kısmına baktığımızda ise daha düşük kapasiteli fakat aynı çekirdeğe ve işlem gücüne sahip modelleri görebiliriz. Bizim  yazacağımız program ufaksa ve fazla işlem gücü gerektiriyorsa 2 megabaytlık hafızaya sahip bir çipi kullanmamızın anlamı yoktur. Burada her ailenin ekonomi serisi olduğunu görebiliriz. Maliyeti düşünenler varsa buraya bakmalıdır.

Sayfanın devamında modellerin olduğu liste olsa da ben özellikle bir modeli seçmek istiyorum. Bu model bir geliştirme kartında kullanılmalı ve bilindik olmalıdır. O yüzden 32F46G DISCOVERY kartında kullanılan STM32F746NG mikrodenetleyicisini inceleyeceğim. Bu geliştirme kartının piyasa fiyatının 500 lira civarında olduğunu görmekteyiz fakat piyasada bulabileceğiniz bir karttır.

 

STM32F746 mikrodenetleyicisinin teknik veri kitapçığını okuyarak yazıya devam edelim. Bu kitapçığı siz de aşağıdaki bağlantıdan indirip inceleyebilirsiniz.

https://www.st.com/resource/en/datasheet/stm32f746ng.pdf

Kitapçıkta ilk baktığım yer mevcut kılıfların olduğu kısım oldu. Çünkü BGA kılıfında olan bir çipi lehimlemek çok zor olacaktı. O yüzden burada ayakları olan entegre kılıflarının olması bile bizi sevindirmektedir. Örneğin bazı FPGA gibi gelişmiş çiplerin sadece BGA kılıfı olmaktadır. Kılıf yapılarını şu resimde görmekteyiz.

Özellikler kısmına baktığımızda en başta Cortex-M7 çekirdeğine sahip olan işlemciyi görmekteyiz. Bu işlemci ARM 32-bit Cortex-M7 çekirdeğinin yanında ART görüntü hızlandırıcısına, L1 cache belleğine, harici veri hafızasına sahip olup 216MHz saat hızında çalışmaktadır. FPU ve DSP komutlarının olmasıyla Cortex-M4 FPU çekirdeğine benzerlik göstermektedir. FPU’nun kayan noktalı birim ünitesi, DSP’nin de dijital sinyal işleme demek olduğunu bu mikrodenetleyici ile ilgilenen herkes önceden bilmek zorundadır. Çünkü burada çok daha karmaşık işlerle uğraşırken bu basit kavramları çoktan bilmek gereklidir.

Şimdi mikrodenetleyiciyi incelemeye biraz ara verelim ve bu çekirdekleri inceleyelim. Karşılaştıracağımız çekirdek kendisine en yakın olan ve sıkça kullanılan Cortex-M4 çekirdeği olacaktır. Öncelikle Cortex-M4 çekirdeğine bakalım ve sonrasında ne gibi özelliklerin geldiğini görelim.

Cortex-M4 çekirdeğine baktığımızda oldukça gelişmiş bir çekirdek olduğunu ve kendinden önceki çekirdekler üzerine pek çok yenilik getirdiğini söyleyebiliriz. Önemli noktalardan biri de M4 çekirdeğinin iki ayrı versiyonunun olmasıdır. Bunlardan biri düz M4 diğeri ise M4-FPU yani kayan noktalı birim komutlarını destekleyen çekirdektir. STM32F3 ve STM32F4 mikrodenetleyicilerde FPU destekli çekirdek kullanılmaktadır. FPU desteklemesi sebebiyle Cortex-M4 FPU daha gelişmiş bir çekirdektir.

İşlem gücünün yanında Cortex-M4 serisinin meydana getirilmesindeki en önemli sebep “Dijital Sinyal İşleme” piyasasında kullanılabilmesidir. Ne yazık ki ülkemizde mühendislik öğrencileri pek ilgilenmese de dijital sinyal işleme gömülü sistemlerin önemli konularından biridir. Dijital sinyal işleme sayesinde pek çok bilimsel hesaplama ve ölçüm cihazı yapılabilir ve analog devreden kurtulma imkanına sahip oluruz.

Cortex-M4 çekirdeğinde merkezi işlem biriminin Armv7-M olduğunu görmekteyiz. Evet çekirdek ile merkez işlem birimi bir değildir ve merkezi işlem biriminin yanında pek çok eleman barındırmaktadır. Şimdi Cortex-M7 çekirdeğine bakalım ve sonrasında teknik özellikleri bakımından kıyaslayalım.

Cortex-M7 çekirdeğinde olan her şeyin olduğunu hatta merkezi işlem birimlerinin bile aynı olduğunu fakat l-cache, d-cache- AXI-M- ECC gibi yeni birimlerin ve teknolojilerin getirildiğini görmekteyiz. Teknik özelliklerini kıyasladığımızda çoğu yönden birbirine benzer olduğunu görsek de Cortex-M7 çekirdeği Cortex-M4’de olmayan özellikleri bünyesinde bulundurmuştur diyebiliriz. Şimdilik çekirdekleri ayrıntılı olarak inceleyip konu dışına çıkmak istemiyorum. Belki başka bir konuda çekirdeğin ayrıntılı incelemesini yapabiliriz.

Yazı yeterince uzadığı için mikrodenetleyiciyi incelemeye bir sonraki makalede devam edeceğim. Bu haliyle bile bu konudaki internetteki en kapsamlı bilgiyi içeren kaynak olduğunu söyleyebiliriz. 🙂

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

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...

Bir cevap yazın

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