ESP8266 кажется закирпичен, как восстановить?

В части скетча я по ошибке поставил pinMode(7,INPUT_PULLUP); Это выделенный контакт для внешней флэш-чипы (gpio7/SDIO_DATA_0/SPI_MISO), который не должен использоваться для скетча. после загрузки скетча теперь ESP не отвечает на дальнейшее программирование.

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

При подключении к модулю со скоростью загрузки 74880 микросхема возвращается 8 января 2013 г., первая причина: 2, режим загрузки: (3,7) пожалуйста, проверьте, что происходит, когда я пытаюсь загрузить код ошибка загрузки

, 👍2


2 ответа


0

Нет, ваш скетч не может блокировать устройство таким образом. Именно загрузчик решает после сброса/включения питания, должен ли esp принять прошивку (нажата кнопка flash) или запустить загруженный скетч. В этот момент ничего из вашего скетча еще не было выполнено, и gpios имеет конфигурацию по умолчанию, которая в любом случае вводится.

Кроме того, при подтягивании к соответствующему контакту по-прежнему можно применить логический уровень. Тогда gpio не увидит никакого эффекта от подтягивания.

,

Из вашего первого абзаца ясно, что загрузчик будет определять статус вывода во время загрузки скетча. Но что происходит после того, как он был загружен и выполнен скетч, который, в свою очередь, манипулирует gpio управления флэш-памятью и повреждает загрузчик во флэш-памяти, как некоторая область памяти, записанная с «1» (например: 1111 1111). У меня нет другой подсказки, так как я замуровал свою вторую плату Lolin с тем же скетчем, прежде чем определить вышеуказанную ошибку (gpio7 в качестве входных данных)., @saif

@saif Загрузчик находится в ПЗУ, а не во флэш-памяти. Вы не можете испортить его. Именно этот загрузчик ПЗУ смотрит на контакты ввода-вывода и решает, откуда «загружаться» (один из вариантов — «Через UART для программирования»). Можно удалить флэш-чип и заменить его совершенно новым, полностью пустым, и при этом запрограммировать его. Должно быть что-то еще принципиально неправильное в том, что вы делаете., @Majenko


1

Нет, вы не заблокировали свой ESP8266, включив подтягивание GPIO7. Все, что нужно сделать, это обеспечить слабую подтяжку на линии MISO микросхемы флэш-памяти, которая сама по себе не будет иметь никакого эффекта — вывод данных SPI микросхемы флэш-памяти сможет легко переопределить эту слабую подтяжку.

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

Последовательность загрузки ESP8266 следующая:

- Начать выполнение загрузчика из встроенного ПЗУ
  - Считайте контакты GPIO, чтобы определить источник выполнения кода
  - Если выбрана флэш-память, инициализируйте флэш-чип и читайте с адреса 0.
    - Код на флэш-памяти проверяет таблицу разделов, чтобы найти точку входа кода
    - Перейти к точке ввода кода
  - Если выбран UART, инициализируйте UART.
    - Дождитесь команд через UART и отреагируйте соответствующим образом

Код запуска (стадия загрузки 0) находится в ПЗУ. Это невозможно "кирпич". Все, что находится во флэш-памяти, — это код, который сообщает ESP8266, как найти код пользователя, и этот код записывается в чип каждый раз, когда вы его перепрограммируете.

Вы можете думать об этом как о загрузке BIOS на ПК. В ПЗУ находится BIOS, который сообщает процессору, как читать с жесткого диска. Затем в начале жесткого диска находится код, сообщающий центральному процессору, как загрузить операционную систему. На жестком диске нет этого кода — вы устанавливаете его вместе с операционной системой. Но на материнской плате есть BIOS, встроенный в ПЗУ, который сообщает ей, как начать работу и прочитать этот загрузочный сектор.

Однако можно разрушить ESP8266, неправильно подключив к нему не те компоненты. Также можно повредить некоторые USB-чипы (в частности, CH340G), неправильно подключив их.

Так что, скорее всего, если вы заблокировали свой ESP8266, это не имеет ничего общего с вашей программой, а связано с тем, что вы к нему подключили.

,

@sim son и Majenko Спасибо за ваши усилия по решению моей проблемы. Теперь для меня ясно, что если я не повредю сам чип, его можно будет восстановить, даже если что-то пойдет не так и повредит флэш-память. Вчера вечером в качестве еще одной попытки я перезагрузил свой компьютер, надеясь, что серийный драйвер или аппаратное обеспечение сделали что-то неисправное, теперь я могу снова прошить свои модули !! Я все еще озадачен и изучаю, в чем проблема на самом деле., @saif