ESP32-S3 simulator, on an Xtensa LX7 core
Mokxi modela la ESP32-S3-DevKitC-1: un ESP32-S3-WROOM-1 con su Xtensa LX7 a 240 MHz, la matriz GPIO, IO MUX, UART0, el puerto serie USB propio del chip, SYSTIMER, ADC1, el controlador PWM LEDC y el RMT que maneja el LED RGB de la placa, en las direcciones del manual de referencia técnica de Espressif. Un núcleo, no dos, y sin radio (el WiFi aquà es simulado, y lo dice), y el contrato indica qué números se verificaron y cuáles se suponen.
- 9áreas de periféricos modeladas
- 6proyectos listos para ejecutar
- Tiempo realen tu propia máquina
Qué se modela
Tomado del documento de contrato de la propia placa y dicho en palabras sencillas, con lo que falta al lado.
Modelado
- Núcleo
- Xtensa LX7 con ABI de ventanas: para todo lo que emite el compilador es el conjunto de instrucciones del LX6, con los niveles de interrupción propios del S3. Una instrucción por ciclo a 240 MHz
- Memoria
- 416 KB de SRAM1 vistos por ambos buses, en 0x4037_8000 para código y 0x3FC8_8000 para datos, los mismos bytes, y la SRAM2 a continuación
- Matriz GPIO e IO MUX
- GPIO 0 a 48 con la división real en dos registros, los pull de reinicio del manual en cada pad, y la tabla de funciones que hace que 26 a 32 sean la flash
- UART0 y serie USB
- UART0 con el ritmo del baudaje configurado, y el puerto USB Serial/JTAG un paquete de 64 bytes a la vez; el monitor serie escucha ambos
- SYSTIMER
- La unidad 0 a 16 MHz detrás de millis() y micros(); delay() detiene el núcleo en CCOMPARE0 en lugar de girar en vacÃo
- ADC1
- Doce bits en diez canales, GPIO 1 a 10, con las cuatro atenuaciones
- LEDC
- Ocho canales y cuatro temporizadores en cualquier pin, con los bits de actualización que necesita el S3, detrás de analogWrite, ledcAttach y ledcWrite
- RMT y el LED RGB
- Cuatro canales de transmisión con su RAM, modo envolvente y portadora; rgbLedWrite envÃa un cuadro WS2812 y el LED de la placa en el GPIO48 (GPIO38 en la v1.1) se enciende con él
- WiFi, simulado
- WiFi.h, HTTPClient.h y WebServer.h sobre una red escrita por software: sin radio, sin 802.11, e internet real solo cuando inicias sesión y lo activas
No modelado
- Una radio de cualquier tipo. No hay 802.11 ni radio Bluetooth en el modelo. En su lugar se simulan el WiFi y el Bluetooth LE, y cada página que los menciona lo dice.
- El segundo núcleo. Un S3 real tiene dos núcleos LX7; este modelo ejecuta el núcleo 0, asà que cualquier cosa que inicie una tarea en el núcleo 1 no correrá.
- La FPU y las instrucciones vectoriales del S3: un binario construido en otro lado que las use falla. Los sketches construidos aquà usan punto flotante por software, asà que las operaciones con float funcionan.
- La SRAM0, la caché, la flash y la PSRAM, los coprocesadores RTC y ULP, el sueño profundo, el ADC2, el sensor táctil, los grupos de temporizadores y los controladores I2C y SPI (Wire y SPI aquà son software en pines normales, como en todas las placas).
- Algunos números son una suposición de este modelo y no una página del manual: el más uno del divisor de reloj de la UART, la disposición de la RAM del RMT por canal, la fase de la portadora, el tiempo de los paquetes USB y la escala completa del ADC. La sección 6 del contrato nombra cada uno.
Abre uno y presiona Ejecutar
Cada uno de estos se abre en el editor tal como está dibujado aquÃ.
Todos los proyectos integrados de la ESP32-S3-DevKitC-1
Cada uno tiene su propia página con el circuito funcionando, el código y una lista de componentes.
Componentes conectados a la ESP32-S3-DevKitC-1, paso a paso
Cada página tiene el cableado con los nombres de pin propios de la ESP32-S3-DevKitC-1, el código, los errores comunes y el circuito funcionando.
- ESP32-S3 DHT22
- ESP32-S3 SSD1306 OLED
- ESP32-S3 I2C LCD
- Servo con ESP32-S3
- ESP32-S3 HC-SR04
- NeoPixel con ESP32-S3
- ESP32-S3 MPU6050
- ESP32-S3 BMP280
- Potenciómetro con ESP32-S3
- Buzzer con ESP32-S3
- ESP32-S3 DS18B20
- Teclado con ESP32-S3
- Motor a pasos 28BYJ-48 con ESP32-S3
- Sensor PIR con ESP32-S3
- ESP32-S3 RC522 RFID
- Receptor IR con ESP32-S3
Tutoriales que usan esta placa
Cada uno termina en un circuito funcionando, en esta misma placa.
Preguntas
¿Es gratis?
SÃ. Todas las placas y todos los componentes están en el plan Gratis, sin necesidad de cuenta.
¿Puedo compilar mi propio sketch para ella?
SÃ. Edita el sketch y presiona Ejecutar: compila en la pestaña con clang para Xtensa, y el panel de compilación muestra cada paso. No se sube nada. Las operaciones de punto flotante funcionan: el navegador compila con punto flotante por software, como en todas las demás placas de aquÃ.
¿Qué revisión es, la v1.0 o la v1.1?
Cualquiera: la propiedad de revisión de la placa lo decide. La única diferencia que lista Espressif es el LED RGB, en el GPIO48 en las primeras placas y en el GPIO38 en la v1.1. Los ejemplos están hechos para el GPIO48, como la definición de placa del núcleo de Arduino, asà que en una v1.1 el LED queda apagado, como en un escritorio.
¿En qué puerto está Serial?
UART0, el conector "UART" con el puente USB a UART, que es lo que Serial es en el núcleo de Arduino con USB CDC On Boot desactivado. USBSerial es el puerto USB propio del chip. El monitor serie de aquà escucha ambos.
¿Simula WiFi o Bluetooth?
Ambos, simulados, y lo dice claramente. El Bluetooth es un teléfono en el panel de Bluetooth del editor, no una radio. Tu sketch usa las llamadas reales de Arduino, y por debajo no hay radio ni 802.11. Con la sesión iniciada, puedes activar Internet real en el panel Nube, y las solicitudes HTTP y HTTPS a servidores reales salen por el gateway de Mokxi.
¿Por qué mi potenciómetro lee 4095 antes del final de su recorrido?
Porque el rango de la hoja de datos con la atenuación predeterminada de 12 dB termina en 2.9 V y tu riel es de 3.3 V. Este modelo lee 4095 desde 2.9 V hacia arriba, y su contrato dice que una pieza real conserva un poco más de margen.
¿Ejecuta los dos núcleos?
Uno. Corre el núcleo 0; no hay segundo núcleo ni FreeRTOS que reparta entre ambos, asà que un sketch con setup()/loop() está bien y xTaskCreatePinnedToCore no.
Las otras placas
Todas estas funcionan hoy, y todas son gratis.
¿Buscas la introducción más corta? Mira la página del simulador de ESP32-S3.
Un chip RISC-V a 160 MHz, sobre el mapa de memoria real.
El Arduino clásico, con un ATmega328P a 16 MHz.
El chip del Uno en una placa pequeña que cabe en una protoboard.
El Arduino grande, con 54 pines digitales y cuatro puertos serie.
Una placa con forma de Uno cuyo chip maneja su propio USB serie.
Una segunda placa RISC-V, con 31 pines y WiFi simulado.
El ESP32 clásico a 240 MHz, con WiFi simulado.
El ESP8266 del NodeMCU a 80 MHz, con WiFi simulado.
Pruébalo con tu propio firmware
Lo que armas aquà corre sin cambios en la placa de tu escritorio. Sin instalar nada y sin necesidad de cuenta.