Placa

ESP32-S3 simulator, on an Xtensa LX7 core

O Mokxi modela a ESP32-S3-DevKitC-1: um ESP32-S3-WROOM-1 com seu Xtensa LX7 a 240 MHz, a matriz de GPIO, o IO MUX, a UART0, a porta serial USB do próprio chip, o SYSTIMER, o ADC1, o controlador PWM LEDC e o RMT que aciona o LED RGB da placa, nos endereços do manual de referência técnica da Espressif. Um núcleo, não dois, e sem rádio (o WiFi aqui é simulado, e avisa), e o contrato diz quais números foram conferidos e quais são suposições.

  • 9áreas de periféricos modeladas
  • 6projetos prontos para rodar
  • Tempo realna sua própria máquina
ESP32-S3-DevKitC-1: blinklive0.000 s 0.00x
Clique para abrir no editor
A placa está rodando firmware de verdade agora mesmo. Clique para abrir o circuito no editor.
O modelo

O que é modelado

Tirado do documento de contrato da própria placa e posto em palavras simples, com o que falta ao lado.

Modelado

Núcleo
Xtensa LX7 no ABI com janelas: para tudo que o compilador emite, é o conjunto de instruções do LX6, com os níveis de interrupção próprios do S3. Uma instrução por ciclo a 240 MHz
Memória
416 KB de SRAM1 vistos pelos dois barramentos, em 0x4037_8000 para código e 0x3FC8_8000 para dados, os mesmos bytes, e a SRAM2 depois dela
Matriz de GPIO e IO MUX
GPIO 0 a 48 com a divisão real em dois registradores, os pulls de reset do manual em cada pad, e a tabela de funções que faz de 26 a 32 a flash
UART0 e serial USB
UART0 no ritmo do baud rate configurado, e a porta USB Serial/JTAG em pacotes de 64 bytes por vez; o monitor serial ouve as duas
SYSTIMER
Unidade 0 a 16 MHz por trás de millis() e micros(); delay() coloca o núcleo em espera no CCOMPARE0 em vez de ficar girando
ADC1
Doze bits em dez canais, GPIO 1 a 10, com as quatro atenuações
LEDC
Oito canais e quatro timers em qualquer pino, com os bits de atualização de que o S3 precisa, por trás de analogWrite, ledcAttach e ledcWrite
RMT e o LED RGB
Quatro canais de transmissão com sua RAM, modo wrap e portadora; rgbLedWrite envia um quadro WS2812 e o LED da placa no GPIO48 (GPIO38 na v1.1) acende com ele
WiFi, simulado
WiFi.h, HTTPClient.h e WebServer.h sobre uma rede escrita em software: sem rádio, sem 802.11, e internet real só quando você faz login e ativa

Não modelado

  • Rádio de qualquer tipo. Não há 802.11 nem rádio Bluetooth no modelo. WiFi e Bluetooth LE são simulados, e toda página que os menciona diz isso.
  • O segundo núcleo. Um S3 de verdade tem dois núcleos LX7; este modelo roda o núcleo 0, então qualquer coisa que inicie uma tarefa no núcleo 1 não vai rodar.
  • A FPU e as instruções vetoriais do S3: um binário compilado em outro lugar que as use dá falha. Os sketches compilados aqui usam ponto flutuante por software, então contas com float funcionam.
  • A SRAM0, o cache, a flash e a PSRAM, os coprocessadores RTC e ULP, o deep sleep, o ADC2, o sensor de toque, os grupos de timers e os controladores I2C e SPI (Wire e SPI aqui são software em pinos comuns, como em toda placa).
  • Alguns números são suposição deste modelo, e não uma página do manual: o mais um do divisor de clock da UART, o layout da RAM do RMT por canal, a fase da portadora, a temporização dos pacotes USB e o fundo de escala do ADC. A seção 6 do contrato nomeia cada um.
Comece aqui

Abra um e aperte Rodar

Cada um destes abre no editor exatamente como está desenhado aqui.

Projetos

Todos os projetos prontos da ESP32-S3-DevKitC-1

Cada um tem sua própria página com o circuito rodando, o código e uma lista de componentes.

Aprender

Tutoriais que usam esta placa

Cada um termina num circuito rodando, nesta mesma placa.

Perguntas

É grátis?

Sim. Toda placa e todo componente está no plano Grátis, sem precisar de conta.

Posso compilar meu próprio sketch para ela?

Sim. Edite o sketch e aperte Rodar: ele compila na aba com clang para Xtensa, e o painel Compilação mostra cada etapa. Nada é enviado. Contas com ponto flutuante funcionam: o navegador compila com float por software, como em todas as outras placas daqui.

Qual é a revisão, v1.0 ou v1.1?

Qualquer uma: a propriedade de revisão da placa escolhe. A única diferença que a Espressif lista é o LED RGB, no GPIO48 nas primeiras placas e no GPIO38 na v1.1. Os exemplos são feitos para o GPIO48, como a definição de placa do core do Arduino, então na v1.1 o LED fica apagado, como ficaria numa bancada.

Em qual porta está o Serial?

UART0, o conector "UART" com a ponte USB-UART, que é o que Serial é no core do Arduino com USB CDC On Boot desligado. USBSerial é a porta USB do próprio chip. O monitor serial daqui escuta as duas.

Simula WiFi ou Bluetooth?

Os dois, simulados, e avisa claramente que são. O Bluetooth é um celular no painel de Bluetooth do editor, não um rádio. Seu sketch usa as chamadas reais do Arduino, e por baixo não há rádio nem 802.11. Com login, você pode ativar a Internet real no painel Nuvem, e as requisições HTTP e HTTPS a hosts reais saem pelo gateway do Mokxi.

Por que meu potenciômetro lê 4095 antes do fim do curso?

Porque a faixa do datasheet com a atenuação padrão de 12 dB termina em 2,9 V e a sua alimentação é de 3,3 V. Este modelo lê 4095 de 2,9 V para cima, e diz no contrato que um componente real guarda um pouco mais de folga.

Roda os dois núcleos?

Um. O núcleo 0 roda; não há segundo núcleo nem FreeRTOS para escalonar entre eles, então um sketch com setup()/loop() funciona e xTaskCreatePinnedToCore não.

Teste com o seu próprio firmware

O que você monta aqui roda, sem alterações, na placa que está na sua mesa. Nada para instalar e sem precisar de conta.