2016-08-28 3 views
11

Моя установка состоит из Espressif SDK, используя затмение и nodemcu, который я хочу программировать на C.Невозможно изменить пример для ESP8266 предоставленной espressif

Я следовал за все, что он шаги, и я могу собрать и прошить плату из среды затмения. Я не нажимаю ни одной кнопки для загрузки вспышки, потому что плата может обрабатывать ее сама по себе (по крайней мере, это то, что я читал). Согласно this, по-видимому, у меня есть nodemcu 0,9, но доска у меня совсем не похожа на ту, что на картинке (микрополосковая антенна выглядит странно .. и на задней части доски говорится: www.doit.am ESP12E devkit V2 ... антенна на моем даже не похожа на ту, что была на сайте, указанном за доской).

Я просмотрел все и продолжал движение. Я собрал мигающий пример на espressif и высветил его. Я видел, что он создал eagle.flash.bin и eagle.irom0text.bin и загружает их в 0x00000 и 0x10000 соответственно (согласно документам, которые я прочитал, это нормально). Когда я сброшу плату, я вижу, что она действительно вспыхнула, и в ней есть программа, так как светодиод мигает. Затем я попробовал пример hello_world. Все пошло соответственно, и после того, как я сбросил плату, я вижу, что светодиод продолжает мигать с той же частотой, и когда я подключаюсь к плате через терминал.exe, предоставляемый espressif, я могу видеть только мусор на выходе, хотя бод верный в соответствии с кодом (даже в этом случае я попытался использовать все возможные бои в файле terminal.exe).

Хорошо ... затем я снова включился в мигающий пример и увеличил задержку между миганиями. Вспыхнул его, и частота осталась прежней. Я знаю, что он создал новые .bin-файлы, но все равно ничего не изменилось. Это привело меня к созданию нового проекта. Я сделал это, следуя инструкциям Михаила Григорьева. Я просто положил бесконечный цикл, ожидая получить ничего, но после прошивки недавно скомпилированной прошивки я все еще вижу, что светодиод мигает на той же частоте, даже если в коде нет ничего, я даже вытер вспышку раньше (да, я проверьте, была ли пустая вспышка).

Так что это привело меня к проверке каждого отдельного примера, который я мог бы скомпилировать. Я заметил, что кто-то не моргнул, а другие сделали, как будто ничего не произошло. После этого я загрузил прошивку nodemcu, и после загрузки я заметил, что она работает правильно, и я даже мог видеть ESP в доступных Wi-Fi-сетях.

Я действительно не понимаю, что происходит. Почему некоторые примеры работают, а другие нет? Почему я не могу изменить исходный код простого blinky и увидеть изменение? Я действительно предпочитаю использовать модуль esp таким образом, так как мне не нравится интерфейс arduino или способ использования статических настроек и функций цикла, и я не хочу программировать его в LUA.

Я даже проверил make-файлы, предоставленные espressif, и единственная разница, которую я вижу, это переменные BOOT и APP. Я даже пытался их модифицировать, но все же .. никаких изменений.

Может кто-нибудь мне помочь?

+0

Как именно вы уверены, что у вас есть nodemcu 0.9? ESP-12E находится на версии 1.0. Кроме того, я не пробовал плату nodeMCU, но на том, что у меня было, мне пришлось манипулировать одним GPIO для запуска платы в мигающем режиме, а затем перезапустить ее в обычном режиме. Вы уверены, вам не нужно ничего подобного? – mactro

+0

@mactro Я сделал это, сравнив компоновку компонентов, 0.9 имеет длинный IC CH340. Я окончательно нашел ту же самую панель, что и у меня. Это http://www.banggood.com/Geekcreit-Doit-NodeMcu-Lua-ESP8266-ESP-12E-WIFI-Development-Board-p-985891.html. И я уже попробовал поместить его в режим вспышки. Удерживайте кнопку вспышки, сбросьте ее, отпустите кнопку вспышки, загрузите программу и затем сбросьте ее. – morcillo

+0

CH340 - это просто конвертер USB/UART. Есть много других чипов, которые выполняют ту же работу, и не имеет значения, какой из них используется. С другой стороны, ESP12 и ESP12E имеют разные распиновки (у 12E больше контактов), поэтому я предполагаю, что вы должны использовать nodemcu 1.0, который работает с версией 12E. – mactro

ответ

8

Хорошо, наконец, нашел свою проблему. Дело в том, что SDK espressif требует некоторых программных бит на определенных адресах вспышки. То, что изначально произошло, это то, что я удалил флеш, как только я получил доску, предполагая, что все эти двоичные файлы уже были сохранены во флеше.

Следующее, что я сделал, это то, что я попытался поместить все другие двоичные файлы, но я помещал их в неправильные адреса, поэтому программное обеспечение не сработало.

Наконец, после многих часов чтения форумов и документации для чтения я нашел правильные адреса, и это сработало.

Адреса:

0x00000 - boot_v1.6.bin 

0x01000 - firmware application (I set the makefile to BOOT=new, APP=1, SIZE_MAP=6) 

0x3fc000 - esp_init_data_default.bin 

0xfe000 - blank.bin 

0x3fe000 - blank.bin 

 Смежные вопросы

  • Нет связанных вопросов^_^