Автор: Ефимкин Д.М.
Введение
В мире высокочастотных измерений стоимость оборудования часто становится непреодолимым барьером для исследователей и радиолюбителей. Профессиональные анализаторы спектра, обеспечивающие точный контроль канальной мощности в СВЧ-трактах, остаются недоступными для многих лабораторий и энтузиастов. Однако современная элементная база предлагает доступное, во всех смыслах, решение этой проблемы.

Предлагаемая система (Рисунок 1) на основе логарифмического детектора в связке с бюджетным микроконтроллером демонстрирует, что эффективный СВЧ-мониторинг может быть доступен каждому. Это устройство, стоимость которого на порядки ниже профессиональных приборов, обеспечивает точную оцифровку уровня сигнала в реальном времени с характеристиками, достаточными для большинства практических задач.
Ключевое преимущество решения — в уникальном сочетании доступности и производительности. Логарифмическая характеристика детекторов позволяет охватывать широкий динамический диапазон, а микроконтроллерная обработка открывает возможности для интеллектуального анализа данных. Такая система не просто заменяет дорогостоящее оборудование, но и предлагает гибкость кастомизации под конкретные приложения — от телекоммуникационных систем до научных экспериментов.
Современная радиоэлектроника позволяет создавать профессиональные измерительные решения с минимальными затратами, открывая новые возможности для образовательных учреждений, коммерческих инициатив и радиолюбителей.
Схема точек измерения параметров сигнала в антенно-фидерных системах представлено на рисунке ниже (Рисунок 2):

Что фактически измеряет детектор.
Логарифмический детектор, в силу своей широкополосности, измеряет интегральную мощность в пределах своей полосы пропускания. Для чистого синусоидального сигнала это измерение эквивалентно определению уровня несущей, однако в реальных условиях с модулированными сигналами прибор определяет канальную мощность, что соответствует требованиям к проекту.
Сумма мощностей всех спектральных компонент в полосе детектора прямо пропорциональна аналоговому сигналу на его выходе. Далее на графике показана типичная зависимость выходного напряжения детектора от входной мощности (Рисунок 3):

В зависимости от параметров сигналов требующих контроля, можно подобрать детекторы на нужный частотный и динамический диапазон. Так же на рынке появилось множество готовых к употреблению или внедрению в системы модулей в виде плат или даже корпусированных решений с неким пользовательским интерфейсом. Однако, ввиду заявленных в статье тезисов о доступности комплектующих, готовое решение использовать неверно.
Проектирование детектора
Требования к параметрам (исходя из личных нужд).
Частотный диапазон от 950 МГц до 2150 МГц.
Динамический диапазон от -40 дБм до -5 дБм.
Вывод данных периодический в UART для последующего сопряжения с ПК через USB.
Список комплектующих:
Детектор от компании Analog Devices — AD 8314ARMZ-REEL7.
Диапазон частот 0.1-2.7 ГГц. Диапазон входного сигнала -45..0 дБм.Контроллер для управления, оцифровки и вывода данных.
Выбор пал на STM32F030F4P6. Его для таких задач будет более чем достаточно. Хотя можно было воспользоваться готовыми платами с МК, пусть они даже и дороже бы стоили.Прочие комплектующие в виде резисторов, конденсаторов, стабилизаторов напряжения и СВЧ разъёмы — по списку. Навряд ли кто-то станет один в один повторять получившееся устройство, особенно при наличии в продаже готовых модулей на базе той же серии чипов.
Есть типовая схема подключения детектора, рекомендованная самим заводом-изготовителем (Рисунок 4):


Далее необходимо определить какой сигнал мы получим на его выходе и сможем ли обработать. Из графика (Рисунок 5) видно, что на выводе Vup напряжение может быть от 0 и до 1.1 В.
Т. е. при мощности сигнала на входе -47 дБм напряжение будет в районе 0.1 В, а при +3 дБм уже около 1.1 В. Возможности МК STM32F030 позволяют обработать сигнал такого напряжения с хорошей точностью и шагом во всём динамическом диапазоне.
Сразу необходимо оговорить тот момент, что во всем частотном диапазоне характеристика (выходное напряжение от входной мощности) может и будет меняться. В дальнейшем необходимо либо усложнять алгоритм пересчёта и указывать контроллеру предположительную частоту, на которой заранее была снята реальная переходная характеристика, либо смириться с нелинейностью детектора и учитывать погрешность при оценке реальной мощности в канале.
Так же стоит отметить, что для формирования формулы для пересчета напряжения в мощность, на практике, не стоит обращаться к характеристикам указанным в технической документации. Имеет смысл «пристрелять» детектор, используя хороший генератор, выставив сигнал в нескольких точках (где динамический диапазон линеен). На приведенном выше графике (Рисунок 5) это точки -50 дБВ и — 20 дБВ.
Ниже приведена получившаяся схема устройства (Рисунок 6). На ней видны детектор с обвязкой, МК, стабилизаторы напряжения и прочее. Так же выводы для программирования контроллера и выводы UART. Входное напряжение указано 7.4 В, т.к. расчёт на использование с аккумулятором. В последствии, схема была модернизирована уже на готовой плате. И питание 5 В было получено на прямую от USB/UART конвертера. Так оказалось проще использовать устройство — прям ое подключение к ПК или через OTG-кабель к смартфону.


На плате (Рисунок 7) виден СВЧ разъём SMA, посередине детектор с согласующими резисторами и конденсаторами. Посередине сам детектор и чуть правее МК. Снизу выведены разъёмы для программирования и прошивки. Справа сверху — питание и светодиод для индикации работы.
Как видно самая большая деталь тут SMA-разъём и кварцевый резонатор. Габариты получившей платы 30Х30 мм.
Для питания от USB/UART конвертера была добавлена небольшая перемычка для игнорирования первого каскада стабилизаторов. Если проще — убрали стабилизатор на 5 В, оставив только на 3.3 В.
Так же выводом на 3.3 В удобно пользоваться при программировании МК с помощью программатора ST-Link. В целом говорить здесь особо не о чем, т.к. схема проста и сводится к подключению детектора к пину контроллера с АЦП.
Программная часть и сопряжение с ПК.
Начнём с конфигурирования пинов. В соответствии схеме, настроили нужный канал АЦП (Рисунок 8). Там всё стандартно и особых настроек не требуется.

Ниже будет приведен текст основной части программы с комментариями, не копируя автоматически сгенерированные STM32CubeIDE части с настройкой МК, чтобы уменьшить текст и тем самым увеличить информативность и читаемость. При желании можно импортировать код в основном цикле на другие платформы.
Стоит сначала описать самую важную часть – математику преобразования. Имея в наличии графики переходных характеристик можно получить формулу для пересчёта полученного напряжения на выходе детектора в мощность, но на практике ошибка в измерениях обычно увеличивается при таком подходе. Реально получившуюся систему лучше «пристреливать» на настоящих сигналах и на этом основании получать результаты в аналитическом виде. Только для наглядности примера покажем, как можно получить формулу пересчёта опираясь на предоставленный в технической документации график (Рисунок 9). Указаны 2 точки.

Уровень -55 dBV(-41.98 дБм) — напряжение 0.2 В.
Уровень -25 dBV(-11.98 дБм) — напряжение 0.8 В.
Формула для связи входной мощности и выходного напряжения имеет вид:
Далее составляем систему уравнений для двух точек на графике:
Находим коэффициенты k и b. Таким образом, наша формула для пересчёта приобретает следующий вид:
В самой программе формула будет немного отличаться, т. к. были произведены измерения с реальным сигналом генератора в середине требуемого частотного диапазона (1500 МГц). Получены данные для системы уравнений и уточнены коэффициенты.
Текст важных кусков программы с комментариями:
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include <string.h>
/* USER CODE END Includes */
…….
/* USER CODE BEGIN PV */
int adcValue = 0; //интегральный результат АЦП
int adcValueSum = 0; //среднее значение АЦП
int voltage = 0; //высчитанное напряжение до сотых без запятой
int pwr = 0; //высчитанная входная мощность в дБм
/* USER CODE END PV */
…….
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); //мигание для индикации работы
for (uint8_t i = 0; i < 100; i++) //делаем 100 измерений
{
HAL_ADC_Start(&hadc);
HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY);
adcValue = HAL_ADC_GetValue(&hadc);
adcValueSum = adcValueSum + adcValue; //складываем в одну переменную
HAL_ADC_Stop(&hadc);
}
adcValueSum = adcValueSum/100; //делим результат на количество измерений
voltage = adcValueSum * 330/4095; //напряжение в вольтах до сотых без запятой
pwr = voltage*53/100 - 55; //вот собственно уточненная формула для пересчёта
char msg[30];
printf(msg, "CHPWR:%idBm,V%i\n",pwr,voltage); //формируем строку для отправки
HAL_UART_Transmit(&huart1, (uint8_t*)msg, strlen((char *)msg),50);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_Delay(1000); //пауза для удобства
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
В качестве UART/USB преобразователя был взят какой-то недорогой модуль с маркетплэйса на базе популярного чипа CH340. Общий вид получившегося устройства без крышки (Рисунок 10):

Данные выводятся на ПК, где в строке виден результат (Рисунок 11):

Сигналы генератора (-18.4 дБм, -28.8 дБм) на анализаторе (Рисунок 12):

Измерения и анализ точности

Для примерной оценки ошибки измерения в рабочем диапазоне проведены измерения в нескольких точках с помощью генератора, на двух уровнях в пределах динамического диапазона детектора.
Исходя из графиков (Рисунок 13) видно, что максимальное расхождение в 2 дБ в нижней части рабочего диапазона.
Выводы
Представленная система измерения СВЧ-мощности демонстрирует, что создание эффективного измерительного оборудования может быть доступным и простым. Устройство обладает рядом ключевых преимуществ:
Простота конструкции — схема содержит минимальное количество компонентов.
Низкая стоимость — все комплектующие доступны и недороги.
Лёгкость программирования — ПО для микроконтроллера не требует сложных алгоритмов.
Удобство сопряжения — интеграция с ПК через UART позволяет использовать готовые терминальные программы
Точности логарифмического детектора AD8314 достаточно для большинства практических задач, связанных с оценкой параметров сигналов в СВЧ-трактах. Система успешно заменяет дорогостоящие анализаторы спектра в ситуациях, где не требуется высокая прецизионность.
Данное решение открывает возможности для оснащения учебных лабораторий, радиолюбительских мастерских и сервисных центров недорогими и эффективными измерительными приборами.