Кастомная плата на esp32-pico не шьётся

Тема в разделе "ESP8266, ESP32", создана пользователем chugunovvic, 8 ноя 2021.

Метки:
  1. chugunovvic

    chugunovvic Нуб

    Добрый день, форумчане!

    Сложилась тревожная ситуация, прошу помощи. Постараюсь кратко:

    Я разработал собственную плату с использованием микроконтроллера ESP32-PICO-D4. Прошиваться планировал с использованием USB-UART моста CP2102-GM. Схему цепей связи прилагаю:
    [​IMG] [​IMG]

    Если, вдруг, картинки не грузятся: RTS-DTR соединены через мост SS8050-G, как это принято делать. линия Enable имеет 100nF конденсатор в землю и подтяг 10К.

    Я пробовал программировать через esp-idf и через arduino ide, и проблема везде одинаковая:
    1. После компилляции проекта появляется следующее:
    Код (C++):
    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.0 seconds (effective 2849.4 kbit/s)...

    A fatal error occurred: Timed out waiting for packet header
    A fatal error occurred: Timed out waiting for packet header
     
    Таким образом, понятно, что плата определяется, но не прошивается. В мониторе наблюдается ошибка пустой флешки.

    Что я уже попробовал:
    1. добавить электролит 10мкФ в цепь EN
    2. закоротить IO0 на землю во время загрузки
    3. изменить скорость (пробовал почти все)
    4. переустановить драйвера на CP2102 (все)
    Если у кого-нибудь есть идеи, помогите пожалуйста. Если что-то не подробно описал, прошу прощения, готов уточнить в комментариях.
     
  2. b707

    b707 Гуру

    что вы туда пытаетесь прошить?
    строчка
    Код (C++):
    Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2849.4 kbit/s)...
    наводит на сомнения.
    Во-первых, 8кбайт это крайне мало для прошивки ЕСП32. Даже в пустом скетче библиотек обычно не меньше чем на 200К.
    Во-вторых, то что эти 8к так отлично сжались всего до 47 байт - скорее всего говорит о том, что в прошивке у вас сплошные нули.

    Думаю, ошибку надо искать не в железе, а еще на этапе сборки и компиляции
     
  3. chugunovvic

    chugunovvic Нуб

    Всё верно, я пытаюсь зашить скетч-пример GetID. Это делается в качестве проверки вообще прошиваемости. До рабочей прошивки ещё далеко, хочу удостовериться что железо прошивабельно. Туда и пустой скетч должен заливаться, какая разница?
     
  4. parovoZZ

    parovoZZ Гуру

    А где обязательный бинарник со стартовой программой и стеком Wi-Fi?
     
  5. ИгорьК

    ИгорьК Гуру

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

    То есть, связь с модулем правильная, на обращение он реагирует и к обмену данными готов, но ide это сделать не может.

    Что предлагаю.
    Найдите на сайте espressif утилиту Flash Download Tool, выставьте в ней название вашего чипа и закатайте с нулевого адреса любой доступный бинарник.
     
    Последнее редактирование: 9 ноя 2021
    chugunovvic, Andrey12 и DetSimen нравится это.
  6. chugunovvic

    chugunovvic Нуб

    Спасибо за отклик!

    Попробовал через Flash Download Tool, не получилось, выдаёт ошибку "11 - configure spi cmd fail" . см. картинку [​IMG]

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

    В терминале COM-порта, к которому подключена плата раз в секунду появляется это:
    Код (C++):
    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    flash read err, 1000
    ets_main.c 371
     
     
  7. chugunovvic

    chugunovvic Нуб

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