Использование контролера ATMega-8 в ВЧ-устройствах

Что можно сделать на базе простого и дешевого контролера?
Много чего. Но есть одна область применения, где контролер
такой просто не тянет – это синтез вч сигнала. Но как оказалось,
это не так. Вот об этом я и хотел бы рассказать в этой статье.

Сразу предупреждаю, это только текстовый материал – картинки
пока что здесь будут лишними. Главное что бы читатель смог
понять смысл идеи и пути ее реализации в контролерах.
Замечу, что информация в этой статье рассчитана на тех, кто
знаком с работой контролеров и хоть немного разбирается в
радио. Постараюсь рассказать как можно проще – насколько
это конечно возможно.

Итак, для начала немного о контролере ATMEGA-8, а именно
о встроенных в него таймер счетчиках. В этом контролере их три.
Один 16-бит, и два 8 бит. Каждый счетчик может тактироваться
как от сигнала тактовой частоты контролера, так и от внешнего
сигнала. Максимальная рабочая частота счета при использовании
внутреннего тактирования, равна тактовой частоте контролера.
Максимальная частота счета при тактировании от внешнего
источника равна Fcpu*0,5 – есть некоторые ограничение связанные
с внутренней структурой контролера. Для каждого счетчика имеется
возможность программной установки счета по фронту или по спаду
тактирующего сигнала. Также имеется возможность запуска одного
счетчика относительно другого с задержкой в четверть периода
тактовой частоты, для получения квадратурного сигнала.
Самый интересный вариант для дальнейшего рассмотрения это
работа счетчика в режиме внутреннего тактирования, который мы
в дальнейшем и будем рассматривать.

Вот здесь нужно сделать небольшое отступление…
Если верить описанию, максимальная рабочая частота контролера
ATMEGA-8 равна 16мгц. Мною были проведены небольшие
исследования, в результате которых стало известно, что чипы,
выпущенные после 2006 года, без проблем работают на частотах
вплоть до 32мгц, а некоторые экземпляры продолжали стабильно
работать при частоте тактирования 48мгц. (!) Для внешнего
тактирования контролера использовались генераторные TTL «плитки»
от старых материнских плат и периферии. Для проверки контролера
была написана тест прошивка, которую «разгоняемый» циклически
выполнял и индицировал кол-во ошибок. Во время теста, контролер
выполнял множество арифметических/логических операций,
максимально использовал RAM и FLASH память, а также внутреннюю
периферию (таймеры, uart, spi и ацп). Скажу лишь одно – приятно
видеть как контролер, разогнанный в два раза, работает в течении
суток и на дисплее высвечивается «Ошибок-0»… Работоспособность
всех, разогнанных контролеров проводилась в диапазоне температур
от -18 до +70градусов.

Вернемся теперь к таймер/счетчикам контролера.
Для каждого счетчика в контролере есть регистр сравнения и при
равенстве значения в счетчике и в этом регистре – счетчик
обнуляется и счет продолжается сначала. В контролере так же можно
задать реакцию на такое событие в виде:
1. Высокий уровень на определенном выходе контролера
2. Низкий уровень на определенном выходе контролера
3. Инверсия логического состояния на выходе контролера
Процесс сравнения и обновления регистров двух счетчиков ни как не
связан с загрузкой самого процессора, этот процесс - аппаратный.

В итоге мы получаем аналог программируемого делителя частоты
с TTL выходом. Точнее два независимых 8 и 16 разрядных делителя.
Максимальный коэффициент деления 16-ти разрядного счетчика 65535
и 8-ми разрядного соответственно 256.

Таким способом, при тактировании контролера внешним TTL сигналом
с частотой (к примеру) 28мгц, на двух, независимых друг от друга
выходах контролера, можно получить сигнал с частотой 14, 7, 3,5мгц
и так далее в любой комбинации. Частоту на выходе контролера можно
подсчитать по формуле Fout=Fcpu/N/2 где Fcpu-частота тактирования
самого CPU, N – значение в регистре сравнения. То есть для того
чтобы получить на выходе контролера сигнал с частотой 7мгц, нужно
в счетчик занести значение 2, а для получения частоты 1мгц
значение 14 и.т.д Уровень сигнала на выходе контролера на нагрузке
50ом, составляет 1вольт, что соответствует ~20-ти милливаттам.

Итак, думаю что в принципе понятно, как можно получить на выходе
контролера два независимых сигнала прямоугольной формы.
Но что можно сделать с полученным сигналом?
Можно этот сигнал программно/аппаратно модулировать!
В регистре управления счетчиков имеется бит, отвечающий за подачу
тактовой частоты на вход счетчиков. Управляя этим битом, можно
получить на выходе контролера ВЧ сигнал в режиме CW.
Такая возможность была апробирована в одноканальном проекте
«QRP/CW CPU», который обсуждался на этом ресурсе. В результате
было разработан одночиповый, автономный CW передатчик, работающий
на любительских диапазонах 160, 80, 40 и 20метров. (CW-маячок)
Но и это еще не все…

Я уже упоминал, что в контролере можно задать, как будет
тактироваться счетчик, по фронту или по спаду тактового сигнала.
А также напоминаю о возможности запуска одного счетчика относительно
другого с задержкой на четверть периода. Управляя этим битом и
задержкой запуска счетчиков, появляется возможность аппаратного
формирования DSB сигнала, в котором несущая подавлена как минимум
на 80дб. И это все в одном чипе!
И что самое главное – контролер работает практически в холостую.
К слову при тактовой частоте 28мгц – имеется вычислительный потенциал
в ~28 миллионов простых операций в секунду. Думать куда можно
потратить такую вычислительную мощь долго не пришлось.
Свободные вычислительные ресурсы контролера могут без проблем
сформировать CW и с небольшой оговоркой PSK, MFSK и RTTY сигнал
на рабочей частоте.
Так сказать – одночиповый цифровой передатчик на 160, 80, 40 и 20м.
С оговоркой – уровень побочных продуктов на выходе контролера в
таком случае будет -20дб относительно сформированного сигнала.
А также, сформированные PSK, MFSK и RTTY сигналы будут иметь в
эфире «зеркального брата близнеца», относительно «диапазонной»
несущей. Это в варианте, когда для формирования сигнала используются
только аппаратные возможности контролера.

В принципе можно было бы на этом и закончить, но во время
экспериментов с контролером появилось еще несколько идей, тесно
связанных с синтезом ВЧ сигнала с помощью недорогого и вполне
доступного контролера, но с добавлением еще одной микросхемы
– 74HC4053(аналоговый коммутатор).

Идея первая:
Свободные ресурсы этого контролера можно с успехом потратить на
квадратурный, программный DDS синтезатор синусоидального сигнала
в диапазоне частот от 0гц до 1мгц. Что и было сделано.
Зачем спросите программный DDS синтез в таком контролере да еще и
квадратурный? Все просто – для формирования SSB сигнала!
Может немного сложновато, но попытаюсь объяснить.
Имеется два сигнала с частотой Fcpu/N, в которых возможна установка
фазы относительно друг друга в 90градусов. Имеется квадратурный,
программный DDS генератор синуса. Остается добавить в схему
смеситель, в роли которого выступит коммутатор 74HC4053.
В итоге мы получим аппаратно/программный синтезатор частоты в
котором сигнал со счетчиков является тактовым сигналом для
коммутатора, а квадратурный сигнал с DDS синтеза - модулирующим.
Сам процесс синтеза SSB сигнала очень хорошо описан Поляковым во
всем известной книжке «Техника прямого преобразования».
В результате проведенного эксперимента были получены такие параметры:
Тактовая частота используемого контролера ATMEGA-8 - 28мгц.
«Диапазонная» частота на выходе синтезатора 7, 3,5 и 1,75мгц. и.т.д.
Отстройка в сторону от диапазонной частоты с помощью softDDS +/- 200кгц.
Точность установки частоты – 1гц
Подавление «диапазонной» частоты (несущей) – не менее 60(>80)дб
Подавление (на выбор) одной из боковых полос – не менее 40(>60)дб.
(значения в скобках получены при тщательной настройке DDS сигнала с цап*2)
Уровень сформированного SSB сигнала на выходе (нагрузка 50ом) – 400mV.
Максимальный уровень «спуров» и других (побочных) продуктов синтеза,
относительно сформированного сигнала не более -40дб.
Все замеры проводились «в живую» с помощью приемника SDR-14.
Есть еще один параметр – прием на слух в SSB. Сформированный таким
образом сигнал чистый и без призвуков. В результате проведенной
работы был практически разработан синтезатор частоты для передатчика,
работающего на любой частоте, внутри диапазонов 160, 80 и 40метров.
Диапазоном 20м в такой реализации мне пришлось пожертвовать в угоду
квадратурного формирователя ВЧ сигнала. Оставшиеся свободные ресурсы
контролера, позволяют дополнительно к синтезу частоты, отработать
такие типы модуляции на передачу CW, PSK, MFSK и RTTY.
Также возможен (теоретически) синтез режимов AM_voice и SSB_voice.





Идея вторая:
Использовать 28mips процессора для программного декодирования
PSK, MFSK, RTTY и CW сигналов, принятых на приемный тракт, в
котором роль квадратурного генератора фиксированной частоты
(7, 3,5 и.т.д МГц ) выполняет сам контролер и причем аппаратно.
В таком варианте потребуется еще одна мс 74HC4053 и ОУ NE5532.
В итоге получается микро трансивер, работающий на передачу
на любой частоте внутри любительских диапазонов, а на прием
на фиксированных частотах.

Идея третья: Предлагайте Ваши варианты…


Ссылки по теме:
«Универсальный CW маячок» - небольшой проект «QRP/CW CPU»
История создания этого маячка :)
DDS и преобразование квадратурных сигналов с одной боковой полосой getQuotation();






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.