quarta-feira, abril 24, 2019

Um primeira olhada no ESP32

Como sucessor ao bem sucedido ESP8266, a Espressif criou o ESP32. Embora o primeiro destaque seja a inclusão do suporte ao Bluetooth, este módulo apresenta várias características interessantes.

Módulo ESP-WROOM-32

Como o ESP8266, o ESP32 é comercializado na forma de módulos contendo CPU, memória e antena. O hobbista normalmente vai comprar uma placa que contém, além do módulo, um regulador de tensão (o ESP32 opera com 3,3V) e uma interface USB para programação.

Uma placa de desenvolvimento com o ESP32
O primeiro ponto interessante no ESP32 é a presença de duas CPUs (RISC, 32 bits, clock de até 160MHz). A ideia é rodar os protocolos wireless em uma CPU (PRO_CPU) e a aplicação na outra (APP_CPU), mas o sistema é praticamente simétrico.



O ESP32 possui internamente 448K de Rom e 520K de Ram. Externamente podem ser ligados até 16M de Flash e 8M de Ram.

O chip possui 34 conexões de GPIO (que podem ou não estar disponíveis no módulo/placa). Seis destas conexões são de apenas entrada, as demais podem ser usadas como entrada ou saída. Um esquema bastante flexível mapeia os periféricos nos diversos pinos.

A lista de periféricos é imensa: SPI, SDIO, MMC/SD, Ethernet, I2C, I2S (para streaming de áudio digital), UART, PWM, timers (de 64 bits), aceleradores para AES, SHA e RSA, gerador de números aleatórios, MMU, suporte a multi-tarefa, ADC e DAC. Existem também recursos específicos para economia de energia, inclusive um co-processador de baixo consumo que pode executar enquanto o resto do chip está dormindo.

O suporte a Bluetooth é também extenso, incluindo  v4.2 BR / EDR e BLE (Bluetooth Low Energy)

Existem várias opções para programação. No nível mais baixo temos o compilador C/C++ e  o IDF (IoT Development Framework) da Espressif (https://github.com/espressif/esp-idf). Uma opção mais simples é usar a IDE e biblioteca do Arduino (https://github.com/espressif/arduino-esp32), o suporte ao ESP32 pode ser instalado de dentro da IDE. Temos também suporte para MicroPython e Node.js.

O datasheet e mais um monte de informações podem ser vistos no site oficial: https://www.espressif.com/en/products/hardware/esp32/overview


Nenhum comentário: