При работе с некоторыми типами модулей ESP32 при попытке загрузить на него новый код может возникать ошибка “Failed to connect to ESP32: Timed out waiting for packet header”, что в переводе означает «Не удалось подключиться к ESP32: истекло время ожидания заголовка пакета». В данной статье мы рассмотрим как решить данную проблему.
Почему возникает эта ошибка?
Некоторые платы разработки ESP32 не переходят в режим прошивки/загрузки автоматически при загрузке нового кода.
Это означает, что при попытке загрузить новый скетч на ESP32 среда Arduino IDE не сможет подключиться к вашей плате, и вы получите следующее сообщение об ошибке:
Удерживайте кнопку BOOT/FLASH
Один из способов решения этой проблемы — удерживать кнопку «BOOT/FLASH» на плате ESP32, одновременно загружая новый скетч. Но беспокоиться об этом каждый раз, когда вы хотите загрузить новый код, может быть утомительно, особенно когда вы тестируете и отлаживаете свой код. Есть способ исправить это раз и навсегда — больше не нужно удерживать кнопку «BOOT/FLASH».
Как исправить ошибку?
Чтобы плата ESP32 автоматически переходила в режим прошивки/загрузки, вы можете подключить электролитический конденсатор емкостью 10 мкФ между контактами EN и GND (Земля).
Возможно, вам стоит сначала протестировать эту настройку на макетной плате, чтобы убедиться, что она работает с вашей платой разработки ESP32.
Примечание: электролитические конденсаторы имеют полярность. Бело-серая полоса указывает на отрицательный вывод.
Если это работает, то можно припаять электролитический конденсатор 10 мкФ непосредственно к плате. Так как контакты EN и контакты GND находятся далеко друг от друга, вы можете просто подключить конденсатор между ними как показано на следующей принципиальной схеме:
На следующем рисунке показано, как выглядит мой ESP32 после припаивания конденсатора. Он не занимает много места, и, к счастью, у вас не возникнет дополнительных проблем с подключением к ESP32 при загрузке нового кода.
Прежде чем пытаться загрузить новый код, следует проверить соединения с помощью мультиметра в режиме непрерывности — убедитесь, что вы случайно ничего не припаяли к следующему контакту.
Если все спаяно правильно, вам не нужно будет нажимать кнопку BOOT при загрузке нового кода. Вы также не получите ошибку Fatal Error Occurred: «Failed to connect to ESP32: Timed out waiting for packet header».
33 просмотров