Специальные радиосистемы
Логин  Пароль   Регистрация   
На главную
наш магазин радио
объявления
радиорейтинг
радиостанции
радиоприемники
диапазоны частот
таблица частот
аэродромы
статьи
файлы
форум
поиск
Радиостанции Аргут в нашем магазине
Использование контролера ATMega-8 в ВЧ-устройствах
Оригинальная авторская разработка
Начало » Оборудование радиосвязи » Различное оборудование
Разместил: NextDoor 3.5
Авторские права NextDoor


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

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

Итак, для начала немного о контролере 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 и преобразование квадратурных сигналов с одной боковой полосой

Комментарии к статье
Автор Комментарий
sea
Участник
3.3
15 Апр 2008 10:21


Очень интерено, кстати. Творческий подход.
Чуствую, что вы тоже официальный радиолюбитель или около того.
Знайте, мысленно я поддерживаю ваши идеи.
NextDoor
Участник
3.5
15 Апр 2008 12:45


Спасибо за поддержку!
Осталось только прототип довести до состояния, пригодного
для повторения. И что самое главное – нужна помощь форума!
Помощь, в написании софта для атмеги (PSK,MFSK и.т.д), так
как сам я это дело не потяну – мало времени свободного…
sea
Участник
3.3
15 Апр 2008 16:01 · Поправил: 15 Апр 2008 16:07


может быть чем-то и помогу, т.к. на дипломе сейчас занимаюсь похожей затеей: портативное устройство обмена сообщениями по радиоканалу. После защиты мечтаю сделать то же в железе.
Вид радиосвязи решил BPSK31, а частоту 28 МГц.
Соображения именно исходя из мощностей и расстояний (BPSK)
а 28 МГц именно из за того, что железо на эти частоты еще не так
сложно как на УКВ, а шумов уже и так мало.

Приемник/передатчик - ППП.
DDS AD9850-51
Смеситель на ADG774
Микроконтроллер Мега32, т.к. еще экран 128х64 и клавиатуру надо.

Как формировать BPSK31 можна найти в статье RX3AKT новый взгляд на BPSK31. Я нашел три разновидности его схемы, и потихоньку начал понимать работу...

Декодирование он вроде не сделал...
Для декодирования я пробовал писать программу (естественно на delphi) чтобы выбрать и обкатать алгоритм. Кстати декодируется достаточно сносно. НО BPSK сигнал нужно выделить среди других фильтром. А его программно сложно (да и не очень хорошо) делать: к тому же опыта бих и БПФ программных фильтров у меня нет, к тому же все это надо на AVR. Наверное лучше фильтровать аппаратно, принимая одновременно только один сигнал, только на 1500Гц (например). Так же не забываем про 12Битный АЦП.
Для декодирования используется простой алгоритм. Даже умножений не надо. Складываем сигнал с самим собой с задержкой 31,25 Гц. И получается результат: единицы и ноли. Остается решить вопрос с синхронизацией относительно начала бита ну и декодирование.

Так что как только получу эти корки. Буду делать в железе...

PS. Пробовали проводить связи с малыми мощностями и никакими антеннами. Отчет на форуме лпд был в теме про маяки и тут
http://www.radiokot.ru/forum/viewtopic.php?t=8814
NextDoor
Участник
3.5
16 Апр 2008 11:13


Хорошо, а почему именно PSK? Ведь можно было применить для такой системы MFSK – вроде как по энергетике одинаково будет. Что мне нравится в MFSK – легче синтезировать на этом контролере и процесс декодирования несложный. Если ваше устройство обмена сообщениями одноканальное – можно в принципе все уместить в одном контролере.
С формированием PSK/MFSK с помощью atmega, в принципе разобрался. Разобрался вплоть до переноса PSK сигнала на рабочую частоту в самом контролере(без внешних компонентов). Тоже на досуге прикидываю, как теперь сделать декодирование. Но я в принципе «железячник», потому и ход мыслей немного другой. :) В общем, одна голова хорошо, а две, три и.т.д. в этом деле будет лучше.
sea
Участник
3.3
16 Апр 2008 14:46


Да ну. Как-то так сложилось. Не знаю я что такое MFSK. А с BPSK уже определенность есть. К тому же она есть DSB. BPSK можно делать прямо на радиочастоте. А FSK, наверное с помощью DDS меняя частоту. А я вот в принципе программист. С железом к сожалению мало знаком на практике...
BATONS
Участник
6.0
16 Апр 2008 18:30


отличная статья!
спасибо Вам за труд.
Aster
Участник
28 Июл 2008 15:48


Добрый вечер...уж действительно даж представления не имел что старая добрая мега8 так розгоняется. Скажите плыз, а возможен ли такой разгон при тактировании внешним кварцевым резонатором к примеру на 28 Мгц? Спасибо заранее за ответ!!!
invasion
Участник
1.3
19 Сен 2008 23:11


Очень познавательная статейка! Попробовал на базе предложенной
идеи сделать sdr микротрансивер и что интересно - получилось!
Причем получилось даже лучше чем ожидал :)
Думаю сейчас над тем, как добавить в него диапазон 20м.
Спасибо за идею и отличную статью!
Добавлять комментарии могут только зарегистрированные, активировавшие регистрацию и не ограниченные в доступе участники сайта!
Файл создан: 15 Апр 2008 00:43, посл. исправление: 15 Апр 2008 12:36
© radioscanner.ru, miniBB® 2006 | загрузка: с.