Espressif vs STM32

ozkarah

Kıdemli Üye
Katılım
4 Ocak 2022
Mesajlar
1,226
ESP8266 ve ESP32 mikrokontrolcüleriyle bir süredir farklı projeler vesilesiyle uğraşıyorum. Özellikleri ve performansları ile ilgili bir fikrim var.
Aynı zamanda bildiğiniz gibi STM32 serisi de ticari bir çok üründe yaygın kullanılan bir mikrokontrolcü ailesi.

Şu tartışmanın da etkisiyle bu konuda tecrübeleri ve bilgileri paylaşacağımız bir konu açmak istedim:
 
İşlemci performansı konusunda güzel bir kaç kaynak buldum, oradan başlayalım:

1672586291232.png
1672586387180.png



Dhrystone Whetstone sentetik testleri hakkında güzel bir tablo:
1672586463287.png





Kaynaklar:
 
Ben STM32 ailesini tanıdım tanıyalı çok severim.
çoğu üyesi ARM mimarisini taşır fakat yinede ST firmasının tecrübesini direkt aktardığı denetleyicileri var.
Her işlemcisinde mutlaka farklı bir çarpıcı özellik oluyor.
CAN bus uygulamalarında vazgeçilmez role sahipler, bazı modellerinde kararsız pll olduğunu okudum ama onun yan etkilerini ben hiç görmedim.

3.3 işlemcilerde 5V tolersını sadece STM'lerde gördüm.
Bazı modelleri I2C'den dahi programlanmaya müsade ediyor buda bir artı.
Nerdeyse ilave donanım gerekmeksizin çalışabiliyorlar.

Daha birçok özellik yazabilirim aklıma gelenler bunlar.
 
3.3 işlemcilerde 5V tolersını sadece STM'lerde gördüm.

Bu konuda iki ekleme:
ESP8266'nın da aslında 5V destekli olduğu firma CEO'su tarafından açıklandı.
ESP32 ile 5V logic bir kaç projede kullandım, problem yaşamadım ancak desteklediğini söyleyemeyiz.
 
Bu konuda iki ekleme:
ESP8266'nın da aslında 5V destekli olduğu firma CEO'su tarafından açıklandı.
ESP32 ile 5V logic bir kaç projede kullandım, problem yaşamadım ancak desteklediğini söyleyemeyiz.
Bunu uzun vade de görebiliriz ancak.

5V toleransını desteklediğini söylemeyen ESP32 desteklediğini söyleyen STM32F103'den daha uzun süre sorunsuz çalışabilir.

Ben okuduklarıma inanmayıp denemiştim 32F103'e 5V input verip miliampermetre bağlamıştım 3.3 giriş yapınca miliampermetrenin ölçüm aralığı dışında kalırken 5V giriş yapınca 0.1mA ölçüm yapıyordu 5V inputta giriş daha çok akım çekiyor sanırım lojik shifter yerine gerilim bölücü birşey var içeride.
 
STM32'nin tadına bakayım bir projede kullanayım derseniz.
STM32F103C8T6(BLUEPILL)
STM32F401(BLACKPILL)

İle deneyebilirsiniz ikiside becerikli arkadaşlar.
Fiyatlarıda bu arkadaşların yanında at arabası gibi kalacak nanoya göre uygun 100-150 arasında bulunabiliyor ikisi'de,
tabii yanında ST-LINK alırsanız adım adım çalışma ve debug yapabilirsiniz.

Ben STM programlarken keil kullanıyorum kendi idesi de var STM Cube IDE sizi hal ile yazmaya zorluyor ama SPL'de kullanabilirsiniz.
 
Benim STM32 tarafında pek tecrübem yok ancak bu kadar yaygın kullanımlası iyi bir gösterge. Gelecek projelerimde kullanmaya değer bir fark olur mu diye merak ediyorum

EEVblog'daki tartışmada öne çıkan iki durum var:

1- Analog (ADC) performansı ESP32'nin en önemli dezavantajı. Hem yavaş (25 KSPS) hem de alt ve üst bölgede lineer değil. STM32 ise bu konuda çok daha başarılı kabul ediliyor. Örnekleme hızı ilse bir kaç yüz KSPS'den bir kaç MSPS'e kadar çıkabiliyor. Harici bir ADC kullanılmayacağı zaman ve analog ölçümün dinamik aralığı ve hassasiyeti önemliyse STM32 daha mantıklı bir tercih olabilir.


1672587450620.png

ESP32 ADC performansı. Görüleceği gibi 150-2500 mV aralığı düzgün ölçüm yapıyor. Çözümü olsa da işi zorlaştıran bir durum.



1672588040083.png

ESP32-S3'de ADC performansını oldukça iyileştirdiler. Kör bölge 7-8 mV altına indirilebiliyor. Üst bölge ise çok daha lineer. Ama STM32 sanırım hala daha iyi durumdadır.


2- ESP32 serisinin en öneml iki avantajı ise çift çekirdek ve BT, BLE ve WiFi gibi IoT özelliklerinin SoC içerisinde kendiliğinden gelmesi. Bu sadece tek modül kullanarak düşük enerji tüketimli IoT projelerini yapmayı çok kolaylaştırıyor. Aynı zamanda çok da ucuz hale getiriyor. İlave bir WiFi ya da BT modülüne ihtiyacı ortadan kaldırıyor.
 
Benim STM32 tarafında pek tecrübem yok ancak bu kadar yaygın kullanımlası iyi bir gösterge. Gelecek projelerimde kullanmaya değer bir fark olur mu diye merak ediyorum

EEVblog'daki tartışmada öne çıkan iki durum var:

1- Analog (ADC) performansı ESP32'nin en önemli dezavantajı. Hem yavaş (25 KSPS) hem de alt ve üst bölgede lineer değil. STM32 ise bu konuda çok daha başarılı kabul ediliyor. Örnekleme hızı ilse bir kaç yüz KSPS'den bir kaç MSPS'e kadar çıkabiliyor. Harici bir ADC kullanılmayacağı zaman ve analog ölçümün dinamik aralığı ve hassasiyeti önemliyse STM32 daha mantıklı bir tercih olabilir.


21452 eklentisine bak
ESP32 ADC performansı. Görüleceği gibi 150-2500 mV aralığı düzgün ölçüm yapıyor. Çözümü olsa da işi zorlaştıran bir durum.



21457 eklentisine bak
ESP32-S3'de ADC performansını oldukça iyileştirdiler. Kör bölge 7-8 mV altına indirilebiliyor. Üst bölge ise çok daha lineer. Ama STM32 sanırım hala daha iyi durumdadır.


2- ESP32 serisinin en öneml iki avantajı ise çift çekirdek ve BT, BLE ve WiFi gibi IoT özelliklerinin SoC içerisinde kendiliğinden gelmesi. Bu sadece tek modül kullanarak düşük enerji tüketimli IoT projelerini yapmayı çok kolaylaştırıyor. Aynı zamanda çok da ucuz hale getiriyor. İlave bir WiFi ya da BT modülüne ihtiyacı ortadan kaldırıyor.
Bu biraz tercih meselesi aslında.
Benim projem internett veya BT tabanlıysa benim çokta tereddütüm yoksa ESP32 kullanmaktan daha mantıklı bir çözümüm yok.

Ama projemde haberleşme,I/O kontrol analog yorumlama var ve hiçbir kablosuz iletişim ile işim yoksa o zaman STM, dsPIC,Nuvoton alternatiflerine dönmeliyim.
 
Geliştirme ortamı konusunda her iki ailede de çok seçenek var.
- Geliştirme araç zincirlerini kullanarak herhangi bir IDE ile yazdığınız kodu kendiniz derleyip yükleyebilirsiniz.
- Arduino IDE ile kod yazmak her iki aile için de mümkün.
- Debug konusunda STM32 ve ESP32 için çözümler var. Ancak ESP8266 ile donanımsal debug yapma imkanı yok. Bazı kütüphaneler ile UART üzerinden çalışan bir debugger var. ESP32 için şu kartı kullanarak Platform IO ile HW destekli debug yapabiliyorsunuz:
1672588406902.png


@Ahmet 'in dediği gibi STM32 için ise ST-LINK kullanmak gerekiyor.
 
Geliştirme ortamı konusunda her iki ailede de çok seçenek var.
- Geliştirme araç zincirlerini kullanarak herhangi bir IDE ile yazdığınız kodu kendiniz derleyip yükleyebilirsiniz.
- Arduino IDE ile kod yazmak her iki aile için de mümkün.
- Debug konusunda STM32 ve ESP32 için çözümler var. Ancak ESP8266 ile donanımsal debug yapma imkanı yok. Bazı kütüphaneler ile UART üzerinden çalışan bir debugger var. ESP32 için şu kartı kullanarak Platform IO ile HW destekli debug yapabiliyorsunuz:
21458 eklentisine bak

@Ahmet 'in dediği gibi STM32 için ise ST-LINK kullanmak gerekiyor.
elimizde mesela 2 tane 32F103 olsun.
bu 103'lerden birisi iş yapıyor diğeri de boşta duruyor boşta duran 103 ST - LINK olarak çalışabilir sonra tekrar 103 haline döndürmekte çok kolay ST-LINK için ilave bir donanıma gerek yok.
ST-LINK alamazken ben o şekilde kullanıyordum 1 103'üm st-link olarak çalışıyordu sonra aldım gerçi çoğu st geliştirme kartında(stnin tasarladığı nucleo,discovery vs.) üstünde st link oluyor ve istersek o st-link ile başka bir st'yi programlayabiliyoruz 1 jumperi oluyor o jumperi ayrıldığında artık st-link özgür oluyor headerından bağladığın her stm'i programlar debug yapar hale geliyor.

download.jpg
 
Enerji kullanımı açısından karşılaştırdığımızda her iki ailede de uyku modunda çok düşük enerji tüketimi mümkün. Dolayısıyla pille bir kaç yıl çalışacak ürünler yapmak mümkün görünüyor.

STM32F0xx serisi için stop modunda 8uA civarı bir tüketim var.
ESP32 için deep sleep (RTC ve düşük tüketimli coprocessor açık) modunda 10uA, hibernation (sadece RTC açık) modunda 2.5 uA tüketim var.

Normal çalışmada ise STM32F0xx 10 mA tüketim sunarken ESP32 3-20 mA sunuyor. WiFi açılınca ise bu miktar 160-200 mA'e kadar çıkabiliyor.
 
Bu biraz tercih meselesi aslında.
Benim projem internett veya BT tabanlıysa benim çokta tereddütüm yoksa ESP32 kullanmaktan daha mantıklı bir çözümüm yok.

Ama projemde haberleşme,I/O kontrol analog yorumlama var ve hiçbir kablosuz iletişim ile işim yoksa o zaman STM, dsPIC,Nuvoton alternatiflerine dönmeliyim.
@Ahmet biz ne dedik :D:D
 
Dur bir toparlayalım ana başlıkları. Ekleriz sonra altına.

Bir kaç konu daha var, eklemek istediğim, ancak şimdi vaktim yok, acil bir kaç şeyle ilgilenmem lazım.:

1- Donanımsal desteklenen protokoller ve adetleri (ADC, GPIO, DAC, I2C, UART, SPI, Touch Sensor, ... )
2- GPIO performansı (GPIO set/read hızı)
3- SDK' üzerinde desteklenen ilave özellikler (ESP-DL, ESP-WHO vb.)
4- ESP32-C3 ve RISC V mimarisi

STM32 konusuna da hakim sayılırsın. Bunlara bir baksan ne güzel olur :)
 
STM32'nin bir kötü tarafı piyasanın sahteleriyle kaynıyor olması.
 
Evet çok önemlibir problem. Ancak bu genel bir problem. ESP32, STM32 ve bir çok IC için geçerli.
Bu tür malzemeleri alırken kalite önemliyse, güvenilir tedarikçilerle çalışmak lazım.

EKOM Digikey TR dağıtıcısı. Ben kritik işler için malzeme alırke EKOM ve Özdisan'ı ercih etmeye çalışıyorum. Çok sıradan işlerde ise rastgele alıyorum. Espressif özelinde Empa Store da Espressif'in Türkiye temsilcisi, oradan güvenle alabileceğimizi varsayıyorum.
 
3 tane STM modelini ele alalım.
2 si orta seviye biri üst seviye benim gözümdeki yerleri bunlar.

STM32F103C8
32BIT CORTEX-M3
MAX 72MHz PLL(sadece 4-16 MHz arasında krsital bağlanabilir)
2-3.6V çalışma aralığı.
Uyku, Durma, Hazırda bekleme modları.
128k flash.
20k sram.
16 tane 12 bit analog giriş.
dahili sıcaklık sensörü.

USB 2.0
CAN
UART
SPI
I2C
SWD
96-bit unique ID
16 bit 7x TIMER
2x WDT

STM32F401
32BIT CORTEX-M4
MAX 84MHz PLL(sadece 4-26 MHz arasında krsital bağlanabilir)
1.7-3.6V çalışma aralığı.
Uyku, Durma, Hazırda bekleme modları.
512k flash
96k sram
16 tane 12 bit analog giriş.


USB 2.0(OTG OLABLIYOR)
SPI
I2C
I2S
UART
SDIO
SWD
11x TIMER(2 TANESI 32BIT KALANI 16)
96-bit unique ID


STM32F407
32BIT CORTEX-M4
MAX 168MHz(sadece 4-26 MHz arasında krsital bağlanabilir)
1.8-3.6V çalışma aralığı.
Uyku, Durma, Hazırda bekleme modları.
1Mb flash
192+4 sram
512 byte OTP
24x 12bit analog giriş.
2x 12 bit analog çıkış(dac)
8080 ve 6800 LCD arayüzü.


ETHERNET
USB 2.0(OTG)
CAN
I2C
I2S
UART
SPI
SDIO
8-14BIT paralel kamera arayüzü
rastgele sayı üreteci diye birşey de varmış içinde.
96-bit unique ID
138 tane I/O hepsi 5V toleranslı.
 
  • Beğen
Reactions: nt

Benzer konular

Forum istatistikleri

Konular
5,663
Mesajlar
97,410
Üyeler
2,439
Son üye
Efekan

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top