реклама на сайте
подробности

 
 
> Калибровка RTC в STM32F1
amiller
сообщение May 6 2016, 06:04
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Хочу поделиться некоторыми умозаключениями с целью проверить их правильность.
Навеяно изучением документов:
(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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение May 6 2016, 07:22
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (amiller @ May 6 2016, 09:04) *
генератор вообще без конденсаторов показал без калибровки слишком большой уход в месяц (более10 минут).
...
После размышлений решил оставить генератор как есть. Тем более что он без конденсаторов идеально запускается и потребляет даже меньше, чем прописано в документации.
Напоминает известный FAQ "как сварить яйцо в микроволновке". Удачи вам в нелегком деле хождения по граблям.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
amiller
сообщение May 6 2016, 08:36
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Цитата(Сергей Борщ @ May 6 2016, 10:22) *
Напоминает известный FAQ "как сварить яйцо в микроволновке". Удачи вам в нелегком деле хождения по граблям.

Хотелось бы поподробнее узнать, что именно навело Вас на такие сравнения. Буду рад замечаниям по существу, собственно ради этого и разместил это сообщение.
Могу сразу сказать, чем я руководствовался:
1. Несмотря на то, что я не поставил конденсаторы, емкость самого резонатора и емкость монтажа никто не отменял. Рекомендуемая емкость нагрузочных конденсаторов составляет единицы пФ, что не намного превышает емкость монтажа. Для сравнения: проходная емкость резистора 0805 составляет 1-2пФ. А так как платы устройств в обязательном порядке покрываются защитным лаком (до калибровки), то за сохранность и воспроизводимость этого параметра (емкость монтажа) можно не беспокоится.
2. Я использовал много автономных RTC с последовательным интерфейсом. Ни на одном из них не было требований по установке нагрузочных конденсаторов.
Более того, многие из них показывают удовлетворительную точность без калибровки (т.е. откалиброваны с завода под конкретный тип резонаторов).
Я тоже предполагаю, что при серийном выпуске отпадёт необходимость в калибровке каждого изделия. Так как при использовании одного и того же типа резонаторов и стандартной калибровки я рассчитываю, что все изделия будут попадать в диапазон 10ppm, что для меня достаточно.
3. Когда нет конденсаторов, гораздо проще соблюсти требования по взаимному расположению резонатора и микроконтроллера, а также обеспечить необходимое экранирование слаботочных сигналов генератора.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 6 2016, 09:33
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (amiller @ May 6 2016, 11:36) *
Хотелось бы поподробнее узнать, что именно навело Вас на такие сравнения. Буду рад замечаниям по существу, собственно ради этого и разместил это сообщение.
Вы же сами пишете - резонатор должен быть нагружен на конденсаторы, емкость которых определяется маркой резонатора. Документация на контроллер явно пишет, что конденсаторы эти должны быть внешними (FAQ пишет - "нельзя варить яйца в микроволновке"), вы же их не ставите ("я обмотал яйцо скотчем", "положил в кастрюлю" и т.д.). Результат - хождение по граблям ("слишком большой уход в месяц" = "яйцо взорвалось").
1) Емкости монтажа недостаточно.
2) Нагрузочные конденсаторы встроены в микросхему RTC, для некоторых марок резонаторов эта емкость как раз соответствует необходимой, для других пришлось бы добавлять внешние
3) Забавный подход. Блокировочные конденсаторы по питанию тоже все в одном месте платы собираете? Их же так удобно разводить, когда они большой кучкой, гораздо проще, чем ставить каждый конденсатор у своих выводов питания микросхем.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
amiller
сообщение May 6 2016, 10:01
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Цитата(Сергей Борщ @ May 6 2016, 12:33) *
Вы же сами пишете - резонатор должен быть нагружен на конденсаторы, емкость которых определяется маркой резонатора.

По смыслу моего сообщения эту фразу нужно продолжить: чтобы генератор выдавал номинальную частоту. Если емкость меньше или больше номинальной, то частота будет больше или меньше.
И в этом я пока не вижу попытки сварить яйца или что-то подобное. Т.е. в использовании резонаторов без нагрузочных конденсаторов криминала не нахожу.

Цитата(Сергей Борщ @ May 6 2016, 12:33) *
2) Нагрузочные конденсаторы встроены в микросхему RTC, для некоторых марок резонаторов эта емкость как раз соответствует необходимой, для других пришлось бы добавлять внешние

Дайте ссылку на документ пожалуйста. У меня есть сомнения, что конденсаторы встроены в микросхему. По крайней мере я не нашёл упоминания о таком. По моим представлениям, для известных технологий производства чипов, самым сложным компонентом является конденсатор. Даже индуктивность сделать проще. Технология заточена под p/n переходы и резисторы. Наличие конденсаторов внутри микросхемы переводит её в другой ценовой диапазон.
По этому пункту извиняюсь. Нашёл у Ramtron:
Прикрепленное изображение


Цитата(Сергей Борщ @ May 6 2016, 12:33) *
3) Забавный подход. Блокировочные конденсаторы по питанию тоже все в одном месте платы собираете? Их же так удобно разводить, когда они большой кучкой, гораздо проще, чем ставить каждый конденсатор у своих выводов питания микросхем.

Не вижу причин для таких обобщений. Блокировочные конденсаторы и фильтры по питанию ставлю в соответствии с требованиями производителя и с учётом своего опыта. В своё время проштудировал не один документ по этой теме. Наличие и необходимость блокировочных конденсаторов вписывается в мою логическую модель мироустройства. А нагрузочные конденсаторы для часового кварцевого резонатора - не совсем.

Сообщение отредактировал amiller - May 6 2016, 10:14
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016