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

Синхронизация часов.

sasasa

Member
Это уже дает уровень точности +-6 us. Но является ужасно примитивным и надо создать правильные стартовые значения...
Лучше всё таки какой фильтр. Тогда +-2 us гарантированно.
Что похожее я уже написал - среднее значение по 10-и последним данным * коэффициент компенсации, но мне пока ни к чему такая точность, так как ошибка при срабатывания сенсора более 50мкс.

Вот такая картинка на самом деле. Не было бы той точки свыше секунды, я бы сказал что потерплю
 

Вложения

pvvx

Активный участник сообщества
Что похожее я уже написал - среднее значение по 10-и последним данным * коэффициент компенсации, но мне пока ни к чему такая точность, так как ошибка при срабатывания сенсора более 50мкс.

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

Ну у вас на графике выпала 1 секунда отсутствия приема TSF. Таймер за это время уйдет не более чем на 20 us. Если будет стоять фильтр с постоянной поправкой - это всё ерунда.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Пока болтали, да чай пил натикало в лог.
Сделал график расхождения аппаратного счетчика ESP и принятых значений TSF от роутера по аналогии с Nikolz:
Снимок1131.gif
Пришлось сместить один граф на 10 000 000 us - иначе пересекались....
12 с половиной тысяч принятых TSF и пропусков не вижу...
Вот и разница счетчиков по точкам на каждый прием TSF:
Снимок1133.gif
Далее вычислим коэф. ухода счетчика ESP относительно роутера за весь период измерения (я окно открывал – температура за замер менялась!).

Получаем коэф. 0,999981274. Или обратный: 1,000018726 единиц.

Строим график расхождения с учетом данной погрешности хода часов:
Снимок1135.gif
Ага – видим открытие окна и смену температуры(!?) :) Тема сисек не раскрылась?

Выбросы в одну сторону... Кто-то мешает процессу.
 

Вложения

  • 116.8 KB Просмотры: 5
Последнее редактирование:

serg28serg

New member
Что похожее я уже написал - среднее значение по 10-и последним данным * коэффициент компенсации, но мне пока ни к чему такая точность, так как ошибка при срабатывания сенсора более 50мкс.
мне тоже нужно снимать данные с датчиков в "едином синхроне" на нескольких ESP

Просьба отписать результат,
1. заработало на ESP или пришлось переходить на что-то другое ?
2. на стандартной Arduino в итоге делалось ? (тогда по какому мануалу Arduino допиливалась ?)
3. Патчилось/обновлялось в библиотеках что либо ?
 

pvvx

Активный участник сообщества
мне тоже нужно снимать данные с датчиков в "едином синхроне" на нескольких ESP

Просьба отписать результат,
1. заработало на ESP или пришлось переходить на что-то другое ?
Работает как-то. В одной из версий Web-свалки. esp8266web/wifi_tsf.c at master · pvvx/esp8266web · GitHub
2. на стандартной Arduino в итоге делалось ? (тогда по какому мануалу Arduino допиливалась ?)
Нет
3. Патчилось/обновлялось в библиотеках что либо ?
Да.
По поводу встраивания и допиливания Arduino обращайтесь к её писателям. Там не много надо менять и здесь, в теме, всё описано и даны примеры. Бороться со внутренними задержками в разных функциях Arduino не имею возможности (и не использую) - писатели Arduino должны справиться с этим лучше.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Патч либы для получения счетчика TSF от внешней AP для Arduino ESP8266 v2.5.1 c исходником и тупым примером...
 

Вложения

Сверху Снизу