Настройка частоты кварцевого осциллятора микроконтроллера

№ 7’2011
PDF версия
Устройствам на микроконтроллерах иногда нужно показывать астрономическое или оперативное время. Точность часов, реализованных частью микроконтроллера, определяется точностью и стабильностью его кварцевого тактового генератора. Если частота кварцевого генератора не имеет вычисленного значения, часы «уходят», и это понижает доверие ко всему процессу управления. В некоторых случаях это приводит к ошибкам в самом процессе.

Причины «ухода» часов можно разделить на две группы. Первая — это нестабильность частоты кварцевого генератора под влиянием дестабилизирующих факторов: изменения температуры, питающего напряжения и т. д. Вторая группа — это неточность настройки самого кварцевого генератора. Вместо частоты f0 он генерирует частоту f0+Δf0, где Δf0 — ошибка настройки. Неправильно считать, что если к ножкам микроконтроллера припаян кварц с маркировкой f0, то частота генерации та же.

Проделайте следующий эксперимент. На место кварца к микроконтроллеру последовательно припаиваются различные экземпляры кварцев, одного и разных производителей, с одинаковой маркировкой частоты (рис. 1). Ничто другое не меняется. После рассеяния тепла мерим частоту, и она оказывается разной, даже для кварцев одного производителя.

Схема кварцевого осциллятора

Рис. 1. Типичная схема кварцевого осциллятора микроконтроллера

Причина изменения частоты для кварцев одного типа и производителя — в разбросе параметров кварцев от экземпляра к экземпляру. Для кварцев разных производителей — это разные параметры кварцев. Разница с маркировкой иногда достигает несколько сотен герц!

Каким образом нужно мерить частоту кварцевого генератора? Разумеется, непосредственное соединение входов осциллоскопа или частотомера с одной из точек CLCKIN или CLCKOUT дало бы неверные результаты из-за входной емкости и входного сопротивления присоединяемого устройства. После его отсоединения частота изменится.

В своей практике автор использовал два подхода. Если микроконтроллер многоразового программирования (типа FLASH), вначале он программируется простой программой для вывода удобного порта (или одного бита порта) бесконечной последовательности чередующихся нулей и единиц. Частота повторения этой импульсной последовательности определяется по формуле fкв/n, где n — это внутренний коэффициент деления частоты кварцевого генератора.

Приведем для примера простую программу для вывода частоты f0/n на порт B популярного микроконтроллера PIC16F84A:

title ‘quartz.asm’  
list p=16f84a  
#include < p16f84a.inc>  
__CONFIG B’11111111110001’  
org H’0000’  
clrf INTCON  
BANKSEL TRISB  
clrf TRISB ;порт B как выход
BANKSEL PORTB  
clrf PORTB ;1 такт
comf PORTB,f ;1 такт
goto $-2 ;2 такта
END    

В этом микроконтроллере частота такта получается путем деления частоты кварца на 4. Для формирования одного периода импульсной последовательности на каждом бите порта В нужны 4 такта, следовательно, измеряемая частота на порте В есть fвых = f0/16. К выводам порта В можно присоединять осциллограф и цифровой частотомер, они не будут оказывать влияния на частоту кварцевого генератора. После настройки f0 подстроечным конденсатором С~ микроконтроллер повторно программируется с помощью основной программы.

Если микроконтроллер одноразового программирования (типа C), к выводу CLCKOUT присоединяется цепочка каскадно-связанных инверторов или повторителей, которая остается и после настройки f0. К выходу последнего инвертора (повторителя) присоединяется вход частотомера.

Вычислим «уход» часов из-за неточной настройки кварцевого генератора. Это значение обычно определяется в секундах за сутки. Кварцевые часы состоят из источника импульсной последовательности, периодом 1 с, и счетчика секунд, минут и часов (рис. 2). Если часы должны показывать и десятые доли секунд, период импульсной последовательности должен быть равен 0,1 с.

Схема кварцевых часов

Рис. 2. Типичная структурная схема кварцевых часов

Все устройства на рис. 2 реализуются внутренними элементами микроконтроллера. Если индицируется астрономическое время, есть цепи для начальной установки и сверки часов. Видно, что:

T0N = N/f0 = 1 c. (1)

Так что у конструктора есть две степени свободы — подбирать f0 и N.

В сутках 86 400 секунд (24×60×60), так что после считывания 86 400 импульсов счетчики «объявят», что прошли сутки. Если частота кварцевого генератора f0, это будет верно, а если частота f0+Δf0, то прошедшее время будет не сутки, а

«Уход» часов за сутки τ определим, вычитая из (2) одни сутки (86 400N/f0). Получим:

Ошибка настройки Δf0 может быть как положительной, так и отрицательной, знак τ будет противоположным. Учитывая в (3), что Δf0 << f0, ради чего пренебрегаем в сумме Δf0, и что N/f0 = 1 с, получим в итоге:

«Уход» частоты за неделю получается путем замены коэффициента 86 400 на 604 800 (7×24×60×60). В таблице вычислен «уход» частоты за сутки и неделю при некоторых ошибках настройки, для частоты кварца f0 = 1 МГц.

Таблица. Вычисленные значения «ухода» частоты


Значение Δf0, Гц

0,1

1

10

100
«Уход» часов в сутки, с 8,6 мc 86 мс 0,86 8,6
«Уход» часов в неделю, с 60,2 мc 0,602 6,02 60,2

Производители микроконтроллеров дают в таблицах значения С1 и С2 для различных значений частоты кварцев. Однако эти таблицы составлены с большим шагом по f0, и неизвестно, какие параметры кварцев имел в виду составитель, поэтому рекомендованные значения надо считать приблизительными и настраивать кварцевый генератор в каждом отдельном случае.

Проделанные вычисления относятся только к ошибке настройки кварцевого генератора и не учитывают дрейфа частоты. Дрейф — случайный процесс. Под действием дестабилизирующих факторов частота повышается и понижается медленно, случайным образом. В известном смысле «уход» часов самокомпенсируется, но не полностью. Если необходимо снизить дрейф частоты, кварцевый генератор нужно заменить внешним термоскомпенсированным (TCXO) или термостатированным (OCXO) кварцевым генератором. Эта более стабильная частота подается на вывод микроконтроллера CLCKIN, а все дополнительные элементы на рис. 1 устраняются.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *