Home Статьи Технический уголок Маяк на AVR – новый подход в действии

На сайте

Никого

Авторизация

Журнал CQ-QRP

Зима-Лето 2023
cq qrp 81
Все журналы

Спонсоры

LAB599
lab599 banner

Магазин XIEGU.RU
xiegu ru banner

Наши друзья

baner88x31
Тульский областной радиоклуб
QRP ARCI
Клуб Нижегородских Радиолюбителей
ru cw banner
Маяк на AVR – новый подход в действии PDF Печать E-mail
Автор: Dmitry A. Gorokh   
25.07.2012 23:36
Индекс материала
Маяк на AVR – новый подход в действии
Страница 2
Страница 3
Все страницы

Введение

Бесспорно, что степень любого успеха на QRP всецело зависит от прохождения и мастерства радиолюбителя. И, если мастерство приходит с опытом, то «капризы» прохождения нам неподвластны. Мы можем лишь в той или иной степени наблюдать за обстановкой или давать прогнозы. Существует множество способов наблюдения за ионосферой и прохождением радиоволн. Одним из древних и популярных способов является наблюдение за работой радиомаяков. Действительно, маяки имеют небольшую мощность, работают круглосуточно или по расписанию, и показывают фактическую обстановку в эфире в данное время. С другой стороны, эффективность маяков целиком определяется их количеством.
 
Традиционно схемы радиолюбительских маяков мало отличаются от схем передатчиков. Некоторые радиолюбители даже временно используют для этого свои трансиверы. А такая известная сеть маяков, как NCDXF Beacon Project использует фирменные трансиверы и специальные контроллеры. Несомненно, что контроллер для маяка необходим, и он обязательно будет содержать микропроцессор или микроконтроллер. Кроме этого, контроллер может еще управлять синтезатором передатчика и(или) регулировать мощность в антенне. Все эти задачи очень простые и большую часть времени контроллер простаивает. Более рациональный и дешевый подход – это максимально упростить аппаратную часть и нагрузить программную. Оказывается, что в схемах с процессором/микроконтроллером достаточной производительности можно даже полностью отказаться от аппаратного гетеродина (XCO, VCO, DDS, PLL) и реализовать генерацию стабильной высокой частоты непосредственно в микроконтроллере ценой увеличения вычислительной нагрузки и использованием аналоговых фильтров. В традиционных схемах гетеродинов и так присутствуют фильтры, а нагрузка на процессор может быть сведена к минимуму, если в нем имеется режим DMA.

Краткое описание подхода

 Суть нового метода, который заслуживает отдельного описания, заключается в том, что, используя аппаратные периферийные ресурсы (SPI, UART, I2S) и последовательность бит, подготовленных по специальному алгоритму, можно получить на выходе процессора непрерывный сигнал, частотой и фазой которого можно программно управлять. После фильтрации выходного цифрового сигнала в аналоговом фильтре можно выделить аналоговый ВЧ сигнал, стабильность которого определяется кварцевым генератором микроконтроллера, а шаг перестройки – процессорными ресурсами, и может составлять от долей герц до единиц мегагерц. Этот принцип основан на цифровом синтезе сигналов (DDS), но без традиционного АЦП на выходе. Также как и в DDS, тут используется фазовый регистр нужной длины, а выходная последовательность формируется только значением старшего бита фазового регистра (подробности метода будут опубликованы в отдельной статье). Замечательным фактом является то, что нет необходимости каждый раз просчитывать очередной бит последовательности. Достаточно один раз просчитать полный период всей последовательности, сохранить ее в постоянной памяти, и выдавать наружу через периферию байт за байтом. Немаловажно и то, что период последовательности всегда ограничен, является степенью двойки и не превышает 2N, где N– разрядность фазового регистра. Это позволяет «упаковывать» последовательность в байты, слова, двойные слова, и удобно хранить и вынимать их из памяти.

 В этой статье описаны две схемы маяка на простом и дешевом 8-битном микроконтроллере AVR от фирмы Atmel, в котором реализован описанный выше метод цифрового программного гетеродина. Основные функции маяка – это формирование телеграфных знаков заданной скорости для заданного текста. Они занимают очень малую долю процессорного времени и потому здесь есть возможность отказаться от внешнего ВЧ генератора несущей и формировать ее в микроконтроллере. Для расчета последовательности, которую следует записать в память микроконтроллера, используется простая утилита на языке Си. Исходными данными для нее являются опорная частота в Гц (20 МГц / 2 = 10 000 000 Гц, см. константу FREQ_OSC) и выходная частота маяка в Гц (FREQ_OUT). Результатом работы утилиты будет последовательность байт, которую затем надо перенести в исходный проект AVR маяка, по образцу отформатировать массив байт, и перекомпилировать весь проект. Для удобства выбора последовательностей, утилита выводит сразу несколько их, по возрастанию инкремента фазы (M), также показывается период последовательности (длина массива в байтах). В данной версии AVR маяка поддерживаются последовательности длиной до 256 байт (2048 бит). Принципиально не существует ограничений, чтобы снять это условие в новых версиях AVR маяка.

Простейший маяк на одной микросхеме


 На рис. 1 показана принципиальная схема маломощного маяка на диапазон 80 м, в котором используется всего лишь одна микросхема AVR микроконтроллера, необходимая «обвязка» к нему и аналоговый полосовой ВЧ фильтр. Схема питания максимально упрощена и предназначена для использования совместно с 6 В аккумулятором или батареей. Следует придерживаться указанных на схеме ограничений по напряжению питания. Если оно не превышает 5.5 В, то от использования диодов VD1, VD2 можно отказаться. Напряжение питания (без учета падения напряжения на диодах) не должно быть меньше 4.5 В!

beacon 1 small
Рис. 1. Простейший маяк
(нажмите для увеличения)

 С вывода 31 (TXD) DD1 поступает специально сформированная цифровая последовательность, которая через R1 и C4 поступает на контур L1C5, где происходит фильтрация сигнала и выделение несущей частоты. Для правильной работы маяка нужно обязательно настроить этот контур в резонанс, а также подобрать величину R1. Меньшие его значения дают большую мощность маяка ценой ухудшения спектральной чистоты сигнала и повышением потребляемого тока.

 На нагрузке 50 Ом при питании 6 В маяк развивает мощность до 2 мВт (+3 дБм). При этом потребляемый ток составляет 20-25 мА. Для программирования микроконтроллера предназначены 5 проводов SPI programming interface. Автор использует самодельный USB программатор AVR910.

Детали конструкции. В AVR маяке использованы SMD компоненты типоразмера 0805 и 0603. Маяк можно смонтировать на части универсальной печатной платы более мощного маяка (см. рис. 3, 4). Вместо ATmega88p (PicoPower) можно применить ATMega88PA или ATmega88. Допустимо использовать и другие AVR микроконтроллеры с аппаратным SPI, I2S (не путать с I2C), или USART, который работает в режиме SPI, но тогда потребуются изменения в программе и печатной плате. По возможности следует выбирать микроконтроллеры с возможно большей рабочей частотой. Катушка L1 намотана на кольцевом сердечнике T50-2 (Amidon, Micrometals) и содержит 42 витка. Отвод сделан от 10-го витка сверху по схеме и подбирается экспериментально. Катушка L2 намотана поверх L1 и содержит 5-15 витков; подбирается для согласования с конкретной нагрузкой.

Настройка заключается в проверке контрольным приемником на наличие телеграфных посылок на заданной частоте. Конденсатором C5 настраивают контур L1C5 в резонанс. Нужный текст для маяка указывается в исходном коде проекта AVR маяка. Параметры телеграфной манипуляции также устанавливаются в исходном коде. После всех изменений проект компилируется, а HEX-файл загружается в микроконтроллер.

 

QRP маяк на 80 м

Гораздо совершеннее, но и сложнее маяк по схеме рис. 2. Он также рассчитан на диапазон 80 м, но может быть перестроен и на другие диапазоны. Как и раньше, конкретная рабочая частота указывается в утилите, с помощью которой рассчитывают DDS-последовательность для микроконтроллера. Мультиплексор DD2 работает как компаратор и драйвер полевого транзистора. Все три его ключа соединены параллельно, а логические входы смещены по напряжению на 3.6 В (подбирается экспериментально) с тем условием, чтобы при отсутствии сигнала ключи замыкали затвор транзистора на землю. При поступлении на входы ключей синусоидального напряжения ключи, ввиду наличия гистерезиса в цифровых цепях, переключаются скачкообразно, тем самым формируя прямоугольные импульсы на затворе выходного транзистора. Скважность импульсов регулируется подбором напряжения смещения на ключах с помощью R2. Выходной каскад на VT1 в целях повышения его эффективности работает в классе E. Указанные на схеме детали рассчитаны на участок частот 3500…3600 кГц. Для использования маяка в других участках вместе с новой последовательностью и настройкой контура L1C6 в резонанс, требуется также пересчитать выходной усилитель. Питание маяка осуществляется от литий-полимерной (LiPo) батареи с тремя последовательно соединенными "банками" (3S) и номинальным напряжением 11.1 В. В случае применения других источников следует позаботиться о том, чтобы напряжение питания на DD2 не превышало 10 В. (Следует либо добавить диоды последовательно с VD1-VD3, либо установить интегральный стабилизатор). При напряжении питания 11.1 В и потребляемом токе 140 мА маяк развивает мощность в антенне 1 Вт.

beacon 2 small
Рис. 2. QRP маяк на 80 м
(нажмите для увеличения)

 На рис. 3, 4 показаны рисунки печатных плат для самостоятельного изготовления. Рисунок платы со стороны SMD компонентов (рис. 3) сделан в зеркальном виде. Рисунки плат в формате Sprint Layout можно взять из пакета документации (см. ниже).

beacon 2 pcb layer1
Рис. 3. Печатная плата со стороны SMD компонентов (зеркальный вид)
 
beacon 2 pcb layer2
Рис 4. Печатная плата со стороны моточных компонентов (нормальный вид)

На рисунках 5-10 показаны формы сигналов в разных точках схемы AVR маяка. На рис. 11 представлен спектр выходного сигнала. Все гармоники и побочные излучения находятся ниже отметки -40 дБ. При анализе спектра следует иметь ввиду ограничения динамического диапазона у цифрового осциллографа (порядка 60 дБ). Высокая шумовая дорожка обусловлена именно этими ограничениями, а не измеряемым сигналом. При прослушивании сигнала на профессиональный приемник его стабильность и фазовый шум неотличимы от сигнала, сформированного методом DDS.
point 1
Рис. 5. Сигнал на выводе 31 (TXD) DD1

point 2
Рис. 6. Сигнал на правом по схеме выводе C4

 point 3
Рис. 7. Отфильтрованный сигнал на контуре L2C6 (со стороны ключей)

point 4
 Рис. 8. Меандр с рабочей частотой маяка на затворе VT1

point 5
Рис. 9. Форма сигнала на стоке VT1 при оптимальной работе
усилителя класса E

point 6

Рис. 10. Сигнал на антенном выходе маяка

spectrum
Рис 11. Спектр выходного сигнала

Детали конструкции. В этой конструкции можно применить такие же компоненты, как и для простого маяка на рис.1. Мультиплексор DD2 может быть заменен другим с соответствующими изменениями в схеме. При замене следует учитывать возможность мультиплексора "раскачать" затвор выходного транзистора. Для повышения выходной мощности параллельно VT1 могут быть установлены несколько одинаковых транзисторов. VT1 может быть заменен на другие полевые транзисторы с максимальным напряжением исток-сток не менее 30 В, а также с возможно меньшими емкостями переходов. Катушка L4 имеет 38 витков на кольце T50-2 (Amidon), L5 – 15 витков на аналогичном кольце. Дроссель L3 намотан на кольце типоразмера 10x6x4 с проницаемостью 1000-3000 и имеет 12 витков. Его индуктивность не критична, но не должна быть меньше 100 мкГн.

 На рис. 12, 13 показаны фотографии макета AVR маяка на 80 м.

photo 1
Рис. 12. Фото макета со стороны SMD компонентов

photo 2
Рис. 13. Фото макета со стороны катушек

Настройка маяка заключается в программировании микроконтроллера DD1 и подстройке контура L1C6 в резонанс на рабочей частоте. При этом выходной каскад на VT1 должен быть обесточен. Затем регулировкой R2 устанавливают такое смещение на ключах, чтобы на затворе VT1 наблюдался меандр с рабочей частотой маяка (рис. 8), а при отсутствии сигнала затвор был подключен к "земле". После этого переходят к настройке выходного каскада. Класс E предъявляет особые требования к форме сигнала на стоке транзистора (рис. 9), обеспечивая при этом наибольшую эффективность (порядка 90-95%). Перед выполнением любых подстроек в выходном каскаде следует последовательно с истоком VT1 подключить резистор на 8..15 Ом, зашунтированного конденсатором 0.1 мкФ. Это ограничит ток через транзистор и предотвратит его от случайного выхода из строя. Настройка усилителя класса E достаточна кропотлива, но хорошо описана в литературе. Автор отсылает заинтересованных читателей к работе [1] и особенно к иллюстрациям на стр. 33. Большую пользу при расчете усилителей класса E окажет программа [2].

 Описанный AVR маяк прошел тестирование в эфире (3574.22 кГц) и показал надежную работу при высокой эффективности. Используя ту же элементную базу, можно построить маяки на все любительские КВ диапазоны. В УКВ диапазоне возможно применить традиционную схему, когда сигнал маяка формируется в участке 10-20 МГц (как от кварца), а затем умножением "поднимается" в нужный диапазон. Другой подход – это выделение контуром L1C6 не основной частоты, а сразу нужной гармоники с последующим усилением. При этом надо учитывать увеличение шага перестройки частоты при использовании той или иной гармоники.

 

Будущее метода

Описанные в этой статье конструкции маяков практически реализуют новый подход к цифровой генерации сигналов. На самом деле, как было замечено, этот метод не нов, а является частным случаем прямого цифрового синтеза сигналов (DDS). Однако, автору не известны работы, где бы так оригинально использовались аппаратные ресурсы периферии микроконтроллера для генерации ВЧ сигналов. Хочется отметить, что данный метод применим везде, где необходим стабильный источник ВЧ сигнала, и где есть достаточные процессорные ресурсы для его реализации. Например, в 32-битных микроконтроллерах серии ARM7 имеется вся необходимая периферия, а также контроллер DMA, который позволяет значительно разгрузить процессор. DDS-последовательность может быть либо заранее вычисленной и сохраненной в постоянной памяти (как в этом проекте маяка), так и вычисляться по мере перестройки частоты, и храниться в оперативной памяти. При этом время на вычисление одного периода последовательности составляет единицы миллисекунд, что соизмеримо со временем программирования внешнего DDS или временем перестройки PLL. Трансиверы и приемники, построенные по данному методу, могут иметь тот же функционал, что и традиционные, но до предела упрощенную элементную базу и пониженное энергопотребление.

 

Будущее маяка


 В самом проекте AVR маяка тоже можно сделать несколько улучшений:

  • хранить текст в EEPROM и иметь возможность изменять его без перепрограммирования микроконтроллера;
  • реализовать считывание показаний с датчиков (напряжение питания, температура, давление, влажность, и др.) и передачу их в эфир;
  • реализовать работу маяка по расписанию;
  • можно управлять фазой и частотой сигнала, тем самым реализовав цифровые модуляции классов PSK и FSK;
  • есть возможность управлять выходной мощностью маяка посредством ШИМ (PWM);
  • можно сделать многодиапазонный вариант на одном микроконтроллере, переключая только аналоговые фильтры;
  • несложно синхронизировать работу нескольких таких маяков для организации их сети на разных диапазонах.

 Проект AVR Beacon открыт для всех и распространяется по свободной лицензии GNU GPL v3. Вы можете свободно и бесплатно использовать, изменять и распространять этот проект с тем условием, что сохраняете авторство за UR4MCK. По всем вопросам и за новыми версиями обращайтесь по адресу: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

 Пакет документации 

 Пакет документации включает:

  •  принципиальную схему (SPlan 7.0, GIF);
  • печатную плату (SprintLayout 5.0, GIF);
  • исходный код (Atmel Studio 6.0, AVR assembler);
  • HEX-файл для программирования микроконтроллера;
  • исходный код утилиты для генерации DDS-последовательности (GNU C);
  • запись сигналов маяка с эфира (MP3);
  • фотографии макета-прототипа.

СКАЧАТЬ (651 Кб)
Новые версии см. на странице проекта AVR beacon: http://sourceforge.net/projects/avrbeacon/


Литература


1. Nathan O. Sokal "Class-E High-Efficiency RF/Microwave Power Amplifiers: Principles of Operation, Design Procedures, and Experimental Verification" http://www.cs.berkeley.edu/~culler/AIIT/papers/radio/Sokal%20AACD5-poweramps.pdf

2. ClassE v2.04. http://www.tonnesoftware.com/classe.html

 

July 2012

UR4MCK
Обновлено 17.08.2012 16:40
 

Комментарии   

 
0 #4 ur4mck 17.08.2012 16:38
Проект перенесен на sourceforge.net/projects/avrbeacon/
Все вопросы, новые версии и сообщения об ошибках теперь только через службы SourceForge.
Цитировать
 
 
0 #3 UU7JF 30.07.2012 12:52
Да, с памятью понятно, ATmega48 отличается только объемом памяти, а аппаратные интерфейсы такие же. Попробую простейший вариант, моща 2 мВт не так уж и мало. Единственно, поразбираюсь, чтоб в режиме QRSS3 запустить - 3 секунды длительность точки.
Цитировать
 
 
0 #2 ur4mck 30.07.2012 12:43
Виталик, ты все правильно увидел. RAM и FLASH используются не полностью. В ATmega88p 1 kБ RAM и 8 кБ FLASH. Можно попробовать под другие MCU, в том числе и ATmega48, надо только убедится, что аппаратный USART может работать в режиме "Master SPI Mode" (MSPIM). Этот режим выбран вместо родного SPI, т.к. в USART есть буффер, а в родном SPI - нет.
При замене MCU надо не забыть указать правильный ".include".
Последовательность, сгенерированная утилитой, соответствует заданной рабочей частоте (первая последовательно сть в списке). Утилита генерирует несколько последовательно стей по мере увеличения переменной M. Например, N = 4096 (размерность фазового регистра - 12 бит), а M = 1464 (фазовый инкремент), тогда при опорной частоте 10 МГц выходная частота будет равна 1464 / 4096 * 10 (МГц) = 3.57421875 МГц (приблизительно 3574.22 кГц). В версии 0.0.1 длина последовательно сти ограничена 256 байтами. Уже есть новая версия, в которой последовательно сть ограничена только размерами свободной FLASH. Вышлю тебе по e-mail.
Цитировать
 
 
+1 #1 UU7JF 30.07.2012 11:15
Дима, правильно ли я увидел, что RAM контроллера используется мало (не все 512 байт)? У меня просто есть ATmega48 и хочу понять, влезет ли в нее прошивка, там RAM только 256 байт и 4кБ флэш.
Второй вопрос - какую из сгенерированных утилитой последовательно стей выбирать для использования?
Цитировать