Требуются автономные первичные часы, с уходом менее минуты в год. Коррекцию времени GPS не предлагать!!! Коррекция по радио (DCF77 77,5 КГц, РБУ 66 кГц, "Маяк", 9996 или 14996 кГц и прочие) то же ))))
Имеются ИМС RTC
DS3231 (термостатированные RTC) Accuracy ±3.5ppm from -40°C to +85°C
3.5 PPM = 0.000001*3.5=3.5 микросек в секунду, *3600*24*30*24 = это 108 секунд в год. Многовато.
Для часовых кварцев имеется график зависимости ухода частоты от температуры.
Проверил частотомером фактическое отклонение частоты 32768
DS1307 в диапазоне 15-45*С, оно примерно совпадает с этим графиком.
Идея такова: использовать DS1307 (20PPM) + термодатчик
DS18B20. и корректировать время DS1307, в зависимости от температуры.
1) Дату предыдущей коррекции сохранять в RAM DS1307.
Измерять температуру в течение суток результаты сохранять в RAM DS1307. Скажем раз в пол часа/час.
2) в 12:30 (средина светового дня) проверяем дату прошлой коррекции.
Если дата отличается на 1 сутки, по сохранённым температурам в RAM DS1307, вычисляем среднесуточную температуру и производим коррекцию на величину (целые секунды) из таблицы. Сохраняем новую дату коррекции.
3) А десятые и сотые доли секунды (величины коррекции) сохраняем ( суммируем) в RAM DS1307 для коррекции раз в 10 дней и раз в 100 дней.
4) При отключении внешнего питания (DS1307 работают от 3В батареи, STM8 от внешнего питания) дата предыдущей коррекции будет отличаться более чем на сутки - при этом обнулять все данные в RAM DS1307 и вручную устанавливать точное время.
Или вешать дополнительную батарею для питания STM8 на несколько суток.
LiIon батарея 3,3-4,2В, для общения с DS1307 придётся включать преобразователь +4,5...5В, т.к. для DS1307 рабочее U = 1.25*Ubat .
Можно конечно термостатировать кварц, но возможны отключения внешнего питания.
Можно использовать комбинированную схему, термостатировать кварц а в отсутствие внешнего питания корректировать время по температуре.
Только конструктивную критику или идеи )))))