Espressif Systems Rehberi: Devre Tasarımı
Kendi ESP32'nizi yapmak, sandığınızdan daha kolay..

Espressif Systems, 2008 yılında Çin'de kurulan ve kısa sürede IoT dünyasında devrim yaratan bir şirkettir. Özellikle ESP8266 ve ESP32 mikrodenetleyicileriyle tanınan Espressif, bu çiplerin sunduğu düşük maliyet ve yüksek performans sayesinde, dünya genelinde bir milyardan fazla IoT cihazına güç sağlamaktadır.
ESP Serileri
1. ESP8266 Serisi (İlk Nesil, Wi-Fi)
- ESP-01 → En küçük ESP8266 modülü, 2 GPIO pini var.
- ESP-07 → Harici anten desteği (IPEX konektörü), daha fazla GPIO.
- ESP-12E/F/S → ESP8266’nın en popüler versiyonu, 11 GPIO, ADC, SPI, I2C desteği.
- ESP8285 → ESP8285, ESP8266 ile aynı özelliklere sahiptir ancak 1 MB entegre flaşa sahiptir ve harici flash eklenemez. Yani, ESP8285 kullanan bir modülde daha fazla flash bellek eklemek mümkün değildir.
📌 ESP8266 serisi Wi-Fi destekler, ancak Bluetooth içermez ve genellikle tek çekirdekli 80/160 MHz işlemci kullanır. ESP-12F ve ESP8266 tamamen aynı şey değildir, ancak ESP-12F, ESP8266 çipini kullanan bir modüldür.
Örnek ESP12-F çalışması
2. ESP32 Serisi (Çift Çekirdek, Wi-Fi + Bluetooth)
- ESP32-WROOM-32 → En yaygın ESP32 modülü, çift çekirdekli, Wi-Fi + Bluetooth 4.2 destekli.
- ESP32-WROVER → WROOM’dan farkı: 8 MB veya 16 MB PSRAM içerir (görüntü işleme, AI için ideal).
- ESP32-PICO-D4 → Daha küçük boyutlu (Tüm bileşenleri tek bir çipte içerir).
- ESP32-C3 → RISC-V tabanlı, Wi-Fi + Bluetooth 5, düşük güç tüketimli.
- ESP32-S2 → Wi-Fi var ama Bluetooth yok, USB-OTG desteği var.
- ESP32-S3 → ESP32-S2’nin geliştirilmiş hali, Bluetooth 5 desteği var.
- ESP32-H2 → Wi-Fi yok, Zigbee ve Thread desteği var (IoT ve Mesh ağları için uygun).
📌 ESP32 serisi genellikle çift çekirdeklidir, Wi-Fi ve Bluetooth içerir ve daha güçlüdür.
ESP32, Espressif Systems tarafından geliştirilen güçlü, düşük maliyetli ve çok yönlü bir Wi-Fi ve Bluetooth destekli mikrodenetleyicidir. Gömülü sistemler, IoT (Internet of Things – Nesnelerin İnterneti), kablosuz iletişim ve otomasyon projeleri için yaygın olarak kullanılır.
- İçinde "U" harfi varsa → Harici anten konnektörü (IPEX) bulunur. "U" olmayanlar PCB antenlidir.
- Sonundaki sayı (örneğin, WROVER-8) → PSRAM kapasitesini gösterir. Örneğin, WROVER-8 → 8 MB PSRAM, WROVER-16 → 16 MB PSRAM içerir.
- WROOM serisi genellikle PSRAM içermez, ancak WROVER modellerinde PSRAM bulunur.
- C → RISC-V mimarisi (ESP32-C3 gibi).
- S → SP32-S3 ESP32 ile aynı GPIO sayısına sahiptir. Ancak bazı ek fonksiyonları nedeniyle farklı pin fonksiyonları olabilir. GPIO sayısı açısından bir artış yoktur. Sadece ekstra AI (yapay zeka) talimat setleri ve USB-OTG desteği eklenmiştir.
- H → Zigbee, Thread gibi IoT protokolleri (ESP32-H2 gibi).
ESP32-WROOM, standart ESP32 modülüdür ve genellikle 4-16 MB flash belleğe sahiptir. WROVER serisinin tamamında PSRAM olduğu varsayımı yanlış. Modeline göre değişiklik gösterir. WROVER serisi, daha fazla bellek ihtiyacı olan projeler (örneğin görüntü işleme veya büyük veri saklama) için daha uygundur. ESP32-WROOM, yalnızca dahili Flash belleğe sahip standart bir ESP32 modülü iken, ESP32-WROVER ek olarak 8MB PSRAM içerir, bu da büyük veri setleri, görüntü işleme ve yoğun bellek gerektiren uygulamalar için daha uygun hale getirir.
Model | Çekirdek Sayısı | Saat Hızı (MHz) | Wi-Fi Desteği | Bluetooth Desteği | USB Desteği | Güç Tüketimi (mA) | Öne Çıkan Özellikler |
---|---|---|---|---|---|---|---|
ESP 8266 | 1 (Tensilica L106) | 80/160 | 802.11 b/g/n | Yok | Yok | 15-400 | Düşük maliyet, Wi-Fi, IoT için yaygın |
ESP 8285 | 1 (Tensilica L106) | 80/160 | 802.11 b/g/n | Yok | Yok | 15-400 | ESP8266 ile benzer, dahili flash |
ESP 32 | 2 (Xtensa LX6) | 160/240 | 802.11 b/g/n | BT 4.2/BLE | Yok | 10-240 | Wi-Fi + BT, çift çekirdek, güçlü |
ESP32-C3 | 1 (RISC-V) | 160 | 802.11 b/g/n | BT 5/BLE | Yok | 10-130 | RISC-V, düşük güç, güvenlik geliştirilmiş |
ESP32-S2 | 1 (Xtensa LX7) | 240 | 802.11 b/g/n | Yok | USB-OTG | 5-170 | USB-OTG, yüksek GPIO sayısı, Wi-Fi |
ESP32-S3 | 2 (Xtensa LX7) | 240 | 802.11 b/g/n | BT 5/BLE | USB-OTG | 5-240 | ESP32-S2'ye ek olarak Bluetooth 5 |
ESP32-H2 | 1 (RISC-V) | 96 | Yok | BT 5.2/BLE | Yok | 5-80 | Bluetooth Mesh ve Zigbee desteği |
Ayrıca yakın zamanda duyurulan ESP32-C5 serisi 5Ghz desteği sunarken, ESP32-C6 Wi-Fi 6, Bluetooth 5.3 ve Thread desteği sunuyor. ESP32-C3'ün geliştirilmiş versiyonu olarak düşünülebilir.
Ram farkı
Özellik | PSRAM | SRAM | DRAM |
---|---|---|---|
Hız | Orta (SRAM’den yavaş, DRAM’e yakın) | Çok hızlı | Daha yavaş |
Yapı | DRAM temelli, ancak kontrolü kolay | Transistör tabanlı | Kapasitör tabanlı |
Kapasite | 8 MB, 16 MB gibi düşük kapasiteler | Küçük kapasiteli (KB-MB) | GB seviyesine kadar çıkar |
Güç Tüketimi | Düşük | Düşük | Daha yüksek |
Mikrodenetleyici Kullanımı | Harici bellek olarak eklenebilir | Genellikle entegre (ESP içinde) | Genelde harici (PC’lerde) |
ESP serilerinde kullanılan bellek yapıları, modeline göre değişiklik gösterir. ESP32-WROOM gibi standart modeller, dahili olarak 520 KB SRAM içerir ve genellikle harici PSRAM bulunmaz. Bu SRAM, ESP32’nin ana çalışma belleği olup, transistör tabanlıdır, hızlıdır ve yenileme gerektirmez. Ancak kapasitesi sınırlı olduğu için büyük veri işleme gerektiren projelerde yetersiz kalabilir. ESP32-C3 gibi RISC-V tabanlı modellerde 400 KB SRAM, ESP32-S3 gibi gelişmiş versiyonlarda ise 512 KB SRAM bulunur.
ESP32-WROVER serisi, standart WROOM modellerine ek olarak harici PSRAM içerir. Bu PSRAM, kapasitör tabanlıdır ve DRAM’e benzer şekilde çalışır, yani daha büyük veri işleme kapasitesi sağlar ancak daha yavaştır ve yenileme gerektirir. WROVER-8 veya WROVER-16 gibi adlandırmalarda sondaki rakam, modülde bulunan PSRAM kapasitesini ifade eder (örneğin WROVER-8 = 8 MB PSRAM, WROVER-16 = 16 MB PSRAM). PSRAM sayesinde ESP32-WROVER modelleri, büyük veri işlemleri, görüntü işleme ve AI (yapay zeka) gibi yoğun bellek gerektiren işlemler için daha uygundur.
ESP serilerinde flash bellek de önemli bir unsurdur. Standart ESP32 modelleri harici SPI Flash kullanır, bu flash bellek genellikle 4 MB, 8 MB veya 16 MB kapasiteye sahiptir. ESP8266 gibi eski modellerde doğrudan harici SPI Flash bulunurken, ESP8285 gibi bazı özel versiyonlar 1 MB dahili flash içerir. SPI (Serial Peripheral Interface) üzerinden çalışan bu bellekler, genellikle programların ve statik verilerin saklandığı alandır. PSRAM’den farklı olarak, SPI Flash daha yavaş olsa da kalıcı veri depolamak için kullanılır. Büyük uygulamalar ve sık veri erişimi gerektiren projeler için SPI Flash kapasitesi önemli bir faktördür.
Özetle, ESP32’nin ana çalışma belleği SRAM’dir, ancak gelişmiş modellerde harici PSRAM desteği eklenerek daha büyük veri işlemleri mümkün hale gelir. Flash bellek ise kod ve kalıcı verileri saklamak için kullanılır ve genellikle harici SPI Flash olarak gelir. Bu bellek yapılarını anlamak, ESP modülleriyle çalışırken hangi modelin hangi projeye daha uygun olduğunu belirlemede kritik bir rol oynar.
Programlama
ESP-12F için harici programlayıcı yapıyorum.. pic.twitter.com/lKBF0eYUPm
— Doğukan Sahil (@DogukanSahil) November 4, 2024
- ESP32-S2 (USB OTG): USB On-The-Go (OTG) desteği vardır. Hem USB cihazı hem de USB host olarak çalışabilir. USB üzerinden doğrudan programlanabilir, yani harici USB-UART dönüştürücüye gerek yoktur. USB
- ESP32-S3 (USB OTG): USB OTG desteği vardır. Hem USB cihazı hem de host olarak çalışabilir. USB üzerinden doğrudan programlanabilir ve HID cihazları (klavye, fare vb.) simüle edebilir. USB
Eğer ESP32’de dahili USB (OTG veya Serial/JTAG) desteği yoksa, programlama için harici bir USB-UART dönüştürücü kullanmak gerekir. En yaygın kullanılan çeviriciler CH340, CP2102, FTDI FT232RL ve PL2303 gibi entegrelerdir. Bu dönüştürücüler, ESP32’nin UART (TX/RX) pinleri üzerinden bilgisayarla haberleşmesini sağlar. Programlama sırasında BOOT (GPIO0) pini düşük seviyeye çekilerek ESP32 flash moduna alınır ve yazılım yüklenir. Alternatif olarak, bazı geliştirme kartları (örneğin ESP32 DevKit) üzerinde otomatik programlama devresi bulunur, böylece manuel mod değiştirmeye gerek kalmadan doğrudan yazılım yüklenebilir.

ESP32-S2 ve ESP32-S3'ün USB-OTG desteği var, ancak tam teşekküllü bir USB host (ev sahibi) olarak kullanımı bazı kısıtlamalara sahip. ESP32-S2 ve ESP32-S3'ün USB-OTG desteği sayesinde doğrudan USB üzerinden programlanması mümkündür. Yani, harici bir USB-UART dönüştürücü (CH340, CP2102, FTDI vs.) kullanmadan bilgisayara bağlanarak yazılım yüklenebilir. Ancak bazı detaylara dikkat etmek gerekiyor. ESP32-S2 ve ESP32-S3, USB host olarak çalışabilir ama sadece bazı temel cihazları destekler.
- Klavyeler, fareler, bazı seri cihazlar gibi davranabilir.
- USB bellek, harici disk, web kamera, ses kartı gibi cihazlar henüz doğrudan desteklenmiyor.
ESP32’ye OTA (Over-the-Air) ile doğrudan programlama yapabilmek için, ilk başta cihazın OTA destekleyen bir firmware ile programlanması gerekir. Yani, OTA'yı kullanarak bir güncelleme yapmadan önce, ESP32’ye en az bir kez kablolu bağlantı (USB veya UART) ile OTA destekli bir yazılım yüklenmelidir.
ESP32, Arduino IDE, ESP-IDF, PlatformIO, MicroPython ve CircuitPython gibi farklı geliştirme ortamlarıyla programlanabilir. Arduino IDE, basit projeler ve hızlı geliştirme için popülerdir, ancak ESP32’nin tüm özelliklerini kullanmak için Espressif’in resmi geliştirme ortamı olan ESP-IDF daha uygundur. PlatformIO, hem Arduino hem de ESP-IDF ile uyumludur ve gelişmiş proje yönetimi sunar. MicroPython ve CircuitPython, Python ile programlama yapmak isteyenler için idealdir. Ayrıca, Eclipse ve VS Code gibi IDE’ler de ESP-IDF eklentileriyle kullanılabilir.
Tasarım
Dahili anten içeren ESP kartları PCB'ye yerleştirilirken sağ-sol ve antenin bulunduğu kısmın yukarısında 15'er milimetre boşluk bırakılmasını önermektedir Donanım Tasarımı Yönergeleri .
ESP32’nin dahili bir osilatörü olsa da, ana sistem saatini sağlamak için harici bir kristal osilatöre ihtiyaç duyar. Dahili 40 MHz’lik bir harici kristal kullanılır ve bu, sistemin ana saat kaynağı olarak görev yapar. ESP32 ayrıca 32.768 kHz’lik bir harici RTC kristalini destekler, ancak bu isteğe bağlıdır; RTC (Real-Time Clock) düşük güç modlarında çalışırken saat bilgisini koruyabilir. Eğer harici RTC kristali kullanılmazsa, RTC saati dahili RC osilatörüne dayanarak çalışabilir, ancak bu daha az kararlıdır. Ethernet kullanımı durumunda ise 50 MHz’lik harici bir saat kaynağı (örneğin bir osilatör veya RMII PHY üzerinden sağlanan saat sinyali) gerekebilir. PCB tasarımında kristal bağlantılarının kısa ve simetrik olması, yük kapasitörlerinin doğru seçilmesi sinyal bütünlüğü açısından kritik öneme sahiptir.

ESP32 Hardware Design Guidelines belgesinde decoupling (dekupaj) kapasitörleri hakkında şu önemli noktalar belirtilmiş:
1. Dijital Güç İçin Dekupaj Kapasitörleri
- VDD3P3_CPU (ESP32'nin ana dijital güç kaynağı) için:
- 0.1 µF kapasitör doğrudan bu pine yakın yerleştirilmeli.
- Bu kapasitör, güç dalgalanmalarını azaltarak ESP32'nin kararlı çalışmasını sağlar.
- VDD_SDIO (ESP32'nin harici flash/PSRAM için güç çıkışı) için:
- 1 µF veya 4.7 µF kapasitör öneriliyor.
- Kullanılan bileşenlerin gerilimine bağlı olarak değişebilir.
2. Analog Güç İçin Dekupaj Kapasitörleri
- VDD3P3 (ESP32'nin analog bileşenleri için güç kaynağı) için:
- 10 µF kapasitör eklenmeli.
- Ek olarak bir 1 µF kapasitör de konulabilir.
- Bu, ESP32'nin RF ve ADC gibi hassas bileşenlerinin stabil çalışmasını sağlar.
- Ek olarak, LC devresi (indüktör + kapasitör) kullanılması öneriliyor:
- Bu, yüksek frekanslı gürültüyü baskılar ve daha temiz bir güç hattı sağlar.
3. RTC Gücü İçin Dekupaj Kapasitörleri
- VDD3P3_RTC (Gerçek Zamanlı Saat - RTC için güç kaynağı) için:
- 0.1 µF kapasitör eklenmeli.
- Bu kapasitör, RTC'nin düşük güç modlarında stabil kalmasını sağlar.
1. EN (Enable) Butonu (Reset Butonu)
- ESP32'nin resetlenmesini sağlar.
- CHIP_PU (CHIP Power Up) pinine bağlıdır.
- EN butonu aslında bir reset butonu değildir. ESP32’nin çalışmasını etkinleştirmek için CHIP_PU (Power Up) pinine bağlıdır. Düşük seviyeye çekildiğinde ESP32 kapanmaz, sadece bekleme moduna girer. Bırakıldığında tekrar çalışmaya başlar. Fiziksel olarak bir reset butonu gibi çalışsa da, aslında sadece çipi "yeniden etkinleştirir".
- 10 kΩ pull-up direnci ve 1 µF kapasitör ile RC gecikmesi sağlanarak düzgün bir reset işlemi yapılır.
2. BOOT Butonu (Download Mode Butonu)
- ESP32'yi "Bootloader Mode" yani "Firmware Yükleme Moduna" alır.
- GPIO0 pinine bağlıdır.
- Normalde HIGH durumundadır, basıldığında LOW olur.
- USB veya UART üzerinden yeni firmware yüklemek için gereklidir.
- 10 kΩ pull-up direnciyle sabit HIGH tutulur.
ESP32'nin Butonlarla Çalışma Mantığı
ESP32'nin doğru şekilde çalışabilmesi için BOOT ve EN butonlarının kombinasyonu kullanılır:
EN (Reset) Butonu | BOOT Butonu (GPIO0) | Mod |
---|---|---|
Serbest (HIGH) | Serbest (HIGH) | Normal Çalışma (SPI Boot) |
Basılı (LOW) | Serbest (HIGH) | Reset Durumu |
Serbest (HIGH) | Basılı (LOW) | Firmware Yükleme (Bootloader Mode) |
OTA ve statik ip için gereken kod.https://t.co/QmngRN88Yz
— Doğukan Sahil (@DogukanSahil) February 26, 2025
Elbette ilk başta OTA kodunu usb veya dev kit ile yüklemek gerekiyor 🤔😂 https://t.co/lcIk9sqzsg pic.twitter.com/MYrlswjtzC
— Doğukan Sahil (@DogukanSahil) February 26, 2025
ESP32'yi Flash Moduna Alma (Firmware Yükleme)
- BOOT butonuna basılı tut.
- EN (Reset) butonuna basıp bırak.
- BOOT butonunu bırak.
- ESP32 artık firmware yükleme modunda.
ESP32'de OTA (Over-The-Air) Güncelleme yapacaksan, BOOT ve EN butonlarına ihtiyacınız yok. Çünkü OTA güncellemeleri, ESP32’nin mevcut yazılımı üzerinden kablosuz (Wi-Fi) veya kablolu (Ethernet) olarak yapılır.
Kaynaklar
Espressif Systems. Technical Documents. Espressif Systems, www.espressif.com/en/support/documents/technical-documents. Accessed 12 Feb. 2025.
V2’de tüm sorunlar çözüldü; belki V3’te pogo pinler ve butonlar kaldırılabilir ❤️🔥 https://t.co/GoVCYB8f4A pic.twitter.com/dudF46oA5t
— Doğukan Sahil (@DogukanSahil) November 9, 2024