Простой непростой частотомер

Microchip ATtiny24A

Журнал РАДИОЛОЦМАН, апрель 2018

Бабанин В., Красноярский край

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

Для бюджетного частотомера, чтобы он считался измерительным прибором, требуется повышенная стабильность временной базы, обеспечиваемая специальным кварцевым генератором, стоимость которого в десятки раз выше изделий «ширпотреба». В нем приняты меры по компенсации температурного ухода частоты резонатора. Обычный кварц, тактирующий микроконтроллер, не может обеспечить сколько-нибудь приемлемой точности измерения частоты выше 30 МГц. Девиация показаний при изменении температуры окружающей среды на 10-20 °C достигает единиц килогерц, что ограничивает шкалу простых частотомеров шестью разрядами. Для повышения точности необходимо термостатировать кварцевый резонатор, что влечет за собой увеличение стоимости прибора. Разорвать «порочный» круг можно простым способом локальной стабилизации температуры [1].

Алгоритм, описанный в статье [1], оказался не очень подходящим для работы в составе частотомера, и его пришлось менять. Дело в том, что при работе с частотами, близкими к верхнему пределу, у микроконтроллера нет времени на аналого-цифровое преобразование датчика (UBE), кроме как в паузе между измерениями. Время включенного состояния транзистора не может, таким образом, быть менее 1 секунды и «проскок» температуры за установленный порог становится неприемлемо большим. Эта проблема решается применением алгоритма Брезенхема [2] для регулировки мощности в термостате. Теперь при включении установление стабильных показаний занимает около 10 минут, а входная частота 30 МГц индицируется с изменением ±1 ед. счета (±1 Гц). О методике испытаний в отсутствии эталона частоты будет рассказано позже.

Несколько слов о конструктивном исполнении. На макетной плате горизонтально, стороной кристалла вверх (расколите один TO-92S, чтобы увидеть устройство), монтировался транзистор 2SC4115S. Сверху он прижимался кварцевым резонатором HC-49U так, чтобы транзистор располагался посередине корпуса. Принимались меры для улучшения теплового контакта и снижения потерь, где это необходимо. Конденсаторы емкости нагрузки припаяны к выводам на обратной стороне. Сверху кварц и транзистор закрыты кусочком поролона 20 × 10 × 10 мм, в котором под корпус резонатора обжигалкой проделано углубление. Тонкий поролон приклеен с обратной стороны платы. Резистор, задающий ток базы, расположен в термостабильной зоне. В установившемся режиме стабилизации изменение напряжения база-эмиттер (UBE) включенного транзистора (режим нагрева) составляет 1 ед. счета (~1 мВ), что гарантирует поддержание температуры резонатора с точностью не хуже ±0.25 °C.

Небольшое пояснение. Как видно, программа частотомера очень небольшая по размеру. Служебные функции можно ввести, не трогая основных. При настройке посмотреть реальное значение UBE (и вычислить температуру термостата) не составляет труда. В исходном тексте для этого оставлены закомментированные строки (функция HND).

Самый простой способ. Включить прибор «на холодную», запомнить первое значение, дождаться стабильных показаний (они уменьшаются) и вычесть второе из первого. Разделить разность на 2.2 (мВ/°C). Получится разность температур с ошибкой около +7%. Требуется помнить, что из-за наличия резистора R2, регулировка происходит в узком диапазоне, а резистор R3 должен быть подобран по методике [1].

Возможность программного управления с высокой точностью температурой кварцевого резонатора и ее надежная стабилизация позволяют использовать тонкую «температурную подстройку». Обычный дешевый безымянный кварц при изменении температуры от 50 °C до 65 °C показал перестройку частоты около –40 ppm. Как пользоваться новыми возможностями, еще предстоит осмыслить, но подстроечным конденсаторам и варикапам в цепи кварца есть альтернатива.

Все недорогие частотомеры построены на микроконтроллерах (МК), большинство из которых имеет ограничения на частоту входного сигнала, и она всегда должна быть меньше тактовой. О редких исключениях из этого правила упоминать не будем. В общем случае измеряемую частоту приходится делить внешним счетчиком (ВС), если она соизмерима с тактовой частотой или больше ее. В данной реализации предварительный делитель используется совместно с методом досчета. Суть его в том, что по завершении «окна счета» состояние ВС можно определить, подавая на его вход счетные импульсы. Их количество подсчитывается МК до момента обнуления предделителя, а программный счетчик переполнений корректируется. Никакими особенными преимуществами перед традиционными данный метод не обладает, разве что требуется меньше портов МК для сопряжения с ВС. Однако использовавшие его частотомеры отличались повышенной сложностью входных цепей [3], что способствовало утрате к нему интереса разработчиков. Но, похоже, напрасно. В данном случае появляется возможность применять предварительные счетчики любой разрядности и без выходов промежуточных разрядов.

Принципиальная схема

Принципиальная схема приведена на Рисунке 1. Основные узлы частотомера: коммутатор (U1a), предварительный делитель на 4-разрядном двоичном счетчике (U2a), микроконтроллер ATtiny24A, узел термостата и ЖКИ MT-10T11 (на схеме не показан). Никаких особенностей схема не имеет, кроме того, что подтягивающие резисторы шины I2C (1 кОм) размещены на плате индикатора, и здесь не изображены. Сделано это для того, чтобы сохранить возможность применения любого индикатора с последовательным интерфейсом на 8 и более разрядов [4,5,6]. Неиспользуемые элементы аналогового коммутатора и счетчика предоставляют простор для дальнейшей модернизации. Элементарно построение двухканального частотомера без дополнительных затрат.

Простой непростой частотомер
Рисунок 1.

Вообще то, что приведенная схема оказалась работоспособной и стабильной при работе с частотами выше 60 МГц, вызывает удивление. Просто внутренние цепи кристалла аналогового коммутатора 4053 имеют емкость около 10 пф, что на частоте 100 МГц соответствует сопротивлению 160 Ом! Как минимум, два порта практически соединены с источником входного ВЧ сигнала и МК, похоже, сохраняет точность аналого-цифрового преобразования и не сбивается при обработке прерываний, следующих через 25 мкс. Это невозможно, но это работает даже на макете с проводным монтажом.

Особенности программного обеспечения

Таймер TC1 настраивается на работу в режимах CTC и генерирует «окно счета» длительностью 1 с на выходе OC1A (SEC1). Такой выбор позволяет организовать (псевдо) аппаратное формирование нарастающего и спадающего фронтов, положение которых во времени жестко привязано к системной частоте. В качестве опорного может применяться любой кварц. Настоятельно рекомендуем использовать как можно более высокочастотные.

Если используется кварц, отличающийся от указанного на схеме, нужно изменить две константы в программе. Частоту в Гц требуется разделить на 512, записать в шестнадцатеричной системе и присвоить значение константам Dbase, Dadd. При настройке «временных ворот» (1 с) следует подбирать значение Dadd. Здесь имеется ввиду то обстоятельство, что точная частота генерации конкретного кварца нам неизвестна, тем более, что она еще сдвинута от среднего значения работой при повышенной температуре в термостате.

Программа температурной стабилизации использует только 8 младших разрядов кода аналого-цифрового преобразования UBE транзистора-нагревателя. Поскольку зависимость UBE от тока коллектора и температуры кристалла не нормируется производителями, транзистор для датчика-нагревателя следует выбирать по минимальному UBE на рабочем токе (120-130 мА) и максимальному усилению тока. Для справки: 2SC4115S (T = 25 °C, IC = 1 мА, UBE = 607 мВ), применяемый в термостате, имеет UBE = 531 мВ при токе коллектора 120 мА и температуре кристалла +60 °C. Конечно, можно использовать двухбайтное значение и не экономить программную память МК, но это дело второе. Исходный код написан на ассемблере и очень компактен при компиляции.

Практические результаты

Макет частотомера (Рисунок 2) строился на микросхемах CD74HC393E, CD74HC4053E и без замечаний работает на частоте 70 МГц. Также испытывался счетчик LV393, но с ним выше 125 МГц проверка не проводилась. Программный предел для входной частоты – 150-160 МГц. Замена серии HC на LV в коммутаторе ощутимого улучшения характеристик не выявила, разве что на частоте 125 МГц субъективно на несколько единиц счета уменьшилась разница между минимальным и максимальным показаниями.

Простой непростой частотомер
Рисунок 2.

Поскольку источник эталонной частоты отсутствовал, настройка и проверка характеристик частотомера проводилась с набором серийных кварцевых генераторов, на технические параметры которых однозначно указывала маркировка. Таких оказалось четыре: 5, 30, 70, 100 МГц (частоты округлены). Вначале под каждый кварц подбиралось значение константы Dadd, чтобы показания частотомера соответствовали маркировке. В дальнейшей работе использовалось среднее значение Dadd, и все кварцы уложились в допустимое паспортное отклонение от центральной частоты (не более ±100 ppm). Наиболее близкими к среднему оказались настройки под кварц 70 МГц, который был принят за эталон. Далее каждый кварц термостатировался и фиксировалось максимальное отклонение показаний. После этого этапа работы с кварцами 5 и 30 МГц прекратились, потому что ошибка лежала в пределах ±1 ед.счета в течение достаточно длительного времени. Частота 100 МГц отображалась с максимальной ошибкой ±5 ед.

Специальное замечание

После завершения испытаний кварцевый резонатор МК был заменен на новый при переделке макета. Повторить проверку не удалось, стабильность не отвечала ожиданиям. Секрет заключался в термотренировке элементов, на которую потребовалось несколько дней.

Разрешающая способность частотомера проверялась изменением в небольших пределах температуры термостата с кварцем, принятым за эталон. Однозначно фиксировалось изменение частоты при изменении температуры на градус. Получилось среднее значение в районе 2-3 ppm/°C. В целом разрешающая способность близка к аппаратной ошибке ±2/5 Гц на частотах 70/100 МГц.

Частотомер обеспечивает измерение частоты сигналов с логическими уровнями на частотах от 0 до 70/100 МГц с точностью ±2/5 Гц. Работоспособность сохраняется до частоты 125 МГц.

Напряжение питания +5 В. Ток потребления (средний/макс.) – 55/130 мА.

Примечание

Состояния Fuse Bytes МК приведены в заголовке исходного кода. Включается режим с внешним высокочастотным кварцем и выключается делитель на 8. Остальное – по умолчанию.

Ссылки

Материалы по теме

Исходный код программы частотомера

Изготовление плат и монтаж компонентов для вашего проекта от $2. Получи купон на скидку: JLCNY

ATtiny24A Купить ЦенаКупить ATtiny24A на РадиоЛоцман.Цены — от 1,68 до 124
40 предложений от 29 поставщиков
ATtiny24A-SSU микроконтроллер (Atmel)Тактовая частота:20 мгцКоличество входов/выходов: 12Напряжение питания: 1.8...5.5 ВРабочая температура: -40...+85 СВес, г: 0.25Производитель: Atmel
Триема
Россия
ATTINY24A-MU
Atmel
2 ₽
Стандарт СИЗ
Россия
ATtiny24A-SSU
Atmel
30 ₽
Элитан
Россия
ATTINY24A-SSU
Microchip
46 ₽
ICdarom.ru
Россия
ATTINY24A-SSUR
Microchip
от 74 ₽
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Собрал данный прибор,не работает. Проц программатором читается-программируется,но на выходах молчит.
  • Fuse - биты правильно запрограммировали ? Ошибок в монтаже нет ? Питание в норме ? Кварц исправен и на его ножках есть генерация ? Индикатор в схему впаян именно такой, какой указан в статье ? Схема-то простая, все обязано работать ...
  • Добавлю. В статье какой-то обрывок схемы, даже индикатор почему-то не дорисован. Это такой ребус от автора прибора ? Или от автора статьи ? Всю статью не читал и читать не хочу, хотя бы потому, что обрывки схем в подобных статьях меня демотивируют. Если вы все же осилили статью и собрали прибор, то не забудьте подтянуть линии SCL и SDA к питанию резисторами по 4.7 КОм. В статье написано, что эти резисторы есть на плате индикатора, но в документации на индикатор об этом скромно умалчивают: [url]http://www.melt.com.ru/docs/MT-10T11.pdf[/url] И кому после этого верить ?
  • Не есть, а размещены. Да и не надо. Своим личным знаниям и умениям.
  • С фюзами всё нормально,а вот с подтяжкой я проморгал. Тоже поверил что есть на дисплее,но там два резистора на подсветку. Поставил подтяжку, дисплей ожил и от пальца меряет. Теперь нужно на генераторе проверять. Спасибо за подсказку.
  • На здоровье. Но если "от пальца" 50 Гц показывает, то это уже гуд. а в качестве генератора можно использовать, например, калибратор осциллографа ...
Полный вариант обсуждения »