Jump to content

    
Sign in to follow this  
HWGA_PCB

Собственная плата на ESP32-PICO-D4

Recommended Posts

Коллеги, добрый день!

Сложилась тревожная ситуация, прошу помощи знающих (или догадывающихся) людей. 

Выполняю проект по разработке маленькой умной палочке, выбрал микроконтроллер ESP32-PICO-D4 (о причинах говорить не будем).

Была реализована схема внутриплатной отладки, которая дёргает Reset и Boot с помощью RTS и DTR через CP2101-GM (подробную схему найдите, пож-та, в описании).

К сожалению, плата не прошивается. Но контакт с ней есть...и это пугает. 

Я присоединился к ней И через ESP-IDF, и через Arduino IDE (по сути они вызывают один и тотже питоновский скрипт, но всё же).

Такие логи я вижу в Arduino IDE:

esptool.py v3.0-dev
Serial port COM3
Connecting........_____.
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:0b:fb:56:32:fc
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 1129.9 kbit/s)...

A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header

 

Такой лог выдаёт ESP-IDF:

esptool.py v3.2-dev
Serial port COM3
Connecting....
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:0b:fb:56:32:fc
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00010000 to 0x00039fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 25552 bytes to 15942...
Writing at 0x00001000... (100 %)

A fatal error occurred: Serial data stream stopped: Possible serial noise or corruption.
CMake Error at run_serial_tool.cmake:56 (message):
  C:/Users/hopel/.espressif/python_env/idf5.0_py3.8_env/Scripts/python.exe
  C:/Users/hopel/esp_idf/esp-idf/components/esptool_py/esptool/esptool.py
  --chip esp32 failed

Выглядит это странно, процессор посылает информацию о себе и своих фичах, но прошиваться не хочет. Возможно, не заходит в boot-мод, хотя я уже попробовал:

  • Вручную загонять его в бут (закорачивая бут на момент ресета)
  • Добавить 10мкФ в цепь ресета (так интернеты говорят)
  • Добавить подтяг к земле в цепь RX (думал вдруг пофиксятся шумы)

После всего проделанного контроллер шлёт в порт информацию, что его флешка пуста, то есть скетч не залит. От самого скетча, очевидно, это не зависит никак, но я пробовал разные, и пустые, и хеллоуворлд и тд. 

 

Есть ли у кого-то опыт решения подобной проблемы? ну или хотя бы идеи что вообще происходит.

Спасибо!

Schematic_KW-ST-01_RevA_Cntrl.PDF

Share this post


Link to post
Share on other sites
18 часов назад, rkit сказал:

ws2812 при питании 5В не берет сигнал 3.3В. Можно чуть понизить 5В диодом, чтобы попасть в диапазон.

спасибо за комментарий!

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

18 часов назад, aaarrr сказал:

Выводы 26 и 27 не должны иметь внешних подключений, у ESP32-PICO-D4 флеш 1.8В и подключена на альтернативные пины.

 

спасибо за ответ!

Могли бы Вы, пожалуйста, поделиться источниками информации? Я изучил даташит этого зверя и подобной информации не нашёл (прошу прощения, если я слепой). Наоборот, обнаружил там такую интересную фразу на 11 странице:

Цитата

The operating voltage of ESP32-PICO-D4’s integrated external SPI flash is 3.3 V. Therefore, the strapping pin MTDI should hold bit ”0” during the module power-on reset.

Получается, нужно 18 пин (он же MTDI) закоротить к земле на время включения модуля?

Про 27 пин вообще не понял, как он участвует в жизни внутренней флешки. Может имелся в виду пин 37? Буду признателен, если объясните начинающему ESP-еру как правильно сделать и где про это всё узнать. Спасибо!

Edited by HWGA_PCB

Share this post


Link to post
Share on other sites
24 minutes ago, HWGA_PCB said:

Про 27 пин вообще не понял, как он участвует в жизни внутренней флешки. Может имелся в виду пин 37? Буду признателен, если объясните начинающему ESP-еру как правильно сделать и где про это всё узнать. Спасибо!

Обратите внимание на замечание в разделе 4:

Quote

External connections can be made to any GPIO except for GPIO16 and GPIO17. These two GPIOs are connected to the
module’s integrated SPI flash. For details, please see Section 6 Schematics.

И схему модуля (раздел 6, стр. 14).

 

Да, насчет напряжения флеш я ошибся, но VDD_SDIO подключать напрямую к 3.3 не следует - мало ли, сделают 1.8В вариант.

Share this post


Link to post
Share on other sites
21 минуту назад, aaarrr сказал:

Обратите внимание на замечание в разделе 4:

И схему модуля (раздел 6, стр. 14).

 

Да, насчет напряжения флеш я ошибся, но VDD_SDIO подключать напрямую к 3.3 не следует - мало ли, сделают 1.8В вариант.

Спасибо, разобрался, пошел резать дорожки! Правильно я понимаю, что SDIO можно оставить в воздухе (так как это выход внутренней лдо), а остальные пины питания у меня подключены верно?

Share this post


Link to post
Share on other sites
1 minute ago, HWGA_PCB said:

Правильно я понимаю, что SDIO можно оставить в воздухе (так как это выход внутренней лдо), а остальные пины питания у меня подключены верно?

Да, VDD_SDIO в воздухе (но сейчас можно не резать), остальные к 3.3В.

Share this post


Link to post
Share on other sites
44 минуты назад, aaarrr сказал:

Да, VDD_SDIO в воздухе (но сейчас можно не резать), остальные к 3.3В.

Ура, все прошилось и работает! Спасибо огромное! на трех форумах никто не нашел ошибку, а тут сразу помогли!

но без электролита все равно не шьется, буду добирать емкость керамикой, т.к. с бочонком не залезет в корпус!

 

Share this post


Link to post
Share on other sites
18 minutes ago, HWGA_PCB said:

но без электролита все равно не шьется, буду добирать емкость керамикой, т.к. с бочонком не залезет в корпус!

А аккумулятор стоит?

Share this post


Link to post
Share on other sites
Только что, aaarrr сказал:

А аккумулятор стоит?

аккумулятор стоит штатный, который на схеме 3.7В 400mAh Li-Ion, я припаял аккуратно 10мкФ 0603 керамику в цепь Enable - всё работает ожидаемо. Я изучал эту проблему, там косяк в таймингах "дёрганья" ресет и бут, конденсатором задаётся нужная задержка, ну вы и так наверно знаете...

Share this post


Link to post
Share on other sites
5 minutes ago, HWGA_PCB said:

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

Такую схему не использовал никогда. Если речь о C18, то можно с тем же успехом увеличить сопротивление R9. Или программатор исправить.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this