HWGA_PCB 0 November 11, 2021 Posted November 11, 2021 · Report post Коллеги, добрый день! Сложилась тревожная ситуация, прошу помощи знающих (или догадывающихся) людей. Выполняю проект по разработке маленькой умной палочке, выбрал микроконтроллер 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 Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 40 November 11, 2021 Posted November 11, 2021 · Report post Выводы 26 и 27 не должны иметь внешних подключений, у ESP32-PICO-D4 флеш 1.8В и подключена на альтернативные пины. Quote Share this post Link to post Share on other sites More sharing options...
rkit 1 November 11, 2021 Posted November 11, 2021 · Report post ws2812 при питании 5В не берет сигнал 3.3В. Можно чуть понизить 5В диодом, чтобы попасть в диапазон. Quote Share this post Link to post Share on other sites More sharing options...
HWGA_PCB 0 November 12, 2021 Posted November 12, 2021 (edited) · Report post 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 November 12, 2021 by HWGA_PCB Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 40 November 12, 2021 Posted November 12, 2021 · Report post 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В вариант. Quote Share this post Link to post Share on other sites More sharing options...
HWGA_PCB 0 November 12, 2021 Posted November 12, 2021 · Report post 21 минуту назад, aaarrr сказал: Обратите внимание на замечание в разделе 4: И схему модуля (раздел 6, стр. 14). Да, насчет напряжения флеш я ошибся, но VDD_SDIO подключать напрямую к 3.3 не следует - мало ли, сделают 1.8В вариант. Спасибо, разобрался, пошел резать дорожки! Правильно я понимаю, что SDIO можно оставить в воздухе (так как это выход внутренней лдо), а остальные пины питания у меня подключены верно? Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 40 November 12, 2021 Posted November 12, 2021 · Report post 1 minute ago, HWGA_PCB said: Правильно я понимаю, что SDIO можно оставить в воздухе (так как это выход внутренней лдо), а остальные пины питания у меня подключены верно? Да, VDD_SDIO в воздухе (но сейчас можно не резать), остальные к 3.3В. Quote Share this post Link to post Share on other sites More sharing options...
HWGA_PCB 0 November 12, 2021 Posted November 12, 2021 · Report post 44 минуты назад, aaarrr сказал: Да, VDD_SDIO в воздухе (но сейчас можно не резать), остальные к 3.3В. Ура, все прошилось и работает! Спасибо огромное! на трех форумах никто не нашел ошибку, а тут сразу помогли! но без электролита все равно не шьется, буду добирать емкость керамикой, т.к. с бочонком не залезет в корпус! Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 40 November 12, 2021 Posted November 12, 2021 · Report post 18 minutes ago, HWGA_PCB said: но без электролита все равно не шьется, буду добирать емкость керамикой, т.к. с бочонком не залезет в корпус! А аккумулятор стоит? Quote Share this post Link to post Share on other sites More sharing options...
HWGA_PCB 0 November 12, 2021 Posted November 12, 2021 · Report post Только что, aaarrr сказал: А аккумулятор стоит? аккумулятор стоит штатный, который на схеме 3.7В 400mAh Li-Ion, я припаял аккуратно 10мкФ 0603 керамику в цепь Enable - всё работает ожидаемо. Я изучал эту проблему, там косяк в таймингах "дёрганья" ресет и бут, конденсатором задаётся нужная задержка, ну вы и так наверно знаете... Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 40 November 12, 2021 Posted November 12, 2021 · Report post 5 minutes ago, HWGA_PCB said: Я изучал эту проблему, там косяк в таймингах "дёрганья" ресет и бут, конденсатором задаётся нужная задержка, ну вы и так наверно знаете... Такую схему не использовал никогда. Если речь о C18, то можно с тем же успехом увеличить сопротивление R9. Или программатор исправить. Quote Share this post Link to post Share on other sites More sharing options...