Скоро мы увидим новый модуль ESP32
Осенью 2015 года китайская фирма Espressif представила новый WI-FI чип ESP32 - замена популярному WI-FI чипу ESP8266 . Новый чип имеет больше GPIO , Имеет поддержку 16 АЦП.
Информация по чипу пока собирается. Массовое начало продаж модулей на базе этого чипа запланировано на февраль 2016 года. Цену обещают чуть выше, чем у ESP8266, но думаю китайцы на Aliexpress выгоды не упустят и цена сначала будет завышена.
Компания Espressif не перестаёт радовать энтузиастов. Пару лет назад они выпустили шикарный чип с маркировкой ESP8266, и тогда это был прорыв, ведь всего за пару баксов в рознице можно было купить готовый модуль с данным чипом вместе с флешкой на 1мб. И если до этого кому-нибудь нужно было добавить к ардуине возможность общаться с внешним миром через WiFi, то приходилось покупать модули ценой от $15 и функционалом уровня UART-WiFI моста, то теперь в большинстве случаев отпала необходимость в самой ардуине (читать - микроконтроллере). Ведь ESP8266 представлял из себя систему-на-чипе с интегрированным радио-модулем, поддерживающим работу с WiFi b/g/n. Кроме того, что модуль мог подключаться к точкам доступа, он и сам мог работать в режиме точки доступа, что в теории позволяло создать mesh сеть из данных модулей.
Есть подозрения что в ESP32 будет интерфейс CAN .
Видео длинное, так как была прямая трансляция.
Но не обошлось и без минусов. По какой-то причине Espressif не дали разработчикам доступ к спецификациям и SDK самого чипа, вместо этого они написали свою обёртку над системными вызовами чипа, упаковали это в бинарные блобы с экспортированными функциями, которые и могли использовать разработчики. И всё было бы ничего, но данные блобы кишили ошибками, а по большей части экспортированных из них функций попросту не было документации и заголовочных файлов (для I2S, насколько я знаю, до сих пор нет). Но за такую цену энтузиасты не отчаивались, дизассемблировали блобы, восстанавливая по ним заголовочные файлы, патчили баги прямо в бинарных файлах. В общем было весело.
Но вот недавно Espressif анонсировали новую версию своего чипа - ESP32, на этот раз обещают два ядра, два гига, поддержку HT40 (ширина канала 40МГц, скорость до 144Мбит), поддержку Bluetooth 4.2 (BLE), размер оперативной памяти увеличили до 400Кб, в режиме глубокого сна появилась возможность использовать АЦП с триггером по пороговым значениям, как и раньше аппаратно поддерживаются I2C, I2S, UART, SPI, SDIO, PWM, так же появилась аппаратная поддержка AES и SSL, хотя обычно разработчики встраиваемых систем думают о безопасности в последнюю очередь. Так же количество GPIO увеличено до 35, из них 16 могут работать в режиме АЦП, два как ЦАП, остальные могут быть сконфигурированы для подключения периферии по перечисленным выше интерфейсам, ровно как использоваться в качестве ёмкостных датчиков прикосновения, или просто для моргания светодиодами. Более полную информацию о спецификациях нового чипа можно почитать на страничке Espressif ESP32 (ESP31B) Specifications.
Звучит круто, но есть нюанс. Когда анонсировали ESP8266, то тоже было много обещаний, но на деле оказалось, что большая часть функционала просто не тестировалась, что-то совсем не работает, а где-то нужно городить костыли. Тем ни менее это был крутой чип, хотя бы из-за цены. Цену на новый ESP32 пока что не сообщают, и на данный момент разосланы только 200 тестовых экземпляров, один из которых мы сейчас и запустим.
В ESP32 отсутствует отдельный пин Reset, вместо него для сброса можно использовать Enable. Пин Enable болтается в воздухе, поэтому если его никуда не подключить, то чип будет беспорядочно включаться и выключаться. При логической единице на данном пине чип включается, при логическом нуле выключается. Для тестового включения достаточно подключить питание (3.3В на 3V3, землю на GND) и подключить EN к VCC. К сожалению, на плате отсутствуют какие-либо статусные светодиоды, но если всё сделано правильно, то через несколько секунд должна появиться WiFi точка с именем ESP32_AP_94000000. Пароль от неё пока неизвестен(
Технические характеристики:
Процессор: двухядерный Tensilica L108 частотой до 160 MHz.
Поддерживаемые стандарты WI-FI: 802.11 b / g / n.
Поддерживаемы типы шифрования:WEP, WPA, WPA2.
Поддерживаемые режимы работы: Клиент(STA), Точка доступа(AP), Клиент+Точка доступа(STA+AP).
Поддержка Bluetooth Low Energy and Classic.
Напряжение питания 3.3в (?)
Потребляемый ток: ??
Количество GPIO: 33 (?)
Внешняя Flash память размером 512кб.
RAM данных 144 кб, RAM инструкций -128 кб.
Интерфейсы: 16 ADC, 2 DAC, I2C. UART, SPI, SDIO, I2S, RMII, PWM.
Поддержка AES и SSL на аппаратном уровне.
Информация выше может быть не точной.
Программирование модуля
Ссылка на SDK и описание установки toolchain для Linux https://github.com/espressif/ESP32_RTOS_SDK
esptool32.py для прошивки модуля.
Для режима прошивки необходимо подтянуть GPIO 2 и 0 к GND. GPIO 5 к +VDD (непотверждено)
Вывод в консоль будет примерно следующий:
ets Jul 5 2015,rst cause:1, boot mode:(33)
_stack_sentry: 0x3fffe1d0, __stack: 0x40000000,
_bss_start: 0x3fffcd48, _bss_end: 0x3fffe1d0,
_data_start: 0x3fffc000, _data_end: 0x3fffc864
load 0x40040000, len 2912, room 16
tail 0
chksum 0x6e
load 0x3ffd8000, len 1424, room 8
tail 8
chksum 0x1a
load 0x3ffd8590, len 568, room 0
tail 8
chksum 0xf3
csum 0xf3
********************************
* hello espressif ESP32! *
* pro cpu 2nd boot is running! *
********************************
2nd boot version : 1.0
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size : 1MB
jump to run addr @ 0x40000
rc_cal: rc=44, wifi: 73, 73, 28, 28, bt: 98, 98
txcap: 15, 5, 3, 15, 6, 3, 15, 5, 3, 15, 5, 3,
vdd33=2328, -13; temp_code=120
0x5f, 0x120, 58
0x1f, 0x120, 1
tx_pwctrl:6, 11, 16, 22, 26, 37, -1, 12, 17, 23, 30, 40, -10, 13, 17, 27, 31, 40, -16, 5, 10, 18, 24, 34,
tx_backoff:1, 5, 10, 10,
txiq: 0, 36, 4, 0, -3
txiq: 1, 36, 4, 0, -1
txiq: 2, 4, 4, 0, -2
tx_gain: pa=0x1f, bbc=0x20, bbf=0x4
bt: pa=0x10, bb=0,40
11606945, rxiq: amp=6, pha=4
12032391, rxiq: amp=4, pha=5
11197885, rxiq: amp=4, pha=7
16308699, rxiq: amp=8, pha=3
14541077, rxiq: amp=6, pha=2
13258235, rxiq: amp=5, pha=3
phy, 20151218, 722
ht20 ,2412
pp_task_hdl : 3ffe4af4, prio:23, stack:512
tcpip_task_hdl : 3ffe54e4, prio:20,stack:512
frc2_timer_task_hdl:3ffe8f2c, prio:22, stack:512
ESP32 RTOS SDK: 1.0.0(0394de4) compiled @ Nov 20 2015 18:57:56
SDK version2015121218:1.0.0(0394de4)
[esp32_packet_softap_ssid,43]wifi mode:60 01 94 00 00 00
[esp32_packet_softap_ssid,47]packet ssid[ESP32_AP_94000000]
[esp32_udata_init,66]ok to run AP+STA mode
*****************************
Start app OK!
*****************************
mode : sta(60:01:94:00:00:00) + softAP(62:01:94:00:00:00)
add if0
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
add if1
ht20 ,2412
bcn 100
[smple_socket_demo_thread,42]*********
[smple_socket_demo_thread,42]*********
К сожалению, мне не известен пароль от данной точки.