Bo mạch

ESP32 simulator, the classic one, on an Xtensa core

Mokxi mô phỏng DOIT ESP32 DevKit V1 ba mươi chân: một ESP32-WROOM-32 với lõi Xtensa LX6 ở 240 MHz, ma trận GPIO, IO_MUX, cả ba UART, nhóm timer 0, ADC1 và bộ điều khiển PWM LEDC, ở đúng địa chỉ thật. Một lõi chứ không phải hai, và không có sóng vô tuyến (WiFi ở đây là mô phỏng, và nói rõ như vậy), còn bản cam kết nói chính xác mỗi ranh giới nằm ở đâu.

Bắt đầu làm miễn phí
  • 10khu vực ngoại vi được mô phỏng
  • 24dự án sẵn sàng để chạy
  • Thời gian thựctrên máy của chính bạn
ESP32 DevKit V1: nháy LEDlive0.000 s 0.00x
Nhấp để mở trong trình soạn thảo
Bo mạch đang chạy firmware thật ngay lúc này. Nhấn vào để mở mạch trong trình soạn thảo.
Mô hình

Những gì được mô phỏng

Lấy từ tài liệu cam kết của chính bo mạch và diễn đạt bằng lời đơn giản, kèm những gì còn thiếu ngay bên cạnh.

Được mô phỏng

Lõi
Xtensa LX6 với windowed ABI, sáu mươi bốn thanh ghi địa chỉ, các trình xử lý tràn và hụt cửa sổ, một lệnh mỗi chu kỳ ở 240 MHz
Bộ nhớ
128 KB RAM lệnh ở 0x4008_0000 và 192 KB RAM dữ liệu ở 0x3FFB_0000, tách biệt đúng như cách ESP-IDF tách
Ma trận GPIO và IO_MUX
Bốn mươi chân với cách chia hai thanh ghi như thật, điện trở kéo và cho phép đầu vào cho từng pad, và GPIO 34 đến 39 bị từ chối làm đầu ra vì chip không có mạch điều khiển cho chúng
UART0
Chạy theo tốc độ baud đã cấu hình, nối với Serial Monitor
UART1 và UART2
Serial1 và Serial2 trên bất kỳ chân nào begin() chỉ định, qua ma trận GPIO: khung thật trên dây, từng bit một, ở tốc độ mà bộ chia thật sự cho ra, với bộ đệm nhận của driver lõi
Nhóm timer 0
Timer 0 ở nhịp một micro giây phía sau millis() và micros(); delay() cho lõi nghỉ trên CCOMPARE0 chứ không quay vòng chờ
ADC1
Mười hai bit trên tám kênh thật (GPIO 36, 37, 38, 39, 32, 33, 34 và 35) với bốn mức suy hao, và mức 11 dB theo đường cong của một linh kiện thật tới 4095 ở khoảng 3,1 V
LEDC
Nhóm tốc độ cao: bốn timer và tám kênh trên mọi chân có mạch điều khiển đầu ra, đứng sau analogWrite, ledcAttach và ledcWrite
Ma trận ngắt
Các nguồn của nó được định tuyến như phần cứng định tuyến, nên attachInterrupt là ba lần ghi chứ không phải một
WiFi, mô phỏng
WiFi.h, HTTPClient.h và WebServer.h trên một mạng viết bằng phần mềm: không có sóng vô tuyến, không có 802.11, và chỉ có internet thật khi bạn đăng nhập và bật nó lên

Không được mô phỏng

  • Sóng vô tuyến dưới mọi hình thức. Mô hình không có 802.11 và không có sóng Bluetooth. WiFi và Bluetooth được mô phỏng thay thế (API Arduino chạy trên một mạng do chúng tôi dựng, chỉ ra internet thật khi bạn đăng nhập và bật lên, và một chiếc điện thoại trong ngăn Bluetooth của trình soạn thảo), và mọi trang nhắc tới chúng đều nói rõ như vậy.
  • Lõi thứ hai. ESP32 thật có hai lõi LX6; mô hình này chạy lõi PRO, nên bất cứ thứ gì khởi chạy một task trên lõi 1 sẽ không chạy.
  • FPU: một file nhị phân hard-float build ở nơi khác sẽ báo lỗi ngay lệnh float đầu tiên. Sketch build ở đây dùng soft float, nên tính toán số thực vẫn chạy.
  • Cache, flash và PSRAM, RTC và ULP, deep sleep, ADC2, cảm biến chạm và cảm biến hall, I2C, SPI, I2S và RMT.
  • Một số địa chỉ (thứ tự pad của IO_MUX, bố cục nhóm timer và LEDC, các offset SENS, số của ma trận ngắt và chỉ số tín hiệu ma trận GPIO mà LEDC dùng) là suy đoán của mô hình này chứ không phải thứ nó có thể bảo đảm. Mục 6 của bản cam kết nêu từng cái một.
Bắt đầu từ đây

Mở một mạch và nhấn Chạy

Mỗi ví dụ này mở ra trong trình soạn thảo đúng như hình vẽ ở đây.

Câu hỏi

Có miễn phí không?

Có. Mọi bo mạch và mọi linh kiện đều nằm trong gói miễn phí, không cần tài khoản.

Tôi có biên dịch được sketch của riêng mình cho nó không?

Được. Sửa sketch rồi nhấn Chạy: nó biên dịch ngay trong tab bằng clang cho Xtensa, và bảng biên dịch hiện từng bước. Không có gì được tải lên. Tính toán số thực chạy được: trình duyệt build bằng soft float, như mọi bo mạch khác ở đây.

Nó có mô phỏng WiFi hay Bluetooth không?

Cả hai, ở dạng mô phỏng, và nói rõ rằng chúng là mô phỏng. Bluetooth là một chiếc điện thoại trong ngăn Bluetooth của trình soạn thảo, không phải sóng vô tuyến. Sketch của bạn dùng các lệnh Arduino thật (WiFi.begin, WiFi.status, HTTPClient, WebServer), và bo mạch vào một mạng, tải một trang và phục vụ một trang. Bên dưới không có sóng vô tuyến và không có 802.11. Bốn địa chỉ tự đặt dưới .mokxi trả lời ngay trong tab này. Khi đã đăng nhập, bạn có thể bật Internet thật trong bảng Cloud, và các yêu cầu HTTP và HTTPS tới máy chủ thật đi ra qua cổng gateway của Mokxi.

Vì sao pinMode(34, OUTPUT) không hoạt động?

Vì trên chip thật nó cũng không hoạt động. GPIO 34 đến 39 có bộ đệm đầu vào và hoàn toàn không có mạch điều khiển đầu ra. Mokxi từ chối lệnh ghi giống như silicon, đếm nó, và đánh dấu một chấm hổ phách nhỏ trên bo mạch thay vì để bạn tưởng chân đang điều khiển thứ gì đó.

Vì sao biến trở của tôi đạt 4095 trước khi xoay hết hành trình?

Vì ở mức suy hao mặc định 11 dB, giá trị thô của ESP32 thật bão hòa ở khoảng 3,1 V, chưa tới đường nguồn 3,3 V, và cong dần trên đường tới đó: giữa biến trở đọc ra khoảng 1890 chứ không phải 2048. Mokxi mô phỏng đường cong đó, và ví dụ núm xoay in ra con số thô để nó không còn là điều bí ẩn.

Đây là bo mạch 30 chân hay 38 chân?

Bản DOIT DevKit V1 ba mươi chân. Espressif DevKitC 38 chân có hai hàng header cách nhau trọn một inch và đưa ra thêm sáu chân: số GPIO là của cùng một chip, còn vị trí thì không.

Nó có chạy cả hai lõi không?

Một. Lõi PRO chạy; không có APP CPU và không có FreeRTOS để chia việc giữa chúng, nên sketch dạng setup()/loop() thì ổn còn xTaskCreatePinnedToCore thì không.

Thử trên firmware của riêng bạn

Những gì bạn dựng ở đây chạy nguyên vẹn trên bo mạch trên bàn của bạn. Không cần cài đặt và không cần tài khoản.