• Система автоматизации с открытым исходным кодом на базе 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)
 
Сверху Снизу