Измерение частоты кварца микроконтроллера
Measuring the frequency of a quartz microcontroller
Когда вы соберете свой первый частотомер выяснится, что настроить его, чтобы можно было доверять его показаниям — большая проблема. «Танцы с бубном» с набором таких же кварцев, что стоит в частотомере, позволят это сделать лишь относительно, а значит усилия напрасны. Стоимость термостатированного кварцевого генератора, пусть даже «второй свежести» на известной интернет — площадке, значительно превышает стоимость остальных комплектующих и, скорее всего, покажется чрезмерной. Но и с ним, без подстройки, не обеспечить точности выше ±2PPM. Более полезным приобретением будет недорогой модуль GPS. Кстати, OCXO вы можете заказать позже, если станет любопытно сравнить его гарантированную стабильность с вашим творением, а может проверить или подтвердить корректность работы предлагаемого здесь решения.
Идея заключается в том, что сигналом 1PPS с выхода модуля (импульс в секунду) измерять частоту кварца микроконтроллера (МК) прямо в готовом изделии. Имея абсолютные значения, можно доводить самодельный частотомер в части подстройки или стабилизации его временнОй базы.
В память МК частотомера, вместо рабочей, загружается простая программа, которая таймером — счетчиком подсчитывает тактовые импульсы за время 1 Сек, вычисляет отклонение от заданного опорного значения и выводит на дисплей. Результаты регулировки частоты генератора тактовых импульсов МК немедленно отображаются на дисплее с разрешением 1Гц (0,1PPM 10MHz) (Фото). После окончательной настройки в МК можно заливать рабочую программу. В дальнейшем, таким же образом, контролируйте основной параметр.
Нужно сказать, что измерять отклонение частоты одинаково просто для любого кварца, но программа строится под конкретный. Значение центральной частоты используется непосредственно, а также служит основой для расчета некоторых констант используемых программой. Двоичный счетчик таймера непрерывно считает такты и разницу значений, через секундный интервал, можно соотнести только с конкретной частотой, а ограниченная разрядность счетчика вынуждает работать с малой частью этой разницы. Поэтому один код для кварцев с одной частотой и другие для кварцев со своими частотами, которые выходят за границы корректной работы программы. Важно. Невозможно отследить переход частоты через программные границы, размер «окна» — 2^16. Вы должны быть уверены, что частота кварца, со всеми возможными вариациями, соответствует программе.