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

Помигать диодиком через АТ команды

rst

Member
Если приведенный код работает, то и другой код тоже может нормально работать в ардуино.
Так и финики могут в тундре расти. Но не растут почему-то. :)
В идеальном мире оно всё может работать. Только если посмотреть на исходный код того ардуино-моста, то возникает мысль "как оно вообще работает-то?" o_O

Так попросите автора, пусть поправит.
Ну да... сами то верите? Народ уже просил - без толку.
 

rst

Member
Понятно какие у вас тут специалисты....
Ого - с козырей зашёл! :cool:
Специалисты, батенька, денех стоят. Коих у вас как видно нет.
Или вы заплатили за консультацию? Нет??? Тогда сорян - отвечают вам любители.

Также всем специалистам рекомендую посмотреть схему модуля ESP01S
И что предлагаете там увидеть?
В моём ESP01 лампочка подключена к TXD UART. И само собой - мыргает при какой-либо передаче по UART. И естественно - управляться AT-командами не может по определению. Что должно быть понятно даже любителю, не то что специалисту.

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

rst

Member
Там что уарт мост?
Тот код, среди прочего предоставляет функционал = мост WiFi - TCP-сокет - UART. С доморощенным протоколом средней кривизны.
Через ентот мост можно передавать команды принтеру и получать от него ответы на них. Команды - это ASCII-строки.
Кроме того - через этот мост ещё и разный мусор сыпется.
Через этот мост работают утилиты, управляющие принтером в рельном времени через WiFi.
Я же использую этот мост для закачки в принтер GCODE-файлов. А также - для скачки, просмотра, удаления и других действий, которые обычно делает файловый менеджер. При помощи своего приложения.

Из-за кривизны и ограничений этого моста, скорость передачи несжатого GCODE-файла ограничивается примерно ~7КБ/сек. Что весьма скромно даже для ESP8266. Которая должна качать как минимум неск.сотен КБ/сек через открытый TCP-сокет. Скорость ограничена:
a) битрейтом UART = 115200;
б) макс. размером передаваемого кадра (вроде около 1КБ, если не путаю);
в) необходимыми минимальными паузами между кадрами.
 

CodeNameHawk

Moderator
Команда форума
На этом сайте вроде был уарт мост, может в вебсервере каком-то, не пробовали?
Передача с есп на есп.
 

rst

Member
На этом сайте вроде был уарт мост, может в вебсервере каком-то, не пробовали?
Передача с есп на есп.
Так мне нужна: ПК<->ESP(на принтере). Т.е. - TCP-соединение с ПК на открытый слушающий TCP-порт на принтере. Одно соединение. И что-бы конфигуриться могло со стороны принтера (через какой-то протокол). Т.е. - не прозрачный канал, однозначно.
Именно так работает тот проект. (правда кроме этого там ещё куча ненужного есть; но оно - не нужно)
И желателен кодонезависимый протокол (с UART со стороны принтера). Хотя в том проекте кодонезависимости нет.
И ещё чтобы работало часами и не падало (чего опять же нет в том проекте - бывают самопроизвольные обрывы).

Всё в сумме - вобщем не сложно. Но учитывая уровень открытых проектов - сомнительно найти готовое да ещё безглючное.... :(
 

pvvx

Активный участник сообщества
Причём тут вообще это?
Я писал, что проблема - в работе моста UART-WiFi. Перечитайте ещё раз что я писал.

Вот этот проект: https://www.pcbway.com/project/shareproject/MKS_WiFi_module.html
Если вы такой гуру в абдурине, то покажите - что в нём нужно исправить, чтобы работал нормально?
Убрать C++ и пересобрать LwiP на статические буфера. Тогда не зависнет, пока по WiFi не словит увод частоты при под-калибровке или словит импульсы на выводы и подобное (это уже неисправимые глюки чипа и RF дров ESP8266)
А на Arduino читайте рекомендации - не использовать string и описывать обработку задач так, чтобы распределение динамической памяти после выхода из задачи приходило в начальное состояние.
Т.е. использовать C++ синтаксис только для удобства, исключив всё что более типового СИ - тогда будет значительно реже виснуть.
Прошивка AT у ESP глючная - не свободна от багов и запросто ложится запросами из сети. Тем более там LwIP с динамическими буферами (в HEAP) - т.е. запросто делается фрагментация.

И трансфер у HTTP сервера у ESP8266 - 800 килобайт в сек. Это вам надо UART на 8000000 Baud, а у ESP8266 предел к 6 Mbit - далее искажения периодов UART.

А диодиком мигает множество уже готовых прошивок. Достаточно поискать.
 

pvvx

Активный участник сообщества
Понятно какие у вас тут специалисты....
Задаешь конкретные вопросы. Ответ - ищите в Интернете все написано. А то я и сам не знаю, что в интернете все написано!
Дык сам Espressif на 90% не знает что в данном чипе. Возможно что разработчиков ESP8089 уволили до хайпа (переименования на пластике корпуса в ESP8266), или вообще украли разработку...
И только "любители" расковыряли данный чип, чем вы и пользуетесь. И их никто не заставлял собирать и создавать документацию в одном месте - как итог - всё раскидано по инет.
Тогда Espressif и поехала на данном хайпе и первые потуги в ПО у Espressif были ужасны - жадность - наняли одного какого-то китайского школьника писать первый софт и далее переделывать уже созданные другими "любителями" варианты Arduino...
 

pvvx

Активный участник сообщества
на схеме в углу есть табличка в которой упоминаются порты GPIO0, GPIO2 , думаю что ответ в ней. Что она означает?
Из 2014 года:
А на картинке - урезанная информация.
 

pvvx

Активный участник сообщества
Т.е. полная информация по загрузке (как GPIO управляют загрузкой) находится в Скачать ESP8266 Pin List 05.11.2014 в формате XLSX на странице "Strapping".
Потом грузится прошивка и в инициализации переключает некоторые GPIO в зависимости от значений системных констант записанных в Flash.
Далее уже идет специфика вашей прошивки.

До полной загрузки прошивки (это типа к сотне мс после сброса или старта питания) на большинстве выводов присутствуют разные сигналы, включая выдачу CLK на 26 MHz, переключаются "подтяжки" и прочее.
Более менее свободных выводов (не влияющих на загрузку и не дергающихся при старте) у ESP8266 всего два и они не выведены на модуле ESP01.
 

pvvx

Активный участник сообщества
О да... Вам же надо расшифровать, что такое "Strapping"
Это состояние выводов GPIO защелкнутое по сигналу RESET в специальном регистре.
Т.е. на выводы от которых зависит тип загрузки нельзя вешать никакие емкостные нагрузки, типа светодиодов.
Чип воспринимает сигнал RESET в 1 нс (любую помеху), но если на RESET вплотную припаян конденсатор - то это частично поможет. Дык вот по помехе или другому варианту воздействия на вывод RESET состояние GPIO будут защелкнуты и такой тип загрузки и произойдет.
А если каком на выводе висит светодиод или емкость (к примеру gate транзистора), то если за время сигнала RESET он не разрядится (а входное сопротивление GPIO при RESET - мегаОмы), то такое состояние и защёлкнется (и такой тип загрузки и будет)...
 

pvvx

Активный участник сообщества
Светодиодиком на ESP8266 лучше мигать плавно, через аппаратный ШИМ стробируемый мегагерцами. Для этого есть специальные регистры у любого GPIO в ESP8266. Но имеет пару ошибок в кремнии – биения выходного уровня, что для светодиода не совсем важно. И второю, относящуюся к любому выводу GPIO – выход развивает дикий фронт менее 1 нс с большим током (может за 100 мА). Это создает помехи на входную приемную часть и чип глохнет. Требуется припаять резистор на Омы непосредственно к любому используемому как выходу пину чипа, чтобы проводник не звенел и не создавал сам себе помех. Дополнительно этот резистор ограничит прохождения фронтов внешних помех от которых ESP8266 обычно виснет, т.к. реальной сертификации на ESD и прочие помехи у него нет. В бытовых условиях проверить, всё ли спаяли правильно, можно мелкой пьезозажигалкой – при работе пощелкайте десяток раз в нескольких см от чипа и если перезагрузится или глюкнет – перепаивайте...

Так же не забудьте о фронтах и качестве питания чипа ESP8266. BOR у чипа не работает (очередной баг кристалла), а вывод RESET не сбрасывает RF часть. Плавные провалы питания (особенно в момент передачи) приводят чип в режим глушения окружающего WiFi, т.к. передатчик не затыкается. При этом чип может выгореть, т.к. не предназначен для постоянной передачи (тупо перегреется и кристалл выгорит, может с эффектами и возгоранием, если питание мощное) - при работе WiFi используется программный тротлинг. Аналогично необходимо следить, что при работе не возникло зависания в моменты работы RF или ограничить ток питания на чип.

Замыкание одного GPIO в режиме выхода добавляет потребление чипом от 50 мА. Это так-же может привести к выгоранию чипа, если замкнули несколько выводов и чип много передает по WiFi… т.е. ставьте токоограничивающие резисторы на выводы, на которых возможны КЗ.

А дальше уже AT и прочее ПО...
 

nikolz

Well-known member
pvvx,
Вы пишите:
"Требуется припаять резистор на Омы непосредственно к любому используемому как выходу пину чипа"
-----------------
Можете подробнее развернуть данную мысль с учетом выходного сопротивления пина.
Как эти Омы повлияют с учетом вых сопротивления на пине?
 

pvvx

Активный участник сообщества
pvvx,
Вы пишите:
"Требуется припаять резистор на Омы непосредственно к любому используемому как выходу пину чипа"
-----------------
Можете подробнее развернуть данную мысль с учетом выходного сопротивления пина.
Как эти Омы повлияют с учетом вых сопротивления на пине?
Т.е. вы простую электротехнику не знаете? Тогда надо более подробно утонять. Но про всё некогда:
Проводник имеет распределенную емкость и индуктивность и выступает в качестве антенны. Если на такую индуктивность подавать импульсы с коротким фронтом - то он будет звенеть и излучать радиоволны в широкой полосе.
Через резистор, за счет емкости проводника, более высокие частоты погасятся и помех кратных WiFi и модуляциям будет во много раз меньше.
И резистор гасит резонансы проводника, т.к. получаем контур уже в виде выходной емкости чипа + резистор + индуктивность.
Да и импеданс среды + резистор уже равно делитель....
Выход так-же будет нагружен не на емкость, а на резистор - т.е. ограничивается импульс тока в провод и в питание.
 

pvvx

Активный участник сообщества
Все причины в том, что GPIO ESP8266 не имеют ограничения тока. Сделаны тупо, даже без учета прохождения внешних импульсов через емкости в ядро кристалла...
Разработчики не учились делать помехозащищенные входы-выходы, как это реализовано в других чипах и на что есть нормативы и стандарты.
 

nikolz

Well-known member
Т.е. вы простую электротехнику не знаете? Тогда надо более подробно утонять. Но про всё некогда:
Проводник имеет распределенную емкость и индуктивность и выступает в качестве антенны. Если на такую индуктивность подавать импульсы с коротким фронтом - то он будет звенеть и излучать радиоволны в широкой полосе.
Через резистор, за счет емкости проводника, более высокие частоты погасятся и помех кратных WiFi и модуляциям будет во много раз меньше.
И резистор гасит резонансы проводника, т.к. получаем контур уже в виде выходной емкости чипа + резистор + индуктивность.
Да и импеданс среды + резистор уже равно делитель....
Выход так-же будет нагружен не на емкость, а на резистор - т.е. ограничивается импульс тока в провод и в питание.
Вы опять не угадали. Зачем уподобляться гадалке и угадывать, что я знаю?
-------------
Вы не поняли вопрос. Поэтому разжевываю.
Вы предлагаете поставить Омы, последовательно с сопротивлением открытого транзистора. Но сопротивление этого транзистора уже десятки Ом. Вы утверждаете, что если скажем к 10 Ом добавить еще 2 Ома, то помехи исчезнут.
Если Вы это обнаружили экспериментально, то это открытие. если придумали, то это лишь гипотеза.
Вот Я и просил Вас подробнее осветить данное явление.
 

pvvx

Активный участник сообщества
Вы не поняли вопрос. Поэтому разжевываю.
Вопрос был понят и описан. Но догадка о незнании и неполном понимания у вас электротехники оказалась верна.
Рисуйте эквивалентную схему с учетом всех RLC цепей для конечных цепей GPIO на кристалле + проводок до вывода + провод разводки платы или соединения.
Только на основе этого, возможно, будет уточнить то, чего вы не учли или не изучили.
Выдуманные вами номиналы тут не причем, но обычно используют от 10 до 33 Ом.
 
Сверху Снизу