sexta-feira, fevereiro 10, 2017

ESP3212, o milagre chinês!


ESP3212

O ESP3212 é um sistema dual-core com dois microprocessadores Xtensa LX6, com arquitetura Harvard, para quem lembrar das aulas da graduação.
Como sabemos o ESP3212 é uma evolução do famoso ESP8266, que surpreendeu a comunidade trazendo Wi-Fi a baixíssimo custo. Antes era preciso placas como Raspbery Pi ou BeagleBone Black para termos rede Ethernet com fio, além claro, das placas arduino. Mas de um jeito ou de outro era sempre mais complicado ter um sistema com Wi-Fi.
Com o ESP8266 WiFi se tornou rotina, agora podemos configurar e controlar tudo com protocolos HTTP ou MQTT. Muito bom! Essa plataforma também gerou diversos módulos que são muito utilizados, como o ESP8266-01, o ESP8266-12E, para citar alguns. Além é claro dos mais comerciais, que também permitem customização ao estilo comunitário, como o SONOFF. Benvindo ao muito IOT.
Vamos tratar destas em outros artigos.

O tópico aqui é o novo (praticamente novo, uma vez que a sua distribuição nem está estabilizada ainda) ESP3212!

Podemos considerar esse chip como mais um fruto do "Milagre Chinês", país que fabrica tudo a custos muito reduzidos e tem cada vez mais melhorado a qualidade. A design house Expressif (empresa que faz criação de projetos de chips e manda fabricar em terceiros) lançou a variante inicial, o ESP8266, mais com pretensões de ser um modem WiFi, sendo conectado nas linhas de RX e TX e transmitir dados seriais de um projeto para outro sem fio. Mas tinha uma CPU inteira a disposição e não demorou muito para que se iniciasse a utilização maciça, dado o custo baixo. Logo depois a integração na IDE Arduino e ai a popularização foi inevitável.
Mas voltemos ao 3212...


Pinagem do ESP3212
Pinagem do ESP3212

Recursos do Chip

Para corrigir algumas deficiências do 8266 como compartilhamento de processamento do programa principal com as rotinas de WiFi, que causavam algum impacto uma na outra para casos mais críticos, e para aumentar os periféricos e pinos de saída, criou o ESP3212, uma CPU dual muito poderosa com os seguintes recursos:

Diagrama de Blocos do ESP3212

Diagrama de Blocos do ESP3212


Abaixo uma lista com os recursos principais:

Características Principais
Microcontrolador de 240 MHz com dual core Tensilica LX6  com performance de 600 DMIPS
Memória interna 520 KB SRAM
Wi-fi integrado 802.11BGN HT40, hardware e software (Stack IP)
Bluetooth Integrado (clássico e BLE (Bluetooth Low Energy)
Tensão de Operação: 2.2V a 3.6V
Temperatura de Operação: -40°C to +125°C

Antena PCB para WiFi /Bluetooth integrada na placa
Sensores
Amplificador Analógico de Baixo Ruído
Hall sensor
10x interface para sensor capacitivo
32 kHz crystal oscilador
32x GPIO
3 x UARTs, including hardware flow control
3 x SPI
2 x I2S
12 x ADC canais de conversão AD - Isso realmente é demais!
2 x DAC
2 x I2C
PWM/timer input/output available on every GPIO pin
OpenOCD debug interface with 32 kB TRAX buffer
SDIO master/slave 50 MHz
Suporte memória SPI flash até 16 MB
SD-card interface
Security Related
WEP, WPA/WPA2 PSK/Enterprise
Hardware accelerated encryption: AES / SHA2 / Elliptical Curve Cryptography / RSA-4096
Performance
Supports sniffer, station, softAP and Wi-Fi direct modes
Max data rate of 150 Mbps@11n HT40, 72 Mbps@11n HT20, 54 Mbps@11g, and 11 Mbps@11b
Maximum transmit power of 19.5 dBm@11b, 16.5 dBm@11g, 15.5 dBm@11n
Minimum receiver sensitivity of -98 dBm
135 Mbps UDP sustained throughput
2.5 μA deep sleep current


São recursos muito poderosos, sendo que os principais destaques em nossa opinião, são:

  • Suporte a Bluetooth, abrindo um mundo novo para uso desta interface a baixo custo,
  • Processamento em dual-core, mais rápido e sem interferências do protocolo de comunicação, WiFi ou BT
  • 12 canais de conversão AC (ADC) de 12 bits cada, que permite um mundo novo de entradas analógicas


Para criar programas é necessário uma placa de desenvolvimento com o microprocessador de modo que possamos carregar os programas e testar. O Esp3212 já conta com diversas placas disponíveis (lista aumentando) para permitir que se possa utiliza-lo como se faz com a familia Arduino.

Em breve vamos escrever mais sobre como programar com toda versatilidade deste chip!