Задать вопрос
iva2000
@iva2000

Какова возможность синхронизации часов реального времени в stm32 с системным?

Я заказчик задачи, в составе которой есть подзадача синхронизации времени.
Плата STM32F401CCU6 с процессором F401 с RTC.
Нужно синхронизовать по USB часы в процессоре с системным временем компьютера с Win10.

Мне важно знать реально достижимую степень рассинхронизации. Порядка 1 мс, 10мс, 100 мс? Как ее измерить?
Понятно, что Win10 и USB позволят синхронизироваться с непрогнозируемыми задержкой.

Предлагаю следующий метод устранения случайной составляющей задержки: Синхронизоваться, затем сто раз подряд запросить компьютер системное время, каждый раз записывая насколько запрошенное время отличается от времени в RTC, и самое большое отрицательное отклонение считать необходимой поправкой к времени в RTC. Реализуем ли такой способ?

Есть ли готовое решение синхронизации времени в ПК и STM32?
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

A windows 10 computer synchronises with a time server to update the clock at specific intervals. In case of computers that are part of a domain, the default interval is 1 hour. But in case of stand-alone systems the update interval is 7 days.


Едем дальше, вам достаточно забирать время каждые 10 минут потому как RTC максимально будут отставать на секунду в сутки.
Но даже этого можно избежать.
1. Запустите на контроллере передачу временных меток
2. на компе фиксируйте эти метки + метки компьютера
3. если есть расхождение между rtc Контроллера и компьютера, то сделайте таблицу правок за период.

Итого псевдокод для контроллера:
1. Инициализация соединения с компьютером
2. Первичная синхронизация
3. Инициализация обработчика прерывания который будет подводить часы

Хотя можно и проще: посылайте в контроллер временные метки.

На скорости 115200 один пакет прилетит за ~0.14 ms

UPD посмотрел спецификацию чипа.
RTC: subsecond accuracy,
То есть RTC на плате дает только доли секунды так что где то точность у вас будет в районе 100 мс и выше

А что за бизнес задача?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы