Тогда это не пойдет.
ШИМ с использованием аппаратного delta-sigma на I/O так никто и не доделал на ESP8266... Что-то там с аппаратурой не так - похоже на баги в чипе - бьет на низкой частоте и сам выход на достаточно большой частоте зашумляет прием WiFi (попадает в кратность по гармоникам). А программный низкочастотный ШИМ на таймерах в web-свалке отключен.
Тогда это не пойдет.
ШИМ с использованием аппаратного delta-sigma на I/O так никто и не доделал на ESP8266... Что-то там с аппаратурой не так - похоже на баги в чипе - бьет на низкой частоте и сам выход на достаточно большой частоте зашумляет прием WiFi (попадает в кратность по гармоникам). А программный низкочастотный ШИМ на таймерах в web-свалке отключен.
А можно организовать GPIO с буфером, т.е. присланый кусок данных проигрывается побитово с +- одинаковым интервалом в цикле, нужна скорость хотя бы 100 бит в секунду?
А можно организовать GPIO с буфером, т.е. присланый кусок данных проигрывается побитово с +- одинаковым интервалом в цикле, нужна скорость хотя бы 100 бит в секунду?
По нажатию на кнопку отправить 4-10 байт данных на сервер . За основу хочу взять Ваш проект , так как он идеально подходит . Как опросить кнопку - понятно . А какую функцию и в каком файле, применить для передачи простой строки. Другими словами говоря , мне надо не с юарта отправить данные а из внутренней памяти :
Код:
char data_str[]="send data srv!\r\n";
Я так понял что выше указанная функция может это выполнить? А IP и порт она берет из настроек в веб?
Вспомнил Ваш пример чтения температуры . Скажите пожалуйста , этот файл тоже компилируется ? Или его нужно подключить к проекту ??
В принципе мне подходит решение в этом файле . Поменяв сообщение и урл я смогу выполнить задачу .
Поясните пожалуйста как начинающему ..
По поводу глюков station ESP8266. Стабильнее работает когда отключена корректировка частоты:
и используется более старая SDK 1.5.4.
С включенной коррекцией вылетает даже на "протектед" при работе рядом других устройств с WiFi.
Похоже найдена дыра - определенный сигнал в эфире WiFi приводит к багам ESP8266 - вылетает или отсоединяется от AP и начинает петь песни - мешать другим модулям... Зависимость от версии SDK - мала.
Последовательность использования оверлея tcp_client.ovl в проекте WEB сервера
0. Скачиваем проект с репозитория. По умолчанию там был выбран проект TCP2UART (#define PROGECT_NUMBER 0)
1. Выбираем тип проекта - пустой WEB сервер. #define PROGECT_NUMBER 2
2. Делаем Clean
3. Компилируем (цель all). - скомпилилось с ошибкой =(. Если все скомпилилось - идем дальше.
На данном этапе мы имеем скомпилированные оверлеи и основной проект.
4. Загружаем прошивку - "flashAll"
5. Копируем оверлей (изначально файл берем в папке ovls\bin\tcp_client.ovl) в папку WEBFiles - ложим в корень этой папки
6. Загружаем WEB диск с помощью "Upload Web". Перед загрузкой файл веб диска
собираеться из файлов в каталоге "WEBFiles" в бинарный файл "webbin\WEBFiles.bin"
7. На данном этапе должна быть загружена прошивка и файл Web диска с нужным оверлеем
8. Заходим на точку доступа ESP8266 и настраиваем подключение к WIFI точке доступа. получаем IP: 10.10.10.67/
9. Выбираем оверлей: 10.10.10.67/?ovl=tcp_client.ovl
10. Запускаем оверлей: 10.10.10.67/?ovl$=1
11. Нужно ли на данном этапе закрывать все WEB подключения к ESP8266 ?
"Инициализация оверлея ovl_init(1) производится по закрытию Web-HTTP соединения для возможности передачи настроек инициализации в любом порядке, а в случае запроса из websocket – сразу после загрузки."
Получилось запустить данный оверлей на проекте TCP2UART, так как простой WEB сервер не компилился =(
Вопросы:
1) за что отвечает цель "clobber"
2) что размещается в секциях 0x00000 и 0x07000
3) в строчке Makefile - UPLOADOVL = ./ovls/bin/tcp_client.ovl - выбираеться оверлей из папки
скомпилированых оверлев, который будет загружаться во време цели "UPLOAD OVL" ?
4) в папках WEBFiles, WEBFilesRS485, WEBFilesTCP2UART лежат уже файлы оверлеев. После компиляции эти файлынужно заменить, я так понимаю ?
или их просто удалить, и загрузить только тот, который нужно с помощью цели "UPLOAD OVL"
5) При компиляции #define PROGECT_NUMBER 2 появляеться ошибка. В других режимах компилируеться нормально
main/.output/eagle/lib/libmain.a(main.o).text+0x4): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(main.o): In function `drv_recv':
main.c.text+0x174): undefined reference to `mdb_buf'
6) немножко непонятно с адресацией в оверлее:
секция text оверлея накладывается по адресам с секцией lit4 для основной прошивки - это так и должно быть ?
Основная прошивка
Entry Point : 4010013C call_user_start()
------------------------------------------------------------------------------
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE838C| 908
rodata| ReadOnly Data (RAM)| 3FFE838C| 3FFE8E6C| 2784
bss| Uninitialized Data (RAM)| 3FFE8E70| 3FFEFAB8| 27720
lit4| Uninitialized Data (IRAM)| 40105BBC| 401067CC| 3088
text| Uncached Code (IRAM)| 40100000| 40105BBC| 23484
irom0_text| Cached Code (SPI)| 40207000| 40241933| 239923
------------------------------------------------------------------------------
Оверлей:
Entry Point : 40106ABC ovl_init()
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFFDF60| 3FFFDFD1| 113
rodata| ReadOnly Data (RAM)| 3FFFDFD4| 3FFFE014| 64
bss| Uninitialized Data (RAM)| 3FFFE018| 3FFFE020| 8
lit4| Uninitialized Data (IRAM)| 40106BBC| 40106BBC| 0
text| Uncached Code (IRAM)| 40106600| 40106BBC| 1468
irom0_text| Cached Code (SPI)| 40210000| 40210000| 0
------------------------------------------------------------------------------
6. Загружаем WEB диск с помощью "Upload Web". Перед загрузкой файл веб диска
собираеться из файлов в каталоге "WEBFiles" в бинарный файл "webbin\WEBFiles.bin"
Туда-же и пишутся новые версии бинарных оверлеев - {в каталоге "WEBFiles"}.
11. Нужно ли на данном этапе закрывать все WEB подключения к ESP8266 ?
"Инициализация оверлея ovl_init(1) производится по закрытию Web-HTTP соединения для возможности передачи настроек инициализации в любом порядке, а в случае запроса из websocket – сразу после загрузки."
Имеется в виду HTTP-TCP соединение в котором был вызов загрузки оверлея. Экслорер по умолчанию открывает около пяти HTTP-TCP соединений на страницу. Существуют проблемы в последовательности приема и обработки поступающих данных в AJAX. Websocket от это избавлен.
Более полная очистка от временных файлов и итогов компиляции...
2) что размещается в секциях 0x00000 и 0x07000
Общий вопрос по ESP.
3) в строчке Makefile - UPLOADOVL = ./ovls/bin/tcp_client.ovl - выбираеться оверлей из папки скомпилированых оверлев, который будет загружаться во време цели "UPLOAD OVL" ?
Да. Так удобнее отлаживать ovl. Основная прошивка при изменении оверлеев не меняется и не требует перезаписи...
4) в папках WEBFiles, WEBFilesRS485, WEBFilesTCP2UART лежат уже файлы оверлеев. После компиляции эти файлынужно заменить, я так понимаю ?
или их просто удалить, и загрузить только тот, который нужно с помощью цели "UPLOAD OVL"
Зависит от варианта проекта. Это папки с примерами для разных проектов. Makefile отрабатывает только на {в каталоге "WEBFiles"}.
5) При компиляции #define PROGECT_NUMBER 2 появляеться ошибка.
Та и пусть. Зачем голая система? Всё равно будете что-то менять... Мне сложно синхронизировать текущую у меня версию с данной "свалкой", т.к. многое что добавлено у меня не нужно другим, а "свалка" ещё распухнет. Предполагается, что для сборки своего проекта вы удалите большую часть ненужного (помечается сереньким в Eclipse по условиям #if ) , выбрав часть опций.
6) немножко непонятно с адресацией в оверлее:
секция text оверлея накладывается по адресам с секцией lit4 для основной прошивки - это так и должно быть ?
Да. Оверлеи грузятся в остаток IRAM. Её можно увеличить пожертвовав частью 'кэша' Flash, т.е. прибавить +16 кило. Опция в meSDK...
На производительность в данном проекте это не влияет - доли процента...