Измерение частоты кварца микроконтроллера

Measuring the frequency of a quartz microcontroller

Когда вы соберете свой первый частотомер выяснится, что настроить его, чтобы можно было доверять его показаниям — большая проблема. «Танцы с бубном» с набором таких же кварцев, что стоит в частотомере, позволят это сделать лишь относительно, а значит усилия напрасны. Стоимость термостатированного кварцевого генератора, пусть даже «второй свежести» на известной интернет — площадке, значительно превышает стоимость остальных комплектующих и, скорее всего, покажется чрезмерной. Но и с ним, без подстройки, не обеспечить точности выше ±2PPM. Более полезным приобретением будет недорогой модуль GPS. Кстати, OCXO вы можете заказать позже, если станет любопытно сравнить его гарантированную стабильность с вашим творением, а может проверить или подтвердить корректность работы предлагаемого здесь решения.

Идея заключается в том, что сигналом 1PPS с выхода модуля (импульс в секунду) измерять частоту кварца микроконтроллера (МК) прямо в готовом изделии. Имея абсолютные значения, можно доводить самодельный частотомер в части подстройки или стабилизации его временнОй базы.

так можно настроить тактовую частоту

В память МК частотомера, вместо рабочей, загружается простая программа, которая таймером — счетчиком подсчитывает тактовые импульсы за время 1 Сек, вычисляет отклонение от заданного опорного значения и выводит на дисплей. Результаты регулировки частоты генератора тактовых импульсов МК немедленно отображаются на дисплее с разрешением 1Гц (0,1PPM 10MHz) (Фото). После окончательной настройки в МК можно заливать рабочую программу. В дальнейшем, таким же образом, контролируйте основной параметр.

Нужно сказать, что измерять отклонение частоты одинаково просто для любого кварца, но программа строится под конкретный. Значение центральной частоты используется непосредственно, а также служит основой для расчета некоторых констант используемых программой. Двоичный счетчик таймера непрерывно считает такты и разницу значений, через секундный интервал, можно соотнести только с конкретной частотой, а ограниченная разрядность счетчика вынуждает работать с малой частью этой разницы. Поэтому один код для кварцев с одной частотой и другие для кварцев со своими частотами, которые выходят за границы корректной работы программы. Важно. Невозможно отследить переход частоты через программные границы, размер «окна» — 2^16. Вы должны быть уверены, что частота кварца, со всеми возможными вариациями, соответствует программе.

Тестовая программа имеет два варианта, для системной частоты 10 и 20 Мгц. Первый позволяет наблюдать диапазон 9961473 — 10027007 Гц и отклонения 10MHz (-3852 / +2700 PPM), второй соответственно 19988481-20054015 Гц и отклонения 20MHz (-575 / +2700 PPM). Несимметричность диапазонов связана с простотой алгоритма измерения и вычисления, но перекрывает с большим запасом возможные паспортные допуски кварцевых резонаторов и генераторов на указанные частоты. Увеличивая разрядность вычислений, можно измерять в расширенных пределах, но частотомер с ПО на базе теста теряет автономность без сигнала GPS. Увеличивая (кратно 1 Сек) время измерения, реально повысить точность. Однако, представить необходимость в таком точном приборе для домашней лаборатории довольно трудно.

измеряем тактовые частоты МК

Что в результате получится? Микроконтроллер ATMEL с типовой схемой тактирования, стандартный для отрасли LCD 16×2, как база частотомера, и (временно) любой модуль GPS с выходом 1PPS позволят настроить системную частоту с точностью ±0,1PPM, не имея никаких эталонов. Это весьма неплохо для простого и недорогого прибора, даже с учетом дополнительных затрат. Подстраивают кварцевый генератор или конденсаторным триммером или варикапом. Есть и экзотический вариант, например управлять температурой кварца [Л1]. Дело в том, что массовые кварцевые резонаторы (срез AT), очень недорогие, имеют большую крутизну характеристики температура/частота за пределами области комнатных +25°C, при которых изменение частоты практически нулевое. Работая выше на 30-40°C получим перестройку частоты кварца до 40PPM при незначительном изменении температуры. Встречаются резонаторы как с положительным, так и с отрицательным температурным коэффициентом. Выбирается кварц с нужным отклонением, грубо определяется его ТКЧ и, соответственно, направление изменения температуры. Следуя этой методике с обычным HC-49S, практически достигнута стабильность ±0,2PPM на частоте 20MHz в течение месяца [Л2] и необходимой регулировкой для настройки частоты. Где-то это можно использовать.

базовый блок

Для примера приведена схема основы частотомера на МК ATTINY2313. Применяя любой МК позаботьтесь оставить свободным вход внешнего прерывания INT0, к которому должен подключаться выход 1PPS модуля GPS при настройке. Двухстрочный знакосинтезирующий LCD дисплей работает в стандартном 4-х битовом режиме, обязательна цепь регулировки контрастности.

Программа измерения системной частоты МК написана на ассемблере и компилировалась под две частоты. Вся обработка и расчет происходит внутри обработчика внешнего прерывания, занимает мизерный объем памяти, и может быть встроена непосредственно в ПО частотомера. Остальной код — управление индикатором, который используется в основном применении. Исходный текст и коды для загрузки доступны.

Несколько пояснений. Температурный коэффициент частоты (ТКЧ) кварца определяется в описанном выше устройстве прикосновением к корпусу резонатора нагретым (или немного охлажденным) брусочком. По изменению частоты определяется знак. Из одной партии 20 кварцев HC-49S 10MHz, этим приемом выделено 7 изделий с нулевым ТКЧ при комнатной температуре (частота повышается при нагреве и охлаждении).

Л1. Термостатирование элементов микроконтроллерных устройств.
Л2. Простой непростой частотомер. Радиолоцман, 2018,04,48

Файлы: Скачать

241220_0

Comments are closed.