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

При большой частоте внешних прерывания перезагружается

pvvx

Активный участник сообщества
Стандартные приемники 433 МГц обеспечивают передачу до 10 килобайт в сек. Это значит, что битовая скорость на уровне 10 us. Т.е. если кто-то запретил прерывания на время более 9 us, то вы теряете приемный байт получаемый полингом в процедуре прерывания. Лучшие показатели можно достичь применив прием на i2S или UART.

Время запретов прерываний в SDK, свободной от Arduino прибамбасов:
https://esp8266.ru/forum/threads/modbus-rtu-rs-485.529/#post-9891
При пересоединениях и периодической смене ключа WPA наблюдаются большие задержки в драйвере WiFi с запрещенными прерываниями.

Т.е. если задача на ESP8266 включает в себя непрерывный прием и анализ внешних сигналов по прерываниям, то она будет сбоить на указанные временные промежутки.
В последних SDK и Arduino сбоит и вывод ШИМ, реализованный программно на NMI. Это особенно проявляется при реконектах и прочих сменах WiFi соединения.

Если в системе имеется внешний микроконтроллер, то проще будет переложить время-зависимые задачи на него. Для этого возможно использовать второй модуль ESP8266, но с отключенным WiFi. Тогда сохраняется единая среда разработки, а цена второго модуля не принципиальна. При этом потребление вторым модулем не особо большое - до 35 мА, если не изголяться и не загружать его задачами постоянной тусовки десятками килобайт по RAM...
 
Последнее редактирование:

valerivp

Member
pvvx, вы какие приемники имеете в виду? которые байты на входе получают? или которые эфир на ногу транслируют?
Вторые - когда нет данных, шлют на ногу мусор. и его частота больше 10кГц (на глаз - относительно полезного сигнала - примерно 20...30кГц, а анализатором мерить шум - как-то не догадался).

Но это не важно. Смысл в том, что врядли на ESP имеет смысл анализировать данные на высокой частоте.
Я в своем проекте использую семплирование на частоте 10кГц.
Ранее использовал метод измерения частоты, но он гораздо менее помехоустойчив. Отказался от него. Но тоже работало стабильно, без перезагрузок.
 

pvvx

Активный участник сообщества
pvvx, вы какие приемники имеете в виду? которые байты на входе получают? или которые эфир на ногу транслируют?
Вторые - когда нет данных, шлют на ногу мусор. и его частота больше 10кГц (на глаз - относительно полезного сигнала - примерно 20...30кГц, а анализатором мерить шум - как-то не догадался).

Но это не важно. Смысл в том, что врядли на ESP имеет смысл анализировать данные на высокой частоте.
Я в своем проекте использую семплирование на частоте 10кГц.
Ранее использовал метод измерения частоты, но он гораздо менее помехоустойчив. Отказался от него. Но тоже работало стабильно, без перезагрузок.
Норматив в обработку прерывания до 1 us при работе WiFi не я придумал, а Espressif, и проверки показывают, что это приводит к проблемам у драйвера WiFi.
Во первых, если у вас работает AP на ESP, то она обязана давать beacon c точностью 1 us.
И прием, в режиме STA, открытия окна для приема beacon, так-же должен быть как можно точнее.
Можно нарушать все спецификации - всё равно у вас Arduino. Как-нибудь вдруг и заработает :) Вам же не на выставку и не для работы в качестве какого-то устройства. Побаловаться и выкинуть...
 

valerivp

Member
pvvx, я все правильно понимаю? нельзя делать обработчик дольше 1 мкс (us, 10-6 сек)?
если я все правильно посчитал, то это 80 тактов CPU.
все верно?
 

pvvx

Активный участник сообщества
pvvx, я все правильно понимаю? нельзя делать обработчик дольше 1 мкс (us, 10-6 сек)?
если я все правильно посчитал, то это 80 тактов CPU.
все верно?
Да.
Что конкретно при этом имелось в виду - совместно с кодом сохранения и восстановления регистров или только пользовательская часть - указано не было.
Проверки на NMI это подтверждают. Вешаете на таймер NMI и вперед...
 
Последнее редактирование:

valerivp

Member
Всё равно у вас Arduino. Как-нибудь вдруг и заработает :) Вам же не на выставку и не для работы в качестве какого-то устройства. Побаловаться и выкинуть...
Можете подсказать другие чипы и системы разработки? Которые подошли бы под мои скромные требования:
  1. Наличие качественной библиотеки Web сервера с Web сокетами. Вашу свалку не предлагать - см.пп 2 и 3
  2. Возможность разработки в нормальной среде, без макефайлов.
  3. Доступность комьюнити
 

pvvx

Активный участник сообщества
Можете подсказать другие чипы и системы разработки? Которые подошли бы под мои скромные требования:
  1. Наличие качественной библиотеки Web сервера с Web сокетами. Вашу свалку не предлагать - см.пп 2 и 3
  2. Возможность разработки в нормальной среде, без макефайлов.
  3. Доступность комьюнити
Указал уже - 2 x ESP8266.
ESP-32, RTL8195AM, RDA5981, RTL8710BN. Это список аналогов, но с современным WiFi и не сильно отличающейся ценой самого модуля. При их использовании общая цена обычно сокращается из-за наличия набортных контроллеров, которые не придется навешивать внешне.
 

valerivp

Member
Да.
Что конкретно при этом имелось в виду - совместно с кодом сохранения и восстановления регистров или только пользовательская часть - указано не было.
Проверки на NMI это подтверждают. Вешаете на таймер NMI и вперед...
Вы же явно сказали - если общая обработка будет дольше 1мкс - будут проблемы.
Моих знаний хватает посчитать следующее:
Простая команда ассемблера в таких устройствах выполняется за примерно 4 такта.
итого получается 20 команд.
из них минимум 10 - сохранение и восстановление регистров, вызов и возврат из прерывания.

Итого - полезная нагрузка макс 10 команд ассемблера.
Что-то не сходится.
 

valerivp

Member
Указал уже - 2 x ESP8266.
ESP-32, RTL8195AM, RDA5981, RTL8710BN. Это список аналогов, но с современным WiFi и не сильно отличающейся ценой самого модуля. При их использовании общая цена обычно сокращается из-за наличия набортных контроллеров, которые не придется навешивать внешне.
pvvx, ESP32 вы не однократно критиковали тут на форуме.
По остальным не выполняется ни один пункт (кроме п. 2 для RTL8195AM - можно использовать VS)

Лично меня цена вообще не волнует. Т.к. для штучного производства (т.е. домашние поделки) затраты на разработку сильно больше стоимости комплектующих. Ну или я просто тормоз.
 

pvvx

Активный участник сообщества
pvvx, ESP32 вы не однократно критиковали тут на форуме.
Да, он неудачно скомпанован и имеет массу ошибок. Из-за наличия других модулей не особо нужен, т.к. ошибки аппаратные. Я же вам не рекомендую более дорогие модули, а выбираем из "дерьма".
По остальным не выполняется ни один пункт (кроме п. 2 для RTL8195AM - можно использовать VS)
Ну почему?
Нет недотеп с трепом "как прошить" по ним? Или "комьюнити"? "комьюнити" есть - любой разработчик на ARM. На RDA для европейской части есть MBED. Отличий от Ardunio я не вижу. Arduino на него у китайского "комьюнити".
Аналогично с другими чипами.
На ESP-8266 в русскоговорящем "комьюнити" всего пару человек. На RDA, ESP-32 - пока ноль.
 
Последнее редактирование:

valerivp

Member
Ну почему?
Нет недотеп с трепом "как прошить" по ним? Или "комьюнити"? "комьюнити" есть - любой разработчик на ARM.
Да.
Может в сфере промышленной разработки (которой по всей видимости вы занимаетесь) у предложенных вами чипов есть преимущества.
А в сфере любительской гораздо важнее возможность задать вопрос яндексу и получить внятный ответ на интересующий вопрос - как подключить датчик, как ловить прерывания, как подключить экранчик, ...

и да, яндекс не знает как сделать web-сервер на предложенных вами чипах, и предлагает esp ардуино...
 

pvvx

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

и да, яндекс не знает как сделать web-сервер на предложенных вами чипах, и предлагает esp ардуино...
Ну я задал не более 10 вопросов по ESP8266 и за 3 года не получил ни одного ответа по ним.
Задать заново?
А решено было несколько сотен... Которые и привели к итогу, что ESP8266 бесполезная вещь и годиться только ради начального обучения и ознакомления с малыми WiFi-SoC.
Но полученные знания девать то куда-то надо, вот и помогаю "начинающим".
С выхода ESp8266 в 2013 году прошло много лет и поисковики заполнились. На другие они не заполнятся, если их не будут использовать и поддерживать. Так и останетесь с древним кривым камнем.
За это время никаких поправок в камень Espressif не сделали.

PS: если вы вернетесь к теме, а не будете продолжать гнать рекламу ESP-8266, то найдете все ответы уже описанными - что и как надо предусмотреть в реализации обработки по прерываниям...
 
Последнее редактирование:

=AK=

New member
Стандартные приемники 433 МГц обеспечивают передачу до 10 килобайт в сек.
Очередной ламерский бред от pvvх. Нет никаких "стандартных приемников 433 МГц", это чушь. Типичные приемники 433 МГц могут быть настроены на скорости до 500 кбит/сек.
 

valerivp

Member
pvvx, вы безусловно внесли большой вклад в развитие этого самого комьюнити Ардуино ESP в России, хотя вам Ардуино и не нравится :) - отвечали начинающим разработчикам SoC, в т.ч. мне, на идиотские вопросы.
Вы же понимаете, что когда ваш уровень профессионализма - "Експерт", то спрашивать не у кого :)

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

Не проще ли признать эту ситуацию, вместо того чтобы постоянно критиковать Ардуино?
 

valerivp

Member
Очередной ламерский бред от pvvх. Нет никаких "стандартных приемников 433 МГц", это чушь. Типичные приемники 433 МГц могут быть настроены на скорости до 500 кбит/сек.
Правда?
можно пример приемника и передатчика, которые могут на дистанции 10м общаться на такой скорости? и питаться от 3.3...5В
 

pvvx

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

Не проще ли признать эту ситуацию, вместо того чтобы постоянно критиковать Ардуино?
Я не заставлю вас принимать моё мнение. Но это моё мнение. Видите, к посту приписан мой ник, а не ваш.
1) Для Arduino есть свой сайт.
2) На полупроводниковом рынке безусловно нужно бежать, чтобы просто оставаться на месте, а чтобы куда-то попасть — бежать нужно вдвое быстрее.
 

pvvx

Активный участник сообщества
Очередной ламерский бред от pvvх. Нет никаких "стандартных приемников 433 МГц", это чушь. Типичные приемники 433 МГц могут быть настроены на скорости до 500 кбит/сек.
Спамер =AK= - на али для Arduino продаются определенные модули приемо-передатчиков на 433 МГц. Про них и идет разговор, а не про те, которые вы нашли где-то в проспектах и не держали в руках, да не можете раздать желающим по скромной цене :p
Идите и считайте задачу о R и С.
 
Сверху Снизу