Arduino IDE: комфортная миграция с AVR на ESP32

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

если честно, то на AVR было тесновато всегда: 8-мь бит, скромная частота камня, объём флеша и оперативки были как бы достаточны, но не очень...

поэтому, да - переезжаю на ESP32 вместе со всем своим скромным барахлом кода.

возможно, когда-то на форуме образуется отдельный раздел по ESP32, а пока буду здесь писать заметки о граблях, неявных но важных местах, задавать вопросы, давать ответы.

 

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

официальный сайт производителя https://www.espressif.com/en/products/hardware/esp32/overview

github https://github.com/espressif

мегасборник ссылок на ресурсы о ESP32 http://esp32.net/

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

инсталляция.

https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md - установит программную поддержку зоопарка плат с ESP32.

https://github.com/me-no-dev/arduino-esp32fs-plugin - ручками установить плагин поддержки SPIFFS файловой системы.

здесь можно посмотреть пример реализации работы с SPIFFS - считывает бинарник биоса из файла в массив, сохраняет массив в бинарник, грузит бейсиковые проги из текстового файла в эмулируемый недокомп https://github.com/Klapautsiy/6502_EhBASIC_ESP32_Arduino

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

настройки Arduino IDE.

конфигурация ESP32 без радио-интерфейсов.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Железка.

все грабли ниже применимы к такой плате.

Esp32s NodeMCU board

и, такому адаптору на CP2102

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Клапауций 003, я откуда помню (откуда именно - уже забыл), что по ней нет как такового даташита и вообще официальной документации. Это правда?

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Ворота пишет:

Клапауций 003, я откуда помню (откуда именно - уже забыл), что по ней нет как такового даташита и вообще официальной документации. Это правда?

а, что есть? - тоже, не помню.

это не? https://www.espressif.com/en/support/download/documents

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Клапауций 003 пишет:

это не?

Спасибо!

Понятно, почему я помню, что нету. У самых полезных документов совсем свежие копирайты.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Ворота, так это #7 то, что нужно или не совсем то?

*хотя, и меня гложут смутные сомнения, что китайцы украли у кого-то то, что должно было появиться на рынке намного позже, не по такой смешной цене и не всё в одном.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

кратко, что из себя представляет аппаратно.

микросборка с процессором, микросхемой флеша, интегрированной антенной, опционально запаяна на плату с обвесом стабилизатора напряжения 3.3V и парой светодиодов. 

фото с демонтированным экраном

330px-Espressif_ESP-WROOM-32_Wi-Fi_%26_B

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Клапауций 003 пишет:

*хотя, и меня гложут смутные сомнения, что китайцы украли у кого-то то, что должно было появиться на рынке намного позже, не по такой смешной цене и не всё в одном.

Скорее всего китайцы "украли" специалистов. Пора привыкнуть что китайцы это могут разрабатывать самостоятельно .

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

загрузчик.

представляет из себя комлекс, обеспечивающий не только прошивку, но и программную поддержку железа на низком уровне при работе в обычном режиме - прошивается производителем.

*на форумах народ иногда спорит - что там аппаратное, а что программное.

фьюзы.

так понял, что отсутсвуют или доступны исключительно производителю.

пин Reset(EN).

управляет контроллером питания  - выключает питание контроллера.

фактичекски ресетит, но нет - выключает.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

маленькие грабли №0

плата #4 не прошивается без удержания кнопки BOOT - вроде как должно прошиваться без неё, но тогда не понятно, зачем она(кнопка) нужна.

некритично.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

pinout.

подробности по ссылкам выше, но что бы не наступить на неявное и не посчитать это граблями, то нужно знать, что:

- пины GPIO34-39 работают исключительно в режиме input mode и к ним неприменимы функции pullup и pulldown, т.е. если очень нужна подтяжка этих пинов, то только внешним резистором.

- пины GPIO6-11 зарезервированы для обслуживания флеш-микросхемы сборки, не смотря на то, что разведены на плату, использовать их не получится.

- пины GPIO1, 3 - это UART0, подключенный к CP2102, т.е. если программно используется UART0, то ничего сюда подключать не стоит или совсем не стоит. нужно пробовать.

- пин GPIO15 по умолчанию сконфигурирован как input mode pullup, замыкание его на землю отключает загрузочные сообщения в UART0.

так же радует такое:

pinMode(pin, INPUT_PULLDOWN);
pinMode(pin, INPUT_PULLUP);
 
из странного и явно ну очень метафорически китайского:
 
- ёмкостные сенсорные кнопки (10шт.) и даже программная приблуда есть на сайте производителя для их тонкой настройки. о_О
 
 
Клапауций 003
Offline
Зарегистрирован: 20.07.2019

как этот болезный собрался выяснять по схеме модуля, как будут себя вести неактивированные программно, но активные при загрузке/включении пины UART0 - дьяволу в его голове известно.

останутся они активными или нет, как на это среагирует CP2102 - переходят ли его пины в состояние Z.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Клапауций 003 пишет:

Ворота, так это #7 то, что нужно или не совсем то?

Да, спасибо. Там есть именно даташиты. А то я где-то читал, что мол "даже объём памяти известен лишь приблизительно" :)

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Ворота пишет:

А то я где-то читал, что мол "даже объём памяти известен лишь приблизительно" :)

таки, не зря писали - только последний год доки начали публиковать.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

полезный хак.

если на плате Esp32s NodeMCU заменить LDO AMS1117 на AP7361C-33ER, то батарейное питание платы будет проще реализовать.

полная версия здесь https://blog.voneicken.com/2018/lp-wifi-esp32-boards/

Клапауций 003
Offline
Зарегистрирован: 20.07.2019
Sidorchuk
Offline
Зарегистрирован: 22.07.2016

Оч любопытно - что за проекты ваяет сумрачный украинский гений в которых мощи авр-ок не хватает? Тоже хочу что-нибудь слепить, но не знаю что(

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Sidorchuk пишет:
Оч любопытно - что за проекты ваяет сумрачный украинский гений в которых мощи авр-ок не хватает?

всё тоже самое, но быстрей, с радио-фейсами и файловой системой на борту.

Sidorchuk пишет:
Тоже хочу что-нибудь слепить, но не знаю что(

https://www.google.com/search?q=esp32

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

как пример - класс титановый велосипед для тактовой кнопки.

таки, да - сотня кнопок на той же атмега328 отъедает практически всю оперативку и сей факт рвёт на клочки эмбеддера и ещё одного.

попытки объяснить, что это всё может прекрасно жить на отдельном контроллере клавиатуры, вызывают вопли: а, как же отсальная программа?!

ну, аппаратно как-то так https://m5stack.com/collections/m5-unit/products/cardkb-mini-keyboard

CARDKB_1200x1200.jpg?v=1560395718

 

Logik
Offline
Зарегистрирован: 05.08.2014

Как жеж его торкнуло! Аж на другой контролер убежал. На что токо люди не пойдут лиш бы головой не думать! :)

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

Logik пишет:

Как жеж его торкнуло! Аж на другой контролер убежал. На что токо люди не пойдут лиш бы головой не думать! :)

эмбедера выпилили из темы - желаешь за ним следом последовать, думатель головой?