Перейти к содержанию
    

всем доброго времени суток. Есть непонятки как реализовать калибровку RTC, конкретно у меня за 1 час время уходит на 1-2 минуты.

в МК есть регистр RTC calibration register (RTC_CALR) где есть возможность добавить тиков или пропустить. В кубике на это счет даже есть функция HAL_RTCEx_SetCalibrationOutPut(...). Вопрос вот в чем - как понять сколько тиков надо добавить или пропустить? Нигде не могу найти соотв. exampe как всем этим механизмом пользоваться. 

Хочется иметь возможность подстраивать RTC без внешнего участия и подключений частотомеров.

MK семейства F4 и L4

Изменено пользователем Halfback

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Halfback сказал:

всем доброго времени суток. Есть непонятки как реализовать калибровку RTC, конкретно у меня за 1 час время уходит на 1-2 минуты.

...

Хочется иметь возможность подстраивать RTC без внешнего участия и подключений частотомеров.

Подстраивать от чего? Источник эталонного сигнала?

И почему у вас такой большой уход RTC? От чего его тактируете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 08.09.2023 в 15:57, jcxz сказал:

И почему у вас такой большой уход RTC? От чего его тактируете?

тактирую от внешнего кварцевого резонатора на 32768 https://www.chipdip.ru/product0/8001797043

у него 20ppm, мой уход больше этой цифры.

Частотомера хорошего у меня нет но осцилл RIGOL показал с предварительно настроенного выхода MCO импульсы частотой 32765...32771 Гц (в течение часа).

В 08.09.2023 в 15:57, jcxz сказал:

Подстраивать от чего? Источник эталонного сигнала?

STM пишет в том ключе, что мол подавая более высокую частоту аля HSE и считая кол-во импульсов LSE за определенную длительность в секундах, можно понять смещение LSE от нужной 32768. Ну о потом это смещение в регистре RTC_CALR учесть. Но до конца в этот процесс не смог вникнуть.

Изменено пользователем Halfback

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По частотометру особо не выстроите, поскольку нужно подстраивать с точностью до нескольких долей на миллион. Например, среднестатистический уход в 15 сек за месяц вызывается отклонением частоты на 6 ppm (0,0006%). Поэтому подстройка выполняется по замеру ухода часов на некоторый интервал времени, например 1 день.

А если у вас получилась столь высокая погрешность (около 2%), то проверьте правильность настройки коэфф.делителей и правильность выбора источника частоты (точно ли выбран LSE).

Частота генерации кварца может изменяться, когда вы в него тыкаете щупы осциллографа. 
Так же, надеюсь, вы установили нагрузочные конденсаторы для кварца? И правильно ли выполнили разводку платы в части подключения кварца и этих конденс., правильно ли подвели "землю" к ним?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 минут назад, Halfback сказал:

тактирую от внешнего кварцевого резонатора на 32768 https://www.chipdip.ru/product0/8001797043

у него 20ppm, мой уход больше этой цифры.

У вас вообще какой-то нереально конский уход. Надо искать что не так с кварцем или с его подключением. А не ваять костыли (калибровку).

Уход 2/60 = 3.33% это слишком много даже для RC-генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Советую очень тщательно подойти к выбору конденсаторов кварца и для начала установить правильную емкость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Halfback said:

STM пишет в том ключе, что мол подавая более высокую частоту аля HSE и считая кол-во импульсов LSE за определенную длительность в секундах, можно понять смещение LSE от нужной 32768.

Для этого у Вас на HSE должен стоять кварц с точностью в пару ppm 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня аналогичная проблема на STM32F427ZI. RTC тактируется от внешнего осциллятора Q-0,032768-MMTF32-6-10 32,768 кГц, frequency tolerance at 25 °C ± 5 °C ±: 10 ppm / ±20 ppm (указано тут).

Отставание составляет от 1,7 сек до 3,0 сек в сутки. Тестировал на 5 экземплярах одного и того же устройства. Устройство несколько лет находится в производстве и схемотехнические изменения вносить в него запрещено.

Необходимо откалибровать RTC устройства.

 

Как я понимаю ситуацию: на каждом устройстве, в процессе его работы, необходимо периодически калибровать RTC. Т.е.:

1 измерить частоту RTC_CALIB

1.1 RTC_CALIB, которая в идеале должна быть 512 Гц, находится на висящем в воздухе PC13

1.2 Не понятно - как измерить частоту? Физически соединить PC13 с какой либо ножкой микроконтроллера нельзя, т.к. схемотехнические изменения вносить запрещено

2 выполнить калибровку. С этим всё понятно - в сети масса примеров

 

Временное решение было таким: основываясь на 10 экземплярах устройства, был вычислен калибровочный коэффициент. Его гвоздями прибили в прошивке. Но это плохо, т.к. завтра параметры каких то элементов схемы немного изменятся, и часы начнут опять брехать. Необходимо сделать адекватную калибровку.

Подскажите в какую сторону копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 08.09.2023 в 16:40, Halfback сказал:

подавая более высокую частоту аля HSE и считая кол-во импульсов LSE за определенную длительность в секундах, можно понять смещение LSE от нужной 32768.

Думаю это единственный выход. Так ли это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, RDutch сказал:

1.2 Не понятно - как измерить частоту? Физически соединить PC13 с какой либо ножкой микроконтроллера нельзя, т.к. схемотехнические изменения вносить запрещено

Поставить щуп на ножку PC13 и измерить.

А если у вас реально производство, то делается оснастка для контактирования, никаких проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, HardEgor сказал:

Поставить щуп на ножку PC13 и измерить.

Устройства, в процессе своей работы, находятся в разных концах страны. Щуп ставить или использовать оснастку в таких условиях некому. Поэтому устройства должны сами себя калибровать в процессе работы

Изменено пользователем RDutch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, RDutch сказал:

.2 Не понятно - как измерить частоту? Физически соединить PC13 с какой либо ножкой микроконтроллера нельзя, т.к. схемотехнические изменения вносить запрещено

Включите EXTI на этой ножке. На более других STM32 этот сигнал часов уже заведен на один из входов какого-либо таймера. Тут такого, увы, нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня 407. Выпускается долго. Конденсаторы и кварц вполне бытовые. Уход незначителен. При запуске партии видно, что зависит от партии кварцев.. То есть никаких подводных камней не встречал.
Если кварц SMD, то надо по доку на него посмотреть какой кондёр ставить. Бывает 15, 22, 7 - поэтому смотреть. Кварцы ставим  Jauch. Китайские не применяем.

Для того, чтобы устр-во калибровало само себя, у вас должен быть источник опорного сигнала. То есть либо образцовая частота, либо точное время. По-моему это понятно даже необразованному... ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 минут назад, SapegoAL сказал:

надо по доку на него посмотреть какой кондёр ставить

Было принято решение решать проблему программным путём и не зависеть от партии тех или иных элементов.

29 минут назад, SapegoAL сказал:

у вас должен быть источник опорного сигнала

К MCU подключен кварц на 25 МГц

33 минуты назад, Сергей Борщ сказал:

Включите EXTI на этой ножке. На более других STM32 этот сигнал часов уже заведен на один из входов какого-либо таймера. Тут такого, увы, нет.

На PC13 включил GPIO_EXTI13 - теперь если на этот пин подать сигнал, то его можно обработать.

Но у меня задач иная: На PC13 включить RTC_AF1 - теперь на этом пине будет генерироваться RTC_CALIB. Мне необходимо измерить его частоту

20240111 1417 Альтернативные функции PC13.png

Изменено пользователем RDutch

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...