MiklPolikov
Sep 29 2013, 05:15
STM32 RTC
Кварц KX-327NHT 32768Hz (документация во вложении)
В документации на STM32 рекомендуются конденсаторы 4пФ. С ними часы убегают вперёд на 10с/сутки.
В документации на кварц рекомендуется конденсатор 12.7 . С ними часы убегают вперёд на 2.5с /сутки
Увеличил конденсаторы ещё, до 16пф. Часы всё равно убегают на 2.5с/сутки.
Пытаюсь писать разные значения в регистр RTC CALIBR. Под отладкой вижу что записалось, но процессор вообще не реагирует на изменения CALIBR !
При настройке RTC ставлю делители
RTC->PRER=255;
RTC->PRER|=(127<<16);
Вопрос : чего я не понимаю ?
sensor_ua
Sep 29 2013, 08:09
MiklPolikov
Sep 29 2013, 09:07
Цитата(sensor_ua @ Sep 29 2013, 12:09)

Спасибо ! Так и оказалоь !
Только не понимаю, к чему токая сложность ?
CL = [(CL1 × CL2)/(CL1 + CL2) + CSTRAY]
Почему нельзя в явном виде указывать номиналы конденсаторов, которые надо повесить на кварц ?
В формуле CSTRAY это то что в документации на кварц shunt capacitance Co max. =2pF ?
Там немного пояснено, что это такое: CSTRAY--->
http://www.foxonline.com/pdfs/xtaldesignnotes.pdfСуммарная емкость выводов кварца + выводы процессора + паразитная емкость монтажа, может доходить до 5pF.
Я для большей точности использую только 5...10ppm часовые кварцы, у проверенных производителей.
Dr.Alex
Sep 29 2013, 11:30
Цитата(MiklPolikov @ Sep 29 2013, 08:15)

Часы всё равно убегают на 2.5с/сутки.
Не понял юмору. Вы хоть умножили сутки на 30 ппм?
MiklPolikov
Sep 29 2013, 11:54
Цитата(Dr.Alex @ Sep 29 2013, 15:30)

Не понял юмору. Вы хоть умножили сутки на 30 ппм?
В сутках 60 * 60 *24 = 86400 секунд
86400 секунд * 30ppm = 2.6 секунд.
Но что из этого следует ? То что эти 2.5с укладываются в разброс параметров кварца ?
Dr.Alex
Sep 29 2013, 12:10
Цитата(MiklPolikov @ Sep 29 2013, 14:54)

Но что из этого следует ? То что эти 2.5с укладываются в разброс параметров кварца ?
Нет. Просто время в разных частях вашей комнаты течёт не одинаково.. :-о
MiklPolikov
Sep 29 2013, 13:12
С регистром RTC CALIBR никаких тонкостей нет ?
Если в нём записано значение в битах DC[0-4] и установлен/сброшен бит DCS (узнаю и то и другое путём чтения) то можно быть уверенным, что часы идут быстрее-медленнее в соответствующее PPM раз ? Больше ни где ничего не надо включать, не надо писать в этот регистр в какой-нибудь хитрой последовательности ?
Я правильно понимаю смысл вот этого из Reference manual , страница 446
"When positive calibration is enabled (DCS = ‘0’), 2 ck_apre cycles are added every minute
(around 15360 ck_apre cycles) for 2xDC minutes."
......
The ck_spre clock frequency is only modified during the first 2xDC minutes of the 64-minute
cycle. For example, when DC equals 1, only the first 2 minutes are modified.
"Из каждых 64 минут к количеству минут , определённому как (2 * значение DC) добавляется 2 лишних цикла ck_apre"
Иными словами, таймер отсчитывает циклы по 64 минуты, ускоряя свой счётчик первые (2 * значение DC) минуты из каждого цикла на 2 лишних клока ck_apre .
Потом начинается новый 64х минутный цикл 64 , и процесс повторяется. И так до бесконечности, пока в регистре RTC CALIBR записано значение. Так ?