Приложение позволяет:
Кроссплатформенная разработка для Linux 64-bit и 32-bit и Windows 32-bit (Win7/8/10).
Проект доступен по ссылке: https://github.com/SergejBre/SynchroTime
Последний релиз v2.0.0
Замечание к версии ⩾ 2.0.0: Необходимо обновить скетч на ver 2.x.x
скетч для RTC DS3231 ZS-042 найдете здесь synchro_RTC.ino
скетч для RTC DS3231 MINI - synchro_RTC_MINI.ino
альтернативный скетч от @poty - synchro_RTC_alt.ino (позволяет обходиться без подключения к прерыванию SQW)
Инструкция по использованию приложения SynchroTime
1. Во-первых, вам необходимо загрузить скетч в Arduino UNO/Nano из директории проекта arduino/synchro_RTC.ino, если у вас модуль DS3231 ZS-042 или arduino/synchro_RTC_MINI.ino, если у вас DS3231 MINI. Затем подключите модуль RTC DS3231 к Arduino в соответствии со схемой, указанной в Specification. Подключите Arduino к компьютеру через свободный USB порт. Если в системе установлен необходимый драйвер, в диспетчере устройств появится новый виртуальный последовательный порт (под Linux это будет /dev/ttyUSBx, под Windows - COMx). Чтобы узнать имя порта, раскройте список Serial Port в настройках программы и выберете нужный порт. Так же необходимо ввести в настройки программы ваш часовой пояс и при необходимости подтвердить переход на летние время. Подтвердите ваш выбор кнопкой Ok.
2. Используйте команду Information, чтобы получить текущую информацию из RTC DS3231. Если все подключено правильно, вы получите текущее время обоих часов, а также разницу между RTC и системными часами в миллисекундах (с точностью ±2мс), а также значение, записанное в регистре старения, и значение дрейфа частоты RTC рассчитанное в ppm. Если регистр старения и дрейф частоты равны нулю, это означает модуль DS3231 еще не откалиброван (см. Пункт 4).
3. Чтобы установить точное время, используйте команду Adjustment. Часы модуля будут синхронизированы с системным временем компьютора с точностью до ±1мс. После успешного обновления времени, метка времени будет записана в память модуля, что позволит позже определить дрейф частоты осциллятора.
4. Чтобы откалибровать осцилятор модуля DS3231, введите команду Calibration. Для успешного выполнения этой процедуры модуль должен быть активирован (см. Пункт 3), и необходимо, чтобы прошло достаточно времени, чтобы рассчитанное значение ухода частоты было хорошо отличимо от ошибки вычислений/округления (это около 55 часов или 2,3 дня, см. раздел Discussion). Алгоритм программы рассчитает величину отклонения частоты и поправочный коэффициент, которые будут записаны в регистр старения. Время на часах также будет актуализировано. Если калибровка прошла успешно, отобразятся текущее время, дрейф частоты и поправочный коэффициент, как на скриншоте.
Примечание: Этот метод медленный, но его преимущество заключается в том, что он не требует каких-либо ручных усилий, кроме установки и считывания текущего времени. Нужно просто дать модулю спокойно поработать на полке день или два. Преимущество этого метода заключается еще в том, что часы проходят несколько дневных и ночных циклов, где они подвержены суточным колебаниям температуры. И поэтому этот метод помогает лучше спрогнозировать долгосрочную стабильность часов.
5. Чтобы сбросить регистр старения до значения по умолчанию (0x00) и очистить память модуля от данных калибровки, введите команду Reset. Значение по умолчанию будет записано в регистр, а ячейки памяти будут перезаписаны байтами 0xFF.
6. Используйте команду Set Register, чтобы добавить новое значение (например, -12,8) в регистр старения RTC DS3231. Новое значение перезапишет старое значение регистра. Результат ввода ограничен значениями между -12,8 и 12,7. Предупреждение: эту операцию имеет смысл выполнять только в случае сброса всех данных калибровки (см. Пункт 5).
- Синхронизировать время RTC DS3231 с эталонным временем компьютера;
- Автоматически корректировать дрейф частоты осциллятора DS3231. Алгоритм выполняет коррекцию в диапазоне от -12,8 до +12,7 ppm;
- Корректировать дрейф частоты вручную в диапазоне от -12,8 до +12,7 ppm;
- Приложение позволяет оценить точность и корректность работы осциллятора для конкретного образца RTC, а также оценить шансы на успешную коррекцию в случае значительного дрейфа частоты;
- Автоматическое сохранение параметров калибровки в энергонезависимой флэш-памяти типа AT24C256 (для ZS-042). В случае сбоя питания модуля.
Кроссплатформенная разработка для Linux 64-bit и 32-bit и Windows 32-bit (Win7/8/10).
Проект доступен по ссылке: https://github.com/SergejBre/SynchroTime
Последний релиз v2.0.0
Замечание к версии ⩾ 2.0.0: Необходимо обновить скетч на ver 2.x.x
скетч для RTC DS3231 ZS-042 найдете здесь synchro_RTC.ino
скетч для RTC DS3231 MINI - synchro_RTC_MINI.ino
альтернативный скетч от @poty - synchro_RTC_alt.ino (позволяет обходиться без подключения к прерыванию SQW)
Инструкция по использованию приложения SynchroTime
1. Во-первых, вам необходимо загрузить скетч в Arduino UNO/Nano из директории проекта arduino/synchro_RTC.ino, если у вас модуль DS3231 ZS-042 или arduino/synchro_RTC_MINI.ino, если у вас DS3231 MINI. Затем подключите модуль RTC DS3231 к Arduino в соответствии со схемой, указанной в Specification. Подключите Arduino к компьютеру через свободный USB порт. Если в системе установлен необходимый драйвер, в диспетчере устройств появится новый виртуальный последовательный порт (под Linux это будет /dev/ttyUSBx, под Windows - COMx). Чтобы узнать имя порта, раскройте список Serial Port в настройках программы и выберете нужный порт. Так же необходимо ввести в настройки программы ваш часовой пояс и при необходимости подтвердить переход на летние время. Подтвердите ваш выбор кнопкой Ok.
2. Используйте команду Information, чтобы получить текущую информацию из RTC DS3231. Если все подключено правильно, вы получите текущее время обоих часов, а также разницу между RTC и системными часами в миллисекундах (с точностью ±2мс), а также значение, записанное в регистре старения, и значение дрейфа частоты RTC рассчитанное в ppm. Если регистр старения и дрейф частоты равны нулю, это означает модуль DS3231 еще не откалиброван (см. Пункт 4).
3. Чтобы установить точное время, используйте команду Adjustment. Часы модуля будут синхронизированы с системным временем компьютора с точностью до ±1мс. После успешного обновления времени, метка времени будет записана в память модуля, что позволит позже определить дрейф частоты осциллятора.
4. Чтобы откалибровать осцилятор модуля DS3231, введите команду Calibration. Для успешного выполнения этой процедуры модуль должен быть активирован (см. Пункт 3), и необходимо, чтобы прошло достаточно времени, чтобы рассчитанное значение ухода частоты было хорошо отличимо от ошибки вычислений/округления (это около 55 часов или 2,3 дня, см. раздел Discussion). Алгоритм программы рассчитает величину отклонения частоты и поправочный коэффициент, которые будут записаны в регистр старения. Время на часах также будет актуализировано. Если калибровка прошла успешно, отобразятся текущее время, дрейф частоты и поправочный коэффициент, как на скриншоте.
Примечание: Этот метод медленный, но его преимущество заключается в том, что он не требует каких-либо ручных усилий, кроме установки и считывания текущего времени. Нужно просто дать модулю спокойно поработать на полке день или два. Преимущество этого метода заключается еще в том, что часы проходят несколько дневных и ночных циклов, где они подвержены суточным колебаниям температуры. И поэтому этот метод помогает лучше спрогнозировать долгосрочную стабильность часов.
5. Чтобы сбросить регистр старения до значения по умолчанию (0x00) и очистить память модуля от данных калибровки, введите команду Reset. Значение по умолчанию будет записано в регистр, а ячейки памяти будут перезаписаны байтами 0xFF.
6. Используйте команду Set Register, чтобы добавить новое значение (например, -12,8) в регистр старения RTC DS3231. Новое значение перезапишет старое значение регистра. Результат ввода ограничен значениями между -12,8 и 12,7. Предупреждение: эту операцию имеет смысл выполнять только в случае сброса всех данных калибровки (см. Пункт 5).
Вообще есть две возможность калибровки:
Чтобы автоматически откалибровать модуль, вам нужно следовать пункту инструкции под номером 3 "Настройка времени" (для подготовки модуля и синхронизации времени с PC). А через определенную паузу (чем больше пауза - тем точней!) следовать исключительно пункту 4 "Калибровка". При выборе команды Калибровка "поправочный коэффициент" будет записан в регистр IC, а время модуля будет актуализовано с PC! При повторной калибровке нет необходимости повторять всю процедуру снова, т.е. пункт 3 "Настройка времени".
Чтобы вручную записать "поправочный коэффициент", вам нужно выбрать пункту 6 "Записать в регистр"