Внешний VFO для Xiegu G90 по CAT интерфейсу
Контроллер VFO по CAT интерфейсу для Xiegu G90
Автор мода: Александр Костюк UA6ANN. Оригинал статьи на сайте автора: https://xflyingcat.ru/catvfoctrl.html
ВВЕДЕНИЕ
HAM Radio... есть такое смежное хобби, которому подвержен один мой приятель. Он-то и предложил: "а сделай для моего XIEGU плавную крутилку, ты всё равно с такими штуками возишься...".
При всем при этом в аппарат лезть не дал, впрочем, как и сам аппарат, делай снаружи по CAT интерфейсу.
ТЗ выглядело так: Чтобы настройка была плавной и быстрой. Всё. Иначе, говорит, я радиоволну не чувствую под кончиками пальцев с этой трещёткой на 20 булек. Во всяком случае, я так его понял.
В результате получилось то, что получилось.
Описание CAT ввергло меня в уныние, много букв, не все понятные. Записали при помощи Serial monitor сеанс работы трансивера с компьютерной программой (WSJTX, пресловутая "цифра"), которая делает перестройку трансивера и переключение с приема на передачу. Это был правильный ход, так как у xiegu свой диалект протокола CAT с нюансами. В результате оказалось, что мне нужно всего три команды: запросить частоту, установить частоту и управление прием/передачей. Осталось реализовать это в микроконтроллере.
Да, Xiegu не имеет нормализованного входа PTT. Раз есть CAT, сделаем, будет куда педальку подключить.
Скорость обмена невелика, всего 19200 бод, всегда есть эхо на каждый передаваемый контроллером символ. И, главный вопрос, смогу ли я обновлять частоту в темпе, при котором психофизическое восприятие даст эффект плавной настройки?
Что там у нас с человеческими реакциями? На уровне сотен миллисекунд?
Команда на установку частоты летит 6 миллисекунд, подтверждение прилетает через 4, само подтверждение летит 3.5 миллисекунды. Грубо 15 миллисекунд на команду. Это значительно меньше требуемого периода опроса (100 миллисекунд). Успеваем.
Примем темп опроса/обновления с запасом - 50 миллисекунд.
Со стороны трансивера определились.
Теперь со стороны крутилки. Она у нас магнитная , 100 импульсов на оборот, а это при квадратурной обработке даст 400 событий на оборот, что при мелкости шага 10 Гц составит 4 кГц.
Должна ли нас волновать частота импульсов от энкодера при высоких скоростях вращения. Совершенно не должна. Это забота аппаратного таймера в микроконтроллере, к тому же, он умеет работать с квадратурными сигналами аппаратными средствами.
Как это соотносится с темпом обновления частоты в трансивере? Прекрасно соотносится.
Мелко крутим - мелко перестраиваем, дельта по событиям энкодера, что получилась между соседними опросами маленькая, вплоть до единицы (точнее вплоть до нуля).
Крупно крутим - считываем дельту, что получилась с момента последного опроса - обновляем частоту в трансивере новой крупной порцией, всё это при постоянном количестве событий на оборот.
Адаптивный шаг перестройки здесь не нужен. Он актуален при дефиците количества импульсов на оборот, например, при применении трещеток на 20 булек.
Ещё один важный момент. Микроконтроллер должен периодически запрашивать текущую частоту, установленную в трансивере для синхронизации. Допустим, крутили штатную ручку настройки или сменили диапазон. Первой командой, исходящей от контроллера, всегда должен быть запрос текущей частоты. Далее, если таймаут простоя превышает, например, 0.5 секунды, периодически делать новый запрос для синхронизации.
1. ОСНОВНЫЕ ПАРАМЕТРЫ И СХЕМА
| 1. Интерфейс подключения к трансиверу | CAT |
| 2. Количество событий энкодера | 400 |
| 3. Шаг перестройки, Гц | 1 и 10 |
| 4. Перекрытие на один оборот, кГц | 0.4 и 4 |
| 5. Блокировка энкодера | Есть |
| 6. Физический вход PTT | Есть |
| 7. Питание, В | от 9 до 15 |
| 8. Потребляемый ток, мА | до 50 |
Схема выносного пульта настройки трансивера
2. КОНСТРУКЦИЯ
Внешний вид изделия показан на рис.1.
![]() |
Рис.1 |
1. Kорпус для РЭА GAINTA G104 влагозащищенный алюминиевый литой, неокрашенный, IP65, 64x58x35 мм
2. Гермоввод PG7
3. Энкодер, описанный здесь
4. Экранированные кабели
Вид на монтаж показан на рис.2.
Из рис.2 видно, что это поделие относится к категории "конструкция выходного дня".
![]() |
Рис.2 |
3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
A. Прошивка
B. Исходный код


