ESP32: Dahili Ayrıntılar ve Pinout

Bu yazıda, ESP32'nin iç detayları ve sabitlemesi hakkında konuşacağız. Veri sayfasına bakarak pinlerin nasıl doğru bir şekilde tanımlanacağını, hangi pinlerin ÇIKIŞ / GİRİŞ olarak çalıştığını nasıl belirleyeceğimizi, ESP32'nin bize sunduğu sensörler ve çevre birimleri hakkında nasıl genel bir bakışa sahip olduğunuzu göstereceğim. çizme. Bu nedenle, aşağıdaki videoyla birlikte ESP32 referanslarıyla ilgili mesajlarda ve yorumlarda aldığım birkaç soruyu, diğer bilgilerin yanı sıra cevaplayabileceğime inanıyorum.

Adım 1: NodeMCU ESP-WROOM-32

Burada PINOUT var

WROOM-32, programladığınızda iyi bir referans görevi görür. Genel Amaçlı Giriş / Çıkış (GPIO'lar), yani yine de AD dönüştürücü veya GPIO4 gibi bir Dokunmatik pim olabilecek programlanabilir veri giriş ve çıkış bağlantı noktalarına dikkat etmek önemlidir. Bu, giriş ve çıkış pimlerinin de PWM olabileceği Arduino'da da görülür.

Adım 2: ESP-WROOM-32

Yukarıdaki resimde ESP32'nin kendisi var. Üreticiye göre farklı özelliklere sahip birkaç kesici uç tipi vardır.

Adım 3: Ancak, ESP32'im için kullanmam gereken doğru pin çıkışı nedir?

ESP32 zor değil. Çevrenizde didaktik bir endişe olmadığını söyleyebiliriz. Ancak didaktik olmalıyız, evet. Assembler'da program yapmak istiyorsanız, sorun değil. Ancak, mühendislik süresi pahalıdır. Bu nedenle, bir teknoloji tedarikçisi olan her şey size çalışmalarını anlamanız için zaman alan bir araç verirse, bu sizin için kolayca bir sorun haline gelebilir, çünkü tüm bunlar mühendislik süresini artıracak ve ürün giderek daha pahalı hale gelecektir. Bu, kolay şeylere olan tercihimi açıklıyor, günlük yaşamımızı kolaylaştırabilecek olanlar, çünkü özellikle günümüzün yoğun dünyasında zaman önemlidir.

ESP32'ye dönersek, bir veri sayfasında, yukarıdaki gibi olduğu gibi, vurgularda doğru pin tanımına sahibiz. Genellikle, ç durumdaki etiket üç durumumuz olduğu için pimin gerçek sayısıyla eşleşmez: GPIO, seri numarası ve ayrıca kartın kendisinin kodu.

Aşağıdaki örnekte gösterildiği gibi, ESP'de bir LED bağlantısı ve doğru yapılandırma modumuz var:

Etiketin TX2 olduğuna dikkat edin, ancak önceki resimde vurgulandığı gibi doğru tanımlamayı izlemeliyiz. Bu nedenle, pimin doğru tanımlaması 17 olacaktır. Resim, kodun ne kadar yakın kalması gerektiğini gösterir.

Adım 4: GİRİŞ / ÇIKIŞ

Pimler üzerinde INPUT ve OUTPUT testleri yaparken aşağıdaki sonuçları elde ettik:

INPUT yalnızca GPIO0'da çalışmadı.

OUTPUT, yalnızca sırasıyla VDET1 ve VDET2 olan GPIO34 ve GPIO35 pinlerinde çalışmadı.

* VDET pinleri RTC'nin güç alanına aittir. Bu, ADC pinleri olarak kullanılabilecekleri ve ULP yardımcı işlemcisinin bunları okuyabileceği anlamına gelir. Bunlar yalnızca giriş olabilir ve asla çıkış yapamaz.

Adım 5: Blok Diyagram

Bu şema ESP32'nin çift çekirdeğe, WiFi'yi kontrol eden bir yonga alanına ve Bluetooth'u kontrol eden başka bir alana sahip olduğunu göstermektedir. Ayrıca, bir anten kullanarak 15km'ye kadar bağlantıya izin veren uzun mesafeli bir ağ olan LoRa'ya bağlantı sağlayan, şifreleme için donanım hızlandırması vardır. Ayrıca saat üretecini, gerçek zaman saatini ve PWM, ADC, DAC, UART, SDIO, SPI gibi diğer noktaları da gözlemliyoruz. Bu, cihazı oldukça eksiksiz ve işlevsel hale getirir.

Adım 6: Çevre Birimleri ve Sensörler

ESP32, aşağıdakiler gibi çeşitli işlevlere atanabilecek 34 GPIO'ya sahiptir:

Dijital okunur;

Analog özellikli (dijital olarak yapılandırılabilir);

Kapasitif dokunmatik özellikli (dijital olarak yapılandırılabilir);

Ve diğerleri.

Çoğu dijital GPIO'nun dahili yukarı çekme veya aşağı çekme olarak veya yüksek empedans için yapılandırılabileceğini unutmayın. Giriş olarak ayarlandığında, değer kayıtçıdan okunabilir.

Adım 7: GPIO

Analog-Dijital Dönüştürücü (ADC)

Esp32, 12 bitlik ADC'leri entegre eder ve 18 kanalda (analog özellikli pinler) ölçümleri destekler. ESP32'deki ULP yardımcı işlemci de uyku modunda çalışırken düşük güç tüketimi sağlayan voltajları ölçmek için tasarlanmıştır. CPU bir eşik ayarı ile ve / veya diğer tetikleyicilerle uyandırılabilir.

Dijital-Analog Dönüştürücü (DAC)

İki dijital sinyali iki analog voltaj çıkışına dönüştürmek için iki 8 bit DAC kanalı kullanılabilir. Bu çift DAC'ler güç kaynağını giriş voltajı referansı olarak destekler ve diğer devreleri çalıştırabilir. Çift kanal bağımsız dönüşümleri destekler.

Adım 8: Sensörler

Dokunma sensörü

ESP32, bir GPIO'ya parmağınızla veya diğer nesnelerle dokunurken veya yaklaşırken ortaya çıkan varyasyonları algılayan 10 kapasitif algılama GPIO'suna sahiptir.

ESP32'de ayrıca bir Sıcaklık Sensörü ve bir Dahili Hall Sensörü vardır, ancak onlarla çalışmak için kayıtların ayarlarını değiştirmeniz gerekir. Daha fazla ayrıntı için aşağıdaki bağlantıdan teknik kılavuza bakın:

//www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

Adım 9: Bekçi köpeği

ESP32'de üç gözetim zamanlayıcısı vardır: iki zamanlayıcı modülünün her birinde (Birincil Bekçi Zamanlayıcısı veya MWDT olarak adlandırılır) ve diğeri RTC modülünde (RTC Bekçi Zamanlayıcısı veya RWDT olarak adlandırılır) bulunur.

10.Adım: Bluetooth

Bluetooth Arabirimi v4.2 BR / EDR ve Bluetooth LE (düşük enerji)

ESP32, temel bant protokollerini ve modülasyon / demodülasyon, paket işleme, bit akışı işleme, frekans atlaması gibi diğer düşük seviyeli bağlantı rutinlerini gerçekleştiren bir Bluetooth bağlantı denetleyicisini ve Bluetooth temel bandını entegre eder.

Bağlantı denetleyicisi üç ana durumda çalışır: bekleme, bağlantı ve koklama. Birden fazla bağlantıya ve sorgulama, sayfa ve güvenli basit eşleştirme gibi diğer işlemlere izin verir ve böylece Piconet ve Scatternet'e izin verir.

Adım 11: Önyükleme

Dahili USB / Seri'ye sahip birçok geliştirme kartında, esptool.py otomatik olarak kartı önyükleme moduna sıfırlayabilir.

GPIO0 sıfırlamada düşük tutulduğunda ESP32 seri ön yükleyiciye girecektir. Aksi takdirde, programı hızlı bir şekilde çalıştıracaktır.

GPIO0'ın dahili bir çekme direnci vardır, bu nedenle bağlantı yoksa, yüksek olur.

Çoğu kart, basıldığında GPIO0'u aşağıya doğru yönlendiren "Flash" (veya bazı Espressif geliştirme kartlarında "BOOT") etiketli bir düğme kullanır.

GPIO2 ayrıca bağlı değil / yüzer halde bırakılmalıdır.

Yukarıdaki resimde, yaptığım bir testi görebilirsiniz. Osiloskopu açıldığında neler olduğunu görmek için ESP'nin tüm pimlerine koydum. Bir iğne aldığımda, sağ taraftaki vurgulanan alanda gösterildiği gibi 750 mikrosaniyelik salınımlar ürettiğini keşfettim. Bununla ilgili ne yapabiliriz? Örneğin, bir transistörlü bir devre, bir kapı genişletici ile gecikme vermek gibi çeşitli seçeneklerimiz var. GPIO08'in tersine döndüğüne dikkat çekiyorum. Salınım yukarı doğru değil yukarı doğru çıkar.

Başka bir ayrıntı, High ile başlayan bazı pinlerimiz ve Low ile başlayanlar. Bu nedenle, bu PINOUT, özellikle bir triyak, bir röle, bir kontaktör veya biraz güç tetiklemek için bir yük ile çalışırken ESP32'nin ne zaman açıldığına dair bir referanstır.

İlgi̇li̇ Makaleler