Kart

ESP32 simulator, the classic one, on an Xtensa core

Mokxi otuz pinli DOIT ESP32 DevKit V1'i modeller: 240 MHz Xtensa LX6'lı bir ESP32-WROOM-32, GPIO matrisi, IO_MUX, üç UART'ın hepsi, zamanlayıcı grubu 0, ADC1 ve LEDC PWM denetleyicisi, gerçek adreslerde. İki değil tek çekirdek ve radyo yok (buradaki WiFi simüledir ve bunu söyler); sözleşme her sınırın tam nerede olduğunu belirtir.

Ücretsiz kurmaya başla
  • 10modellenen çevre birimi alanı
  • 24çalışmaya hazır proje
  • Gerçek zamanlıkendi makinende
ESP32 DevKit V1: blinklive0.000 s 0.00x
Düzenleyicide açmak için tıkla
Kart şu an gerçek firmware çalıştırıyor. Devreyi düzenleyicide açmak için tıkla.
Model

Neler modelleniyor

Kartın kendi sözleşme belgesinden alındı ve sade bir dille yazıldı; eksik olanlar yanında.

Modellenen

Çekirdek
Pencereli ABI'de Xtensa LX6, altmış dört adres yazmacı, pencere taşma ve eksik taşma işleyicileri, 240 MHz'de çevrim başına bir komut
Bellek
0x4008_0000'da 128 KB komut RAM'i ve 0x3FFB_0000'da 192 KB veri RAM'i, ESP-IDF'in ayrı tuttuğu şekilde ayrı
GPIO matrisi ve IO_MUX
Gerçek iki yazmaçlı ayrımla kırk pin, ped başına pull'lar ve giriş etkinleştirme; GPIO 34'ten 39'a çıkış olarak reddedilir, çünkü çipte onlarda sürücü yok
UART0
Ayarlanan baud hızında, seri monitöre bağlı
UART1 ve UART2
begin()'in adlandırdığı her pinde GPIO matrisi üzerinden Serial1 ve Serial2: bölücünün gerçekten verdiği hızda telde bit bit gerçek kareler, çekirdek sürücünün alma tamponuyla
Zamanlayıcı grubu 0
Zamanlayıcı 0, millis() ve micros()'tan bir mikrosaniye geride bir tikte; delay() çekirdeği meşgul etmek yerine CCOMPARE0'da park eder
ADC1
Sekiz gerçek kanalda (GPIO 36, 37, 38, 39, 32, 33, 34 ve 35) dört zayıflatmayla on iki bit ve gerçek bir parçanın eğrisini izleyen 11 dB, yaklaşık 3.1 V'ta 4095'e kadar
LEDC
Yüksek hızlı grup: çıkış sürücüsü olan her pinde dört zamanlayıcı ve sekiz kanal; analogWrite, ledcAttach ve ledcWrite'ın arkasında
Kesme matrisi
Kaynakları donanımın yönlendirdiği şekilde yönlendirilir, bu yüzden attachInterrupt bir değil üç yazmadır
WiFi, simüle
Yazılımda yazılmış bir ağ üzerinde WiFi.h, HTTPClient.h ve WebServer.h: radyo yok, 802.11 yok ve gerçek internet yalnızca giriş yapıp açtığında

Modellenmeyen

  • Hiçbir tür radyo. Modelde 802.11 ve Bluetooth radyosu yoktur. WiFi ve Bluetooth bunun yerine simüle edilir (gerçek internete yalnızca giriş yapıp açtığında ulaşan bizim ağımız üzerinden Arduino API'si ve düzenleyicinin Bluetooth panelindeki bir telefon) ve onlardan söz eden her sayfa bunu belirtir.
  • İkinci çekirdek. Gerçek bir ESP32'nin iki LX6 çekirdeği vardır; bu model PRO çekirdeğini çalıştırır, yani 1. çekirdekte görev başlatan her şey çalışmaz.
  • FPU: başka yerde derlenmiş bir hard-float ikili dosya ilk kayan nokta komutunda hata verir. Burada derlenen kodlar yazılım kayan noktadır, yani kayan nokta matematiği çalışır.
  • Önbellek, flash ve PSRAM, RTC ve ULP, derin uyku, ADC2, dokunma ve hall sensörleri, I2C, SPI, I2S ve RMT.
  • Birkaç adres (IO_MUX ped sırası, zamanlayıcı grubu ve LEDC yerleşimleri, SENS adresleri, kesme matrisi numaraları ve LEDC'nin kullandığı GPIO matrisi sinyal indeksleri) bu modelin inancıdır, arkasında durabileceği bir şey değil. Sözleşmenin 6. bölümü hepsini adıyla belirtir.
Buradan başla

Birini aç ve Çalıştır'a bas

Bunların her biri düzenleyicide burada çizildiği gibi açılır.

Sorular

Ücretsiz mi?

Evet. Her kart ve her parça ücretsiz plandadır, hesap gerekmez.

Kendi kodumu bunun için derleyebilir miyim?

Evet. Kodu düzenle ve Çalıştır'a bas: Xtensa için clang ile sekmede derlenir ve derleme paneli her adımı gösterir. Hiçbir şey yüklenmez. Kayan nokta matematiği çalışır: tarayıcı, buradaki diğer her kartta olduğu gibi yazılım kayan nokta olarak derler.

WiFi veya Bluetooth'u simüle ediyor mu?

İkisini de, simüle olarak ve bunu açıkça söyler. Bluetooth düzenleyicinin Bluetooth panelindeki bir telefondur, radyo değil. Kodun gerçek Arduino çağrılarını (WiFi.begin, WiFi.status, HTTPClient, WebServer) kullanır ve kart bir ağa katılır, bir sayfa çeker ve bir sayfa sunar. Altında radyo ve 802.11 yoktur. .mokxi altındaki dört uydurma adres bu sekmenin içinde yanıt verir. Giriş yapınca Bulut panelinde Gerçek interneti açabilirsin ve gerçek sunuculara HTTP ve HTTPS istekleri Mokxi'nin ağ geçidinden çıkar.

pinMode(34, OUTPUT) neden çalışmıyor?

Çünkü çipte de çalışmaz. GPIO 34'ten 39'a girişte tampon var, hiç çıkış sürücüsü yok. Mokxi yazmayı silikonun yaptığı gibi reddeder, sayar ve pinin bir şeyi sürdüğüne inanmanı sağlamak yerine kartın üzerine küçük bir kehribar işareti koyar.

Potansiyometrem hareketinin sonuna varmadan neden 4095'e ulaşıyor?

Çünkü varsayılan 11 dB zayıflatmada gerçek bir ESP32'nin ham okuması yaklaşık 3.1 V'ta doyar, 3.3 V rayının gerisinde kalır ve oraya giderken eğrilir: potun ortası 2048 değil yaklaşık 1890 okur. Mokxi bu eğriyi modeller ve düğme örneği ham sayıyı yazdırır, böylece gizem kalmaz.

Bu 30 pinli mi yoksa 38 pinli kart mı?

Otuz pinli DOIT DevKit V1. 38 pinli Espressif DevKitC'de header sıraları arasında tam bir inç vardır ve altı pin daha çıkar: GPIO numaraları aynı çipinkidir, konumlar değil.

İki çekirdeği de çalıştırır mı?

Biri. PRO çekirdeği çalışır; APP CPU yok ve ikisi arasında zamanlayacak FreeRTOS yok, bu yüzden setup()/loop() kodu sorun değil, xTaskCreatePinnedToCore ise öyle değil.

Kendi firmware'inde dene

Burada kurduğun şey masandaki kartta değişmeden çalışır. Kurulum yok, hesap gerekmez.