Хочу поделиться некоторыми умозаключениями с целью проверить их правильность.
Навеяно изучением документов:
(AN2867) Oscillator design guide for STM8S, STM8A and STM32 microcontrollers
(AN2604) STM32F101xx and STM32F103xx RTC calibration
1. Частота кварцевого генератора в существенной степени зависит от величины его собственной емкости и от емкости нагрузочных емкостей.
Номинальную частоту генератор обеспечивает только при подключении нагрузочных конденсаторов номинальной для этого резонатора емкости.
При меньшей нагрузочной емкости частота генератора существенно выше, при большей - существенно ниже номинальной. Отклонение может составлять величину около 50 ppm/pF.
2. Чем больше величина нагрузочных емкостей, тем меньше отклонение частоты в связи с отклонением емкости (ppm/pf). Но чем больше нагрузочная емкость, тем больше абсолютное отклонение емкости (погрешность, температура). Поэтому на выбор величины емкости этот пункт не влияет.
3. Чем меньше нагрузочная емкость, тем меньше ток, потребляемый генератором. С точки зрения длительности работы от батареи это скорее аргумент в пользу уменьшения емкостей.
4. При увеличении нагрузочных емкостей рабочая точка генератора приближается к точке резонанса и находится на более крутом участке резонансной кривой. Соответственно разброс параметров генератора оказывает меньшее влияние на его выходную частоту.
5. Для генераторов 32768 зависимость частоты от величины нагрузочных емкостей гораздо больше, чем для генераторов, работающих в мегагерцовом диапазоне.
Собственно эти выводы я сделал после того, как столкнулся с тем, что генератор вообще без конденсаторов показал без калибровки слишком большой уход в месяц (более10 минут).
Частота на калибровочном выводе составила 512,138Гц, что эквивалентно частоте генерации кварца 32777Гц. Отклонение составляет 270ppm что слишком много для механизма калибровки микроконтроллера.
После размышлений решил оставить генератор как есть. Тем более что он без конденсаторов идеально запускается и потребляет даже меньше, чем прописано в документации.
Надеюсь, что в таком режиме часы покажут достаточную временную стабильность.
Но потребовалась калибровка с учётом изменения делителя. Чтобы упростить процесс калибровки, сделал файл Exel, в который достаточно вбить измеренную частоту 512Гц и получаем нужный коэффициент делителя и нужную калибровочную константу.
Результат объединяю в так называемую калибровочную константу, старший байт которой - это K делителя (добавляемый к 32760), а младший байт - регистр калибровки.
Алгоритм расчёта выдает несколько вариантов, из которых можно выбирать любой.
Файл прикладываю, может кому понравится.
RTC___________.zip ( 11.54 килобайт )
Кол-во скачиваний: 60