• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Прошвика льет мусор в порт

diakc

New member
в eclipse собираю hello_world проект из пакета Espressif
все собирается. Но когда заливаю в прошивку в esp - в порт валится мусор каждый раз, когда делаешь reset. Что я делаю не так?

1. Меня смущает при сборке что либы не в ту область памяти вроде как пишутся, в примерах везде 0x40000, а у меня вот так
boot.bin------->0x00000
user1.4096.new.4.bin--->0x01000

2. настройка makefail такие
BOOT = new
APP = 1
SPI_SPEED = 40
SPI_MODE = QIO
SPI_SIZE_MAP = 4
ESPPORT = COM4
#ESPBAUD = 256000

3. DevKit качал свежий
даже с git брал последние правки MK файлов с правками по памяти

PS Чип ESP8266 esp-12e, отладочная плата на базе UART CH340g.
До этого заливал nodemcu скрипты на lua работают нормально WI-FI пашет, диоды мигают.
 
Последнее редактирование:

diakc2012

New member
она скорости 74880 следующее:

ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 27400, room 16
tail 8
chksum 0x41
load 0x3ffe8000, len 884, room 0
tail 4
chksum 0xe6
load 0x3ffe8380, len 396, room 4
tail 8
chksum 0xd1
csum 0xd1
need boot 1.4+

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

Scorpio

New member
Служебная инфа после ресета всегда выдается на скорости 74880, и насколько я понимаю, от прошивки никак не зависит. Далее ваша программа должна что-то выдавать в порт на скорости 115200, а вместо этого идет мусор. Причем сама программа работает нормально. Так?
 

diakc2012

New member
я взял в пакете Espressif стандартный пример examples\ESP8266\hello_world\
Судя по коду прошивка должна в UART кидать раз в секунду по таймеру строку "Hello World!"
Но этого не происходит. Вместо этого только мусор, причем разный. Не понимаю почему, перебрал уже параметры SPI_SIZE_MAP, BOOT и app доступные в examples\ESP8266\settings.mk но нужного эффекта не наблюдается. Судя по коду скорость порта BIT_RATE_115200.
При этом служебная информация на скорости 74880 выводится нормально.
 

Scorpio

New member
С lua не разбирался, шью esp-12e через Arduino IDE. Но, если мусор валится с нужной периодичностью (раз в секунду), значит скорость передатчика отличается от скорости приемника. Чудес то не бывает. Надо попробовать принимать на разных скоростях (9600 например) и подумать почему 115200 не устанавливается.
 

diakc2012

New member
дело в том, что я уже перебрал все возможные варианты скоростей на чтение, если бы ребус решался так просто я бы не написал сюда ))).
С Arduino IDE я еще не разбирался, мне хотелось бы расковырять именно eclipse что бы писать на C, Lua я ковырял что бы понять что чип в принципе работает.
 

Scorpio

New member
Arduino IDE это тоже С (вернее С++). И море готовых библиотек для всех возможных применений ESP. Но это кому что нравится. В первом посте вроде настроена 256000. Для отладки надо начать с самой низкой скорости. На высоких скоростях может и длиный кабель повлиять. Хотя, если с прошивкой проблем нет на 115200, значит.... значит загадка :)
Может вы 8N1 случайно перенастроили?
 

diakc2012

New member
nodemsu1.PNG nodemsu2.PNG
я продвинулся чуть дальше, я залил прошивку не с помощью esptool.exe, а при помощи ESP8266Flasher.exe с опциями как на картинке и все заработало как часы. Но так каждый раз не очень удобно.
вызов esptool.exe такой:
c:/Espressif/utils/ESP8266/esptool.exe -p COM6 -b 256000 write_flash -ff 40m -fm qio -fs 32m 0x00000 firmware/eagle.flash.bin 0x10000 firmware/eagle.irom0text.bin

проблема в опциях, адреса вроде все верные, может кто-то знающий подскажет что не так?
 

diakc2012

New member
похоже проблема вообще в окружении eclipse или MinGW в паре, если вызвать из командной строки esptool.exe то все корректно, если шить через Makefile то прошивка заливается криво
 

diakc2012

New member
в общем сам разобрался, походе проблема была в старой версии eclipse. Может кому пригодиться:
1. Собирал компилятор по инструкции вот в этой статье Работа с ESP8266: Собираем компилятор и пишем первую прошивку, но что бы все прошивалось мне потребовалось еще поковыряться
2. взять из github.com/CHERTS/esp8266-devkit/commit/6712815a430b23b665d949aca369c9f91c5a7d16 исправления для Makefile и обновить соответствующие файлы в примерах Espressif (спасибо автору статьи)
3. я взял другую версию eclipse под win32 Eclipse downloads - Select a mirror
4. нужно в Makefile указать какой FLASH на esp8266 у меня SPI_SIZE_MAP =4 так как 4 Мбайт
в c:\Espressif\examples\ESP8266\settings.mk указаны все варианты FLASH

P.S. кроме того, у меня компилятор под winXP sp3 кидал ошибкой "C:\MinGW\msys\1.0\bin\rm.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487" я её смог победить заменив c:\MinGW\msys\1.0\bin\msys-1.0.dll на более старую версию 1000.12.0.0 (в дистрибутиве была 1000.19.0.0)
 
Сверху Снизу