Главная » Статьи » Мои статьи

Прошивка с расширенным управлением для трансивера HiqSDRmini2.0

При создании трансивера на базе платы HiqSDRmini2.0 возникает проблема корректного управления фильтрами, ведь трансивер  может работать с несколькими программами, в каждой реализован свой алгоритм. Лучшее решение проблемы - задать управление непосредственно в прошивке ПЛИС.

В этой статье я расскажу как настроить управление периферией один раз "под себя" и в дальнейшем не беспокоиться о возможных проблемах, связанных с необходимостью настройки управления из различных программ.

Прошивка fpga_ver3-sg9mini-2.0_Ex позволяет задать независимое управление для 16-ти полосовых фильтров приемника, 8-ми фильтров низких частот передатчика,  а также  скорректировать АЧХ передатчика в 12 точках по всему диапазоны. При этом, возможность регулировки мощности из программ сохраняется.

По умолчанию, в прошивке заданны коэффициенты для фильтров, которые я планирую изготавливать. Параметры такие ....

ПФ приемника:  9 фильтров с непрерывным перекрытием частоты, "рэдовская" схемотехника.

0-1.5 МГц - байпас, код 0 , 1.5-2.5МГц - фильтр 1, код 1, 2.5-4.0МГц - фильтр 2, код 2

4.0 - 6.0 МГц - фильтр 3, код 3, 6.0 - 7.5МГц - фильтр 4, код 4, 7.5 -12.5МГц - фильтр 5, код 5

12.5 - 15МГц - фильтр 6, код 6, 15 - 20МГц - фильтр 7, код 7, 20 - 30МГц - фильтр 8, код 8

30 - 55МГц - фильтр 9, код 9

ФНЧ передатчика: 7 фильтров, частоты среза....

код 0 - отключено, код 1 - 2.5МГц, код 2 - 4.5МГц, код 3 - 8.0МГц, код 4 - 15.0МГц, код 5- 20.0МГц, код 6 - 30МГц, код 7 - 55МГц.

Калибровка АЧХ передатчика по умолчанию отключена, так как коэффициенты зависят от конкретного экземпляра трансивера.

Сигнал управления включения передачи инверсный.

Сигналы управления выведены на верхний разьем, выходной код двоичный

Все вышеприведенные значения можно легко изменить и настроить под имеющиеся фильтра.

Для этого понадобится после корректировки коэффициентов, скомпилировать исходный код чтобы получить файл прошивки.

Исходные коды пошивки можно скачать здесь ...

Для работы с прошивкой, компиляции, а также для программировании платы, понадобится программа Altera Quartus II 13.0 SP1 Web Edition. Программа бесплатна и занимает около 7 Гб поэтому имеет смысл скачать ее с помощью торрента, Magnet ссылка  .

Программатор можно приобрести на Aliexpress или  Ebay, например здесь .

В Quartus откройте проект прошивки, File -> Open Project.

Слева, в Project Navigator, в разделе Hierarchy можно видеть структуру проекта. Ttanceiver - основной модуль проекта. Его можно открыть , дважды кликнув по названию.

В строчке 103 можно изменить полярность выходного сигнала управления передачей

103 assign Conn_X1[7] = PTT;

Достаточно перед PTT поставить знак инверсии "~" - кнопка клавиатуры рядом с кнопкой "1".

В строчке 134 прописан наш модуль, под названием excontrol, в нем содержится код, который нам необходимо править.

Открыть его можно, дважды кликнув на его названии в Project Navigator.

Начиная со строчки 25 начинается код управления фильтрами приемника.

Работает это очень просто - программа каждый раз проверяет, не превышает ли текущее значение частоты определенное значение. Таким образом формируется "сетка" частот, внутри каждой ячейки которой можно задавать выходной код управления.

Можно изменить как частоты раздела фильтров так и код управления для них.

Небольшой проблемой является явное отсутствие значений частоты в привычном виде - код HiqSDR вместо него использует значение фазы аккумулятора для алгоритма Cordic.

Легко пересчитать нужное значение частоты в коэффициент с помощью программы DDC Tune Phase.

Начиная с 55 строчки, представлен код для управления ФНЧ передатчика. От функционирует таким же образом, только проверяется частота передачи.

Начиная со строчки 77, представлен код для корректировки АЧХ передатчика. Здесь имеется 12 точек для замера уровня выходной мощности. Это 1.8 /3.6 /5.3 / 7/ 10/ 14/ 23/ 28/ 35/ 40/ 45/ 52 МГц. Для каждого из этих значений частоты можно задать поправочный коэффициент, который по сути означает максимальное значение передачи в определенном диапазоне.

По умолчанию, использование коэффициентов отключено в строчках 102 и 103

102          //level_data <= level_data_comp * level_band / 255; // Calibration ON
103            level_data <= level_data_comp;   // Calibration OFF

Как видно, строчка с пометкой Calibration ON закомментирована знаками // и подсвечена зеленым цветом, что означает что она будет пропущена при компиляции.

Для включении колибровки, необходимо строчку 102 раскомментировать,  а строчку 103 закомментировать.

Однако, прежде чем включить калибровку, необходимо выяснить, какие поправочные коэффициенты требуются для выравнивания АЧХ передатчика.

Для этого необходимо произвести измерения.

В программе PowerSDR или QUISK следует выставить все поправочные коэффициенты уровня передачи на максимум и замерять выходную мощность передатчика на указанных частотах передачи - точках измерения. 

Необходимо выяснить точку с наиболее низким уровнем мощности передачи.

Очевидно, что на частотах 1.8 и 52 МГц будет наблюдаться значительный завал. Так как эти частоты используются редко, я рекомендую не принимать их в расчет и установить для них коэффициенты максимальной мощности - 255.

Предположим, что точка с минимальной мощностью оказалась 3.6 МГц. Выставляем для этой точки коэффициент максимальной мощности - 255. Для остальных частот мы должны рассчитать коэффициенты, которые уменьшили бы их мощность до уровня точки с минимальной мощностью. Таким образом, АЧХ передатчика выровняется.

Для этого необходимо постепенно уменьшать мощность из программы до достижения выходной мощности равной мощности минимальной точки. Для каждой точки, нужно замерять обычным цифровым тестером напряжение на 20 ножке микросхемы AD7801.

Теперь осталось пересчитать это напряжение в поправочный коэффициент. Так как зависимость между напряжением 0-3.2 вольта и коэффициентом 0-255 линейная, можно воспользоваться уравнением пропорции.

К = U * 255 / 3.2

Например, требуется вычислить такой коэффициент, чтобы напряжение составляло 1.9 Вольт. 1.9*255/3.2 = 151

После задания всех коэффициентов, прошивку необходимо компилировать. Processing -> Start Compilation.

 При достаточной мощности компьютера, компиляция завершится через 41 минуту. Рекомендуется использовать компьютеры с процессорами не хуже Core I3, на более старых время компиляции может существенно возрасти.

Для прошивки платы, выберите Tools -> Programmer. Если программатор подключается к компьютеру впервые, то драйвера для него можно найти в папке куда установлен QUARTUS.

В окне программатора следует выбрать Active Serial Programmer и нажать Start.

Во время программирования, шлейф программатора должен быть подключен к плате правильной стороной, в соответствии с ключом.

 На плату должно подаваться ее обычное напряжение питания, а  светодиод должен тускло светится. 

После перепрошивки, плата трансивера сможет управлять фильтрами вне зависимости от настроек в программах.

Обсудить статью или задать вопрос можно на форуме

 

Категория: Мои статьи | Добавил: rolin791 (29.03.2015)
Просмотров: 2856 | Рейтинг: 5.0/2
Всего комментариев: 0