• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Не сохраняется "esp_init_data_default.bin"

VDLab

New member
Всем доброго времени суток.
Начал знакомство с чипом с модуля ESP12-E. В общем, все шло успешно - модуль прошивался, на команды реагировал, соединение было, пока, после игр с прошивкой (в частности, с этой: http://esp8266.ru/forum/threads/esp8266-i2s-mp3-webradio-streaming-example.412/) модуль работать перестал - что бы в него не заливал, либо валит сообщение об ошибке, либо затыкается сразу после загрузки первых секций кода из флешки.
Поэкспериментировав и сняв дамп с флешки, обнаружил, что, несмотря на бодрые рапорты esptool об успешной загрузке, данные из файла "esp_init_data_default.bin" по смещению 0x7C00 фактически не записываются, вместо данных одни "0xFF". Всё остальное записывается верно.
В связи с чем вопросы: я правильно понимаю, что это и есть причина моих бед, и как его "уговорить" все же записать эту секцию?
 

pvvx

Активный участник сообщества
Всем доброго времени суток.
Начал знакомство с чипом с модуля ESP12-E. В общем, все шло успешно - модуль прошивался, на команды реагировал, соединение было, пока, после игр с прошивкой (в частности, с этой: http://esp8266.ru/forum/threads/esp8266-i2s-mp3-webradio-streaming-example.412/) модуль работать перестал - что бы в него не заливал, либо валит сообщение об ошибке, либо затыкается сразу после загрузки первых секций кода из флешки.
Поэкспериментировав и сняв дамп с флешки, обнаружил, что, несмотря на бодрые рапорты esptool об успешной загрузке, данные из файла "esp_init_data_default.bin" по смещению 0x7C00 фактически не записываются, вместо данных одни "0xFF". Всё остальное записывается верно.
В связи с чем вопросы: я правильно понимаю, что это и есть причина моих бед, и как его "уговорить" все же записать эту секцию?
При отсутствии записанного "esp_init_data_default.bin" (первый байт сектора для его записи не равен 5) SDK, начиная с версии 1.0.0, использует значения по умолчанию (записанный в коде flash аналог рекомендованного китаями esp_init_data_default.bin).
Т.е. можно не записывать esp_init_data_default.bin вообще - будут использоваться значения по умолчанию.

Да, и у вас не указан размер flash на модуле ESP12-E и параметры прошивки. От них зависит куда пишется esp_init_data_default.bin.

+ Наибольшее кол-во распространенных по инет esptool.py имеет ошибку - затирает область во flash больше, чем пишет туда кода. На таких версиях требуется соблюдать последовательность записи блоков от младшего адреса к старшему. Но это работает, если не затрет по кругу начальные сектора при записи последних :) Используйте исправленные версии...
 
Последнее редактирование:

VDLab

New member
Спасибо за ответ. С одним вопросом разобрался - сам дурак - не по тому адресу считал дамп. Сегодня перепроверил - таки все читается правильно.
Правда от этого не легче, хоть записывается все правильно, но модуль все равно мертвый. Пробовал экспериментировать как с размером флеш в мейкфайл, так и со скоростью и количеством линий данных памяти. Результата пока нет. Куда копать дальше не знаю.
У меня просьба к владельцам ESP12-E (как на фото) с заводской прошивкой (в идеале, но хотя бы уж какой-нибудь, лишь бы работающей) - снять дамп с флеш-памяти модуля. Если не поможет, буду считать его безвременно погибшим...
 

Вложения

pvvx

Активный участник сообщества
У меня просьба к владельцам ESP12-E (как на фото) с заводской прошивкой (в идеале, но хотя бы уж какой-нибудь, лишь бы работающей) - снять дамп с флеш-памяти модуля.
"заводской прошивки" не бывает. Каждый продавец пишет в них что ему угодно... Flash в модулях также бывает любая - всё зависит от ушлости продавца. :)
Записывайте хоть fullflash_and_webfs_044.zip - она с автоматическим определением параметров. Пишите c SPI: DIO 40 MHz , Flash: 512к (4Mbits), Кварц: 26 MHz.
Если заработает, то меняете параметры на SPI: QIO 80 MHz , Flash: 512к (4Mbits), Кварц: 26 MHz для более быстрой работы модуля.
Скорость COM порта при программировании = любая, т.к. в модуле работет автоопределение скорости при прошивке. Обычно используют от 115200 до 1000000 Baud
 
Последнее редактирование:

VDLab

New member
Спасибо за попытку помочь, но видимо модуль действительно пора на свалку...
По первой прошивке:
ESP8266Flasher запинается вначале, в логе:
Код:
Note:Serial port connected.
Note:Begin find ESP8266.
Note:ESP8266 ACK success.
Note:ESP8266 ACK success.
Error:Set ESP8266 Address timeout.
esptool тоже матерится, пишет "Invalid head of packet"

По второй - Вашу опробовал одной из первых, сейчас попробовал еще раз, после перезагрузки:
Код:
 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 104, room 16
tail 8
chksum 0x82
csum 0x82
Fatal exception (0):
epc1=0x40200080, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
ну и т.д.
Может бутлодер у него "не той системы"?
 

pvvx

Активный участник сообщества
Спасибо за попытку помочь, но видимо модуль действительно пора на свалку...
По первой прошивке:
ESP8266Flasher запинается вначале, в логе:
esptool тоже матерится, пишет "Invalid head of packet"
Какая esptool? Пробуйте FLASH_DOWNLOAD_TOOLS.

По второй - Вашу опробовал одной из первых, сейчас попробовал еще раз, после перезагрузки:
Может бутлодер у него "не той системы"?
Опции какие при прошивке в FLASH_DOWNLOAD_TOOLS_v1.2_150512? Надо указанные.
 

VDLab

New member
FLASH_DOWNLOAD_TOOLS_v1.2_150512:
Код:
serial port opened
Connecting...
chip sync error
с любыми опциями, там, похоже, до опций дело даже не доходит.
 

pvvx

Активный участник сообщества
FLASH_DOWNLOAD_TOOLS_v1.2_150512
...
с любыми опциями, там, похоже, до опций дело даже не доходит.
Дык там нет автоматического включения модуля в режим программирования. Надо кнопу RESET руками жать, а другие пины поставить в режим програм...
 

VDLab

New member
Хм, спасибо, как то я этот момент упустил из виду, и вроде ж читал об этом... Придется теперь ждать вечера, чтобы попробовать.
 

VDLab

New member
В общем, прошил с указанными параметрами - результат тот же, вечный вывод ошибки...
Видимо модуль все же накрылся, придется новый покупать, благо дешевые.
 

pvvx

Активный участник сообщества
В общем, прошил с указанными параметрами - результат тот же, вечный вывод ошибки...
Видимо модуль все же накрылся, придется новый покупать, благо дешевые.
По предварительным данным с вашего лога - прошивка (бутлоадер) грузится в режиме одиночного SPI к Flash (контрольная сумма верна), а когда включается режим QIO или DIO доступа к Flash, происходит баг. Возможно надо просто пропаять ноги чипа ESP8266 к Flash...
PS: сhksum/csum 0x82 - это RapidLoader на 80MHz Ver 2 :)
 
Последнее редактирование:

VDLab

New member
Пропаивал и чип и память. Пробовал менять память - все то же самое.
 

VDLab

New member
Хм, история, как выясняется, имеет продолжение.
Первый модуль, после долгих попыток восстановить, списан как бракованный. Ладно, купил еще несколько, на этот раз ESP-07...
Короче, при запуске той же прошивки, после которой перестал работать предыдущий модуль, загнулся и этот!
Симптомы те же - при включении выплевывает на 78400 все те же строки, что приводил ранее и все...
Замена флеша не помогает, видимо унутре у ней затираются какие то данные или калибровочные константы.
В общем, если кто будет играться с этим примером - до выяснения причин не лезьте в модуль "synth_stereo.c.unused" в декодере - именно после замены им файла "synth.c" вся эта свистопляска и началась.
 

pvvx

Активный участник сообщества
В общем, если кто будет играться с этим примером
Там всего одно отличие - GPIO3 работает как выход, а не вход (RXD). Обычно он включен на внешний выход какого COM порта и происходит КЗ.
Так-же стандартная прошивка MP3 декодера использует GPIO15 как выход, а у некоторых, которые соединили его напрямую с GND, это тоже вызывает КЗ и перегрев чипа.
 
Последнее редактирование:

VDLab

New member
Да не, в исходном виде (с моно звуком) пример работал, правда пришлось чуть поправить инициализацию модуля I2S под другой ЦАП (PT8211).
Проблемы начались именно после подключения "synth_stereo.c", там под буфер выделяется вдвое больший буфер. Причина вряд ли в этом, но на эксперименты у меня запасных модулей нет :)
 
Сверху Снизу