На пользовательской печатной плате на базе ESP32 я больше не могу мигать после первой успешной прошивки
Я разработал и изготовил индивидуальную печатную плату с чипом ESP32 на ней. Я использую свой кабель FTDI для загрузки своей прошивки. У меня нет проблем с прошивкой прошивки, и она работает без проблем. Пока все идет хорошо. Но тогда любые последовательные попытки прошить снова-это тупик, так как это приводит к таймауту (конечно, я все еще нажимаю кнопку загрузки на своей печатной плате).
Если я возьму новую печатную плату, первая вспышка будет в порядке, но я не смогу сделать это снова.
Примечание: чтобы сделать все как можно проще, я просто использую Arduino IDE и свой код do-nothing в качестве замены прошивки:
void setup() {
Serial.begin(115200);
//Serial.setDebugOutput(true);
Serial.println("Yo from SDL!");
}
// the loop function runs over and over again forever
int _loop = 1;
void loop() {
Serial.print("Loop #");
Serial.println(_loop++);
Serial.println();
delay(3000);
}
[ОБНОВЛЕНО] Вот схема, касающаяся ESP32 и GPIO0, GPIO2:
Схема печатной платы относительно загрузчика
У тебя есть какая-нибудь зацепка?!
@Stéphane de Luca, 👍-1
Обсуждение1 ответ
Лучший ответ:
IO2 должен быть подключен к выдвижному резистору (ваш зуммер FET имеет выдвижной резистор на своем входе, который выполняет эту работу, и это к счастью). Я бы подумал о том, чтобы переместить зуммер в другое место и сохранить IO2 только для выдвижного резистора, если это возможно.
IO0 нуждается в подтягивающем резисторе.
Вам нужен какой-то способ сброса ESP32, потянув штифт EN низко, когда вы хотите перепрограммировать его.
Как IO0, так и вывод EN обычно управляются с помощью комбинации выводов DTR и RTS адаптера USB-UART для автоматического сброса. Без этого вам придется вручную удерживать IO0 на низком уровне, одновременно ненадолго нажимая EN low, чтобы сбросить чип.
согласно документу io0 как внутреннее подтягивание: действительно ли нам нужно добавить внешнее? (“Каждый обвязочный штифт соединен со своим внутренним подтягиванием/подтягиванием во время сброса микросхемы. Следовательно, если обвязочный штифт не подключен или подключенная внешняя цепь имеет высокое сопротивление, то внутреннее слабое подтягивание/оттягивание будет определять входной уровень обвязочных штифтов по умолчанию”.), @Stéphane de Luca
@StéphanedeLuca Интересно - этого я не знал. Тем не менее, я думаю, что хорошо быть откровенным в этих вещах, чтобы избежать неопределенности. Но если внутренний работает, то все в порядке. Но вам все равно нужно переключить EN ;), @Majenko
Так что IO0 был в порядке. Но я испортил EN (он был прикреплен к подтяжке). И, как указал @Majenko, EN должен быть кратко установлен на низкий уровень. Большое спасибо , @Stéphane de Luca
- ESP32-CAM первый: 0x8 TG1WDT_SYS_RESET загрузочный цикл
- esp32 - кулачок застрял в повторном башмаке
- Wemos C3 Mini (ESP32-C3) не запускает прошивку, если не подключен к ПК
- Как записать загрузчик?
- Не удается снова загрузиться после смены платы
- Разница в загрузчике Arduino Nano ATmega328P
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
Правильно ли вы подключили GPIO, которые запускают режим загрузчика?, @Majenko
@Majenko Я подключил вывод загрузчика и добавил кнопку, чтобы перевести чип в режим загрузки. Чтобы было понятно, я успешно скачал прошивку в микросхеме в первый раз. Но после этого я не могу обновиться., @Stéphane de Luca
"Пустой" чип будет находиться в режиме загрузчика по умолчанию IIRC. Можете ли вы поделиться своей схемой и дизайном платы?, @Majenko
@Makenlo О, понятно, может быть, я испортил схему загрузчика? позвольте мне поделиться этой частью с вами через несколько минут, @Stéphane de Luca
@Majenko Я загрузил схемы печатной платы относительно загрузчика, @Stéphane de Luca